diff --git a/test/lib-http-proxy-common-test.js b/test/lib-http-proxy-common-test.js index 98313ff..01af2f7 100644 --- a/test/lib-http-proxy-common-test.js +++ b/test/lib-http-proxy-common-test.js @@ -59,6 +59,49 @@ describe('lib/http-proxy/common.js', function () { expect(outgoing.headers.connection).to.eql('upgrade'); }); + it('should not override agentless connection: contains upgrade', function () { + var outgoing = {}; + common.setupOutgoing(outgoing, + { + agent: undefined, + target: { + host : 'hey', + hostname : 'how', + socketPath: 'are', + port : 'you', + }, + headers: {'connection': 'keep-alive, upgrade'}, // this is what Firefox sets + }, + { + method : 'i', + url : 'am', + headers : {'pro':'xy','overwritten':false} + }); + expect(outgoing.headers.connection).to.eql('keep-alive, upgrade'); + }); + + it('should override agentless connection: contains improper upgrade', function () { + // sanity check on upgrade regex + var outgoing = {}; + common.setupOutgoing(outgoing, + { + agent: undefined, + target: { + host : 'hey', + hostname : 'how', + socketPath: 'are', + port : 'you', + }, + headers: {'connection': 'keep-alive, not upgrade'}, + }, + { + method : 'i', + url : 'am', + headers : {'pro':'xy','overwritten':false} + }); + expect(outgoing.headers.connection).to.eql('close'); + }); + it('should override agentless non-upgrade header to close', function () { var outgoing = {}; common.setupOutgoing(outgoing,