mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	Fixed the problems that were caused by timing issue
This commit is contained in:
		| @@ -28,8 +28,13 @@ functionNode.prototype.setFunction = function(func) { | |||||||
|     browser.click('#node-input-func-editor'); |     browser.click('#node-input-func-editor'); | ||||||
|     browser.keys(['Control', 'Home', 'Control']); |     browser.keys(['Control', 'Home', 'Control']); | ||||||
|     for (var i = 0; i < func.length; i++) { |     for (var i = 0; i < func.length; i++) { | ||||||
|         browser.keys([func.substr(i, 1)]); |         browser.keys([func.charAt(i)]); | ||||||
|     } |     } | ||||||
|  |     // Delete the unnecessary code that ace editor does the autocompletion. | ||||||
|  |     browser.keys(['Control', 'Shift', 'End', 'Shift', 'Control']); | ||||||
|  |     browser.keys(['Delete']); | ||||||
|  |     // Need to wait until ace editor correctly checks the syntax. | ||||||
|  |     browser.pause(50); | ||||||
| } | } | ||||||
|  |  | ||||||
| module.exports = functionNode; | module.exports = functionNode; | ||||||
|   | |||||||
| @@ -25,11 +25,11 @@ function templateNode(id) { | |||||||
| util.inherits(templateNode, nodePage); | util.inherits(templateNode, nodePage); | ||||||
|  |  | ||||||
| templateNode.prototype.setSyntax = function(syntax) { | templateNode.prototype.setSyntax = function(syntax) { | ||||||
|     browser.selectByValue('#node-input-syntax', syntax); |     browser.selectWithWait('#node-input-syntax', syntax); | ||||||
| } | } | ||||||
|  |  | ||||||
| templateNode.prototype.setFormat = function(format) { | templateNode.prototype.setFormat = function(format) { | ||||||
|     browser.selectByValue('#node-input-format', format); |     browser.selectWithWait('#node-input-format', format); | ||||||
| } | } | ||||||
|  |  | ||||||
| templateNode.prototype.setTemplate = function(template) { | templateNode.prototype.setTemplate = function(template) { | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ function httpinNode(id) { | |||||||
| util.inherits(httpinNode, nodePage); | util.inherits(httpinNode, nodePage); | ||||||
|  |  | ||||||
| httpinNode.prototype.setMethod = function(method) { | httpinNode.prototype.setMethod = function(method) { | ||||||
|     browser.selectByValue('#node-input-method', method); |     browser.selectWithWait('#node-input-method', method); | ||||||
| } | } | ||||||
|  |  | ||||||
| httpinNode.prototype.setUrl = function(url) { | httpinNode.prototype.setUrl = function(url) { | ||||||
|   | |||||||
| @@ -29,11 +29,11 @@ httpRequestNode.prototype.setUrl = function(url) { | |||||||
| } | } | ||||||
|  |  | ||||||
| httpRequestNode.prototype.setMethod = function(method) { | httpRequestNode.prototype.setMethod = function(method) { | ||||||
|     browser.selectByValue('#node-input-method', method); |     browser.selectWithWait('#node-input-method', method); | ||||||
| } | } | ||||||
|  |  | ||||||
| httpRequestNode.prototype.setReturn = function(ret) { | httpRequestNode.prototype.setReturn = function(ret) { | ||||||
|     browser.selectByValue('#node-input-ret', ret); |     browser.selectWithWait('#node-input-ret', ret); | ||||||
| } | } | ||||||
|  |  | ||||||
| module.exports = httpRequestNode; | module.exports = httpRequestNode; | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ var ptType = { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| function setT(t, index) { | function setT(t, index) { | ||||||
|     browser.selectByValue('//*[@id="node-input-rule-container"]/li[' + index + ']/div/div[1]/select', t); |     browser.selectWithWait('//*[@id="node-input-rule-container"]/li[' + index + ']/div/div[1]/select', t); | ||||||
| } | } | ||||||
|  |  | ||||||
| // It is better to create a function whose input value is the object type in the future, | // It is better to create a function whose input value is the object type in the future, | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ function rangeNode(id) { | |||||||
| util.inherits(rangeNode, nodePage); | util.inherits(rangeNode, nodePage); | ||||||
|  |  | ||||||
| rangeNode.prototype.setAction = function(action) { | rangeNode.prototype.setAction = function(action) { | ||||||
|     browser.selectByValue('#node-input-action', action); |     browser.selectWithWait('#node-input-action', action); | ||||||
| } | } | ||||||
|  |  | ||||||
| rangeNode.prototype.setRange = function(minin, maxin, minout, maxout) { | rangeNode.prototype.setRange = function(minin, maxin, minout, maxout) { | ||||||
|   | |||||||
| @@ -38,6 +38,12 @@ function init() { | |||||||
|         var ret = browser.getText(selector); |         var ret = browser.getText(selector); | ||||||
|         return ret; |         return ret; | ||||||
|     }, false); |     }, false); | ||||||
|  |  | ||||||
|  |     browser.addCommand("selectWithWait", function(selector, value) { | ||||||
|  |         browser.waitForVisible(selector, 5000); | ||||||
|  |         var ret = browser.selectByValue(selector, value); | ||||||
|  |         return ret; | ||||||
|  |     }, false); | ||||||
| } | } | ||||||
|  |  | ||||||
|  module.exports = { |  module.exports = { | ||||||
|   | |||||||
| @@ -185,7 +185,7 @@ describe('cookbook', function() { | |||||||
|             var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight); |             var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight); | ||||||
|  |  | ||||||
|             changeNode.edit(); |             changeNode.edit(); | ||||||
|             changeNode.ruleSet("headers", "msg", "{\"user-agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64)\"}", "json"); |             changeNode.ruleSet("headers", "msg", '{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"}', "json"); | ||||||
|             changeNode.clickOk(); |             changeNode.clickOk(); | ||||||
|  |  | ||||||
|             httpRequestNode.edit(); |             httpRequestNode.edit(); | ||||||
| @@ -280,7 +280,7 @@ describe('cookbook', function() { | |||||||
|             templateNode.edit(); |             templateNode.edit(); | ||||||
|             templateNode.setSyntax("mustache"); |             templateNode.setSyntax("mustache"); | ||||||
|             templateNode.setFormat("handlebars"); |             templateNode.setFormat("handlebars"); | ||||||
|             templateNode.setTemplate("{ \"Hello\": \"World\" }"); |             templateNode.setTemplate('{ "Hello": "World" }'); | ||||||
|             templateNode.clickOk(); |             templateNode.clickOk(); | ||||||
|  |  | ||||||
|             changeNode.edit(); |             changeNode.edit(); | ||||||
| @@ -440,7 +440,7 @@ describe('cookbook', function() { | |||||||
|             injectNode.clickOk(); |             injectNode.clickOk(); | ||||||
|  |  | ||||||
|             changeNode.edit(); |             changeNode.edit(); | ||||||
|             changeNode.ruleSet("headers", "msg", "{\"content-type\":\"application/x-www-form-urlencoded\"}", "json"); |             changeNode.ruleSet("headers", "msg", '{"content-type":"application/x-www-form-urlencoded"}', "json"); | ||||||
|             changeNode.clickOk(); |             changeNode.clickOk(); | ||||||
|  |  | ||||||
|             httpRequestNode.edit(); |             httpRequestNode.edit(); | ||||||
| @@ -486,11 +486,11 @@ describe('cookbook', function() { | |||||||
|             var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight); |             var debugNode = workspace.addNode("debug", nodeWidth * 3, nodeHeight); | ||||||
|  |  | ||||||
|             injectNode.edit() |             injectNode.edit() | ||||||
|             injectNode.setPayload("json", "{\"name\":\"Nick\"}"); |             injectNode.setPayload("json", '{"name":"Nick"}'); | ||||||
|             injectNode.clickOk(); |             injectNode.clickOk(); | ||||||
|  |  | ||||||
|             changeNode.edit(); |             changeNode.edit(); | ||||||
|             changeNode.ruleSet("headers", "msg", "{\"content-type\":\"application/json\"}", "json"); |             changeNode.ruleSet("headers", "msg", '{"content-type":"application/json"}', "json"); | ||||||
|             changeNode.clickOk(); |             changeNode.clickOk(); | ||||||
|  |  | ||||||
|             httpRequestNode.edit(); |             httpRequestNode.edit(); | ||||||
| @@ -531,13 +531,13 @@ describe('cookbook', function() { | |||||||
|             httpinNodeFormat.clickOk(); |             httpinNodeFormat.clickOk(); | ||||||
|  |  | ||||||
|             functionNodeFormat.edit(); |             functionNodeFormat.edit(); | ||||||
|             functionNodeFormat.setFunction("msg.payload = JSON.stringify(msg.req.cookies,null,4);"); |             functionNodeFormat.setFunction("msg.payload = JSON.stringify(msg.req.cookies,null,4);\nreturn msg;"); | ||||||
|             functionNodeFormat.clickOk(); |             functionNodeFormat.clickOk(); | ||||||
|  |  | ||||||
|             templateNode.edit(); |             templateNode.edit(); | ||||||
|             templateNode.setSyntax("mustache"); |             templateNode.setSyntax("mustache"); | ||||||
|             templateNode.setFormat("handlebars"); |             templateNode.setFormat("handlebars"); | ||||||
|             templateNode.setTemplate("<html>\n<head></head>\n<body>\n<h1>Cookies</h1>\n<p></p><a href=\"hello-cookie/add\">Add a cookie</a> • <a href=\"hello-cookie/clear\">Clear cookies</a></p>\n<pre>{{ payload }}</pre>\n</body>\n</html>"); |             templateNode.setTemplate('<html>\n<head></head>\n<body>\n<h1>Cookies</h1>\n<p></p><a href="hello-cookie/add">Add a cookie</a> • <a href="hello-cookie/clear">Clear cookies</a></p>\n<pre>{{ payload }}</pre>\n</body>\n</html>'); | ||||||
|             templateNode.clickOk(); |             templateNode.clickOk(); | ||||||
|  |  | ||||||
|             httpinNodeFormat.connect(functionNodeFormat); |             httpinNodeFormat.connect(functionNodeFormat); | ||||||
| @@ -550,7 +550,7 @@ describe('cookbook', function() { | |||||||
|             httpinNodeAdd.clickOk(); |             httpinNodeAdd.clickOk(); | ||||||
|  |  | ||||||
|             functionNodeAdd.edit(); |             functionNodeAdd.edit(); | ||||||
|             functionNodeAdd.setFunction("msg.cookies = { };\n msg.cookies[\"demo-\"+(Math.floor(Math.random()*1000))] = Date.now();"); |             functionNodeAdd.setFunction('msg.cookies = { };\n msg.cookies["demo-"+(Math.floor(Math.random()*1000))] = Date.now();\nreturn msg;'); | ||||||
|             functionNodeAdd.clickOk(); |             functionNodeAdd.clickOk(); | ||||||
|  |  | ||||||
|             changeNode.edit(); |             changeNode.edit(); | ||||||
| @@ -571,7 +571,7 @@ describe('cookbook', function() { | |||||||
|             httpinNodeClear.clickOk(); |             httpinNodeClear.clickOk(); | ||||||
|  |  | ||||||
|             functionNodeClear.edit(); |             functionNodeClear.edit(); | ||||||
|             functionNodeClear.setFunction("var cookieNames = Object.keys(msg.req.cookies).filter(function(cookieName) { return /^demo-/.test(cookieName);});\nmsg.cookies = {};\n\ncookieNames.forEach(function(cookieName) {\n    msg.cookies[cookieName] = null;\n});\n\n"); |             functionNodeClear.setFunction("var cookieNames = Object.keys(msg.req.cookies).filter(function(cookieName) { return /^demo-/.test(cookieName);});\nmsg.cookies = {};\n\ncookieNames.forEach(function(cookieName) {\n    msg.cookies[cookieName] = null;\n});\nreturn msg;\n"); | ||||||
|             functionNodeClear.clickOk(); |             functionNodeClear.clickOk(); | ||||||
|  |  | ||||||
|             httpinNodeClear.connect(functionNodeClear); |             httpinNodeClear.connect(functionNodeClear); | ||||||
|   | |||||||
| @@ -364,11 +364,11 @@ describe('cookbook', function() { | |||||||
|             templateNode.edit(); |             templateNode.edit(); | ||||||
|             templateNode.setSyntax("mustache"); |             templateNode.setSyntax("mustache"); | ||||||
|             templateNode.setFormat("handlebars"); |             templateNode.setFormat("handlebars"); | ||||||
|             templateNode.setTemplate("{\"title\": \"Hello\"}"); |             templateNode.setTemplate('{"title": "Hello"}'); | ||||||
|             templateNode.clickOk(); |             templateNode.clickOk(); | ||||||
|  |  | ||||||
|             changeNodeSetHeader.edit(); |             changeNodeSetHeader.edit(); | ||||||
|             changeNodeSetHeader.ruleSet("headers", "msg", "{\"content-type\":\"application/json\"}", "json"); |             changeNodeSetHeader.ruleSet("headers", "msg", '{"content-type":"application/json"}', "json"); | ||||||
|             changeNodeSetHeader.clickOk(); |             changeNodeSetHeader.clickOk(); | ||||||
|  |  | ||||||
|             httpinNode.connect(templateNode); |             httpinNode.connect(templateNode); | ||||||
| @@ -413,7 +413,7 @@ describe('cookbook', function() { | |||||||
|             var debugNode = workspace.addNode("debug", nodeWidth * 3); |             var debugNode = workspace.addNode("debug", nodeWidth * 3); | ||||||
|  |  | ||||||
|             functionNode.edit(); |             functionNode.edit(); | ||||||
|             functionNode.setFunction("msg.payload = \"data to post\";"); |             functionNode.setFunction('msg.payload = "data to post";\nreturn msg;'); | ||||||
|             functionNode.clickOk(); |             functionNode.clickOk(); | ||||||
|  |  | ||||||
|             httpRequetNode.edit(); |             httpRequetNode.edit(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user