diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/run-jasmine.coffee')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/run-jasmine.coffee | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/run-jasmine.coffee b/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/run-jasmine.coffee new file mode 100644 index 00000000..22fb9323 --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/phantomjs/lib/phantom/examples/run-jasmine.coffee @@ -0,0 +1,61 @@ +system = require 'system' + +## +# Wait until the test condition is true or a timeout occurs. Useful for waiting +# on a server response or for a ui change (fadeIn, etc.) to occur. +# +# @param testFx javascript condition that evaluates to a boolean, +# it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or +# as a callback function. +# @param onReady what to do when testFx condition is fulfilled, +# it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or +# as a callback function. +# @param timeOutMillis the max amount of time to wait. If not specified, 3 sec is used. +## +waitFor = (testFx, onReady, timeOutMillis=3000) -> + start = new Date().getTime() + condition = false + f = -> + if (new Date().getTime() - start < timeOutMillis) and not condition + # If not time-out yet and condition not yet fulfilled + condition = (if typeof testFx is 'string' then eval testFx else testFx()) #< defensive code + else + if not condition + # If condition still not fulfilled (timeout but condition is 'false') + console.log "'waitFor()' timeout" + phantom.exit 1 + else + # Condition fulfilled (timeout and/or condition is 'true') + console.log "'waitFor()' finished in #{new Date().getTime() - start}ms." + if typeof onReady is 'string' then eval onReady else onReady() #< Do what it's supposed to do once the condition is fulfilled + clearInterval interval #< Stop this interval + interval = setInterval f, 100 #< repeat check every 100ms + +if system.args.length isnt 2 + console.log 'Usage: run-jasmine.coffee URL' + phantom.exit 1 + +page = require('webpage').create() + +# Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this") +page.onConsoleMessage = (msg) -> + console.log msg + +page.open system.args[1], (status) -> + if status isnt 'success' + console.log 'Unable to access network' + phantom.exit() + else + waitFor -> + page.evaluate -> + if document.body.querySelector '.finished-at' + return true + return false + , -> + page.evaluate -> + console.log document.body.querySelector('.description').innerText + list = document.body.querySelectorAll('.failed > .description, .failed > .messages > .resultMessage') + for el in list + console.log el.innerText + + phantom.exit() |