File

spec/scansion/issue505.scs @ 13491:cf367ab36fcc

util.prosodyctl: Use notify socket to wait for Prosody to be ready Previously, prosodyctl only waits for the pidfile to appear, which does not necessarily mean that Prosody is fully ready to receive traffic. By waiting until Prosody says it's ready via the systemd notify socket we know for sure that Prosody is really ready. Notably this should ensure that when running `make integration-test` Prosody is really ready when Scansion starts running tests. Not sure if this timeout handling is optimal.
author Kim Alvefur <zash@zash.se>
date Sun, 19 May 2024 13:06:55 +0200
parent 9291:329a670ae975
line wrap: on
line source

# Issue 505: mod_muc doesn’t forward part statuses

[Client] Romeo
	jid: user@localhost
	password: password

[Client] Juliet
	jid: user2@localhost
	password: password

-----

Romeo connects

Romeo sends:
	<presence to="room@conference.localhost/Romeo">
		<x xmlns="http://jabber.org/protocol/muc"/>
	</presence>

Romeo receives:
	<presence from='room@conference.localhost/Romeo'>
		<x xmlns='http://jabber.org/protocol/muc#user'>
			<status code='201'/>
			<item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/>
			<status code='110'/>
		</x>
	</presence>

Romeo receives:
	<message type='groupchat' from='room@conference.localhost'><subject/></message>

# Submit config form
Romeo sends:
	<iq id='config1' to='room@conference.localhost' type='set'>
		<query xmlns='http://jabber.org/protocol/muc#owner'>
			<x xmlns='jabber:x:data' type='submit'>
				<field var='FORM_TYPE'>
					<value>http://jabber.org/protocol/muc#roomconfig</value>
				</field>
			</x>
		</query>
	</iq>

Romeo receives:
	<iq id="config1" from="room@conference.localhost" type="result">
	</iq>

# Juliet connects, and joins the room
Juliet connects

Juliet sends:
	<presence to="room@conference.localhost/Juliet">
		<x xmlns="http://jabber.org/protocol/muc"/>
	</presence>

Juliet receives:
	<presence from="room@conference.localhost/Romeo" />

Juliet receives:
	<presence from="room@conference.localhost/Juliet" />

Juliet receives:
	<message type='groupchat' from='room@conference.localhost'><subject/></message>

Romeo receives:
	<presence from="room@conference.localhost/Juliet" />

Juliet sends:
	<presence type='unavailable' to='room@conference.localhost'>
		<status>Farewell</status>
	</presence>

Romeo receives:
	<presence type='unavailable' from='room@conference.localhost/Juliet'>
		<status>Farewell</status>
		<x xmlns='http://jabber.org/protocol/muc#user'>
			<item jid="${Juliet's full JID}" affiliation='none' role='none'/>
		</x>
	</presence>