test: add known_test request with Unicode in the URL

This test currently fails. It illustrates that Unicode in the URL does
not arrive intact to the server, there is silent data corruption along
the way at some point.

This test is for the issue https://github.com/nodejs/node/issues/13296.

PR-URL: https://github.com/nodejs/node/pull/13297
Reviewed-By: James M Snell <jasnell@gmail.com>
pull/13453/head
David D Lowe 2017-05-30 14:08:16 +01:00 committed by James M Snell
parent a9f798ebcc
commit 592d7d2f2a
1 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,41 @@
'use strict';
const common = require('../common');
// This test ensures that Unicode characters in the URL get handled correctly
// by `http`
// Refs: https://github.com/nodejs/node/issues/13296
const assert = require('assert');
const http = require('http');
const expected = '/café🐶';
assert.strictEqual(
expected,
'/caf\u{e9}\u{1f436}',
'Sanity check that string literal produced the expected string'
);
const server = http.createServer(common.mustCall(function(req, res) {
assert.strictEqual(req.url, expected);
req.on('data', common.mustCall(function() {
})).on('end', common.mustCall(function() {
server.close();
res.writeHead(200);
res.end('hello world\n');
}));
}));
server.listen(0, function() {
http.request({
port: this.address().port,
path: expected,
method: 'GET'
}, common.mustCall(function(res) {
res.resume();
})).on('error', function(e) {
console.log(e.message);
process.exit(1);
}).end();
});