summaryrefslogtreecommitdiff
path: root/test/parallel/test-http-double-content-length.js
blob: 53f924d652dd75ce220d6f8899b31db6184d3db4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
'use strict';

const common = require('../common');
const http = require('http');
const assert = require('assert');

// The callback should never be invoked because the server
// should respond with a 400 Client Error when a double
// Content-Length header is received.
const server = http.createServer(common.mustNotCall());
server.on('clientError', common.mustCall((err, socket) => {
  assert(/^Parse Error/.test(err.message));
  assert.strictEqual(err.code, 'HPE_UNEXPECTED_CONTENT_LENGTH');
  socket.destroy();
}));

server.listen(0, () => {
  const req = http.get({
    port: server.address().port,
    // Send two content-length header values.
    headers: { 'Content-Length': [1, 2] }
  }, common.mustNotCall('an error should have occurred'));
  req.on('error', common.mustCall(() => {
    server.close();
  }));
});