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(function() { 18 })).on('end', common.mustCall(function() { 19 server.close(); 20 res.writeHead(200); 21 res.end('hello world\n'); 22 })); 23 24})); 25 26server.listen(0, () => { 27 http.request({ 28 port: server.address().port, 29 path: expected, 30 method: 'GET' 31 }, common.mustCall(function(res) { 32 res.resume(); 33 })).on('error', function(e) { 34 console.log(e.message); 35 process.exit(1); 36 }).end(); 37}); 38