Fix test cases on windows and under proxy

This commit is contained in:
nakanishi
2018-07-27 15:40:55 +09:00
parent 4e549dd426
commit 66fca8710e
4 changed files with 44 additions and 43 deletions

View File

@@ -102,38 +102,13 @@ describe('HTTP Request Node', function() {
return "localhost:"+testSslPort+url;
}
function saveProxySetting() {
preEnvHttpProxyLowerCase = process.env.http_proxy;
preEnvHttpProxyUpperCase = process.env.HTTP_PROXY;
preEnvNoProxyLowerCase = process.env.no_proxy;
preEnvNoProxyUpperCase = process.env.NO_PROXY;
function deleteProxySetting() {
delete process.env.http_proxy;
delete process.env.HTTP_PROXY;
delete process.env.no_proxy;
delete process.env.NO_PROXY;
}
function restoreProxySetting() {
process.env.http_proxy = preEnvHttpProxyLowerCase;
process.env.HTTP_PROXY = preEnvHttpProxyUpperCase;
// On Windows, if environment variable of NO_PROXY that includes lower cases
// such as No_Proxy is replaced with NO_PROXY.
process.env.no_proxy = preEnvNoProxyLowerCase;
process.env.NO_PROXY = preEnvNoProxyUpperCase;
if (preEnvHttpProxyLowerCase == undefined){
delete process.env.http_proxy;
}
if (preEnvHttpProxyUpperCase == undefined){
delete process.env.HTTP_PROXY;
}
if (preEnvNoProxyLowerCase == undefined){
delete process.env.no_proxy;
}
if (preEnvNoProxyUpperCase == undefined){
delete process.env.NO_PROXY;
}
}
before(function(done) {
testApp = express();
testApp.use(bodyParser.raw({type:"*/*"}));
@@ -225,7 +200,35 @@ describe('HTTP Request Node', function() {
});
});
beforeEach(function() {
preEnvHttpProxyLowerCase = process.env.http_proxy;
preEnvHttpProxyUpperCase = process.env.HTTP_PROXY;
preEnvNoProxyLowerCase = process.env.no_proxy;
preEnvNoProxyUpperCase = process.env.NO_PROXY;
process.env.no_proxy = 'localhost';
process.env.NO_PROXY = 'localhost';
});
afterEach(function() {
process.env.http_proxy = preEnvHttpProxyLowerCase;
process.env.HTTP_PROXY = preEnvHttpProxyUpperCase;
// On Windows, if environment variable of NO_PROXY that includes lower cases
// such as No_Proxy is replaced with NO_PROXY.
process.env.no_proxy = preEnvNoProxyLowerCase;
process.env.NO_PROXY = preEnvNoProxyUpperCase;
if (preEnvHttpProxyLowerCase == undefined) {
delete process.env.http_proxy;
}
if (preEnvHttpProxyUpperCase == undefined) {
delete process.env.HTTP_PROXY;
}
if (preEnvNoProxyLowerCase == undefined) {
delete process.env.no_proxy;
}
if (preEnvNoProxyUpperCase == undefined) {
delete process.env.NO_PROXY;
}
helper.unload();
});
@@ -1060,13 +1063,12 @@ describe('HTTP Request Node', function() {
it('should use http_proxy', function(done) {
var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"POST",ret:"obj",url:getTestURL('/postInspect')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.http_proxy = "http://localhost:" + testProxyPort;
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',200);
msg.payload.should.have.property('headers');
@@ -1083,13 +1085,12 @@ describe('HTTP Request Node', function() {
it('should use http_proxy when environment variable is invalid', function(done) {
var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"POST",ret:"obj",url:getTestURL('/postInspect')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.http_proxy = "invalidvalue";
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',200);
msg.payload.should.have.property('headers');
@@ -1106,13 +1107,12 @@ describe('HTTP Request Node', function() {
it('should use HTTP_PROXY', function(done) {
var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"POST",ret:"obj",url:getTestURL('/postInspect')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.HTTP_PROXY = "http://localhost:" + testProxyPort;
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',200);
msg.payload.should.have.property('headers');
@@ -1129,14 +1129,13 @@ describe('HTTP Request Node', function() {
it('should use no_proxy', function(done) {
var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"POST",ret:"obj",url:getTestURL('/postInspect')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.http_proxy = "http://localhost:" + testProxyPort;
process.env.no_proxy = "foo,localhost";
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',200);
msg.payload.headers.should.not.have.property('x-testproxy-header','foobar');
@@ -1152,14 +1151,13 @@ describe('HTTP Request Node', function() {
it('should use NO_PROXY', function(done) {
var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"POST",ret:"obj",url:getTestURL('/postInspect')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.HTTP_PROXY = "http://localhost:" + testProxyPort;
process.env.NO_PROXY = "foo,localhost";
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',200);
msg.payload.headers.should.not.have.property('x-testproxy-header','foobar');
@@ -1198,13 +1196,12 @@ describe('HTTP Request Node', function() {
it('should authenticate on proxy server', function(done) {
var flow = [{id:"n1",type:"http request", wires:[["n2"]],method:"GET",ret:"obj",url:getTestURL('/proxyAuthenticate')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.http_proxy = "http://foouser:barpassword@localhost:" + testProxyPort;
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',200);
msg.payload.should.have.property('user', 'foouser');
@@ -1223,13 +1220,12 @@ describe('HTTP Request Node', function() {
it('should output an error when proxy authentication was failed', function(done) {
var flow = [{id:"n1",type:"http request", wires:[["n2"]],method:"GET",ret:"obj",url:getTestURL('/proxyAuthenticate')},
{id:"n2", type:"helper"}];
saveProxySetting();
deleteProxySetting();
process.env.http_proxy = "http://xxxuser:barpassword@localhost:" + testProxyPort;
helper.load(httpRequestNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
restoreProxySetting();
try {
msg.should.have.property('statusCode',407);
msg.headers.should.have.property('proxy-authenticate', 'BASIC realm="test"');