OUTPUT: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-d' version='1.0'>
INPUT: <stream:stream id="9e021d36-70f9-45f9-8595-6a432964a96b" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" from="test-d" xml:lang="en" version="1.0"/>
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>CRAM-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">cmVhbG09InRlc3QtZCIsbm9uY2U9ImU4eTJSUWNDTnZNaE9Hc3VZMmdkcDdEcnZybDVCNEJTZmRUUEJLcWYiLHFvcD0iYXV0aCIsY2hhcnNldD11dGYtOCxhbGdvcml0aG09bWQ1LXNlc3M=</challenge>
OUTPUT: <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>Y2hhcnNldD11dGYtOCx1c2VybmFtZT0iYWxsLXhtcHAtdGVzdCIscmVhbG09InRlc3QtZCIsbm9uY2U9ImU4eTJSUWNDTnZNaE9Hc3VZMmdkcDdEcnZybDVCNEJTZmRUUEJLcWYiLG5jPTAwMDAwMDAxLGNub25jZT0iVmQ2dGtRUll0UWZzL3AybW1Iem9XQitFSUFCbnlvUzhPN21YWjA5UCIsZGlnZXN0LXVyaT0ieG1wcC90ZXN0LWQiLG1heGJ1Zj02NTUzNixyZXNwb25zZT1kOTg5YTk1NWU5NjljZWRlMWFhMDhkYjU5NzE5YTA1MSxxb3A9YXV0aCxhdXRoemlkPSJhbGwteG1wcC10ZXN0Ig==</response>
INPUT: <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD01ODMxOTlkNGViZjUzYjZhMjMxZmUwYzc2M2JhMjllZg==</success>
OUTPUT: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='test-d' version='1.0'>
INPUT: <stream:stream id="9e021d36-70f9-45f9-8595-6a432964a96b" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" from="test-d" xml:lang="en" version="1.0"/>
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 to="all-xmpp-test@test-d/def-user-resource" id="bind1" type="result"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>all-xmpp-test@test-d/def-user-resource</jid></bind></iq>
OUTPUT: <iq id="roster_dynamic_1" type="get"><query xmlns="jabber:iq:roster-dynamic"/></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_1" type="error"><query xmlns="jabber:iq:roster-dynamic"/><error code="400" type="modify"><bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Missing 'item' element, request can not be processed.</text></error></iq>
OUTPUT: <iq id="roster_dynamic_2" type="get"><query xmlns="jabber:iq:roster-dynamic"><item jid="copernicus@eureka.com"/></query></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_2" type="result"><query xmlns="jabber:iq:roster-dynamic"><item jid="copernicus@eureka.com"/></query></iq>
OUTPUT: <iq id="roster_dynamic_3" type="set"><query xmlns="jabber:iq:roster-dynamic"><item jid="copernicus@eureka.com"><note>This a note about Copernicus</note><phone>+12 3456 789012</phone></item></query></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_3" type="result"/>
OUTPUT: <iq id="roster_dynamic_4" type="get"><query xmlns="jabber:iq:roster-dynamic"><item jid="copernicus@eureka.com"/></query></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_4" type="result"><query xmlns="jabber:iq:roster-dynamic"><item jid="copernicus@eureka.com"><note>This a note about Copernicus</note><phone>+12 3456 789012</phone></item></query></iq>
OUTPUT: <iq id="roster_dynamic_5" type="set"><query xmlns="jabber:iq:roster-dynamic"><item jid="copernicus@eureka.com"><note>This a note about Copernicus</note><phone>+12 3456 789012</phone></item><item jid="newton@eureka.com"><note>Newton is heavy!</note><phone>+12 3456 777777</phone></item><item jid="pascal@eureka.com"><note>Pascal is great!</note><phone>+12 3456 888888</phone></item></query></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_5" type="result"/>
OUTPUT: <iq id="roster_dynamic_6" type="get"><query xmlns="jabber:iq:roster-dynamic"><item jid="newton@eureka.com"/></query></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_6" type="result"><query xmlns="jabber:iq:roster-dynamic"><item jid="newton@eureka.com"><note>Newton is heavy!</note><phone>+12 3456 777777</phone></item></query></iq>
OUTPUT: <iq id="roster_dynamic_7" type="get"><query xmlns="jabber:iq:roster-dynamic"><item jid="pascal@eureka.com"/></query></iq>
INPUT: <iq to="all-xmpp-test@test-d/def-user-resource" id="roster_dynamic_7" type="result"><query xmlns="jabber:iq:roster-dynamic"><item jid="pascal@eureka.com"><note>Pascal is great!</note><phone>+12 3456 888888</phone></item></query></iq>
