From f09ec7d9aa4133e2ef3d22d7df30b81aefc81431 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Sun, 30 Aug 2020 16:22:25 -0400 Subject: [PATCH] add more nickname tests --- irctest/server_tests/test_regressions.py | 45 ++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/irctest/server_tests/test_regressions.py b/irctest/server_tests/test_regressions.py index 4c3626c..fda7f23 100644 --- a/irctest/server_tests/test_regressions.py +++ b/irctest/server_tests/test_regressions.py @@ -96,6 +96,14 @@ class RegressionsTestCase(cases.BaseServerTestCase): self.assertNotIn(ERR_ERRONEUSNICKNAME, replies) self.assertIn(RPL_WELCOME, replies) + @cases.SpecificationSelector.requiredBySpecification('RFC1459') + def testEmptyNick(self): + self.addClient(1) + self.sendLine(1, 'NICK :') + self.sendLine(1, 'USER u s e r') + replies = set(msg.command for msg in self.getMessages(1)) + self.assertNotIn(RPL_WELCOME, replies) + @cases.SpecificationSelector.requiredBySpecification('RFC1459') def testNickRelease(self): # regression test for oragono #1252 @@ -112,3 +120,40 @@ class RegressionsTestCase(cases.BaseServerTestCase): replies = set(msg.command for msg in self.getMessages(2)) self.assertNotIn(ERR_NICKNAMEINUSE, replies) self.assertIn(RPL_WELCOME, replies) + + @cases.SpecificationSelector.requiredBySpecification('RFC1459') + def testNickReleaseQuit(self): + self.connectClient('alice') + self.getMessages(1) + self.sendLine(1, 'QUIT') + self.assertDisconnected(1) + + self.addClient(2) + self.sendLine(2, 'NICK alice') + self.sendLine(2, 'USER u s e r') + replies = set(msg.command for msg in self.getMessages(2)) + self.assertNotIn(ERR_NICKNAMEINUSE, replies) + self.assertIn(RPL_WELCOME, replies) + self.sendLine(2, 'QUIT') + self.assertDisconnected(2) + + self.addClient(3) + self.sendLine(3, 'NICK ALICE') + self.sendLine(3, 'USER u s e r') + replies = set(msg.command for msg in self.getMessages(3)) + self.assertNotIn(ERR_NICKNAMEINUSE, replies) + self.assertIn(RPL_WELCOME, replies) + + @cases.SpecificationSelector.requiredBySpecification('RFC1459') + def testNickReleaseUnregistered(self): + self.addClient(1) + self.sendLine(1, 'NICK alice') + self.sendLine(1, 'QUIT') + self.assertDisconnected(1) + + self.addClient(2) + self.sendLine(2, 'NICK alice') + self.sendLine(2, 'USER u s e r') + replies = set(msg.command for msg in self.getMessages(2)) + self.assertNotIn(ERR_NICKNAMEINUSE, replies) + self.assertIn(RPL_WELCOME, replies)