about summary refs log tree commit diff
path: root/src/testsuite/who-test.e
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2011-12-30 14:52:48 +0100
committerAlexander Barton <alex@barton.de>2011-12-30 14:57:12 +0100
commit1a5ed654b43b7d4b14636fddd4ee79d3ebe749fa (patch)
tree4077b5f7770d2c9483a805835dc53b6078f5118b /src/testsuite/who-test.e
parent9cbb8f3bb8f7c39e133c6910f40ec2b03ccd8847 (diff)
downloadngircd-1a5ed654b43b7d4b14636fddd4ee79d3ebe749fa.tar.gz
ngircd-1a5ed654b43b7d4b14636fddd4ee79d3ebe749fa.zip
Fixed handling of WHO commands
This fixes two bugs:
 - "WHO <nick>" returned nothing at all if the user was "+i"
   (reported by Cahata, thanks).
 - "WHO <nick|nickmask>" returned channel names instead of "*"
   when the user was member of a (visible) channel.

Clean up code and add documentation as well.
Diffstat (limited to 'src/testsuite/who-test.e')
-rw-r--r--src/testsuite/who-test.e66
1 files changed, 48 insertions, 18 deletions
diff --git a/src/testsuite/who-test.e b/src/testsuite/who-test.e
index 54c19922..0a71e3f7 100644
--- a/src/testsuite/who-test.e
+++ b/src/testsuite/who-test.e
@@ -14,19 +14,13 @@ expect {
 send "who\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick \* * ngircd.test.server nick H :0 Real Name"
-}
-
-send "join #channel\r"
-expect {
-	timeout { exit 1 }
-	"@* JOIN :#channel"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick H :0 Real Name"
 }
 
 send "who 0\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #channel * ngircd.test.server nick H@ :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick H :0 Real Name"
 }
 
 send "away :testing\r"
@@ -38,7 +32,19 @@ expect {
 send "who *\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #channel * ngircd.test.server nick G@ :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick G :0 Real Name"
+}
+
+send "join #channel\r"
+expect {
+	timeout { exit 1 }
+	"@* JOIN :#channel"
+}
+
+send "who #channel\r"
+expect {
+	timeout { exit 1 }
+	":ngircd.test.server 352 nick #channel * * ngircd.test.server nick G@ :0 Real Name"
 }
 
 send "mode #channel +v nick\r"
@@ -47,10 +53,16 @@ expect {
 	"@* MODE #channel +v nick\r"
 }
 
+send "who #channel\r"
+expect {
+	timeout { exit 1 }
+	":ngircd.test.server 352 nick #channel * * ngircd.test.server nick G@ :0 Real Name"
+}
+
 send "who localhos*\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #channel * ngircd.test.server nick G@ :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick G :0 Real Name"
 }
 
 send "mode #channel -o nick\r"
@@ -59,10 +71,16 @@ expect {
 	"@* MODE #channel -o nick\r"
 }
 
+send "who #channel\r"
+expect {
+	timeout { exit 1 }
+	":ngircd.test.server 352 nick #channel * * ngircd.test.server nick G+ :0 Real Name"
+}
+
 send "who ngircd.test.server\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #channel * ngircd.test.server nick G+ :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick G :0 Real Name"
 }
 
 send "part #channel\r"
@@ -74,7 +92,7 @@ expect {
 send "who Real?Name\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick \* * ngircd.test.server nick G :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick G :0 Real Name"
 }
 
 send "oper TestOp 123\r"
@@ -90,7 +108,7 @@ expect {
 send "who 0 o\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick \* * ngircd.test.server nick G* :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick G* :0 Real Name"
 }
 
 send "away\r"
@@ -102,7 +120,7 @@ expect {
 send "who ??cal*ho*\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick \* * ngircd.test.server nick H* :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick H* :0 Real Name"
 }
 
 send "join #opers\r"
@@ -114,7 +132,13 @@ expect {
 send "who #opers\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #opers * ngircd.test.server nick H*@ :0 Real Name"
+	":ngircd.test.server 352 nick #opers * * ngircd.test.server nick H*@ :0 Real Name"
+}
+
+send "who Re*me\r"
+expect {
+	timeout { exit 1 }
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick H* :0 Real Name"
 }
 
 send "mode #opers -o nick\r"
@@ -123,10 +147,16 @@ expect {
 	"@* MODE #opers -o nick\r"
 }
 
+send "who #opers\r"
+expect {
+	timeout { exit 1 }
+	":ngircd.test.server 352 nick #opers * * ngircd.test.server nick H* :0 Real Name"
+}
+
 send "who *.server\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #opers * ngircd.test.server nick H* :0 Real Name"
+	":ngircd.test.server 352 nick \* * * ngircd.test.server nick H* :0 Real Name"
 }
 
 send "mode #opers +v nick\r"
@@ -135,10 +165,10 @@ expect {
 	"@* MODE #opers +v nick\r"
 }
 
-send "who Real*me\r"
+send "who #opers\r"
 expect {
 	timeout { exit 1 }
-	":ngircd.test.server 352 nick #opers * ngircd.test.server nick H*+ :0 Real Name"
+	":ngircd.test.server 352 nick #opers * * ngircd.test.server nick H*+ :0 Real Name"
 }
 
 send "mode #opers +s\r"