<test-history test='AdminAdHoc sess-man_4_3 (c2s)'>
<OUTPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-domain' version='1.0'/>
</OUTPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<stream:stream xmlns="jabber:client" id="58ce5c36-6441-4a78-8902-d9e3eb4ad9fb" xmlns:stream="http://etherx.jabber.org/streams" from="test-domain" xml:lang="en" version="1.0"/>
</INPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<stream:features><ver xmlns="urn:xmpp:features:rosterver"/><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms><register xmlns="http://jabber.org/features/iq-register"/><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/></stream:features>
</INPUT>
<OUTPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>AGRvbWFpbi1hZG1pbgBhbGwteG1wcC10ZXN0LXBhc3N3b3Jk</auth>
</OUTPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
</INPUT>
<OUTPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-domain' version='1.0'>
</OUTPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<stream:stream xmlns="jabber:client" id="58ce5c36-6441-4a78-8902-d9e3eb4ad9fb" xmlns:stream="http://etherx.jabber.org/streams" from="test-domain" xml:lang="en" version="1.0"/>
</INPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<stream:features><ver xmlns="urn:xmpp:features:rosterver"/><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/><register xmlns="http://jabber.org/features/iq-register"/><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/></stream:features>
</INPUT>
<OUTPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<iq type='set' id='bind1'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>def-user-resource</resource></bind></iq>
</OUTPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<iq xmlns="jabber:client" id="bind1" type="result" to="domain-admin@test-domain/def-user-resource"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>domain-admin@test-domain/def-user-resource</jid></bind></iq>
</INPUT>
<OUTPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<iq id="user-roster-management-ext" from="domain-admin@test-domain/def-user-resource" type="set" to="sess-man@test-domain">
<command xmlns="http://jabber.org/protocol/commands" node="user-roster-management-ext"/>
</iq>
</OUTPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<iq id="user-roster-management-ext" from="sess-man@test-domain" type="result" to="domain-admin@test-domain/def-user-resource"><command xmlns="http://jabber.org/protocol/commands" node="user-roster-management-ext" status="executing"><x xmlns="jabber:x:data" type="form"><field label="Roster owner JID" type="jid-single" var="roster-owner-jid"><value/></field><field label="Roster owner name" type="text-single" var="roster-owner-name"><value/></field><field label="Comma separated list of owner groups" type="text-single" var="roster-owner-groups"><value/></field><field label="Roster item JID" type="jid-single" var="roster-item-jid"><value/></field><field label="Roster item name" type="text-single" var="roster-item-name"><value/></field><field label="Comma separated list of item groups" type="text-single" var="roster-item-groups"><value/></field><field label="Roster item Subscription" type="list-single" var="roster-item-subscr"><value>both</value><option label="both"><value>both</value></option><option label="from"><value>from</value></option><option label="to"><value>to</value></option><option label="none"><value>none</value></option></field><field label="Action" type="list-single" var="roster-action"><value>update</value><option label="Add/Update item"><value>update</value></option><option label="Remove item"><value>remove</value></option><option label="Add/Update both rosters"><value>update-ext</value></option><option label="Remove from both rosters"><value>remove-ext</value></option></field><field type="hidden" var="notify-cluster"><value>true</value></field></x><actions execute="complete"><complete/></actions></command></iq>
</INPUT>
<OUTPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<iq id="user-roster-management-ext" from="domain-admin@test-domain/def-user-resource" type="set" to="sess-man@test-domain">
<command xmlns="http://jabber.org/protocol/commands" node="user-roster-management-ext">
<x xmlns="jabber:x:data" type="submit">
<field type="jid-single" var="roster-owner-jid">
<value>all-xmpp-test@test-d</value>
</field>
<field type="text-single" var="roster-owner-name">
<value>admin</value>
</field>
<field type="text-single" var="roster-owner-groups">
<value>group-admin</value>
</field>
<field type="jid-single" var="roster-item-jid">
<value>admin@test-d</value>
</field>
<field type="text-single" var="roster-item-name">
<value>test-d</value>
</field>
<field type="text-single" var="roster-item-groups">
<value>user-group</value>
</field>
<field type="list-single" var="roster-item-subscr">
<value>both</value>
</field>
<field type="list-single" var="roster-action">
<value>update</value>
</field>
</x>
</command>
</iq>
</OUTPUT>
<INPUT test='AdminAdHoc sess-man_4_3 (c2s)'>
<iq id="user-roster-management-ext" from="sess-man@test-domain" type="result" to="domain-admin@test-domain/def-user-resource"><command xmlns="http://jabber.org/protocol/commands" node="user-roster-management-ext" status="completed"><x xmlns="jabber:x:data" type="result"><field type="fixed" var="Error"><value>You do not have enough permissions to modify roster of all-xmpp-test@test-d</value></field></x></command></iq>
</INPUT>

</test-history>