node/test/parallel/test-http-allow-content-length-304.js
Arnaud Lefebvre 23d6c42495 http: allow Content-Length header for 304 responses
Fixes: https://github.com/nodejs/node/issues/31037

PR-URL: https://github.com/nodejs/node/pull/34835
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ricky Zhou <0x19951125@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
2020-09-11 16:42:01 -07:00

33 lines
889 B
JavaScript

'use strict';
const common = require('../common');
// This test ensures that the http-parser doesn't expect a body when
// a 304 Not Modified response has a non-zero Content-Length header
const assert = require('assert');
const http = require('http');
const server = http.createServer(common.mustCall((req, res) => {
res.setHeader('Content-Length', 11);
res.statusCode = 304;
res.end(null);
}));
server.listen(0, () => {
const request = http.request({
port: server.address().port,
});
request.on('response', common.mustCall((response) => {
response.on('data', common.mustNotCall());
response.on('aborted', common.mustNotCall());
response.on('end', common.mustCall(() => {
assert.strictEqual(response.headers['content-length'], '11');
assert.strictEqual(response.statusCode, 304);
server.close();
}));
}));
request.end(null);
});