Browse Source

Unit test for issue 1674

tags/0.6.3m1rc1
Chris Smith 15 years ago
parent
commit
ee1e00a689

+ 8
- 6
test/com/dmdirc/harness/parser/TestParser.java View File

@@ -30,6 +30,8 @@ import java.util.Timer;
30 30
 public class TestParser extends IRCParser {
31 31
 
32 32
     public final List<String> sentLines = new ArrayList<String>();
33
+
34
+    public String nick = "nick";
33 35
     
34 36
     public String network = null;
35 37
 
@@ -59,14 +61,14 @@ public class TestParser extends IRCParser {
59 61
     public void injectConnectionStrings() {
60 62
         final String[] lines = new String[]{
61 63
             "NOTICE AUTH :Blah, blah",
62
-            ":server 001 nick :Welcome to the Testing IRC Network, nick",
63
-            ":server 002 nick :Your host is server.net, running version foo",
64
-            ":server 003 nick :This server was created Sun Jan 6 2008 at 17:34:54 CET",
65
-            ":server 004 nick server.net foo dioswkgxRXInP bRIeiklmnopstvrDcCNuMT bklov",
66
-            ":server 005 nick WHOX WALLCHOPS WALLVOICES USERIP PREFIX=(ov)@+ " +
64
+            ":server 001 " + nick + " :Welcome to the Testing IRC Network, " + nick,
65
+            ":server 002 " + nick + " :Your host is server.net, running version foo",
66
+            ":server 003 " + nick + " :This server was created Sun Jan 6 2008 at 17:34:54 CET",
67
+            ":server 004 " + nick + " server.net foo dioswkgxRXInP bRIeiklmnopstvrDcCNuMT bklov",
68
+            ":server 005 " + nick + " WHOX WALLCHOPS WALLVOICES USERIP PREFIX=(ov)@+ " +
67 69
                     (network == null ? "" : "NETWORK=" + network + " ") +
68 70
                     ":are supported by this server",
69
-            ":server 005 nick MAXNICKLEN=15 TOPICLEN=250 AWAYLEN=160 MODES=6 " +
71
+            ":server 005 " + nick + " MAXNICKLEN=15 TOPICLEN=250 AWAYLEN=160 MODES=6 " +
70 72
                     "CHANMODES=bIeR,k,l,imnpstrDducCNMT :are supported by this server",
71 73
         };
72 74
         

+ 20
- 7
test/com/dmdirc/parser/irc/IRCParserTest.java View File

@@ -35,6 +35,7 @@ import com.dmdirc.parser.irc.callbacks.CallbackNotFoundException;
35 35
 import com.dmdirc.parser.irc.callbacks.interfaces.IAwayState;
36 36
 import com.dmdirc.parser.irc.callbacks.interfaces.IChannelKick;
37 37
 
38
+import com.dmdirc.parser.irc.callbacks.interfaces.IErrorInfo;
38 39
 import java.util.Arrays;
39 40
 import java.util.List;
40 41
 
@@ -47,23 +48,35 @@ import static org.mockito.Mockito.*;
47 48
 public class IRCParserTest {
48 49
 
49 50
     @Test
50
-    public void testIssue042() {
51
+    public void testIssue42() {
52
+        // Invalid callback names are silently ignored instead of raising exceptions
53
+        
51 54
         boolean res = false;
52 55
 
53 56
         try {
54 57
             final IRCParser myParser = new IRCParser();
55
-            myParser.getCallbackManager().addCallback("non-existant",new IAwayState() {
56
-                public void onAwayState(IRCParser tParser, boolean currentState,
57
-                        String reason) {
58
-                    throw new UnsupportedOperationException("Not supported yet.");
59
-                }
60
-            });
58
+            myParser.getCallbackManager().addCallback("non-existant", mock(IAwayState.class));
61 59
         } catch (CallbackNotFoundException ex) {
62 60
             res = true;
63 61
         }
64 62
 
65 63
         assertTrue("addCallback() should throw exception for non-existant callbacks", res);
66 64
     }
65
+
66
+    @Test
67
+    public void testIssue1674() {
68
+        // parser nick change error with dual 001
69
+        final IErrorInfo error = mock(IErrorInfo.class);
70
+
71
+        final TestParser myParser = new TestParser();
72
+        myParser.getCallbackManager().addCallback("onErrorInfo", error);
73
+        myParser.injectConnectionStrings();
74
+        myParser.nick = "nick2";
75
+        myParser.injectConnectionStrings();
76
+        myParser.injectLine(":nick2!ident@host NICK :nick");
77
+
78
+        verify(error, never()).onErrorInfo((IRCParser) anyObject(), (ParserError) anyObject());
79
+    }
67 80
     
68 81
     @Test
69 82
     public void testProxyPortWithBindIP() {

Loading…
Cancel
Save