X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Fphantom%2Fevaluate.js;h=27a2d717799d583c780731e3433cc2540db135df;hb=b36bc57a37bde111fb57e3b1ef184b5ec28e1d93;hp=309b9a8b6c181bbcf119e95e79b160e6e013ff15;hpb=af744f72a162d46f45cb42bfec3e9028c3aa206d;p=mkws-moved-to-github.git diff --git a/test/phantom/evaluate.js b/test/phantom/evaluate.js index 309b9a8..27a2d71 100644 --- a/test/phantom/evaluate.js +++ b/test/phantom/evaluate.js @@ -14,14 +14,21 @@ if (system.args.length === 1) { } var url = system.args[1]; +var run_time = 8; // poll up to seconds +if (system.args[2] && parseFloat(system.args[2]) > 0) { + run_time = parseFloat(system.args[2]); +} + page.viewportSize = { width: 1200, height: 1000 }; -var run_time = 8; // poll up to seconds -if (system.args[2] && parseFloat(system.args[2]) > 0){ - run_time = parseFloat(system.args[2] ); +// 0: silent, 1: some infos, 2: display console.log() output +var debug = 2; +if (system.env['DEBUG'] != 'undefined' && parseInt(system.env['DEBUG']) != NaN) { + debug = system.env['DEBUG']; + if (debug > 0) console.log("reset debug level to: " + debug); } /************************/ @@ -29,11 +36,10 @@ if (system.args[2] && parseFloat(system.args[2]) > 0){ function wait_for_jasmine(checkFx, readyFx, failFx, timeout) { var max_timeout = timeout ? timeout : run_time * 1000, start = new Date().getTime(), - result, - condition = false; + result, condition = false; - var interval = setInterval(function() { - console.log("."); + var interval = setInterval(function () { + if (debug == 1) console.log("."); // success if (condition) { @@ -45,7 +51,7 @@ function wait_for_jasmine(checkFx, readyFx, failFx, timeout) { } // timeout - else if ( new Date().getTime() - start >= max_timeout ) { + else if (new Date().getTime() - start >= max_timeout) { result.time = (new Date().getTime() - start); failFx(result); phantom.exit(1); @@ -54,23 +60,33 @@ function wait_for_jasmine(checkFx, readyFx, failFx, timeout) { // checking else { result = checkFx(); - if (result) - condition = result.mkws.jasmine_done; + if (result) condition = result.mkws.jasmine_done; } }, 500); //< repeat check every N ms }; +// redirect webkit console.log() output +page.onConsoleMessage = function (message) { + if (debug >= 2) console.log(message); +}; + +// cat webkit alert() +page.onAlert = function (msg) { + console.log("Alert: " + msg); +}; page.open(url, function (status) { - console.log("fetch " + url + " with status: " + status); + if (debug >= 1) console.log("fetch " + url + " with status: " + status); + if (status != 'success') { console.log("Failed to fetch page, give up"); phantom.exit(1); } - console.log("polling MKWS jasmine test status for " + run_time + " seconds"); + if (debug >= 1) console.log("polling MKWS jasmine test status for " + run_time + " seconds"); + var exit = wait_for_jasmine(function () { return page.evaluate(function () { @@ -84,25 +100,29 @@ page.open(url, function (status) { passing: window.$(".passingAlert").text() }; } - })}, - - function(result) { - console.log("MKWS tests are successfully done in " + result.time/1000 + " seconds. Hooray!"); - console.log("jasmine duration: " + result.duration); - console.log("jasmine passing: " + result.passing); - }, - - function (result) { - var error_png = "./mkws-error.png"; - var error_html = "./mkws-error.html"; - - console.log("MKWS tests failed after " + result.time/1000 + " seconds"); - console.log("keep screenshot in '" + error_png + "'"); - page.render(error_png); - - console.log("keep html DOM in '" + error_html + "'"); - var fs = require('fs'); - fs.write(error_html, result.html ? result.html : "Argh!", "wb"); - }, - run_time * 1000); + }) + }, + + function (result) { + if (debug < 1) return; + + console.log(""); + console.log("MKWS tests are successfully done in " + result.time / 1000 + " seconds. Hooray!"); + console.log("jasmine duration: " + result.duration); + console.log("jasmine passing: " + result.passing); + }, + + function (result) { + var error_png = "./mkws-error.png"; + var error_html = "./mkws-error.html"; + + console.log("MKWS tests failed after " + result.time / 1000 + " seconds"); + console.log("keep screenshot in '" + error_png + "'"); + page.render(error_png); + + console.log("keep html DOM in '" + error_html + "'"); + var html = result.html + "\n\n\n"; + var fs = require('fs'); + fs.write(error_html, html, "wb"); + }, run_time * 1000); });