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 |
deleted file mode 100644 |
index 14216512bdd615358e548ce21841e1e308edad93..0000000000000000000000000000000000000000 |
--- a/remoting/webapp/unittests/xmpp_login_handler_unittest.js |
+++ /dev/null |
@@ -1,176 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-(function() { |
- |
-'use strict'; |
- |
-var testUsername = 'testUsername@gmail.com'; |
-var testToken = 'testToken'; |
- |
-/** @type {(sinon.Spy|function(string):void)} */ |
-var sendMessage_spy = function(msg) {}; |
-/** @type {function(string):void} */ |
-var sendMessage = function(msg) {}; |
- |
-/** @type {(sinon.Spy|function():void)} */ |
-var startTls_spy = function() {}; |
-/** @type {function():void} */ |
-var startTls = function() {}; |
- |
-/** @type {(sinon.Spy|function(string, remoting.XmppStreamParser):void)} */ |
-var onHandshakeDone_spy = function(name, parser) {}; |
-/** @type {function(string, remoting.XmppStreamParser):void} */ |
-var onHandshakeDone = function(name, parser) {}; |
- |
-/** @type {(sinon.Spy|function(remoting.Error, string):void)} */ |
-var onError_spy = function(error, message) {}; |
-/** @type {function(remoting.Error, string):void} */ |
-var onError = function(error, message) {}; |
- |
-/** @type {remoting.XmppLoginHandler} */ |
-var loginHandler = null; |
- |
-module('XmppLoginHandler', { |
- setup: function() { |
- sendMessage_spy = sinon.spy(); |
- sendMessage = /** @type {function(string):void} */ (sendMessage_spy); |
- startTls_spy = sinon.spy(); |
- startTls = /** @type {function():void} */ (startTls_spy); |
- onHandshakeDone_spy = sinon.spy(); |
- onHandshakeDone = |
- /** @type {function(string, remoting.XmppStreamParser):void} */ |
- (onHandshakeDone_spy); |
- onError_spy = sinon.spy(); |
- onError = /** @type {function(remoting.Error, string):void} */(onError_spy); |
- |
- loginHandler = new remoting.XmppLoginHandler( |
- 'google.com', testUsername, testToken, false, |
- sendMessage, startTls, onHandshakeDone, onError); |
- } |
-}); |
- |
-// Executes handshake base. |
-function handshakeBase() { |
- loginHandler.start(); |
- |
- sinon.assert.calledWith(startTls); |
- startTls_spy.reset(); |
- |
- loginHandler.onTlsStarted(); |
- 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>'); |
- sendMessage_spy.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() { |
- handshakeBase(); |
- |
- loginHandler.onDataReceived( |
- base.encodeUtf8('<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>')); |
- sinon.assert.calledWith( |
- sendMessage, |
- '<stream:stream to="google.com" version="1.0" xmlns="jabber:client" ' + |
- '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_spy.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>' + |
- '<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"/>')); |
- |
- sinon.assert.calledWith(onHandshakeDone); |
-}); |
- |
-test('use <starttls> handshake', function() { |
- loginHandler = new remoting.XmppLoginHandler( |
- 'google.com', testUsername, testToken, true, sendMessage, |
- startTls, onHandshakeDone, onError); |
- loginHandler.start(); |
- |
- sinon.assert.calledWith( |
- sendMessage, |
- '<stream:stream to="google.com" version="1.0" xmlns="jabber:client" ' + |
- 'xmlns:stream="http://etherx.jabber.org/streams">' + |
- '<starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>'); |
- sendMessage_spy.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>')); |
- |
- loginHandler.onDataReceived( |
- base.encodeUtf8('<proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>')); |
- |
- sinon.assert.calledWith(startTls); |
-}); |
- |
-test('should return AUTHENTICATION_FAILED error when failed to authenticate', |
- function() { |
- handshakeBase(); |
- |
- loginHandler.onDataReceived( |
- base.encodeUtf8('<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl">' + |
- '<not-authorized/></failure>')); |
- sinon.assert.calledWith(onError, remoting.Error.AUTHENTICATION_FAILED); |
-}); |
- |
-test('should return UNEXPECTED error when failed to parse stream', |
- function() { |
- handshakeBase(); |
- loginHandler.onDataReceived( |
- base.encodeUtf8('BAD DATA')); |
- sinon.assert.calledWith(onError, remoting.Error.UNEXPECTED); |
-}); |
- |
-})(); |