1'use strict';
2const common = require('../common');
3
4// This test ensures that the http-parser doesn't expect a body when
5// a 304 Not Modified response has a non-zero Content-Length header
6
7const assert = require('assert');
8const http = require('http');
9
10const server = http.createServer(common.mustCall((req, res) => {
11  res.setHeader('Content-Length', 11);
12  res.statusCode = 304;
13  res.end(null);
14}));
15
16server.listen(0, () => {
17  const request = http.request({
18    port: server.address().port,
19  });
20
21  request.on('response', common.mustCall((response) => {
22    response.on('data', common.mustNotCall());
23    response.on('aborted', common.mustNotCall());
24    response.on('end', common.mustCall(() => {
25      assert.strictEqual(response.headers['content-length'], '11');
26      assert.strictEqual(response.statusCode, 304);
27      server.close();
28    }));
29  }));
30
31  request.end(null);
32});
33