puppeteer/third_party/phantomjs/test/module/webpage/abort-network-request.js

37 lines
1.2 KiB
JavaScript
Raw Normal View History

2017-05-11 07:06:41 +00:00
var webpage = require('webpage');
async_test(function () {
var page = webpage.create();
var abortCount = 0;
var errorCount = 0;
var abortedIds = {};
var urlToBlockRegExp = /logo\.png$/i;
page.onResourceRequested = this.step_func(function(requestData, request) {
assert_type_of(request, 'object');
assert_type_of(request.abort, 'function');
if (urlToBlockRegExp.test(requestData.url)) {
request.abort();
++abortCount;
abortedIds[requestData.id] = 1;
}
});
page.onResourceError = this.step_func(function(error) {
// We can't match up errors to requests by URL because error.url will
// be the empty string in this case. FIXME.
assert_own_property(abortedIds, error.id);
++errorCount;
});
page.onResourceReceived = this.step_func(function(response) {
assert_regexp_not_match(response.url, urlToBlockRegExp);
});
page.open(TEST_HTTP_BASE + 'logo.html',
this.step_func_done(function (status) {
assert_equals(status, 'success');
assert_equals(abortCount, 1);
assert_equals(errorCount, 1);
}));
}, "can abort network requests");