Diff

spec/scansion/muc_presence_probe.scs @ 11246:ab189e707705

MUC: Reject probes from non-occupants Also test for self-probes
author JC Brand <jc@opkode.com>
date Fri, 02 Oct 2020 16:12:47 +0200
parent 11245:43b43e7156b8
line wrap: on
line diff
--- a/spec/scansion/muc_presence_probe.scs	Sun Apr 19 21:49:45 2020 +0200
+++ b/spec/scansion/muc_presence_probe.scs	Fri Oct 02 16:12:47 2020 +0200
@@ -16,6 +16,8 @@
 
 Romeo connects
 
+# Romeo joins the MUC
+
 Romeo sends:
 	<presence to="room@conference.localhost/Romeo">
 		<x xmlns="http://jabber.org/protocol/muc"/>
@@ -52,10 +54,53 @@
 	<iq id="config1" from="room@conference.localhost" type="result">
 	</iq>
 
-# Juliet connects, and joins the room
+# Romeo probes himself
+
+Romeo sends:
+	<presence to="room@conference.localhost/Romeo" type="probe">
+		<x xmlns="http://jabber.org/protocol/muc"/>
+	</presence>
+
+Romeo receives:
+	<presence from='room@conference.localhost/Romeo'>
+		<x xmlns='http://jabber.org/protocol/muc#user'>
+			<item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/>
+		</x>
+	</presence>
+
+# Juliet tries to probe Romeo before joining the room
+
 Juliet connects
 
 Juliet sends:
+	<presence to="room@conference.localhost/Romeo" type="probe">
+		<x xmlns="http://jabber.org/protocol/muc"/>
+	</presence>
+
+Juliet receives:
+	<presence from="room@conference.localhost/Romeo" type="error">
+		<error type="cancel">
+			<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
+		</error>
+	</presence>
+
+# Juliet tries to probe Mercutio (who's not in the MUC) before joining the room
+
+Juliet sends:
+	<presence to="room@conference.localhost/Mercutio" type="probe">
+		<x xmlns="http://jabber.org/protocol/muc"/>
+	</presence>
+
+Juliet receives:
+	<presence from="room@conference.localhost/Mercutio" type="error">
+		<error type="cancel">
+			<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
+		</error>
+	</presence>
+
+# Juliet joins the room
+
+Juliet sends:
 	<presence to="room@conference.localhost/Juliet">
 		<x xmlns="http://jabber.org/protocol/muc"/>
 	</presence>
@@ -80,6 +125,24 @@
 		</x>
 	</presence>
 
+
+# Mercutio tries to probe himself in a MUC before joining
+
+Mercutio connects
+
+Mercutio sends:
+	<presence to="room@conference.localhost/Mercutio" type="probe">
+		<x xmlns="http://jabber.org/protocol/muc"/>
+	</presence>
+
+Mercutio receives:
+	<presence from="room@conference.localhost/Mercutio" type="error">
+		<error type="cancel">
+			<not-acceptable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
+		</error>
+	</presence>
+
+
 # Romeo makes Mercutio a member and registers his nickname
 
 Romeo sends: