repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 097c72aa65d9914d688eaece718648ca060e287a:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 097c72aa65d9914d688eaece718648ca060e287a
Author: Sebastian Köhler 
Date:   Sun Aug 5 23:38:47 2012 +0200

    Tests and documentation for xop

diff --git a/doc/Modes.txt b/doc/Modes.txt
index e47e2707244f9d30894c6b108357918468fa92af..
index ..d61bd2d02e4612f325140e369700dabe8924f959 100644
--- a/doc/Modes.txt
+++ b/doc/Modes.txt
@@ -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.


diff --git a/src/testsuite/mode-test.e b/src/testsuite/mode-test.e
index 260cd03c12898ae46c5e9d58b1f5f4fb4bcf74ff..
index ..44b6e5dfe5a3bb3cb05dddba1e08498e1cb58bdd 100644
--- a/src/testsuite/mode-test.e
+++ b/src/testsuite/mode-test.e
@@ -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 }

-----END OF PAGE-----