diff options
author | Paul Schoenfelder <paulschoenfelder@gmail.com> | 2014-07-31 00:24:54 -0500 |
---|---|---|
committer | Paul Schoenfelder <paulschoenfelder@gmail.com> | 2014-07-31 00:45:31 -0500 |
commit | b23defab14824a00291097fbd51b09b8b7f335e5 (patch) | |
tree | 582181929081e2a5a4c5e61c985c010c27e9baab /test | |
parent | Version 0.7.1 (diff) |
Fixes #9 - Implement support for sending/receiving CTCP ACTION command
Diffstat (limited to 'test')
-rw-r--r-- | test/commands_test.exs | 59 | ||||
-rw-r--r-- | test/utils_test.exs | 17 |
2 files changed, 50 insertions, 26 deletions
diff --git a/test/commands_test.exs b/test/commands_test.exs index 950e559..c84fce3 100644 --- a/test/commands_test.exs +++ b/test/commands_test.exs @@ -4,24 +4,45 @@ defmodule ExIrc.CommandsTest do use Irc.Commands test "Commands are formatted properly" do - assert [1, 'TESTCMD', 1] == ctcp! "TESTCMD" - assert [['PASS ', 'testpass'], '\r\n'] == pass! "testpass" - assert [['NICK ', 'testnick'], '\r\n'] == nick! "testnick" - assert [['USER ', 'testuser', ' 0 * :', 'Test User'], '\r\n'] == user! "testuser", "Test User" - assert [['PONG ', 'testnick'], '\r\n'] == pong1! "testnick" - assert [['PONG ', 'testnick', ' ', 'othernick'], '\r\n'] == pong2! "testnick", "othernick" - assert [['PRIVMSG ', 'testnick', ' :', 'Test message!'], '\r\n'] == privmsg! "testnick", "Test message!" - assert [['NOTICE ', 'testnick', ' :', 'Test notice!'], '\r\n'] == notice! "testnick", "Test notice!" - assert [['JOIN ', 'testchan', ' ', ''], '\r\n'] == join! "testchan" - assert [['JOIN ', 'testchan', ' ', 'chanpass'], '\r\n'] == join! "testchan", "chanpass" - assert [['PART ', 'testchan'], '\r\n'] == part! "testchan" - assert [['QUIT :', 'Leaving'], '\r\n'] == quit! - assert [['QUIT :', 'Goodbye, cruel world.'], '\r\n'] == quit! "Goodbye, cruel world." - assert [['KICK ', '#testchan', ' ', 'testuser'], '\r\n'] == kick! "#testchan", "testuser" - assert [['KICK ', '#testchan', ' ', 'testuser', ' ', 'Get outta here!'], '\r\n'] == kick! "#testchan", "testuser", "Get outta here!" - assert [['MODE ', 'testuser', ' ', '-o'], '\r\n'] == mode! "testuser", "-o" - assert [['MODE ', '#testchan', ' ', '+im'], '\r\n'] == mode! "#testchan", "+im" - assert [['MODE ', '#testchan', ' ', '+o', ' ', 'testuser'], '\r\n'] = mode! "#testchan", "+o", "testuser" - assert [['INVITE ', 'testuser', ' ', '#testchan'], '\r\n'] = invite! "testuser", "#testchan" + expected = <<1, "TESTCMD", 1, ?\r, ?\n>> + assert expected == ctcp!("TESTCMD") |> IO.iodata_to_binary + expected = <<"PRIVMSG #testchan :", 0x01, "ACTION mind explodes!!", 0x01, ?\r, ?\n>> + assert expected == me!("#testchan", "mind explodes!!") |> IO.iodata_to_binary + expected = <<"PASS testpass", ?\r, ?\n>> + assert expected == pass!("testpass") |> IO.iodata_to_binary + expected = <<"NICK testnick", ?\r, ?\n>> + assert expected == nick!("testnick") |> IO.iodata_to_binary + expected = <<"USER testuser 0 * :Test User", ?\r, ?\n>> + assert expected == user!("testuser", "Test User") |> IO.iodata_to_binary + expected = <<"PONG testnick", ?\r, ?\n>> + assert expected == pong1!("testnick") |> IO.iodata_to_binary + expected = <<"PONG testnick othernick", ?\r, ?\n>> + assert expected == pong2!("testnick", "othernick") |> IO.iodata_to_binary + expected = <<"PRIVMSG testnick :Test message!", ?\r, ?\n>> + assert expected == privmsg!("testnick", "Test message!") |> IO.iodata_to_binary + expected = <<"NOTICE testnick :Test notice!", ?\r, ?\n>> + assert expected == notice!("testnick", "Test notice!") |> IO.iodata_to_binary + expected = <<"JOIN testchan", ?\r, ?\n>> + assert expected == join!("testchan") |> IO.iodata_to_binary + expected = <<"JOIN testchan chanpass", ?\r, ?\n>> + assert expected == join!("testchan", "chanpass") |> IO.iodata_to_binary + expected = <<"PART testchan", ?\r, ?\n>> + assert expected == part!("testchan") |> IO.iodata_to_binary + expected = <<"QUIT :Leaving", ?\r, ?\n>> + assert expected == quit! |> IO.iodata_to_binary + expected = <<"QUIT :Goodbye, cruel world.", ?\r, ?\n>> + assert expected == quit!("Goodbye, cruel world.") |> IO.iodata_to_binary + expected = <<"KICK #testchan testuser", ?\r, ?\n>> + assert expected == kick!("#testchan", "testuser") |> IO.iodata_to_binary + expected = <<"KICK #testchan testuser Get outta here!", ?\r, ?\n>> + assert expected == kick!("#testchan", "testuser", "Get outta here!") |> IO.iodata_to_binary + expected = <<"MODE testuser -o", ?\r, ?\n>> + assert expected == mode!("testuser", "-o") |> IO.iodata_to_binary + expected = <<"MODE #testchan +im", ?\r, ?\n>> + assert expected == mode!("#testchan", "+im") |> IO.iodata_to_binary + expected = <<"MODE #testchan +o testuser", ?\r, ?\n>> + assert expected == mode!("#testchan", "+o", "testuser") |> IO.iodata_to_binary + expected = <<"INVITE testuser #testchan", ?\r, ?\n>> + assert expected == invite!("testuser", "#testchan") |> IO.iodata_to_binary end end
\ No newline at end of file diff --git a/test/utils_test.exs b/test/utils_test.exs index 34d4e2d..e079661 100644 --- a/test/utils_test.exs +++ b/test/utils_test.exs @@ -13,13 +13,16 @@ defmodule ExIrc.UtilsTest do assert Utils.ctcp_time(local_time) == "Fri Dec 06 14:05:00 2013" end - test "Can parse an IRC message" do - message = ':irc.example.org 005 nick NETWORK=Freenode PREFIX=(ov)@+ CHANTYPES=#&' - assert %IrcMessage{ - :server => "irc.example.org", - :cmd => @rpl_isupport, - :args => ["nick", "NETWORK=Freenode", "PREFIX=(ov)@+", "CHANTYPES=#&"] - } = Utils.parse(message) + test "Can parse a CTCP command" do + message = ':pschoenf NOTICE #testchan :\001ACTION mind explodes!!\001' + expected = %IrcMessage{ + nick: "pschoenf", + cmd: "ACTION", + ctcp: true, + args: ["#testchan", "mind explodes!!"] + } + result = Utils.parse(message) + assert expected == result end test "Parse INVITE message" do |