Index: remoting/webapp/crd/js/fallback_signal_strategy_unittest.js |
diff --git a/remoting/webapp/crd/js/fallback_signal_strategy_unittest.js b/remoting/webapp/crd/js/fallback_signal_strategy_unittest.js |
deleted file mode 100644 |
index 670aa8f11ec17e78749470f1a2820426745b6576..0000000000000000000000000000000000000000 |
--- a/remoting/webapp/crd/js/fallback_signal_strategy_unittest.js |
+++ /dev/null |
@@ -1,302 +0,0 @@ |
-// Copyright 2015 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. |
- |
-/** |
- * @fileoverview |
- * TODO(garykac): Create interfaces for LogToServer and SignalStrategy. |
- * @suppress {checkTypes|checkVars|reportUnknownTypes|visibility} |
- */ |
- |
-(function() { |
- |
-'use strict'; |
- |
-/** @constructor */ |
-var MockLogToServer = function(/** QUnit.Assert */ assert) { |
- /** @type {(sinon.Spy|Function)} */ |
- this.logSignalStrategyProgress = sinon.spy(); |
- this.assert_ = assert; |
-}; |
- |
-/** @type {function(...)} */ |
-MockLogToServer.prototype.assertProgress = function() { |
- this.assert_.equal(this.logSignalStrategyProgress.callCount * 2, |
- arguments.length); |
- for (var i = 0; i < this.logSignalStrategyProgress.callCount; ++i) { |
- this.assert_.equal( |
- this.logSignalStrategyProgress.getCall(i).args[0], arguments[2 * i]); |
- this.assert_.equal(this.logSignalStrategyProgress.getCall(i).args[1], |
- arguments[2 * i + 1]); |
- } |
-}; |
- |
-/** @type {(sinon.Spy|function(remoting.SignalStrategy.State))} */ |
-var onStateChange = null; |
- |
-/** @type {(sinon.Spy|function(Element):void)} */ |
-var onIncomingStanzaCallback = null; |
- |
-/** @type {remoting.FallbackSignalStrategy} */ |
-var strategy = null; |
- |
-/** @type {remoting.SignalStrategy} */ |
-var primary = null; |
- |
-/** @type {remoting.SignalStrategy} */ |
-var secondary = null; |
- |
-/** @type {MockLogToServer} */ |
-var logToServer = null; |
- |
-/** |
- * @param {QUnit.Assert} assert |
- * @param {remoting.MockSignalStrategy} baseSignalStrategy |
- * @param {remoting.SignalStrategy.State} state |
- * @param {boolean} expectCallback |
- */ |
-function setState(assert, baseSignalStrategy, state, expectCallback) { |
- onStateChange.reset(); |
- baseSignalStrategy.setStateForTesting(state); |
- |
- if (expectCallback) { |
- assert.equal(onStateChange.callCount, 1); |
- assert.ok(onStateChange.calledWith(state)); |
- assert.equal(strategy.getState(), state); |
- } else { |
- assert.ok(!onStateChange.called); |
- } |
-} |
- |
-QUnit.module('fallback_signal_strategy', { |
- beforeEach: function(/** QUnit.Assert */ assert) { |
- onStateChange = sinon.spy(); |
- onIncomingStanzaCallback = sinon.spy(); |
- strategy = new remoting.FallbackSignalStrategy( |
- new remoting.MockSignalStrategy('primary-jid', |
- remoting.SignalStrategy.Type.XMPP), |
- new remoting.MockSignalStrategy('secondary-jid', |
- remoting.SignalStrategy.Type.WCS)); |
- strategy.setStateChangedCallback(onStateChange); |
- strategy.setIncomingStanzaCallback(onIncomingStanzaCallback); |
- primary = strategy.primary_; |
- addSpies(primary); |
- secondary = strategy.secondary_; |
- addSpies(secondary); |
- logToServer = new MockLogToServer(assert); |
- }, |
- afterEach: function() { |
- onStateChange = null; |
- onIncomingStanzaCallback = null; |
- strategy = null; |
- primary = null; |
- secondary = null; |
- logToServer = null; |
- }, |
-}); |
- |
-/** |
- * @param {remoting.SignalStrategy} strategy |
- */ |
-function addSpies(strategy) { |
- sinon.spy(strategy, 'connect'); |
- sinon.spy(strategy, 'sendMessage'); |
- sinon.spy(strategy, 'dispose'); |
-} |
- |
-QUnit.test('primary succeeds; send & receive routed to it', |
- function(assert) { |
- assert.ok(!onStateChange.called); |
- assert.ok(!primary.connect.called); |
- strategy.connect('server', 'username', 'authToken'); |
- assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- true); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
- setState(assert, primary, remoting.SignalStrategy.State.HANDSHAKE, true); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTED, true); |
- assert.equal(strategy.getJid(), 'primary-jid'); |
- |
- strategy.sendConnectionSetupResults(logToServer); |
- logToServer.assertProgress( |
- remoting.SignalStrategy.Type.XMPP, |
- remoting.FallbackSignalStrategy.Progress.SUCCEEDED); |
- |
- assert.ok(!onIncomingStanzaCallback.called); |
- primary.onIncomingStanzaCallback_('test-receive-primary'); |
- secondary.onIncomingStanzaCallback_('test-receive-secondary'); |
- assert.ok(onIncomingStanzaCallback.calledOnce); |
- assert.ok(onIncomingStanzaCallback.calledWith('test-receive-primary')); |
- |
- assert.ok(!primary.sendMessage.called); |
- strategy.sendMessage('test-send'); |
- assert.ok(primary.sendMessage.calledOnce); |
- assert.ok(primary.sendMessage.calledWith('test-send')); |
- |
- assert.ok(!primary.dispose.called); |
- assert.ok(!secondary.dispose.called); |
- setState(assert, primary, remoting.SignalStrategy.State.CLOSED, true); |
- strategy.dispose(); |
- assert.ok(primary.dispose.calledOnce); |
- assert.ok(secondary.dispose.calledOnce); |
- } |
-); |
- |
-QUnit.test('primary fails; secondary succeeds; send & receive routed to it', |
- function(assert) { |
- assert.ok(!onStateChange.called); |
- assert.ok(!primary.connect.called); |
- strategy.connect('server', 'username', 'authToken'); |
- assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- true); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
- |
- assert.ok(!secondary.connect.called); |
- setState(assert, primary, remoting.SignalStrategy.State.FAILED, false); |
- assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.HANDSHAKE, true); |
- |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTED, true); |
- assert.equal(strategy.getJid(), 'secondary-jid'); |
- |
- strategy.sendConnectionSetupResults(logToServer); |
- logToServer.assertProgress( |
- remoting.SignalStrategy.Type.XMPP, |
- remoting.FallbackSignalStrategy.Progress.FAILED, |
- remoting.SignalStrategy.Type.WCS, |
- remoting.FallbackSignalStrategy.Progress.SUCCEEDED); |
- |
- assert.ok(!onIncomingStanzaCallback.called); |
- primary.onIncomingStanzaCallback_('test-receive-primary'); |
- secondary.onIncomingStanzaCallback_('test-receive-secondary'); |
- assert.ok(onIncomingStanzaCallback.calledOnce); |
- assert.ok(onIncomingStanzaCallback.calledWith('test-receive-secondary')); |
- |
- assert.ok(!secondary.sendMessage.called); |
- strategy.sendMessage('test-send'); |
- assert.ok(!primary.sendMessage.called); |
- assert.ok(secondary.sendMessage.calledOnce); |
- assert.ok(secondary.sendMessage.calledWith('test-send')); |
- } |
-); |
- |
-QUnit.test('primary fails; secondary fails', |
- function(assert) { |
- assert.ok(!onStateChange.called); |
- assert.ok(!primary.connect.called); |
- strategy.connect('server', 'username', 'authToken'); |
- assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- true); |
- assert.ok(!secondary.connect.called); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
- setState(assert, primary, remoting.SignalStrategy.State.FAILED, false); |
- assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
- setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- false); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, false); |
- setState(assert, secondary, remoting.SignalStrategy.State.FAILED, true); |
- } |
-); |
- |
-QUnit.test('primary times out; secondary succeeds', |
- function(assert) { |
- assert.ok(!onStateChange.called); |
- assert.ok(!primary.connect.called); |
- strategy.connect('server', 'username', 'authToken'); |
- assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- true); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
- this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); |
- assert.ok(!secondary.connect.called); |
- this.clock.tick(1); |
- assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
- setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.HANDSHAKE, true); |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTED, true); |
- strategy.sendConnectionSetupResults(logToServer); |
- |
- setState(assert, secondary, remoting.SignalStrategy.State.CLOSED, true); |
- setState(assert, primary, remoting.SignalStrategy.State.FAILED, false); |
- |
- logToServer.assertProgress( |
- remoting.SignalStrategy.Type.XMPP, |
- remoting.FallbackSignalStrategy.Progress.TIMED_OUT, |
- remoting.SignalStrategy.Type.WCS, |
- remoting.FallbackSignalStrategy.Progress.SUCCEEDED, |
- remoting.SignalStrategy.Type.XMPP, |
- remoting.FallbackSignalStrategy.Progress.FAILED_LATE); |
- } |
-); |
- |
-QUnit.test('primary times out; secondary fails', |
- function(assert) { |
- assert.ok(!onStateChange.called); |
- assert.ok(!primary.connect.called); |
- strategy.connect('server', 'username', 'authToken'); |
- assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- true); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
- this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); |
- assert.ok(!secondary.connect.called); |
- this.clock.tick(1); |
- assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
- setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.FAILED, true); |
- } |
-); |
- |
-QUnit.test('primary times out; secondary succeeds; primary succeeds late', |
- function(assert) { |
- assert.ok(!onStateChange.called); |
- assert.ok(!primary.connect.called); |
- strategy.connect('server', 'username', 'authToken'); |
- assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- true); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
- this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_); |
- assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
- setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
- false); |
- setState(assert, secondary, remoting.SignalStrategy.State.HANDSHAKE, true); |
- setState(assert, secondary, remoting.SignalStrategy.State.CONNECTED, true); |
- strategy.sendConnectionSetupResults(logToServer); |
- |
- setState(assert, primary, remoting.SignalStrategy.State.HANDSHAKE, false); |
- setState(assert, primary, remoting.SignalStrategy.State.CONNECTED, false); |
- |
- logToServer.assertProgress( |
- remoting.SignalStrategy.Type.XMPP, |
- remoting.FallbackSignalStrategy.Progress.TIMED_OUT, |
- remoting.SignalStrategy.Type.WCS, |
- remoting.FallbackSignalStrategy.Progress.SUCCEEDED, |
- remoting.SignalStrategy.Type.XMPP, |
- remoting.FallbackSignalStrategy.Progress.SUCCEEDED_LATE); |
- } |
-); |
- |
-})(); |