zuul
Version:
simple browser testing
51 lines (43 loc) • 1.36 kB
JavaScript
// THIS IS A PHANTOMJS SCRIPT FILE //
// see PhantomBrowser.js for use //
var page = require('webpage').create();
var system = require('system');
var url = system.args[1];
var systemMessages = [];
phantom.onError = function(msg, trace) {
systemMessages.push({
type: 'exception',
message: msg,
trace: trace
});
};
page.onError = function(msg, trace) {
systemMessages.push({
type: 'exception',
message: msg,
trace: trace
});
};
page.open(url, function(status) {
var msg_tid = setInterval(function() {
var msgs = page.evaluate(function() {
return window.zuul_msg_bus && window.zuul_msg_bus.splice(0, window.zuul_msg_bus.length);
}) || [];
var messages = msgs.concat(systemMessages.splice(0, systemMessages.length));
messages.forEach(function(msg) {
console.log(JSON.stringify(msg));
if (msg.type === 'exception') {
console.error(msg.message);
console.trace(msg.trace);
return setTimeout(function() {
phantom.exit(1);
});
}
if (msg.type === 'done') {
return setTimeout(function() {
phantom.exit(msg.passed ? 0 : 1);
});
}
});
}, 100);
});