Tests and documentation for xop
authorSebastian Köhler <sebkoehler@whoami.org.uk>
Sun, 5 Aug 2012 21:38:47 +0000 (23:38 +0200)
committerSebastian Köhler <sebkoehler@whoami.org.uk>
Mon, 6 Aug 2012 02:42:20 +0000 (04:42 +0200)
doc/Modes.txt
src/testsuite/mode-test.e

index e47e2707244f9d30894c6b108357918468fa92af..d61bd2d02e4612f325140e369700dabe8924f959 100644 (file)
@@ -66,7 +66,12 @@ channel of which he is a member.
 
   mode since   description
 
+  q    20?     User is channel owner can only be set by a service, other
+               owner and irc op. Can promote other users to q, a, o, h, v.
+  a    20?     User is channel admin and can promote other users to v, h, o
   o    0.2.0   User is channel operator and can op/kick/... other members.
+  h    20?     User is half op and can set channel modes imntvIbek and kick
+               voiced and normal users.
   v    0.2.0   User is "voiced" and can speak even if channel is moderated.
 
 
index 260cd03c12898ae46c5e9d58b1f5f4fb4bcf74ff..44b6e5dfe5a3bb3cb05dddba1e08498e1cb58bdd 100644 (file)
@@ -31,6 +31,46 @@ expect {
        "@* MODE nick :-i"
 }
 
+send "join #usermode\r"
+expect {
+       timeout { exit 1 }
+       "@* JOIN :#usermode"
+}
+expect {
+       timeout { exit 1 }
+       "366"
+}
+
+send "mode #usermode +v nick\r"
+expect {
+       timeout { exit 1 }
+       "@* MODE #usermode +v nick\r"
+}
+
+send "mode #usermode +h nick\r"
+expect {
+       timeout { exit 1 }
+       "@* MODE #usermode +h nick\r"
+}
+
+send "mode #usermode +a nick\r"
+expect {
+       timeout { exit 1 }
+       "482 nick"
+}
+
+send "mode #usermode +q nick\r"
+expect {
+       timeout { exit 1 }
+       "482 nick"
+}
+
+send "mode #usermode -vho nick nick nick\r"
+expect {
+       timeout { exit 1 }
+       "@* MODE #usermode -vho nick nick nick"
+}
+
 send "oper TestOp 123\r"
 expect {
        timeout { exit 1 }
@@ -47,6 +87,34 @@ expect {
        "221 nick +o"
 }
 
+send "mode #usermode +a nick\r"
+expect {
+       timeout { exit 1 }
+       "@* MODE #usermode +a nick"
+}
+
+send "mode #usermode +q nick\r"
+expect {
+       timeout { exit 1 }
+       "@* MODE #usermode +q nick"
+}
+
+send "names #usermode\r"
+expect {
+       timeout { exit 1 }
+       "353 nick = #usermode :~nick"
+}
+expect {
+       timeout { exit 1 }
+       "366 nick #usermode"
+}
+
+send "part #usermode\r"
+expect {
+       timeout { exit 1 }
+       "@* PART #usermode"
+}
+
 send "join #channel\r"
 expect {
        timeout { exit 1 }