From 354da79bb2edaa1af7d909d2774e7d67eb4e198c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 23 Jan 2018 18:17:51 +0100 Subject: Add vendor --- .../fluffle/goirc/client/commands_test.go | 205 +++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 vendor/github.com/fluffle/goirc/client/commands_test.go (limited to 'vendor/github.com/fluffle/goirc/client/commands_test.go') diff --git a/vendor/github.com/fluffle/goirc/client/commands_test.go b/vendor/github.com/fluffle/goirc/client/commands_test.go new file mode 100644 index 0000000..15a8a05 --- /dev/null +++ b/vendor/github.com/fluffle/goirc/client/commands_test.go @@ -0,0 +1,205 @@ +package client + +import ( + "reflect" + "testing" +) + +func TestCutNewLines(t *testing.T) { + tests := []struct{ in, out string }{ + {"", ""}, + {"foo bar", "foo bar"}, + {"foo bar\rbaz", "foo bar"}, + {"foo bar\nbaz", "foo bar"}, + {"blorp\r\n\r\nbloop", "blorp"}, + {"\n\rblaap", ""}, + {"\r\n", ""}, + {"boo\\r\\n\\n\r", "boo\\r\\n\\n"}, + } + for i, test := range tests { + out := cutNewLines(test.in) + if test.out != out { + t.Errorf("test %d: expected %q, got %q", i, test.out, out) + } + } +} + +func TestIndexFragment(t *testing.T) { + tests := []struct { + in string + out int + }{ + {"", -1}, + {"foobarbaz", -1}, + {"foo bar baz", 8}, + {"foo. bar baz", 5}, + {"foo: bar baz", 5}, + {"foo; bar baz", 5}, + {"foo, bar baz", 5}, + {"foo! bar baz", 5}, + {"foo? bar baz", 5}, + {"foo\" bar baz", 5}, + {"foo' bar baz", 5}, + {"foo. bar. baz beep", 10}, + {"foo. bar, baz beep", 10}, + } + for i, test := range tests { + out := indexFragment(test.in) + if test.out != out { + t.Errorf("test %d: expected %d, got %d", i, test.out, out) + } + } +} + +func TestSplitMessage(t *testing.T) { + tests := []struct { + in string + sp int + out []string + }{ + {"", 0, []string{""}}, + {"foo", 0, []string{"foo"}}, + {"foo bar baz beep", 0, []string{"foo bar baz beep"}}, + {"foo bar baz beep", 15, []string{"foo bar baz ...", "beep"}}, + {"foo bar, baz beep", 15, []string{"foo bar, ...", "baz beep"}}, + {"0123456789012345", 0, []string{"0123456789012345"}}, + {"0123456789012345", 15, []string{"012345678901...", "2345"}}, + {"0123456789012345", 16, []string{"0123456789012345"}}, + } + for i, test := range tests { + out := splitMessage(test.in, test.sp) + if !reflect.DeepEqual(test.out, out) { + t.Errorf("test %d: expected %q, got %q", i, test.out, out) + } + } +} + +func TestClientCommands(t *testing.T) { + c, s := setUp(t) + defer s.tearDown() + + // Avoid having to type ridiculously long lines to test that + // messages longer than SplitLen are correctly sent to the server. + c.cfg.SplitLen = 23 + + c.Pass("password") + s.nc.Expect("PASS password") + + c.Nick("test") + s.nc.Expect("NICK test") + + c.User("test", "Testing IRC") + s.nc.Expect("USER test 12 * :Testing IRC") + + c.Raw("JUST a raw :line") + s.nc.Expect("JUST a raw :line") + + c.Join("#foo") + s.nc.Expect("JOIN #foo") + c.Join("#foo bar") + s.nc.Expect("JOIN #foo bar") + + c.Part("#foo") + s.nc.Expect("PART #foo") + c.Part("#foo", "Screw you guys...") + s.nc.Expect("PART #foo :Screw you guys...") + + c.Quit() + s.nc.Expect("QUIT :GoBye!") + c.Quit("I'm going home.") + s.nc.Expect("QUIT :I'm going home.") + + c.Whois("somebody") + s.nc.Expect("WHOIS somebody") + + c.Who("*@some.host.com") + s.nc.Expect("WHO *@some.host.com") + + c.Privmsg("#foo", "bar") + s.nc.Expect("PRIVMSG #foo :bar") + + c.Privmsgln("#foo", "bar") + s.nc.Expect("PRIVMSG #foo :bar") + + c.Privmsgf("#foo", "say %s", "foo") + s.nc.Expect("PRIVMSG #foo :say foo") + + c.Privmsgln("#foo", "bar", 1, 3.54, []int{24, 36}) + s.nc.Expect("PRIVMSG #foo :bar 1 3.54 [24 36]") + + c.Privmsgf("#foo", "user %d is at %s", 2, "home") + s.nc.Expect("PRIVMSG #foo :user 2 is at home") + + // 0123456789012345678901234567890123 + c.Privmsg("#foo", "foo bar baz blorp. woo woobly woo.") + s.nc.Expect("PRIVMSG #foo :foo bar baz blorp. ...") + s.nc.Expect("PRIVMSG #foo :woo woobly woo.") + + c.Privmsgln("#foo", "foo bar baz blorp. woo woobly woo.") + s.nc.Expect("PRIVMSG #foo :foo bar baz blorp. ...") + s.nc.Expect("PRIVMSG #foo :woo woobly woo.") + + c.Privmsgf("#foo", "%s %s", "foo bar baz blorp.", "woo woobly woo.") + s.nc.Expect("PRIVMSG #foo :foo bar baz blorp. ...") + s.nc.Expect("PRIVMSG #foo :woo woobly woo.") + + c.Privmsgln("#foo", "foo bar", 3.54, "blorp.", "woo", "woobly", []int{1, 2}) + s.nc.Expect("PRIVMSG #foo :foo bar 3.54 blorp. ...") + s.nc.Expect("PRIVMSG #foo :woo woobly [1 2]") + + c.Privmsgf("#foo", "%s %.2f %s %s %s %v", "foo bar", 3.54, "blorp.", "woo", "woobly", []int{1, 2}) + s.nc.Expect("PRIVMSG #foo :foo bar 3.54 blorp. ...") + s.nc.Expect("PRIVMSG #foo :woo woobly [1 2]") + + c.Notice("somebody", "something") + s.nc.Expect("NOTICE somebody :something") + + // 01234567890123456789012345678901234567 + c.Notice("somebody", "something much much longer that splits") + s.nc.Expect("NOTICE somebody :something much much ...") + s.nc.Expect("NOTICE somebody :longer that splits") + + c.Ctcp("somebody", "ping", "123456789") + s.nc.Expect("PRIVMSG somebody :\001PING 123456789\001") + + c.Ctcp("somebody", "ping", "123456789012345678901234567890") + s.nc.Expect("PRIVMSG somebody :\001PING 12345678901234567890...\001") + s.nc.Expect("PRIVMSG somebody :\001PING 1234567890\001") + + c.CtcpReply("somebody", "pong", "123456789012345678901234567890") + s.nc.Expect("NOTICE somebody :\001PONG 12345678901234567890...\001") + s.nc.Expect("NOTICE somebody :\001PONG 1234567890\001") + + c.CtcpReply("somebody", "pong", "123456789") + s.nc.Expect("NOTICE somebody :\001PONG 123456789\001") + + c.Version("somebody") + s.nc.Expect("PRIVMSG somebody :\001VERSION\001") + + c.Action("#foo", "pokes somebody") + s.nc.Expect("PRIVMSG #foo :\001ACTION pokes somebody\001") + + c.Topic("#foo") + s.nc.Expect("TOPIC #foo") + c.Topic("#foo", "la la la") + s.nc.Expect("TOPIC #foo :la la la") + + c.Mode("#foo") + s.nc.Expect("MODE #foo") + c.Mode("#foo", "+o somebody") + s.nc.Expect("MODE #foo +o somebody") + + c.Away() + s.nc.Expect("AWAY") + c.Away("Dave's not here, man.") + s.nc.Expect("AWAY :Dave's not here, man.") + + c.Invite("somebody", "#foo") + s.nc.Expect("INVITE somebody #foo") + + c.Oper("user", "pass") + s.nc.Expect("OPER user pass") + + c.VHost("user", "pass") + s.nc.Expect("VHOST user pass") +} -- cgit v1.2.3