changeset 436:a2ed6bc6e42c release-2.1

Fix #642: fix case sensitivity in hangman, roulette Plugins hangman and roulette are actually case sensitive which means that using them in #abc and #ABC ends in different results and should not. Task: #642 Errata: 20170403
author David Demelier <markand@malikania.fr>
date Mon, 03 Apr 2017 21:32:43 +0200
parents 7db60982075f
children ecb6b9342475
files plugins/hangman/hangman.js plugins/roulette/roulette.js tests/plugin-hangman/main.cpp
diffstat 3 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/hangman/hangman.js	Tue Mar 07 12:20:20 2017 +0100
+++ b/plugins/hangman/hangman.js	Mon Apr 03 21:32:43 2017 +0200
@@ -329,6 +329,8 @@
 
 function onCommand(server, origin, channel, message)
 {
+    channel = channel.toLowerCase();
+
     var game = Hangman.find(server, channel);
     var kw = {
         channel: channel,
@@ -361,6 +363,8 @@
 
 function onMessage(server, origin, channel, message)
 {
+    channel = channel.toLowerCase();
+
     var game = Hangman.find(server, channel);
 
     if (!game)
--- a/plugins/roulette/roulette.js	Tue Mar 07 12:20:20 2017 +0100
+++ b/plugins/roulette/roulette.js	Mon Apr 03 21:32:43 2017 +0200
@@ -126,6 +126,8 @@
 
 function onCommand(server, origin, channel)
 {
+    channel = channel.toLowerCase();
+
     var kw = {
         channel: channel,
         command: server.info().commandChar + Plugin.info().name,
--- a/tests/plugin-hangman/main.cpp	Tue Mar 07 12:20:20 2017 +0100
+++ b/tests/plugin-hangman/main.cpp	Mon Apr 03 21:32:43 2017 +0200
@@ -198,6 +198,19 @@
     ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _", m_server->last());
 }
 
+TEST_F(HangmanTest, caseInsensitive)
+{
+    load();
+
+    m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#hangman", ""});
+    m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#HANGMAN", "s"});
+    ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:s _ _", m_server->last());
+    m_plugin->onMessage(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#HaNGMaN", "k"});
+    ASSERT_EQ("#hangman:wrong-player=hangman:!hangman:test:#hangman:jean!jean@localhost:jean:k", m_server->last());
+    m_plugin->onMessage(m_irccd, MessageEvent{m_server, "francis!francis@localhost", "#hAngmAn", "k"});
+    ASSERT_EQ("#hangman:found=hangman:!hangman:test:#hangman:francis!francis@localhost:francis:s k _", m_server->last());
+}
+
 TEST_F(HangmanTest, query)
 {
     load();