mirror of
https://github.com/encounter/phantomjs.git
synced 2026-03-30 11:35:11 -07:00
60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
var assert = require('../../assert');
|
|
var page = require('webpage').create();
|
|
|
|
assert.notEqual(page.onError, undefined);
|
|
|
|
var onErrorFunc1 = function() { return !"x"; };
|
|
page.onError = onErrorFunc1;
|
|
assert.equal(page.onError, onErrorFunc1);
|
|
|
|
var onErrorFunc2 = function() { return !!"y"; };
|
|
page.onError = onErrorFunc2;
|
|
assert.equal(page.onError, onErrorFunc2);
|
|
assert.notEqual(page.onError, onErrorFunc1);
|
|
|
|
page.onError = null;
|
|
// Will only allow setting to a function value, so setting it to `null` returns `undefined`
|
|
assert.equal(page.onError, undefined);
|
|
page.onError = undefined;
|
|
assert.equal(page.onError, undefined);
|
|
|
|
// reports error
|
|
var lastError = null;
|
|
page.onError = function(message) { lastError = message; };
|
|
|
|
page.evaluate(function() { referenceError2(); });
|
|
assert.equal(lastError, "ReferenceError: Can't find variable: referenceError2");
|
|
|
|
page.evaluate(function() { throw "foo"; });
|
|
assert.equal(lastError, "foo");
|
|
|
|
page.evaluate(function() { throw Error("foo"); });
|
|
assert.equal(lastError, "Error: foo");
|
|
|
|
// don't report handled errors
|
|
var hadError = false;
|
|
var caughtError = false;
|
|
|
|
page.onError = function() { hadError = true; };
|
|
page.evaluate(function() {
|
|
caughtError = false;
|
|
|
|
try {
|
|
referenceError();
|
|
} catch(e) {
|
|
caughtError = true;
|
|
}
|
|
});
|
|
|
|
assert.equal(hadError, false);
|
|
assert.isTrue(page.evaluate(function() { return caughtError; }));
|
|
|
|
// even with async
|
|
page.evaluate(function() {
|
|
setTimeout(function() { referenceError(); }, 0);
|
|
});
|
|
|
|
assert.waitFor(function() {
|
|
return lastError == "ReferenceError: Can't find variable: referenceError";
|
|
});
|