1'use strict'; 2const common = require('../common'); 3 4// This test ensures that Unicode characters in the URL get handled correctly 5// by `http` 6// Refs: https://github.com/nodejs/node/issues/13296 7 8const assert = require('assert'); 9const http = require('http'); 10 11const expected = '/café'; 12 13assert.strictEqual(expected, '/caf\u{e9}\u{1f436}'); 14 15const server = http.createServer(common.mustCall(function(req, res) { 16 assert.strictEqual(req.url, expected); 17 req.on('data', common.mustCall()).on('end', common.mustCall(function() { 18 server.close(); 19 res.writeHead(200); 20 res.end('hello world\n'); 21 })); 22 23})); 24 25server.listen(0, () => { 26 http.request({ 27 port: server.address().port, 28 path: expected, 29 method: 'GET', 30 }, common.mustCall(function(res) { 31 res.resume(); 32 })).on('error', function(e) { 33 console.log(e.message); 34 process.exit(1); 35 }).end(); 36}); 37