Skip to content

Commit

Permalink
test: add test for websocket secret verification in debugger
Browse files Browse the repository at this point in the history
  • Loading branch information
Trott committed Jul 11, 2021
1 parent 2387c02 commit 5e5edc5
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions test/parallel/test-debugger-websocket-secret-mismatch.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
'use strict';

const common = require('../common');

const assert = require('assert');
const childProcess = require('child_process');
const http = require('http');

let port;

const server = http.createServer(common.mustCall((req, res) => {
if (req.url.startsWith('/json')) {
res.writeHead(200);
res.end(`[ {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:${port}/devtools/page/DAB7FB6187B554E10B0BD18821265734",
"cid": "DAB7FB6187B554E10B0BD18821265734",
"title": "Fhqwhgads",
"type": "page",
"url": "https://www.example.com/",
"webSocketDebuggerUrl": "ws://localhost:${port}/devtools/page/DAB7FB6187B554E10B0BD18821265734"
} ]`);
} else {
res.setHeader('Upgrade', 'websocket');
res.setHeader('Connection', 'Upgrade');
res.setHeader('Sec-WebSocket-Accept', 'fhqwhgads');
res.setHeader('Sec-WebSocket-Protocol', 'chat');
res.writeHead(101);
res.end();
}
}, 2)).listen(0, common.mustCall(() => {
port = server.address().port;
const proc =
childProcess.spawn(process.execPath, ['inspect', `localhost:${port}`]);

let stdout = '';
proc.stdout.on('data', (data) => {
stdout += data.toString();
assert.doesNotMatch(stdout, /\bok\b/);
});

let stderr = '';
proc.stderr.on('data', (data) => {
stderr += data.toString();
});

proc.on('exit', common.mustCall((code, signal) => {
assert.match(stderr, /\bWebsocket secret mismatch\b/);
assert.notStrictEqual(code, 0);
assert.strictEqual(signal, null);
server.close();
}));
}));

0 comments on commit 5e5edc5

Please sign in to comment.