OUTPUT: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-d' version='1.0'>
INPUT: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xml:lang="en" version="1.0" from="test-d" xmlns="jabber:client" id="f9bfec2e-b847-43ef-b0c2-b8a155292627"/>
INPUT: <stream:features><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features>
OUTPUT: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>
INPUT: <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVhbG09InRlc3QtZCIsbm9uY2U9IjZKVWptT0FvNjdwZDNwem1tNUd4eEg4VWhvSGwxZzFwanR6eFMyNVkiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
OUTPUT: <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>Y2hhcnNldD11dGYtOCx1c2VybmFtZT0iYWRtaW4iLHJlYWxtPSJ0ZXN0LWQiLG5vbmNlPSI2SlVqbU9BbzY3cGQzcHptbTVHeHhIOFVob0hsMWcxcGp0enhTMjVZIixuYz0wMDAwMDAwMSxjbm9uY2U9Im1nSnRDZTVIdnJWT1dNSElUOGdLWnhBZjN2QnpwU2dZNkZKOVZ3RXgiLGRpZ2VzdC11cmk9InhtcHAvdGVzdC1kIixtYXhidWY9NjU1MzYscmVzcG9uc2U9ZDdkMWEyYmFiOWZjNWQxNTJmODFkN2VlZDE5Zjg0N2QscW9wPWF1dGgsYXV0aHppZD0iYWRtaW4i</response>
INPUT: <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD01ZmJkNTQwZDQ1YTA5NTc1ODQwODY5Y2U1NmYyYTAxNQ==</success>
OUTPUT: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-d' version='1.0'>
INPUT: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xml:lang="en" version="1.0" from="test-d" xmlns="jabber:client" id="f9bfec2e-b847-43ef-b0c2-b8a155292627"/>
INPUT: <stream:features><register xmlns="http://jabber.org/features/iq-register"/><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features>
OUTPUT: <iq type='set' id='bind1'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>def-user-resource</resource></bind></iq>
INPUT: <iq type="result" to="admin@test-d/def-user-resource" id="bind1"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>admin@test-d/def-user-resource</jid></bind></iq>
OUTPUT: <iq type="get" id="roster_3333"><query xmlns="jabber:iq:roster"/></iq>
INPUT: <iq type="result" to="admin@test-d/def-user-resource" id="roster_3333"><query xmlns="jabber:iq:roster"><item subscription="both" jid="all-xmpp-test@test-d" name="all-xmpp-test"/></query></iq>
OUTPUT: <iq type="set" id="roster-remove-1234"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="all-xmpp-test@test-d"/></query></iq>
INPUT: <iq type="set" to="admin@test-d/def-user-resource" id="rsttig1"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="all-xmpp-test@test-d"/></query></iq>
INPUT: <iq type="result" to="admin@test-d/def-user-resource" id="roster-remove-1234"/>
INPUT: <iq type="set" to="admin@test-d/def-user-resource" id="rsttig1"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="all-xmpp-test@test-d"/></query></iq>
INPUT: <iq type="set" to="admin@test-d/def-user-resource" id="rsttig1"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="all-xmpp-test@test-d"/></query></iq>
OUTPUT: <iq type="get" id="roster_7777"><query xmlns="jabber:iq:roster"/></iq>
INPUT: <iq type="result" to="admin@test-d/def-user-resource" id="roster_7777"><query xmlns="jabber:iq:roster"/></iq>
OUTPUT: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-d' version='1.0'>
INPUT: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xml:lang="en" version="1.0" from="test-d" xmlns="jabber:client" id="ea8dd188-9bb7-4eab-a2d3-dcc5cb1ca88d"/>
INPUT: <stream:features><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features>
OUTPUT: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>
INPUT: <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVhbG09InRlc3QtZCIsbm9uY2U9Ijcya1lVR3pSV0pOaGFaWmdjRzEwUEViRlEvNXJSeTRZMEkxMnE3Mi8iLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
OUTPUT: <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>Y2hhcnNldD11dGYtOCx1c2VybmFtZT0iYWxsLXhtcHAtdGVzdCIscmVhbG09InRlc3QtZCIsbm9uY2U9Ijcya1lVR3pSV0pOaGFaWmdjRzEwUEViRlEvNXJSeTRZMEkxMnE3Mi8iLG5jPTAwMDAwMDAxLGNub25jZT0iTnZMK0xNa2F3ejhXVmpYQkIxeW84Nm1HZk5tSFRmYXJqQTJNTWlrbCIsZGlnZXN0LXVyaT0ieG1wcC90ZXN0LWQiLG1heGJ1Zj02NTUzNixyZXNwb25zZT1lOTg0YmJhYTg1NGRjYWU3NzA0OWYwYzVhY2RlZTBmOSxxb3A9YXV0aCxhdXRoemlkPSJhbGwteG1wcC10ZXN0Ig==</response>
INPUT: <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD1jMTY3ZmZkYWEyYTBhYjNmNTY4MjQ0ZTQxZTdmNTNiMg==</success>
OUTPUT: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-d' version='1.0'>
INPUT: <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xml:lang="en" version="1.0" from="test-d" xmlns="jabber:client" id="ea8dd188-9bb7-4eab-a2d3-dcc5cb1ca88d"/>
INPUT: <stream:features><register xmlns="http://jabber.org/features/iq-register"/><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features>
OUTPUT: <iq type='set' id='bind1'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>def-user-resource</resource></bind></iq>
INPUT: <iq type="result" to="all-xmpp-test@test-d/def-user-resource" id="bind1"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>all-xmpp-test@test-d/def-user-resource</jid></bind></iq>
OUTPUT: <iq type="get" id="roster_444"><query xmlns="jabber:iq:roster"/></iq>
INPUT: <iq type="result" to="all-xmpp-test@test-d/def-user-resource" id="roster_444"><query xmlns="jabber:iq:roster"><item subscription="both" jid="admin@test-d" name="admin"/></query></iq>
INPUT: <iq type="set" to="all-xmpp-test@test-d/def-user-resource" id="rsttig1"><query xmlns="jabber:iq:roster"><item subscription="to" jid="admin@test-d" name="admin"/></query></iq>
INPUT: <iq type="set" to="all-xmpp-test@test-d/def-user-resource" id="rsttig2"><query xmlns="jabber:iq:roster"><item subscription="none" jid="admin@test-d" name="admin"/></query></iq>
INPUT: <presence type="unavailable" to="all-xmpp-test@test-d" from="admin@test-d/def-user-resource"/>
OUTPUT: <iq type="set" id="roster-remove-3210"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="admin@test-d"/></query></iq>
INPUT: <iq type="set" to="all-xmpp-test@test-d/def-user-resource" id="rsttig3"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="admin@test-d"/></query></iq>
INPUT: <iq type="result" to="all-xmpp-test@test-d/def-user-resource" id="roster-remove-3210"/>
INPUT: <iq type="set" to="all-xmpp-test@test-d/def-user-resource" id="rsttig3"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="admin@test-d"/></query></iq>
INPUT: <iq type="set" to="all-xmpp-test@test-d/def-user-resource" id="rsttig3"><query xmlns="jabber:iq:roster"><item subscription="remove" jid="admin@test-d"/></query></iq>
OUTPUT: <iq type="get" id="roster_888"><query xmlns="jabber:iq:roster"/></iq>
INPUT: <iq type="result" to="all-xmpp-test@test-d/def-user-resource" id="roster_888"><query xmlns="jabber:iq:roster"/></iq>
