From 354da79bb2edaa1af7d909d2774e7d67eb4e198c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 23 Jan 2018 18:17:51 +0100 Subject: Add vendor --- vendor/github.com/fluffle/goirc/state/nick_test.go | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 vendor/github.com/fluffle/goirc/state/nick_test.go (limited to 'vendor/github.com/fluffle/goirc/state/nick_test.go') diff --git a/vendor/github.com/fluffle/goirc/state/nick_test.go b/vendor/github.com/fluffle/goirc/state/nick_test.go new file mode 100644 index 0000000..1344400 --- /dev/null +++ b/vendor/github.com/fluffle/goirc/state/nick_test.go @@ -0,0 +1,88 @@ +package state + +import "testing" + +func compareNick(t *testing.T, nk *nick) { + n := nk.Nick() + if n.Nick != nk.nick || n.Ident != nk.ident || n.Host != nk.host || n.Name != nk.name || + !n.Modes.Equals(nk.modes) || len(n.Channels) != len(nk.chans) { + t.Errorf("Nick not duped correctly from internal state.") + } + for ch, cp := range nk.chans { + if other, ok := n.Channels[ch.name]; !ok || !cp.Equals(other) { + t.Errorf("Channel not duped correctly from internal state.") + } + } +} + +func TestNewNick(t *testing.T) { + nk := newNick("test1") + + if nk.nick != "test1" { + t.Errorf("Nick not created correctly by NewNick()") + } + if len(nk.chans) != 0 || len(nk.lookup) != 0 { + t.Errorf("Nick maps contain data after NewNick()") + } + compareNick(t, nk) +} + +func TestAddChannel(t *testing.T) { + nk := newNick("test1") + ch := newChannel("#test1") + cp := new(ChanPrivs) + + nk.addChannel(ch, cp) + + if len(nk.chans) != 1 || len(nk.lookup) != 1 { + t.Errorf("Channel lists not updated correctly for add.") + } + if c, ok := nk.chans[ch]; !ok || c != cp { + t.Errorf("Channel #test1 not properly stored in chans map.") + } + if c, ok := nk.lookup["#test1"]; !ok || c != ch { + t.Errorf("Channel #test1 not properly stored in lookup map.") + } + compareNick(t, nk) +} + +func TestDelChannel(t *testing.T) { + nk := newNick("test1") + ch := newChannel("#test1") + cp := new(ChanPrivs) + + nk.addChannel(ch, cp) + nk.delChannel(ch) + if len(nk.chans) != 0 || len(nk.lookup) != 0 { + t.Errorf("Channel lists not updated correctly for del.") + } + if c, ok := nk.chans[ch]; ok || c != nil { + t.Errorf("Channel #test1 not properly removed from chans map.") + } + if c, ok := nk.lookup["#test1"]; ok || c != nil { + t.Errorf("Channel #test1 not properly removed from lookup map.") + } + compareNick(t, nk) +} + +func TestNickParseModes(t *testing.T) { + nk := newNick("test1") + md := nk.modes + + // Modes should all be false for a new nick + if md.Invisible || md.Oper || md.WallOps || md.HiddenHost || md.SSL { + t.Errorf("Modes for new nick set to true.") + } + + // Set a couple of modes, for testing. + md.Invisible = true + md.HiddenHost = true + + // Parse a mode line that flips one true to false and two false to true + nk.parseModes("+z-x+w") + + compareNick(t, nk) + if !md.Invisible || md.Oper || !md.WallOps || md.HiddenHost || !md.SSL { + t.Errorf("Modes not flipped correctly by ParseModes.") + } +} -- cgit v1.2.3