| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @fileoverview | 6 * @fileoverview |
| 7 * TODO(garykac): Create interfaces for LogToServer and SignalStrategy. | 7 * TODO(garykac): Create interfaces for LogToServer and SignalStrategy. |
| 8 * @suppress {checkTypes|checkVars|reportUnknownTypes|visibility} | 8 * @suppress {checkTypes|checkVars|reportUnknownTypes|visibility} |
| 9 */ | 9 */ |
| 10 | 10 |
| 11 (function() { | 11 (function() { |
| 12 | 12 |
| 13 'use strict'; | 13 'use strict'; |
| 14 | 14 |
| 15 /** @constructor */ | 15 /** @constructor */ |
| 16 var MockLogToServer = function() { | 16 var MockLogToServer = function(/** QUnit.Assert */ assert) { |
| 17 /** @type {(sinon.Spy|Function)} */ | 17 /** @type {(sinon.Spy|Function)} */ |
| 18 this.logSignalStrategyProgress = sinon.spy(); | 18 this.logSignalStrategyProgress = sinon.spy(); |
| 19 this.assert_ = assert; |
| 19 }; | 20 }; |
| 20 | 21 |
| 21 /** @type {function(...)} */ | 22 /** @type {function(...)} */ |
| 22 MockLogToServer.prototype.assertProgress = function() { | 23 MockLogToServer.prototype.assertProgress = function() { |
| 23 equal(this.logSignalStrategyProgress.callCount * 2, arguments.length); | 24 this.assert_.equal(this.logSignalStrategyProgress.callCount * 2, |
| 25 arguments.length); |
| 24 for (var i = 0; i < this.logSignalStrategyProgress.callCount; ++i) { | 26 for (var i = 0; i < this.logSignalStrategyProgress.callCount; ++i) { |
| 25 equal(this.logSignalStrategyProgress.getCall(i).args[0], arguments[2 * i]); | 27 this.assert_.equal( |
| 26 equal(this.logSignalStrategyProgress.getCall(i).args[1], | 28 this.logSignalStrategyProgress.getCall(i).args[0], arguments[2 * i]); |
| 27 arguments[2 * i + 1]); | 29 this.assert_.equal(this.logSignalStrategyProgress.getCall(i).args[1], |
| 30 arguments[2 * i + 1]); |
| 28 } | 31 } |
| 29 }; | 32 }; |
| 30 | 33 |
| 31 /** @type {(sinon.Spy|function(remoting.SignalStrategy.State))} */ | 34 /** @type {(sinon.Spy|function(remoting.SignalStrategy.State))} */ |
| 32 var onStateChange = null; | 35 var onStateChange = null; |
| 33 | 36 |
| 34 /** @type {(sinon.Spy|function(Element):void)} */ | 37 /** @type {(sinon.Spy|function(Element):void)} */ |
| 35 var onIncomingStanzaCallback = null; | 38 var onIncomingStanzaCallback = null; |
| 36 | 39 |
| 37 /** @type {remoting.FallbackSignalStrategy} */ | 40 /** @type {remoting.FallbackSignalStrategy} */ |
| 38 var strategy = null; | 41 var strategy = null; |
| 39 | 42 |
| 40 /** @type {remoting.SignalStrategy} */ | 43 /** @type {remoting.SignalStrategy} */ |
| 41 var primary = null; | 44 var primary = null; |
| 42 | 45 |
| 43 /** @type {remoting.SignalStrategy} */ | 46 /** @type {remoting.SignalStrategy} */ |
| 44 var secondary = null; | 47 var secondary = null; |
| 45 | 48 |
| 46 /** @type {MockLogToServer} */ | 49 /** @type {MockLogToServer} */ |
| 47 var logToServer = null; | 50 var logToServer = null; |
| 48 | 51 |
| 49 /** | 52 /** |
| 53 * @param {QUnit.Assert} assert |
| 50 * @param {remoting.MockSignalStrategy} baseSignalStrategy | 54 * @param {remoting.MockSignalStrategy} baseSignalStrategy |
| 51 * @param {remoting.SignalStrategy.State} state | 55 * @param {remoting.SignalStrategy.State} state |
| 52 * @param {boolean} expectCallback | 56 * @param {boolean} expectCallback |
| 53 */ | 57 */ |
| 54 function setState(baseSignalStrategy, state, expectCallback) { | 58 function setState(assert, baseSignalStrategy, state, expectCallback) { |
| 55 onStateChange.reset(); | 59 onStateChange.reset(); |
| 56 baseSignalStrategy.setStateForTesting(state); | 60 baseSignalStrategy.setStateForTesting(state); |
| 57 | 61 |
| 58 if (expectCallback) { | 62 if (expectCallback) { |
| 59 equal(onStateChange.callCount, 1); | 63 assert.equal(onStateChange.callCount, 1); |
| 60 ok(onStateChange.calledWith(state)); | 64 assert.ok(onStateChange.calledWith(state)); |
| 61 equal(strategy.getState(), state); | 65 assert.equal(strategy.getState(), state); |
| 62 } else { | 66 } else { |
| 63 ok(!onStateChange.called); | 67 assert.ok(!onStateChange.called); |
| 64 } | 68 } |
| 65 }; | 69 } |
| 66 | 70 |
| 67 module('fallback_signal_strategy', { | 71 QUnit.module('fallback_signal_strategy', { |
| 68 setup: function() { | 72 beforeEach: function(/** QUnit.Assert */ assert) { |
| 69 onStateChange = sinon.spy(); | 73 onStateChange = sinon.spy(); |
| 70 onIncomingStanzaCallback = sinon.spy(); | 74 onIncomingStanzaCallback = sinon.spy(); |
| 71 strategy = new remoting.FallbackSignalStrategy( | 75 strategy = new remoting.FallbackSignalStrategy( |
| 72 new remoting.MockSignalStrategy('primary-jid', | 76 new remoting.MockSignalStrategy('primary-jid', |
| 73 remoting.SignalStrategy.Type.XMPP), | 77 remoting.SignalStrategy.Type.XMPP), |
| 74 new remoting.MockSignalStrategy('secondary-jid', | 78 new remoting.MockSignalStrategy('secondary-jid', |
| 75 remoting.SignalStrategy.Type.WCS)); | 79 remoting.SignalStrategy.Type.WCS)); |
| 76 strategy.setStateChangedCallback(onStateChange); | 80 strategy.setStateChangedCallback(onStateChange); |
| 77 strategy.setIncomingStanzaCallback(onIncomingStanzaCallback); | 81 strategy.setIncomingStanzaCallback(onIncomingStanzaCallback); |
| 78 primary = strategy.primary_; | 82 primary = strategy.primary_; |
| 79 secondary = strategy.secondary_; | 83 secondary = strategy.secondary_; |
| 80 logToServer = new MockLogToServer(); | 84 logToServer = new MockLogToServer(assert); |
| 81 }, | 85 }, |
| 82 teardown: function() { | 86 afterEach: function() { |
| 83 onStateChange = null; | 87 onStateChange = null; |
| 84 onIncomingStanzaCallback = null; | 88 onIncomingStanzaCallback = null; |
| 85 strategy = null; | 89 strategy = null; |
| 86 primary = null; | 90 primary = null; |
| 87 secondary = null; | 91 secondary = null; |
| 88 logToServer = null; | 92 logToServer = null; |
| 89 }, | 93 }, |
| 90 }); | 94 }); |
| 91 | 95 |
| 92 test('primary succeeds; send & receive routed to it', | 96 QUnit.test('primary succeeds; send & receive routed to it', |
| 93 function() { | 97 function(assert) { |
| 94 ok(!onStateChange.called); | 98 assert.ok(!onStateChange.called); |
| 95 ok(!primary.connect.called); | 99 assert.ok(!primary.connect.called); |
| 96 strategy.connect('server', 'username', 'authToken'); | 100 strategy.connect('server', 'username', 'authToken'); |
| 97 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 101 assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
| 98 | 102 |
| 99 setState(primary, remoting.SignalStrategy.State.NOT_CONNECTED, true); | 103 setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 100 setState(primary, remoting.SignalStrategy.State.CONNECTING, true); | 104 true); |
| 101 setState(primary, remoting.SignalStrategy.State.HANDSHAKE, true); | 105 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
| 106 setState(assert, primary, remoting.SignalStrategy.State.HANDSHAKE, true); |
| 102 | 107 |
| 103 setState(primary, remoting.SignalStrategy.State.CONNECTED, true); | 108 setState(assert, primary, remoting.SignalStrategy.State.CONNECTED, true); |
| 104 equal(strategy.getJid(), 'primary-jid'); | 109 assert.equal(strategy.getJid(), 'primary-jid'); |
| 105 | 110 |
| 106 strategy.sendConnectionSetupResults(logToServer); | 111 strategy.sendConnectionSetupResults(logToServer); |
| 107 logToServer.assertProgress( | 112 logToServer.assertProgress( |
| 108 remoting.SignalStrategy.Type.XMPP, | 113 remoting.SignalStrategy.Type.XMPP, |
| 109 remoting.FallbackSignalStrategy.Progress.SUCCEEDED); | 114 remoting.FallbackSignalStrategy.Progress.SUCCEEDED); |
| 110 | 115 |
| 111 ok(!onIncomingStanzaCallback.called); | 116 assert.ok(!onIncomingStanzaCallback.called); |
| 112 primary.onIncomingStanzaCallback_('test-receive-primary'); | 117 primary.onIncomingStanzaCallback_('test-receive-primary'); |
| 113 secondary.onIncomingStanzaCallback_('test-receive-secondary'); | 118 secondary.onIncomingStanzaCallback_('test-receive-secondary'); |
| 114 ok(onIncomingStanzaCallback.calledOnce); | 119 assert.ok(onIncomingStanzaCallback.calledOnce); |
| 115 ok(onIncomingStanzaCallback.calledWith('test-receive-primary')); | 120 assert.ok(onIncomingStanzaCallback.calledWith('test-receive-primary')); |
| 116 | 121 |
| 117 ok(!primary.sendMessage.called); | 122 assert.ok(!primary.sendMessage.called); |
| 118 strategy.sendMessage('test-send'); | 123 strategy.sendMessage('test-send'); |
| 119 ok(primary.sendMessage.calledOnce); | 124 assert.ok(primary.sendMessage.calledOnce); |
| 120 ok(primary.sendMessage.calledWith('test-send')); | 125 assert.ok(primary.sendMessage.calledWith('test-send')); |
| 121 | 126 |
| 122 ok(!primary.dispose.called); | 127 assert.ok(!primary.dispose.called); |
| 123 ok(!secondary.dispose.called); | 128 assert.ok(!secondary.dispose.called); |
| 124 setState(primary, remoting.SignalStrategy.State.CLOSED, true); | 129 setState(assert, primary, remoting.SignalStrategy.State.CLOSED, true); |
| 125 strategy.dispose(); | 130 strategy.dispose(); |
| 126 ok(primary.dispose.calledOnce); | 131 assert.ok(primary.dispose.calledOnce); |
| 127 ok(secondary.dispose.calledOnce); | 132 assert.ok(secondary.dispose.calledOnce); |
| 128 } | 133 } |
| 129 ); | 134 ); |
| 130 | 135 |
| 131 test('primary fails; secondary succeeds; send & receive routed to it', | 136 QUnit.test('primary fails; secondary succeeds; send & receive routed to it', |
| 132 function() { | 137 function(assert) { |
| 133 ok(!onStateChange.called); | 138 assert.ok(!onStateChange.called); |
| 134 ok(!primary.connect.called); | 139 assert.ok(!primary.connect.called); |
| 135 strategy.connect('server', 'username', 'authToken'); | 140 strategy.connect('server', 'username', 'authToken'); |
| 136 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 141 assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
| 137 | 142 |
| 138 setState(primary, remoting.SignalStrategy.State.NOT_CONNECTED, | 143 setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 139 true); | 144 true); |
| 140 setState(primary, remoting.SignalStrategy.State.CONNECTING, true); | 145 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
| 141 | 146 |
| 142 ok(!secondary.connect.called); | 147 assert.ok(!secondary.connect.called); |
| 143 setState(primary, remoting.SignalStrategy.State.FAILED, false); | 148 setState(assert, primary, remoting.SignalStrategy.State.FAILED, false); |
| 144 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 149 assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
| 145 | 150 |
| 146 setState(secondary, remoting.SignalStrategy.State.NOT_CONNECTED, false); | 151 setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 147 setState(secondary, remoting.SignalStrategy.State.CONNECTING, false); | 152 false); |
| 148 setState(secondary, remoting.SignalStrategy.State.HANDSHAKE, true); | 153 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
| 154 false); |
| 155 setState(assert, secondary, remoting.SignalStrategy.State.HANDSHAKE, true); |
| 149 | 156 |
| 150 setState(secondary, remoting.SignalStrategy.State.CONNECTED, true); | 157 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTED, true); |
| 151 equal(strategy.getJid(), 'secondary-jid'); | 158 assert.equal(strategy.getJid(), 'secondary-jid'); |
| 152 | 159 |
| 153 strategy.sendConnectionSetupResults(logToServer); | 160 strategy.sendConnectionSetupResults(logToServer); |
| 154 logToServer.assertProgress( | 161 logToServer.assertProgress( |
| 155 remoting.SignalStrategy.Type.XMPP, | 162 remoting.SignalStrategy.Type.XMPP, |
| 156 remoting.FallbackSignalStrategy.Progress.FAILED, | 163 remoting.FallbackSignalStrategy.Progress.FAILED, |
| 157 remoting.SignalStrategy.Type.WCS, | 164 remoting.SignalStrategy.Type.WCS, |
| 158 remoting.FallbackSignalStrategy.Progress.SUCCEEDED); | 165 remoting.FallbackSignalStrategy.Progress.SUCCEEDED); |
| 159 | 166 |
| 160 ok(!onIncomingStanzaCallback.called); | 167 assert.ok(!onIncomingStanzaCallback.called); |
| 161 primary.onIncomingStanzaCallback_('test-receive-primary'); | 168 primary.onIncomingStanzaCallback_('test-receive-primary'); |
| 162 secondary.onIncomingStanzaCallback_('test-receive-secondary'); | 169 secondary.onIncomingStanzaCallback_('test-receive-secondary'); |
| 163 ok(onIncomingStanzaCallback.calledOnce); | 170 assert.ok(onIncomingStanzaCallback.calledOnce); |
| 164 ok(onIncomingStanzaCallback.calledWith('test-receive-secondary')); | 171 assert.ok(onIncomingStanzaCallback.calledWith('test-receive-secondary')); |
| 165 | 172 |
| 166 ok(!secondary.sendMessage.called); | 173 assert.ok(!secondary.sendMessage.called); |
| 167 strategy.sendMessage('test-send'); | 174 strategy.sendMessage('test-send'); |
| 168 ok(!primary.sendMessage.called); | 175 assert.ok(!primary.sendMessage.called); |
| 169 ok(secondary.sendMessage.calledOnce); | 176 assert.ok(secondary.sendMessage.calledOnce); |
| 170 ok(secondary.sendMessage.calledWith('test-send')); | 177 assert.ok(secondary.sendMessage.calledWith('test-send')); |
| 171 } | 178 } |
| 172 ); | 179 ); |
| 173 | 180 |
| 174 test('primary fails; secondary fails', | 181 QUnit.test('primary fails; secondary fails', |
| 175 function() { | 182 function(assert) { |
| 176 ok(!onStateChange.called); | 183 assert.ok(!onStateChange.called); |
| 177 ok(!primary.connect.called); | 184 assert.ok(!primary.connect.called); |
| 178 strategy.connect('server', 'username', 'authToken'); | 185 strategy.connect('server', 'username', 'authToken'); |
| 179 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 186 assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
| 180 | 187 |
| 181 setState(primary, remoting.SignalStrategy.State.NOT_CONNECTED, true); | 188 setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 182 ok(!secondary.connect.called); | 189 true); |
| 183 setState(primary, remoting.SignalStrategy.State.CONNECTING, true); | 190 assert.ok(!secondary.connect.called); |
| 184 setState(primary, remoting.SignalStrategy.State.FAILED, false); | 191 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
| 185 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 192 setState(assert, primary, remoting.SignalStrategy.State.FAILED, false); |
| 186 setState(secondary, remoting.SignalStrategy.State.NOT_CONNECTED, false); | 193 assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
| 187 setState(primary, remoting.SignalStrategy.State.CONNECTING, false); | 194 setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 188 setState(secondary, remoting.SignalStrategy.State.FAILED, true); | 195 false); |
| 196 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, false); |
| 197 setState(assert, secondary, remoting.SignalStrategy.State.FAILED, true); |
| 189 } | 198 } |
| 190 ); | 199 ); |
| 191 | 200 |
| 192 test('primary times out; secondary succeeds', | 201 QUnit.test('primary times out; secondary succeeds', |
| 193 function() { | 202 function(assert) { |
| 194 ok(!onStateChange.called); | 203 assert.ok(!onStateChange.called); |
| 195 ok(!primary.connect.called); | 204 assert.ok(!primary.connect.called); |
| 196 strategy.connect('server', 'username', 'authToken'); | 205 strategy.connect('server', 'username', 'authToken'); |
| 197 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 206 assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
| 198 | 207 |
| 199 setState(primary, remoting.SignalStrategy.State.NOT_CONNECTED, | 208 setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 200 true); | 209 true); |
| 201 setState(primary, remoting.SignalStrategy.State.CONNECTING, true); | 210 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
| 202 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); | 211 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); |
| 203 ok(!secondary.connect.called); | 212 assert.ok(!secondary.connect.called); |
| 204 this.clock.tick(1); | 213 this.clock.tick(1); |
| 205 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 214 assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
| 206 setState(secondary, remoting.SignalStrategy.State.NOT_CONNECTED, false); | 215 setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 207 setState(secondary, remoting.SignalStrategy.State.CONNECTING, false); | 216 false); |
| 208 setState(secondary, remoting.SignalStrategy.State.HANDSHAKE, true); | 217 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
| 209 setState(secondary, remoting.SignalStrategy.State.CONNECTED, true); | 218 false); |
| 219 setState(assert, secondary, remoting.SignalStrategy.State.HANDSHAKE, true); |
| 220 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTED, true); |
| 210 strategy.sendConnectionSetupResults(logToServer); | 221 strategy.sendConnectionSetupResults(logToServer); |
| 211 | 222 |
| 212 setState(secondary, remoting.SignalStrategy.State.CLOSED, true); | 223 setState(assert, secondary, remoting.SignalStrategy.State.CLOSED, true); |
| 213 setState(primary, remoting.SignalStrategy.State.FAILED, false); | 224 setState(assert, primary, remoting.SignalStrategy.State.FAILED, false); |
| 214 | 225 |
| 215 logToServer.assertProgress( | 226 logToServer.assertProgress( |
| 216 remoting.SignalStrategy.Type.XMPP, | 227 remoting.SignalStrategy.Type.XMPP, |
| 217 remoting.FallbackSignalStrategy.Progress.TIMED_OUT, | 228 remoting.FallbackSignalStrategy.Progress.TIMED_OUT, |
| 218 remoting.SignalStrategy.Type.WCS, | 229 remoting.SignalStrategy.Type.WCS, |
| 219 remoting.FallbackSignalStrategy.Progress.SUCCEEDED, | 230 remoting.FallbackSignalStrategy.Progress.SUCCEEDED, |
| 220 remoting.SignalStrategy.Type.XMPP, | 231 remoting.SignalStrategy.Type.XMPP, |
| 221 remoting.FallbackSignalStrategy.Progress.FAILED_LATE); | 232 remoting.FallbackSignalStrategy.Progress.FAILED_LATE); |
| 222 } | 233 } |
| 223 ); | 234 ); |
| 224 | 235 |
| 225 test('primary times out; secondary fails', | 236 QUnit.test('primary times out; secondary fails', |
| 226 function() { | 237 function(assert) { |
| 227 ok(!onStateChange.called); | 238 assert.ok(!onStateChange.called); |
| 228 ok(!primary.connect.called); | 239 assert.ok(!primary.connect.called); |
| 229 strategy.connect('server', 'username', 'authToken'); | 240 strategy.connect('server', 'username', 'authToken'); |
| 230 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 241 assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
| 231 | 242 |
| 232 setState(primary, remoting.SignalStrategy.State.NOT_CONNECTED, | 243 setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 233 true); | 244 true); |
| 234 setState(primary, remoting.SignalStrategy.State.CONNECTING, true); | 245 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
| 235 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); | 246 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1); |
| 236 ok(!secondary.connect.called); | 247 assert.ok(!secondary.connect.called); |
| 237 this.clock.tick(1); | 248 this.clock.tick(1); |
| 238 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 249 assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
| 239 setState(secondary, remoting.SignalStrategy.State.NOT_CONNECTED, false); | 250 setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 240 setState(secondary, remoting.SignalStrategy.State.CONNECTING, false); | 251 false); |
| 241 setState(secondary, remoting.SignalStrategy.State.FAILED, true); | 252 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
| 253 false); |
| 254 setState(assert, secondary, remoting.SignalStrategy.State.FAILED, true); |
| 242 } | 255 } |
| 243 ); | 256 ); |
| 244 | 257 |
| 245 test('primary times out; secondary succeeds; primary succeeds late', | 258 QUnit.test('primary times out; secondary succeeds; primary succeeds late', |
| 246 function() { | 259 function(assert) { |
| 247 ok(!onStateChange.called); | 260 assert.ok(!onStateChange.called); |
| 248 ok(!primary.connect.called); | 261 assert.ok(!primary.connect.called); |
| 249 strategy.connect('server', 'username', 'authToken'); | 262 strategy.connect('server', 'username', 'authToken'); |
| 250 ok(primary.connect.calledWith('server', 'username', 'authToken')); | 263 assert.ok(primary.connect.calledWith('server', 'username', 'authToken')); |
| 251 | 264 |
| 252 setState(primary, remoting.SignalStrategy.State.NOT_CONNECTED, | 265 setState(assert, primary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 253 true); | 266 true); |
| 254 setState(primary, remoting.SignalStrategy.State.CONNECTING, true); | 267 setState(assert, primary, remoting.SignalStrategy.State.CONNECTING, true); |
| 255 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_); | 268 this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_); |
| 256 ok(secondary.connect.calledWith('server', 'username', 'authToken')); | 269 assert.ok(secondary.connect.calledWith('server', 'username', 'authToken')); |
| 257 setState(secondary, remoting.SignalStrategy.State.NOT_CONNECTED, false); | 270 setState(assert, secondary, remoting.SignalStrategy.State.NOT_CONNECTED, |
| 258 setState(secondary, remoting.SignalStrategy.State.CONNECTING, false); | 271 false); |
| 259 setState(secondary, remoting.SignalStrategy.State.HANDSHAKE, true); | 272 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTING, |
| 260 setState(secondary, remoting.SignalStrategy.State.CONNECTED, true); | 273 false); |
| 274 setState(assert, secondary, remoting.SignalStrategy.State.HANDSHAKE, true); |
| 275 setState(assert, secondary, remoting.SignalStrategy.State.CONNECTED, true); |
| 261 strategy.sendConnectionSetupResults(logToServer); | 276 strategy.sendConnectionSetupResults(logToServer); |
| 262 | 277 |
| 263 setState(primary, remoting.SignalStrategy.State.HANDSHAKE, false); | 278 setState(assert, primary, remoting.SignalStrategy.State.HANDSHAKE, false); |
| 264 setState(primary, remoting.SignalStrategy.State.CONNECTED, false); | 279 setState(assert, primary, remoting.SignalStrategy.State.CONNECTED, false); |
| 265 | 280 |
| 266 logToServer.assertProgress( | 281 logToServer.assertProgress( |
| 267 remoting.SignalStrategy.Type.XMPP, | 282 remoting.SignalStrategy.Type.XMPP, |
| 268 remoting.FallbackSignalStrategy.Progress.TIMED_OUT, | 283 remoting.FallbackSignalStrategy.Progress.TIMED_OUT, |
| 269 remoting.SignalStrategy.Type.WCS, | 284 remoting.SignalStrategy.Type.WCS, |
| 270 remoting.FallbackSignalStrategy.Progress.SUCCEEDED, | 285 remoting.FallbackSignalStrategy.Progress.SUCCEEDED, |
| 271 remoting.SignalStrategy.Type.XMPP, | 286 remoting.SignalStrategy.Type.XMPP, |
| 272 remoting.FallbackSignalStrategy.Progress.SUCCEEDED_LATE); | 287 remoting.FallbackSignalStrategy.Progress.SUCCEEDED_LATE); |
| 273 } | 288 } |
| 274 ); | 289 ); |
| 275 | 290 |
| 276 })(); | 291 })(); |
| OLD | NEW |