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