summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPaul Schoenfelder <paulschoenfelder@gmail.com>2014-07-31 00:24:54 -0500
committerPaul Schoenfelder <paulschoenfelder@gmail.com>2014-07-31 00:45:31 -0500
commitb23defab14824a00291097fbd51b09b8b7f335e5 (patch)
tree582181929081e2a5a4c5e61c985c010c27e9baab /test
parentVersion 0.7.1 (diff)
Fixes #9 - Implement support for sending/receiving CTCP ACTION command
Diffstat (limited to 'test')
-rw-r--r--test/commands_test.exs59
-rw-r--r--test/utils_test.exs17
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