10435
+ − 1 # MUC: Change nickname
+ − 2 # Make sure a role is not reset, see #1466
+ − 3
+ − 4 [Client] Romeo
+ − 5 jid: user@localhost
+ − 6 password: password
+ − 7
+ − 8 [Client] Juliet
+ − 9 jid: user2@localhost
+ − 10 password: password
+ − 11
+ − 12 -----
+ − 13
+ − 14 Romeo connects
+ − 15
+ − 16 Romeo sends:
+ − 17 <presence to="room@conference.localhost/Romeo">
+ − 18 <x xmlns="http://jabber.org/protocol/muc"/>
+ − 19 </presence>
+ − 20
+ − 21 Romeo receives:
+ − 22 <presence from='room@conference.localhost/Romeo'>
+ − 23 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 24 <status code='201'/>
+ − 25 <item jid="${Romeo's full JID}" affiliation='owner' role='moderator'/>
+ − 26 <status code='110'/>
+ − 27 </x>
+ − 28 </presence>
+ − 29
+ − 30 Romeo receives:
+ − 31 <message type='groupchat' from='room@conference.localhost'><subject/></message>
+ − 32
+ − 33 Romeo sends:
+ − 34 <iq id='config1' to='room@conference.localhost' type='set'>
+ − 35 <query xmlns='http://jabber.org/protocol/muc#owner'>
+ − 36 <x xmlns='jabber:x:data' type='submit'>
+ − 37 <field var='FORM_TYPE'>
+ − 38 <value>http://jabber.org/protocol/muc#roomconfig</value>
+ − 39 </field>
+ − 40 <field var='muc#roomconfig_moderatedroom'>
+ − 41 <value>1</value>
+ − 42 </field>
+ − 43 </x>
+ − 44 </query>
+ − 45 </iq>
+ − 46
+ − 47 Romeo receives:
+ − 48 <iq id="config1" from="room@conference.localhost" type="result"/>
+ − 49
+ − 50 Juliet connects
+ − 51
+ − 52 Juliet sends:
+ − 53 <presence to="room@conference.localhost/Juliet">
+ − 54 <x xmlns="http://jabber.org/protocol/muc"/>
+ − 55 </presence>
+ − 56
+ − 57 Juliet receives:
+ − 58 <presence from='room@conference.localhost/Romeo'>
+ − 59 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 60 <item role='moderator' xmlns='http://jabber.org/protocol/muc#user' affiliation='owner'/>
+ − 61 </x>
+ − 62 </presence>
+ − 63
+ − 64 Juliet receives:
+ − 65 <presence from='room@conference.localhost/Juliet'>
+ − 66 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 67 <item jid="${Juliet's full JID}" affiliation='none' role='visitor'/>
+ − 68 <status code='110'/>
+ − 69 </x>
+ − 70 </presence>
+ − 71
+ − 72
+ − 73 Juliet receives:
+ − 74 <message type='groupchat' from='room@conference.localhost'><subject/></message>
+ − 75
+ − 76 Romeo receives:
+ − 77 <presence from='room@conference.localhost/Juliet'>
+ − 78 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 79 <item affiliation="none" role="visitor" jid="${Juliet's full JID}"/>
+ − 80 </x>
+ − 81 </presence>
+ − 82
+ − 83 Romeo sends:
+ − 84 <iq id='config1' to='room@conference.localhost' type='set'>
+ − 85 <query xmlns='http://jabber.org/protocol/muc#owner'>
+ − 86 <x xmlns='jabber:x:data' type='submit'>
+ − 87 <field var='FORM_TYPE'>
+ − 88 <value>http://jabber.org/protocol/muc#roomconfig</value>
+ − 89 </field>
+ − 90 <field var='muc#roomconfig_moderatedroom'>
+ − 91 <value>0</value>
+ − 92 </field>
+ − 93 </x>
+ − 94 </query>
+ − 95 </iq>
+ − 96
+ − 97 Romeo receives:
+ − 98 <iq id="config1" from="room@conference.localhost" type="result"/>
+ − 99
+ − 100 Juliet receives:
+ − 101 <message type='groupchat' from='room@conference.localhost'>
+ − 102 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 103 <status xmlns='http://jabber.org/protocol/muc#user' code='104'/>
+ − 104 </x>
+ − 105 </message>
+ − 106
+ − 107 Juliet sends:
+ − 108 <presence to="room@conference.localhost/Juliet2">
+ − 109 </presence>
+ − 110
+ − 111 Juliet receives:
+ − 112 <presence from='room@conference.localhost/Juliet' type='unavailable'>
+ − 113 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 114 <status code='303'/>
+ − 115 <item nick='Juliet2' jid="${Juliet's full JID}" affiliation='none' role='visitor'/>
+ − 116 <status code='110'/>
+ − 117 </x>
+ − 118 </presence>
+ − 119
+ − 120 Juliet receives:
+ − 121 <presence from='room@conference.localhost/Juliet2'>
+ − 122 <x xmlns='http://jabber.org/protocol/muc#user'>
+ − 123 <item jid="${Juliet's full JID}" affiliation='none' role='visitor'/>
+ − 124 <status code='110'/>
+ − 125 </x>
+ − 126 </presence>
+ − 127