| Index: remoting/webapp/unittests/xmpp_login_handler_unittest.js
|
| diff --git a/remoting/webapp/unittests/xmpp_login_handler_unittest.js b/remoting/webapp/unittests/xmpp_login_handler_unittest.js
|
| index 339ceba3cc78e7dcd69ebf41cd66b01afadae3ef..8a74652c98f392a2c532ed74b03d1fdb8ec02c94 100644
|
| --- a/remoting/webapp/unittests/xmpp_login_handler_unittest.js
|
| +++ b/remoting/webapp/unittests/xmpp_login_handler_unittest.js
|
| @@ -38,20 +38,23 @@ function handshakeBase() {
|
| sinon.assert.calledWith(
|
| sendMessage,
|
| '<stream:stream to="google.com" version="1.0" xmlns="jabber:client" ' +
|
| - 'xmlns:stream="http://etherx.jabber.org/streams">');
|
| + 'xmlns:stream="http://etherx.jabber.org/streams">' +
|
| + '<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>');
|
| sendMessage.reset();
|
|
|
| loginHandler.onDataReceived(base.encodeUtf8(
|
| '<stream:stream from="google.com" id="78A87C70559EF28A" version="1.0" ' +
|
| - 'xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">' +
|
| - '<stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls">' +
|
| - '<required/></starttls><mechanisms ' +
|
| - 'xmlns="urn:ietf:params:xml:ns:xmpp-sasl">' +
|
| - '<mechanism>X-OAUTH2</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism>' +
|
| - '</mechanisms></stream:features>'));
|
| - sinon.assert.calledWith(
|
| - sendMessage, '<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>');
|
| - sendMessage.reset();
|
| + 'xmlns:stream="http://etherx.jabber.org/streams"' +
|
| + 'xmlns="jabber:client">' +
|
| + '<stream:features>' +
|
| + '<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls">' +
|
| + '<required/>' +
|
| + '</starttls>' +
|
| + '<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">' +
|
| + '<mechanism>X-OAUTH2</mechanism>' +
|
| + '<mechanism>X-GOOGLE-TOKEN</mechanism>' +
|
| + '</mechanisms>' +
|
| + '</stream:features>'));
|
|
|
| loginHandler.onDataReceived(
|
| base.encodeUtf8('<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>'));
|
| @@ -59,29 +62,30 @@ function handshakeBase() {
|
| startTls.reset();
|
|
|
| loginHandler.onTlsStarted();
|
| - sinon.assert.calledWith(
|
| - sendMessage,
|
| - '<stream:stream to="google.com" version="1.0" xmlns="jabber:client" ' +
|
| - 'xmlns:stream="http://etherx.jabber.org/streams">');
|
| - sendMessage.reset();
|
| -
|
| - loginHandler.onDataReceived(base.encodeUtf8(
|
| - '<stream:stream from="google.com" id="DCDDE5171CB2154A" version="1.0" ' +
|
| - 'xmlns:stream="http://etherx.jabber.org/streams" ' +
|
| - 'xmlns="jabber:client"><stream:features>' +
|
| - '<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">' +
|
| - '<mechanism>X-OAUTH2</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism>' +
|
| - '<mechanism>PLAIN</mechanism></mechanisms></stream:features>'));
|
| var cookie = window.btoa("\0" + testUsername + "\0" + testToken);
|
| sinon.assert.calledWith(
|
| sendMessage,
|
| + '<stream:stream to="google.com" version="1.0" xmlns="jabber:client" ' +
|
| + 'xmlns:stream="http://etherx.jabber.org/streams">' +
|
| '<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-OAUTH2" ' +
|
| 'auth:service="oauth2" auth:allow-generated-jid="true" ' +
|
| 'auth:client-uses-full-bind-result="true" ' +
|
| 'auth:allow-non-google-login="true" ' +
|
| 'xmlns:auth="http://www.google.com/talk/protocol/auth">' + cookie +
|
| - '</auth>');
|
| + '</auth>');
|
| sendMessage.reset();
|
| +
|
| + loginHandler.onDataReceived(base.encodeUtf8(
|
| + '<stream:stream from="google.com" id="DCDDE5171CB2154A" version="1.0" ' +
|
| + 'xmlns:stream="http://etherx.jabber.org/streams" ' +
|
| + 'xmlns="jabber:client">' +
|
| + '<stream:features>' +
|
| + '<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">' +
|
| + '<mechanism>X-OAUTH2</mechanism>' +
|
| + '<mechanism>X-GOOGLE-TOKEN</mechanism>' +
|
| + '<mechanism>PLAIN</mechanism>' +
|
| + '</mechanisms>' +
|
| + '</stream:features>'));
|
| }
|
|
|
| test('should authenticate', function() {
|
| @@ -92,32 +96,32 @@ test('should authenticate', function() {
|
| sinon.assert.calledWith(
|
| sendMessage,
|
| '<stream:stream to="google.com" version="1.0" xmlns="jabber:client" ' +
|
| - 'xmlns:stream="http://etherx.jabber.org/streams">');
|
| + 'xmlns:stream="http://etherx.jabber.org/streams">' +
|
| + '<iq type="set" id="0">' +
|
| + '<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">' +
|
| + '<resource>chromoting</resource>' +
|
| + '</bind>' +
|
| + '</iq>' +
|
| + '<iq type="set" id="1">' +
|
| + '<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>' +
|
| + '</iq>');
|
| sendMessage.reset();
|
|
|
| loginHandler.onDataReceived(base.encodeUtf8(
|
| '<stream:stream from="google.com" id="104FA10576E2AA80" version="1.0" ' +
|
| - 'xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">' +
|
| - '<stream:features><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>' +
|
| - '<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>' +
|
| - '</stream:features>'));
|
| - sinon.assert.calledWith(
|
| - sendMessage,
|
| - '<iq type="set" id="0"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">' +
|
| - '<resource>chromoting</resource></bind></iq>');
|
| - sendMessage.reset();
|
| -
|
| - loginHandler.onDataReceived(
|
| - base.encodeUtf8('<iq id="0" type="result">' +
|
| - '<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>' +
|
| - testUsername + '/chromoting52B4920E</jid></bind></iq>'));
|
| - sinon.assert.calledWith(
|
| - sendMessage,
|
| - '<iq type="set" id="1"><session ' +
|
| - 'xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>');
|
| - sendMessage.reset();
|
| + 'xmlns:stream="http://etherx.jabber.org/streams" ' +
|
| + 'xmlns="jabber:client">' +
|
| + '<stream:features>' +
|
| + '<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/>' +
|
| + '<session xmlns="urn:ietf:params:xml:ns:xmpp-session"/>' +
|
| + '</stream:features>' +
|
| + '<iq id="0" type="result">' +
|
| + '<bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">' +
|
| + '<jid>' + testUsername + '/chromoting52B4920E</jid>' +
|
| + '</bind>' +
|
| + '</iq>' +
|
| + '<iq type="result" id="1"/>'));
|
|
|
| - loginHandler.onDataReceived(base.encodeUtf8('<iq type="result" id="1"/>'));
|
| sinon.assert.calledWith(onHandshakeDone);
|
| });
|
|
|
|
|