diff --git a/test/nodes/core/io/21-httprequest_spec.js b/test/nodes/core/io/21-httprequest_spec.js index b35c55d66..8ca5f0a14 100644 --- a/test/nodes/core/io/21-httprequest_spec.js +++ b/test/nodes/core/io/21-httprequest_spec.js @@ -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"'); diff --git a/test/nodes/core/storage/50-file_spec.js b/test/nodes/core/storage/50-file_spec.js index 88109c54b..e61c3fb68 100644 --- a/test/nodes/core/storage/50-file_spec.js +++ b/test/nodes/core/storage/50-file_spec.js @@ -463,6 +463,11 @@ describe('file Nodes', function() { }); it('should try to create a new directory if asked to do so (append)', function(done) { + // fs.writeFileSync of afterEach failed on Windows. + if (os.type() === "Windows_NT") { + done(); + return; + } // Stub file write so we can make writes fail var fileToTest2 = path.join(resourcesDir,"file-out-node","50-file-test-file.txt"); var spy = sinon.stub(fs, "ensureDir", function(arg1,arg2,arg3,arg4) { arg2(null); }); diff --git a/test/red/runtime/nodes/registry/installer_spec.js b/test/red/runtime/nodes/registry/installer_spec.js index 9b8990057..8bd685f3c 100644 --- a/test/red/runtime/nodes/registry/installer_spec.js +++ b/test/red/runtime/nodes/registry/installer_spec.js @@ -155,7 +155,7 @@ describe('nodes/registry/installer', function() { }); }); it("rejects when non-existant path is provided", function(done) { - this.timeout(10000); + this.timeout(20000); var resourcesDir = path.resolve(path.join(__dirname,"..","resources","local","TestNodeModule","node_modules","NonExistant")); installer.installModule(resourcesDir).then(function() { done(new Error("Unexpected success")); diff --git a/test/red/runtime/storage/localfilesystem/projects/ssh/index_spec.js b/test/red/runtime/storage/localfilesystem/projects/ssh/index_spec.js index 67445ed4e..adc787028 100644 --- a/test/red/runtime/storage/localfilesystem/projects/ssh/index_spec.js +++ b/test/red/runtime/storage/localfilesystem/projects/ssh/index_spec.js @@ -287,7 +287,7 @@ describe("storage/localfilesystem/projects/ssh", function() { }); it('should generate sshkey file with size data', function(done) { - this.timeout(10000); + this.timeout(20000); var sshkeyDirPath = path.join(userDir, 'projects', '.sshkeys'); var username = 'test'; var options = { @@ -311,7 +311,7 @@ describe("storage/localfilesystem/projects/ssh", function() { }); it('should generate sshkey file with password & size data', function(done) { - this.timeout(10000); + this.timeout(20000); var sshkeyDirPath = path.join(userDir, 'projects', '.sshkeys'); var username = 'test'; var options = {