1'use strict'; 2const common = require('../common'); 3const assert = require('assert'); 4const http = require('http'); 5 6{ 7 const server = http.createServer({ 8 requireHostHeader: false, 9 joinDuplicateHeaders: true 10 }, common.mustCall((req, res) => { 11 assert.strictEqual(req.headers.authorization, '1, 2'); 12 assert.strictEqual(req.headers.cookie, 'foo; bar'); 13 res.writeHead(200, ['authorization', '3', 'authorization', '4', 'cookie', 'foo', 'cookie', 'bar']); 14 res.end(); 15 })); 16 17 server.listen(0, common.mustCall(() => { 18 http.get({ 19 port: server.address().port, 20 headers: ['authorization', '1', 'authorization', '2', 'cookie', 'foo', 'cookie', 'bar'], 21 joinDuplicateHeaders: true 22 }, (res) => { 23 assert.strictEqual(res.statusCode, 200); 24 assert.strictEqual(res.headers.authorization, '3, 4'); 25 assert.strictEqual(res.headers.cookie, 'foo; bar'); 26 res.resume().on('end', common.mustCall(() => { 27 server.close(); 28 })); 29 }); 30 })); 31} 32 33{ 34 // Server joinDuplicateHeaders false 35 const server = http.createServer({ 36 requireHostHeader: false, 37 joinDuplicateHeaders: false 38 }, common.mustCall((req, res) => { 39 assert.strictEqual(req.headers.authorization, '1'); // non joined value 40 res.writeHead(200, ['authorization', '3', 'authorization', '4']); 41 res.end(); 42 })); 43 44 server.listen(0, common.mustCall(() => { 45 http.get({ 46 port: server.address().port, 47 headers: ['authorization', '1', 'authorization', '2'], 48 joinDuplicateHeaders: true 49 }, (res) => { 50 assert.strictEqual(res.statusCode, 200); 51 assert.strictEqual(res.headers.authorization, '3, 4'); 52 res.resume().on('end', common.mustCall(() => { 53 server.close(); 54 })); 55 }); 56 })); 57} 58 59{ 60 // Client joinDuplicateHeaders false 61 const server = http.createServer({ 62 requireHostHeader: false, 63 joinDuplicateHeaders: true 64 }, common.mustCall((req, res) => { 65 assert.strictEqual(req.headers.authorization, '1, 2'); 66 res.writeHead(200, ['authorization', '3', 'authorization', '4']); 67 res.end(); 68 })); 69 70 server.listen(0, common.mustCall(() => { 71 http.get({ 72 port: server.address().port, 73 headers: ['authorization', '1', 'authorization', '2'], 74 joinDuplicateHeaders: false 75 }, (res) => { 76 assert.strictEqual(res.statusCode, 200); 77 assert.strictEqual(res.headers.authorization, '3'); // non joined value 78 res.resume().on('end', common.mustCall(() => { 79 server.close(); 80 })); 81 }); 82 })); 83} 84