Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(670)

Unified Diff: remoting/webapp/unittests/fallback_signal_strategy_unittest.js

Issue 855003008: Log signal strategy progress to server. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/webapp/unittests/fallback_signal_strategy_unittest.js
diff --git a/remoting/webapp/unittests/fallback_signal_strategy_unittest.js b/remoting/webapp/unittests/fallback_signal_strategy_unittest.js
index 18122fd23fff031daec0129a31ccd26ef054d24a..97b2301889362233b7e5b9ae878c9115a38f9191 100644
--- a/remoting/webapp/unittests/fallback_signal_strategy_unittest.js
+++ b/remoting/webapp/unittests/fallback_signal_strategy_unittest.js
@@ -14,6 +14,7 @@ var ControllableSignalStrategy = function(jid, stateChangeCallback) {
this.dispose = sinon.spy();
this.connect = sinon.spy();
this.sendMessage = sinon.spy();
+ this.sendConnectionSetupResults = sinon.spy();
};
ControllableSignalStrategy.prototype.setIncomingStanzaCallback =
@@ -58,44 +59,47 @@ var createControllableSignalStrategy = function(jid, callback) {
return new ControllableSignalStrategy(jid, callback);
};
+var MockLogToServer = function() {
+ this.logSignalStrategyProgress = sinon.spy();
+};
+
+MockLogToServer.prototype.assertProgress = function() {
+ equal(this.logSignalStrategyProgress.callCount, arguments.length);
+ for (var i = 0; i < arguments.length; ++i) {
+ equal(this.logSignalStrategyProgress.getCall(i).args[0], arguments[i]);
+ }
+};
+
var onStateChange = null;
-var onProgressCallback = null;
var onIncomingStanzaCallback = null;
var strategy = null;
var primary = null;
var secondary = null;
+var logToServer = null;
module('fallback_signal_strategy', {
setup: function() {
onStateChange = sinon.spy();
- onProgressCallback = sinon.spy();
onIncomingStanzaCallback = sinon.spy();
strategy = new remoting.FallbackSignalStrategy(
createControllableSignalStrategy.bind(null, 'primary-jid'),
createControllableSignalStrategy.bind(null, 'secondary-jid'),
- onStateChange,
- onProgressCallback);
+ onStateChange);
strategy.setIncomingStanzaCallback(onIncomingStanzaCallback);
primary = strategy.primary_;
secondary = strategy.secondary_;
+ logToServer = new MockLogToServer();
primary.setExternalCallbackForTesting(onStateChange);
secondary.setExternalCallbackForTesting(onStateChange);
},
teardown: function() {
onStateChange = null;
- onProgressCallback = null;
onIncomingStanzaCallback = null;
strategy = null;
primary = null;
secondary = null;
+ logToServer = null;
},
- // Assert that the progress callback has been called exactly once
- // since the last call, and with the specified state.
- assertProgress: function(state) {
- ok(onProgressCallback.calledOnce);
- ok(onProgressCallback.calledWith(state));
- onProgressCallback.reset();
- }
});
test('primary succeeds; send & receive routed to it',
@@ -110,12 +114,13 @@ test('primary succeeds; send & receive routed to it',
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true);
primary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true);
- ok(!onProgressCallback.called);
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true);
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED);
equal(strategy.getJid(), 'primary-jid');
+ strategy.sendConnectionSetupResults(logToServer);
+ logToServer.assertProgress(
+ remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED);
+
ok(!onIncomingStanzaCallback.called);
primary.onIncomingStanzaCallback('test-receive-primary');
secondary.onIncomingStanzaCallback('test-receive-secondary');
@@ -147,12 +152,9 @@ test('primary fails; secondary succeeds; send & receive routed to it',
true);
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true);
- ok(!onProgressCallback.called);
ok(!secondary.connect.called);
primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false);
ok(secondary.connect.calledWith('server', 'username', 'authToken'));
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED);
secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED,
false);
@@ -160,12 +162,14 @@ test('primary fails; secondary succeeds; send & receive routed to it',
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true);
- ok(!onProgressCallback.called);
secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true);
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED);
equal(strategy.getJid(), 'secondary-jid');
+ strategy.sendConnectionSetupResults(logToServer);
+ logToServer.assertProgress(
+ remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED,
+ remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED);
+
ok(!onIncomingStanzaCallback.called);
primary.onIncomingStanzaCallback('test-receive-primary');
secondary.onIncomingStanzaCallback('test-receive-secondary');
@@ -189,19 +193,14 @@ test('primary fails; secondary fails',
primary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED,
true);
- ok(!onProgressCallback.called);
ok(!secondary.connect.called);
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true);
primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false);
ok(secondary.connect.calledWith('server', 'username', 'authToken'));
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED);
Jamie 2015/01/16 22:17:46 If both signaling strategies fail, it's not possib
secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED,
false);
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, false);
secondary.setStateForTesting(remoting.SignalStrategy.State.FAILED, true);
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.SECONDARY_FAILED);
}
);
@@ -217,22 +216,22 @@ test('primary times out; secondary succeeds',
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true);
this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1);
ok(!secondary.connect.called);
- ok(!onProgressCallback.called);
this.clock.tick(1);
ok(secondary.connect.calledWith('server', 'username', 'authToken'));
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT);
secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED,
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING,
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true);
secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true);
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED);
+ strategy.sendConnectionSetupResults(logToServer);
+
secondary.setStateForTesting(remoting.SignalStrategy.State.CLOSED, true);
primary.setStateForTesting(remoting.SignalStrategy.State.FAILED, false);
- this.assertProgress(
+
+ logToServer.assertProgress(
+ remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT,
+ remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED,
remoting.FallbackSignalStrategy.Progress.PRIMARY_FAILED_LATE);
}
);
@@ -249,18 +248,13 @@ test('primary times out; secondary fails',
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true);
this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_ - 1);
ok(!secondary.connect.called);
- ok(!onProgressCallback.called);
this.clock.tick(1);
ok(secondary.connect.calledWith('server', 'username', 'authToken'));
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT);
secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED,
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING,
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.FAILED, true);
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.SECONDARY_FAILED);
}
);
@@ -276,19 +270,20 @@ test('primary times out; secondary succeeds; primary succeeds late',
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING, true);
this.clock.tick(strategy.PRIMARY_CONNECT_TIMEOUT_MS_);
ok(secondary.connect.calledWith('server', 'username', 'authToken'));
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT);
secondary.setStateForTesting(remoting.SignalStrategy.State.NOT_CONNECTED,
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTING,
false);
secondary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, true);
secondary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, true);
- this.assertProgress(
- remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED);
+ strategy.sendConnectionSetupResults(logToServer);
+
primary.setStateForTesting(remoting.SignalStrategy.State.HANDSHAKE, false);
primary.setStateForTesting(remoting.SignalStrategy.State.CONNECTED, false);
- this.assertProgress(
+
+ logToServer.assertProgress(
+ remoting.FallbackSignalStrategy.Progress.PRIMARY_TIMED_OUT,
+ remoting.FallbackSignalStrategy.Progress.SECONDARY_SUCCEEDED,
remoting.FallbackSignalStrategy.Progress.PRIMARY_SUCCEEDED_LATE);
}
);
« remoting/webapp/crd/js/log_to_server.js ('K') | « remoting/webapp/crd/js/xmpp_connection.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698