1'use strict';
2const common = require('../common');
3const assert = require('assert');
4const http = require('http');
5
6const server = http.createServer(common.mustCall((req, res) => {
7  res.setHeader('X-Date', 'foo');
8  res.setHeader('X-Connection', 'bar');
9  res.setHeader('X-Content-Length', 'baz');
10  res.end();
11}));
12server.listen(0);
13
14server.on('listening', common.mustCall(() => {
15  const agent = new http.Agent({ port: server.address().port, maxSockets: 1 });
16  http.get({
17    port: server.address().port,
18    path: '/hello',
19    agent: agent
20  }, common.mustCall((res) => {
21    assert.strictEqual(res.statusCode, 200);
22    assert.strictEqual(res.headers['x-date'], 'foo');
23    assert.strictEqual(res.headers['x-connection'], 'bar');
24    assert.strictEqual(res.headers['x-content-length'], 'baz');
25    assert(res.headers.date);
26    assert.strictEqual(res.headers.connection, 'keep-alive');
27    assert.strictEqual(res.headers['content-length'], '0');
28    server.close();
29    agent.destroy();
30  }));
31}));
32