Tell state tracker all the information about Me.

This commit is contained in:
Alex Bramley 2015-04-01 17:54:33 +01:00
parent 0cac69d2ee
commit b4870bc685
2 changed files with 8 additions and 5 deletions

View File

@ -187,9 +187,8 @@ func (conn *Conn) EnableStateTracking() {
if conn.st == nil { if conn.st == nil {
n := conn.cfg.Me n := conn.cfg.Me
conn.st = state.NewTracker(n.Nick) conn.st = state.NewTracker(n.Nick)
conn.st.NickInfo(n.Nick, n.Ident, n.Host, n.Name)
conn.cfg.Me = conn.st.Me() conn.cfg.Me = conn.st.Me()
conn.cfg.Me.Ident = n.Ident
conn.cfg.Me.Name = n.Name
conn.addSTHandlers() conn.addSTHandlers()
} }
} }

View File

@ -104,7 +104,8 @@ func TestClientAndStateTracking(t *testing.T) {
c := SimpleClient("test", "test", "Testing IRC") c := SimpleClient("test", "test", "Testing IRC")
// Assert some basic things about the initial state of the Conn struct // Assert some basic things about the initial state of the Conn struct
if me := c.cfg.Me; me.Nick != "test" || me.Ident != "test" || me := c.cfg.Me
if me.Nick != "test" || me.Ident != "test" ||
me.Name != "Testing IRC" || me.Host != "" { me.Name != "Testing IRC" || me.Host != "" {
t.Errorf("Conn.cfg.Me not correctly initialised.") t.Errorf("Conn.cfg.Me not correctly initialised.")
} }
@ -126,18 +127,21 @@ func TestClientAndStateTracking(t *testing.T) {
t.Errorf("Incorrect number of Removers (%d != %d) when adding state handlers.", t.Errorf("Incorrect number of Removers (%d != %d) when adding state handlers.",
len(c.stRemovers), len(stHandlers)) len(c.stRemovers), len(stHandlers))
} }
if neu := c.Me(); neu.Nick != me.Nick || neu.Ident != me.Ident ||
neu.Name != me.Name || neu.Host != me.Host {
t.Errorf("Enabling state tracking erased information about me!")
}
// We're expecting the untracked me to be replaced by a tracked one // We're expecting the untracked me to be replaced by a tracked one
if c.st == nil { if c.st == nil {
t.Errorf("State tracker not enabled correctly.") t.Errorf("State tracker not enabled correctly.")
} }
if me := c.cfg.Me; me.Nick != "test" || me.Ident != "test" || if me = c.cfg.Me; me.Nick != "test" || me.Ident != "test" ||
me.Name != "Testing IRC" || me.Host != "" { me.Name != "Testing IRC" || me.Host != "" {
t.Errorf("Enabling state tracking did not replace Me correctly.") t.Errorf("Enabling state tracking did not replace Me correctly.")
} }
// Now, shim in the mock state tracker and test disabling state tracking // Now, shim in the mock state tracker and test disabling state tracking
me := c.cfg.Me
c.st = st c.st = st
gomock.InOrder( gomock.InOrder(
st.EXPECT().Me().Return(me), st.EXPECT().Me().Return(me),