diff --git a/test/_test.js b/test/_test.js
index 119c07aa4..bd093e8ab 100644
--- a/test/_test.js
+++ b/test/_test.js
@@ -45,6 +45,7 @@ window.assert = chai.assert;
window.Whisper = window.Whisper || {};
window.Whisper.Database = window.Whisper.Database || {};
Whisper.Database.id = 'test';
+Whisper.events = _.clone(Backbone.Events);
/*
* global helpers for tests
diff --git a/test/index.html b/test/index.html
index f5f36b2ea..0c745c632 100644
--- a/test/index.html
+++ b/test/index.html
@@ -487,8 +487,8 @@
+
+
+
-
@@ -542,7 +549,6 @@
-
diff --git a/test/test.js b/test/test.js
index 99daff403..16a130860 100644
--- a/test/test.js
+++ b/test/test.js
@@ -12257,6 +12257,7 @@ window.assert = chai.assert;
window.Whisper = window.Whisper || {};
window.Whisper.Database = window.Whisper.Database || {};
Whisper.Database.id = 'test';
+Whisper.events = _.clone(Backbone.Events);
/*
* global helpers for tests
diff --git a/test/views/network_status_view_test.js b/test/views/network_status_view_test.js
index 2fd09e927..c2e48ff21 100644
--- a/test/views/network_status_view_test.js
+++ b/test/views/network_status_view_test.js
@@ -11,6 +11,7 @@ describe('NetworkStatusView', function() {
before(function() {
oldGetSocketStatus = window.getSocketStatus;
/* chrome i18n support is missing in 'regular' webpages */
+ window.chrome = window.chrome || {};
window.chrome.i18n = { getMessage: function(message, args) {
// translationMessageName-arg1-arg2
return _([message, args]).chain().flatten().compact().value().join('-');
@@ -41,13 +42,13 @@ describe('NetworkStatusView', function() {
networkStatusView.navigatorOnLine = function() { return false; };
});
it('should be interrupted', function() {
- networkStatusView.render();
+ networkStatusView.update();
var status = networkStatusView.getNetworkStatus();
assert(status.hasInterruption);
assert.equal(status.instructions, "checkNetworkConnection");
});
it('should display an offline message', function() {
- networkStatusView.render();
+ networkStatusView.update();
assert.match(networkStatusView.$el.text(), /offline/);
});
it('should override socket status', function() {
@@ -56,15 +57,51 @@ describe('NetworkStatusView', function() {
WebSocket.CLOSING,
WebSocket.CLOSED]).map(function(socketStatusVal) {
socketStatus = socketStatusVal;
- networkStatusView.render();
+ networkStatusView.update();
assert.match(networkStatusView.$el.text(), /offline/);
});
});
+ it('should override registration status', function() {
+ Whisper.Registration.remove();
+ networkStatusView.update();
+ assert.match(networkStatusView.$el.text(), /offline/);
+ });
+ });
+ describe('network status when registration is not done', function() {
+ beforeEach(function() {
+ Whisper.Registration.remove();
+ });
+ it('should display an unlinked message', function() {
+ networkStatusView.update();
+ assert.match(networkStatusView.$el.text(), /unlinked/);
+ });
+ it('should override socket status', function() {
+ _([WebSocket.CONNECTING,
+ WebSocket.OPEN,
+ WebSocket.CLOSING,
+ WebSocket.CLOSED]).map(function(socketStatusVal) {
+ socketStatus = socketStatusVal;
+ networkStatusView.update();
+ assert.match(networkStatusView.$el.text(), /unlinked/);
+ });
+ });
+ });
+ describe('network status when registration is done', function() {
+ beforeEach(function() {
+ networkStatusView.navigatorOnLine = function() { return true; };
+ Whisper.Registration.markDone();
+ networkStatusView.update();
+ });
+ it('should not display an unlinked message', function() {
+ networkStatusView.update();
+ assert.notMatch(networkStatusView.$el.text(), /unlinked/);
+ });
});
describe('network status when socket is connecting', function() {
beforeEach(function() {
+ Whisper.Registration.markDone();
socketStatus = WebSocket.CONNECTING;
- networkStatusView.render();
+ networkStatusView.update();
});
it('it should display a connecting string if connecting and not in the connecting grace period', function() {
networkStatusView.withinConnectingGracePeriod = false;
@@ -100,7 +137,7 @@ describe('NetworkStatusView', function() {
_([WebSocket.CLOSED, WebSocket.CLOSING]).map(function(socketStatusVal) {
it('should be interrupted', function() {
socketStatus = socketStatusVal;
- networkStatusView.render();
+ networkStatusView.update();
var status = networkStatusView.getNetworkStatus();
assert(status.hasInterruption);
});
@@ -111,7 +148,7 @@ describe('NetworkStatusView', function() {
beforeEach(function() {
socketStatus = WebSocket.CLOSED;
networkStatusView.setSocketReconnectInterval(61000);
- networkStatusView.render();
+ networkStatusView.update();
});
it('should format the message based on the socketReconnectWaitDuration property', function() {
assert.equal(networkStatusView.socketReconnectWaitDuration.asSeconds(), 61);