Mercurial > p > roundup > code
view 3rdparty/bootstrap/js/tests/phantom.js @ 5695:3e1b66c4e1e2
Update docs. Correct errors reported by setup.py build_docs. Add rest
interface and link to rest doc to features page. Add link to xmlrpc
doc to features page. Add rest doc to index. Update rest doc,
hopefully clarify confusing use of parameters in patch action
section. Fix code examples in "Adding new rest endpoints" section. Fix
example adding import of exception.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 07 Apr 2019 20:17:52 -0400 |
| parents | c109f7c1e477 |
| children |
line wrap: on
line source
// Simple phantom.js integration script // Adapted from Modernizr function waitFor(testFx, onReady, timeOutMillis) { var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 5001 //< Default Max Timout is 5s , start = new Date().getTime() , condition = false , interval = setInterval(function () { if ((new Date().getTime() - start < maxtimeOutMillis) && !condition) { // If not time-out yet and condition not yet fulfilled condition = (typeof(testFx) === "string" ? eval(testFx) : testFx()) //< defensive code } else { if (!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') typeof(onReady) === "string" ? eval(onReady) : onReady() //< Do what it's supposed to do once the condition is fulfilled clearInterval(interval) //< Stop this interval } } }, 100) //< repeat check every 100ms } if (phantom.args.length === 0 || phantom.args.length > 2) { console.log('Usage: phantom.js URL') phantom.exit() } var page = new WebPage() // Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this") page.onConsoleMessage = function(msg) { console.log(msg) }; page.open(phantom.args[0], function(status){ if (status !== "success") { console.log("Unable to access network") phantom.exit() } else { waitFor(function(){ return page.evaluate(function(){ var el = document.getElementById('qunit-testresult') if (el && el.innerText.match('completed')) { return true } return false }) }, function(){ var failedNum = page.evaluate(function(){ var el = document.getElementById('qunit-testresult') try { return el.getElementsByClassName('failed')[0].innerHTML } catch (e) { } return 10000 }); phantom.exit((parseInt(failedNum, 10) > 0) ? 1 : 0) }) } })
