diff --git a/test/known_issues/test-http-path-contains-unicode.js b/test/known_issues/test-http-path-contains-unicode.js new file mode 100644 index 00000000000000..8f90a0d57f07b4 --- /dev/null +++ b/test/known_issues/test-http-path-contains-unicode.js @@ -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(); +});