spec/scansion/issue978-multi.scs
author Kim Alvefur <zash@zash.se>
Sat, 23 Mar 2024 20:48:19 +0100
changeset 13465 c673ff1075bd
parent 9294 329a670ae975
permissions -rw-r--r--
mod_posix: Move everything to util.startup This allows greater control over the order of events. Notably, the internal ordering between daemonization, initialization of libunbound and setup of signal handling is sensitive. libunbound starts a separate thread for processing DNS requests. If this thread is started before signal handling has been set up, it will not inherit the signal handlers and instead behave as it would have before signal handlers were set up, i.e. cause the whole process to immediately exit. libunbound is usually initialized on the first DNS request, usually triggered by an outgoing s2s connection attempt. If daemonization happens before signals have been set up, signals may not be processed at all.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9294
329a670ae975 spec/scansion: Ensure all scripts have sensible titles
Matthew Wild <mwild1@gmail.com>
parents: 9293
diff changeset
     1
# Issue 978: MUC does not carry error into occupant leave status (multiple clients)
329a670ae975 spec/scansion: Ensure all scripts have sensible titles
Matthew Wild <mwild1@gmail.com>
parents: 9293
diff changeset
     2
9269
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     3
[Client] Romeo
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
	jid: user@localhost
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
	password: password
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     6
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     7
[Client] Juliet
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     8
	jid: user2@localhost
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
	password: password
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    11
[Client] Juliet's phone
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12
	jid: user2@localhost
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    13
	password: password
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    14
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    15
-----
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    16
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    17
Romeo connects
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    18
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    19
Romeo sends:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    20
	<presence to="room@conference.localhost/Romeo">
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    21
		<x xmlns="http://jabber.org/protocol/muc"/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    22
	</presence>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    23
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    24
Romeo receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    25
	<presence from='room@conference.localhost/Romeo'>
9293
decdaaf78f32 spec/scansion: Multiple fixes to make all tests pass in latest (c35386e4b456) scansion
Matthew Wild <mwild1@gmail.com>
parents: 9269
diff changeset
    26
		<x xmlns='http://jabber.org/protocol/muc#user' scansion:strict='false'>
9269
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    27
			<status code='201'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    28
			<item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    29
			<status code='110'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    30
		</x>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    31
	</presence>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    32
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    33
Romeo receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    34
	<message type='groupchat' from='room@conference.localhost'><subject/></message>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    35
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    36
# Submit config form
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    37
Romeo sends:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    38
	<iq id='config1' to='room@conference.localhost' type='set'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    39
		<query xmlns='http://jabber.org/protocol/muc#owner'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    40
			<x xmlns='jabber:x:data' type='submit'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    41
				<field var='FORM_TYPE'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    42
					<value>http://jabber.org/protocol/muc#roomconfig</value>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    43
				</field>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    44
			</x>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    45
		</query>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    46
	</iq>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    47
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    48
Romeo receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    49
	<iq id="config1" from="room@conference.localhost" type="result">
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    50
	</iq>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    51
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    52
# Juliet connects, and joins the room
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    53
Juliet connects
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    54
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    55
Juliet sends:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    56
	<presence to="room@conference.localhost/Juliet">
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    57
		<x xmlns="http://jabber.org/protocol/muc"/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    58
	</presence>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    59
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    60
Juliet receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    61
	<presence from="room@conference.localhost/Romeo" />
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    62
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    63
Juliet receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    64
	<presence from="room@conference.localhost/Juliet" />
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    65
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    66
Juliet receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    67
	<message type='groupchat' from='room@conference.localhost'><subject/></message>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    68
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    69
Romeo receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    70
	<presence from="room@conference.localhost/Juliet" />
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    71
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    72
# Juliet's phone connects, and joins the room
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    73
Juliet's phone connects
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    74
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    75
Juliet's phone sends:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    76
	<presence to="room@conference.localhost/Juliet">
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    77
		<x xmlns="http://jabber.org/protocol/muc"/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    78
	</presence>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    79
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    80
Juliet's phone receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    81
	<presence from="room@conference.localhost/Romeo" />
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    82
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    83
Juliet's phone receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    84
	<presence from="room@conference.localhost/Juliet" />
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    85
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    86
Juliet's phone receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    87
	<message type='groupchat' from='room@conference.localhost'><subject/></message>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    88
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    89
Romeo receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    90
	<presence from='room@conference.localhost/Juliet'>
9293
decdaaf78f32 spec/scansion: Multiple fixes to make all tests pass in latest (c35386e4b456) scansion
Matthew Wild <mwild1@gmail.com>
parents: 9269
diff changeset
    91
		<x xmlns='http://jabber.org/protocol/muc#user' scansion:strict='false'>
9269
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    92
			<item affiliation='none' jid="${Juliet's phone's full JID}" role='participant'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    93
			<item affiliation='none' jid="${Juliet's full JID}" role='participant'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    94
		</x>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    95
	</presence>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    96
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    97
# Juliet leaves with an error
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    98
Juliet sends:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    99
	<presence type='error' to='room@conference.localhost'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   100
		<error type='cancel'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   101
			<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   102
			<text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Test error</text>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   103
		</error>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   104
	</presence>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   105
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   106
Romeo receives:
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   107
	<presence from='room@conference.localhost/Juliet'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   108
		<x xmlns='http://jabber.org/protocol/muc#user'>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   109
			<item jid="${Juliet's phone's full JID}" affiliation='none' role='participant'/>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   110
		</x>
c5267f5fd6e6 spec/scansion: Add scansion scripts used for testing
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
   111
	</presence>