Skip to content

Commit

Permalink
Add tests for testing forwarding of continuation frames
Browse files Browse the repository at this point in the history
This adds two tests that send payloads below and at the threshold for continuation frames. Using node 0.12.7 both tests pass. Using node 4.1.2 the test below the threshold passes but the other fails.
  • Loading branch information
glortho committed Oct 28, 2015
1 parent b5a6d0e commit 64fa520
Showing 1 changed file with 64 additions and 1 deletion.
65 changes: 64 additions & 1 deletion test/lib-http-proxy-test.js
Expand Up @@ -487,6 +487,69 @@ describe('lib/http-proxy.js', function() {
});
});
});

it('should forward frames with single frame payload (including on node 4.x)', function (done) {
var payload = Array(65529).join('0');
var ports = { source: gen.port, proxy: gen.port };
var proxy = httpProxy.createProxyServer({
target: 'ws://127.0.0.1:' + ports.source,
ws: true
}),
proxyServer = proxy.listen(ports.proxy),
destiny = new ws.Server({ port: ports.source }, function () {
var client = new ws('ws://127.0.0.1:' + ports.proxy);

client.on('open', function () {
client.send(payload);
});

client.on('message', function (msg) {
expect(msg).to.be('Hello over websockets');
client.close();
proxyServer.close();
destiny.close();
done();
});
});

destiny.on('connection', function (socket) {
socket.on('message', function (msg) {
expect(msg).to.be(payload);
socket.send('Hello over websockets');
});
});
});

})
it('should forward continuation frames with big payload (including on node 4.x)', function (done) {
var payload = Array(65530).join('0');
var ports = { source: gen.port, proxy: gen.port };
var proxy = httpProxy.createProxyServer({
target: 'ws://127.0.0.1:' + ports.source,
ws: true
}),
proxyServer = proxy.listen(ports.proxy),
destiny = new ws.Server({ port: ports.source }, function () {
var client = new ws('ws://127.0.0.1:' + ports.proxy);

client.on('open', function () {
client.send(payload);
});

client.on('message', function (msg) {
expect(msg).to.be('Hello over websockets');
client.close();
proxyServer.close();
destiny.close();
done();
});
});

destiny.on('connection', function (socket) {
socket.on('message', function (msg) {
expect(msg).to.be(payload);
socket.send('Hello over websockets');
});
});
});
});
});

0 comments on commit 64fa520

Please sign in to comment.