Fix tests
This commit is contained in:
parent
3ea254d0db
commit
cc6a44f35d
4 changed files with 29 additions and 25 deletions
|
@ -38430,11 +38430,13 @@ TextSecureWebSocket = function (url) {
|
||||||
var reconnectSemaphore = 0;
|
var reconnectSemaphore = 0;
|
||||||
var reconnectTimeout = 1000;
|
var reconnectTimeout = 1000;
|
||||||
var socket;
|
var socket;
|
||||||
|
var calledClose = false;
|
||||||
var socketWrapper = {
|
var socketWrapper = {
|
||||||
onmessage : function() {},
|
onmessage : function() {},
|
||||||
onclose : function() {},
|
onclose : function() {},
|
||||||
onerror : function() {},
|
onerror : function() {},
|
||||||
getStatus : function() { return socket.readyState; }
|
getStatus : function() { return socket.readyState; },
|
||||||
|
close : function() { calledClose = true; }
|
||||||
};
|
};
|
||||||
var error;
|
var error;
|
||||||
|
|
||||||
|
@ -38455,7 +38457,7 @@ TextSecureWebSocket = function (url) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function onclose(e) {
|
function onclose(e) {
|
||||||
if (!error) {
|
if (!error && !calledClose) {
|
||||||
reconnectSemaphore--;
|
reconnectSemaphore--;
|
||||||
setTimeout(connect, reconnectTimeout);
|
setTimeout(connect, reconnectTimeout);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38429,11 +38429,13 @@ TextSecureWebSocket = function (url) {
|
||||||
var reconnectSemaphore = 0;
|
var reconnectSemaphore = 0;
|
||||||
var reconnectTimeout = 1000;
|
var reconnectTimeout = 1000;
|
||||||
var socket;
|
var socket;
|
||||||
|
var calledClose = false;
|
||||||
var socketWrapper = {
|
var socketWrapper = {
|
||||||
onmessage : function() {},
|
onmessage : function() {},
|
||||||
onclose : function() {},
|
onclose : function() {},
|
||||||
onerror : function() {},
|
onerror : function() {},
|
||||||
getStatus : function() { return socket.readyState; }
|
getStatus : function() { return socket.readyState; },
|
||||||
|
close : function() { calledClose = true; }
|
||||||
};
|
};
|
||||||
var error;
|
var error;
|
||||||
|
|
||||||
|
@ -38454,7 +38456,7 @@ TextSecureWebSocket = function (url) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function onclose(e) {
|
function onclose(e) {
|
||||||
if (!error) {
|
if (!error && !calledClose) {
|
||||||
reconnectSemaphore--;
|
reconnectSemaphore--;
|
||||||
setTimeout(connect, reconnectTimeout);
|
setTimeout(connect, reconnectTimeout);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,47 +15,45 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
describe('TextSecureWebSocket', function() {
|
describe('TextSecureWebSocket', function() {
|
||||||
var WebSocket = window.WebSocket;
|
var RealWebSocket = window.WebSocket;
|
||||||
before(function() { window.WebSocket = MockSocket; });
|
before(function() { window.WebSocket = MockSocket; });
|
||||||
after (function() { window.WebSocket = WebSocket; });
|
after (function() { window.WebSocket = RealWebSocket; });
|
||||||
it('connects a websocket', function(done) {
|
it('connects and disconnects', function(done) {
|
||||||
var mockServer = new MockServer('ws://localhost:8080');
|
var mockServer = new MockServer('ws://localhost:8080');
|
||||||
mockServer.on('connection', function(server) {
|
mockServer.on('connection', function(server) {
|
||||||
server.on('message', function(data) {
|
socket.close();
|
||||||
server.send('hello');
|
server.close();
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
var socket = new TextSecureWebSocket('ws://localhost:8080');
|
|
||||||
socket.onmessage = function(response) {
|
|
||||||
assert.strictEqual(response.data, 'hello');
|
|
||||||
done();
|
done();
|
||||||
};
|
});
|
||||||
socket.send('data');
|
var socket = new TextSecureWebSocket('ws://localhost:8080');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('sends a keepalive once a minute', function(done) {
|
it('sends a keepalive once a minute', function(done) {
|
||||||
this.timeout(60000);
|
this.timeout(60000);
|
||||||
var mockServer = new MockServer('ws://localhost:8080');
|
var mockServer = new MockServer('ws://localhost:8081');
|
||||||
mockServer.on('connection', function(server) {
|
mockServer.on('connection', function(server) {
|
||||||
server.on('message', function(data) {
|
server.on('message', function(data) {
|
||||||
var message = textsecure.protobuf.WebSocketMessage.decode(data);
|
var message = textsecure.protobuf.WebSocketMessage.decode(data);
|
||||||
assert.strictEqual(message.type, textsecure.protobuf.WebSocketMessage.Type.REQUEST);
|
assert.strictEqual(message.type, textsecure.protobuf.WebSocketMessage.Type.REQUEST);
|
||||||
assert.strictEqual(message.request.verb, 'GET');
|
assert.strictEqual(message.request.verb, 'GET');
|
||||||
assert.strictEqual(message.request.path, '/v1/keepalive');
|
assert.strictEqual(message.request.path, '/v1/keepalive');
|
||||||
|
socket.close();
|
||||||
|
server.close();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
var socket = new TextSecureWebSocket('ws://localhost:8080');
|
var socket = new TextSecureWebSocket('ws://localhost:8081');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('reconnects', function(done) {
|
it('reconnects', function(done) {
|
||||||
this.timeout(60000);
|
this.timeout(60000);
|
||||||
var mockServer = new MockServer('ws://localhost:8080');
|
var mockServer = new MockServer('ws://localhost:8082');
|
||||||
var socket = new TextSecureWebSocket('ws://localhost:8080');
|
var socket = new TextSecureWebSocket('ws://localhost:8082');
|
||||||
socket.onclose = function() {
|
socket.onclose = function() {
|
||||||
var mockServer = new MockServer('ws://localhost:8080');
|
var mockServer = new MockServer('ws://localhost:8082');
|
||||||
mockServer.on('connection', function() {
|
mockServer.on('connection', function(server) {
|
||||||
|
socket.close();
|
||||||
|
server.close();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,11 +28,13 @@ TextSecureWebSocket = function (url) {
|
||||||
var reconnectSemaphore = 0;
|
var reconnectSemaphore = 0;
|
||||||
var reconnectTimeout = 1000;
|
var reconnectTimeout = 1000;
|
||||||
var socket;
|
var socket;
|
||||||
|
var calledClose = false;
|
||||||
var socketWrapper = {
|
var socketWrapper = {
|
||||||
onmessage : function() {},
|
onmessage : function() {},
|
||||||
onclose : function() {},
|
onclose : function() {},
|
||||||
onerror : function() {},
|
onerror : function() {},
|
||||||
getStatus : function() { return socket.readyState; }
|
getStatus : function() { return socket.readyState; },
|
||||||
|
close : function() { calledClose = true; }
|
||||||
};
|
};
|
||||||
var error;
|
var error;
|
||||||
|
|
||||||
|
@ -53,7 +55,7 @@ TextSecureWebSocket = function (url) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function onclose(e) {
|
function onclose(e) {
|
||||||
if (!error) {
|
if (!error && !calledClose) {
|
||||||
reconnectSemaphore--;
|
reconnectSemaphore--;
|
||||||
setTimeout(connect, reconnectTimeout);
|
setTimeout(connect, reconnectTimeout);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue