mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
135 lines
4.2 KiB
JavaScript
135 lines
4.2 KiB
JavaScript
//! unsupported
|
|
var webpage = require('webpage');
|
|
|
|
// Many of the URLs used in this file contain text encoded in
|
|
// Shift_JIS, so that they will not round-trip correctly if
|
|
// misinterpreted at any point as UTF-8 (and thus, the test will
|
|
// fail). See www/url-encoding.py for Unicode equivalents.
|
|
|
|
function URL(path) {
|
|
return TEST_HTTP_BASE + 'url-encoding?' + path;
|
|
}
|
|
|
|
async_test(function () {
|
|
var p = webpage.create();
|
|
p.open(URL('/'), this.step_func_done(function (status) {
|
|
assert_equals(status, 'success');
|
|
assert_equals(p.url, URL('/%83y%81[%83W'));
|
|
assert_equals(p.plainText, 'PASS');
|
|
}));
|
|
|
|
}, "page.url");
|
|
|
|
async_test(function () {
|
|
var p = webpage.create();
|
|
p.open(URL('/f'), this.step_func_done(function (status) {
|
|
assert_equals(status, 'success');
|
|
assert_equals(p.url, URL('/f'));
|
|
assert_equals(p.framesCount, 2);
|
|
|
|
assert_is_true(p.switchToFrame('a'));
|
|
assert_equals(p.frameUrl, URL('/%98g'));
|
|
assert_equals(p.framePlainText, 'PASS');
|
|
|
|
assert_is_true(p.switchToParentFrame());
|
|
assert_is_true(p.switchToFrame('b'));
|
|
assert_equals(p.frameUrl, URL('/%95s%96%D1%82%C8%98_%91%88'));
|
|
assert_equals(p.framePlainText, 'FRAME');
|
|
}));
|
|
|
|
}, "page.frameUrl");
|
|
|
|
async_test(function () {
|
|
var p = webpage.create();
|
|
var n = 0;
|
|
var expectedUrls = [ URL('/'), URL('/%83y%81[%83W') ];
|
|
|
|
p.onNavigationRequested = this.step_func(function (url, ty, will, main) {
|
|
assert_equals(url, expectedUrls[n]);
|
|
assert_equals(ty, 'Other');
|
|
assert_is_true(will);
|
|
assert_is_true(main);
|
|
n++;
|
|
|
|
if (n === expectedUrls.length) {
|
|
p.onNavigationRequested = this.unreached_func();
|
|
}
|
|
});
|
|
p.open(URL('/'), this.step_func_done(function (status) {
|
|
assert_equals(status, 'success');
|
|
assert_equals(n, expectedUrls.length);
|
|
assert_equals(p.plainText, 'PASS');
|
|
}));
|
|
|
|
}, "arguments to onNavigationRequested");
|
|
|
|
async_test(function () {
|
|
var p = webpage.create();
|
|
var n = 0;
|
|
var n_req = 0;
|
|
var n_recv = 0;
|
|
var expectedUrls = [ URL('/r'), URL('/%8F%91') ];
|
|
var receivedUrls = {};
|
|
|
|
p.onResourceRequested = this.step_func(function (req, nr) {
|
|
assert_equals(req.url, expectedUrls[n_req]);
|
|
n_req++;
|
|
if (n_req === expectedUrls.length) {
|
|
p.onResourceRequested = this.unreached_func();
|
|
}
|
|
});
|
|
|
|
p.onResourceReceived = this.step_func(function (resp) {
|
|
// This function may be called more than once per URL.
|
|
if (receivedUrls.hasOwnProperty(resp.url))
|
|
return;
|
|
receivedUrls[resp.url] = true;
|
|
assert_equals(resp.url, expectedUrls[n_recv]);
|
|
n_recv++;
|
|
});
|
|
|
|
p.open(URL('/r'), this.step_func_done(function (status) {
|
|
assert_equals(status, 'success');
|
|
assert_equals(n_req, expectedUrls.length);
|
|
assert_equals(n_recv, expectedUrls.length);
|
|
assert_equals(p.plainText, 'PASS');
|
|
}));
|
|
|
|
}, "arguments to onResourceRequested and onResourceReceived");
|
|
|
|
async_test(function () {
|
|
var p = webpage.create();
|
|
p.settings.resourceTimeout = 100;
|
|
|
|
var n_timeout = 0;
|
|
var n_error = 0;
|
|
var expectedUrls_timeout = [ URL('/%89i%8Bv') ];
|
|
// the error hook is called for timeouts as well
|
|
var expectedUrls_error = [ URL('/%8C%CC%8F%E1'), URL('/%89i%8Bv') ];
|
|
|
|
p.onResourceTimeout = this.step_func(function (req) {
|
|
assert_equals(req.url, expectedUrls_timeout[n_timeout]);
|
|
n_timeout++;
|
|
|
|
if (n_timeout === expectedUrls_timeout.length) {
|
|
p.onResourceTimeout = this.unreached_func();
|
|
}
|
|
});
|
|
|
|
p.onResourceError = this.step_func(function (err) {
|
|
assert_equals(err.url, expectedUrls_error[n_error]);
|
|
n_error++;
|
|
|
|
if (n_error === expectedUrls_error.length) {
|
|
p.onResourceTimeout = this.unreached_func();
|
|
}
|
|
});
|
|
|
|
p.open(URL("/re"), this.step_func_done(function (status) {
|
|
assert_equals(status, 'success');
|
|
assert_equals(n_timeout, expectedUrls_timeout.length);
|
|
assert_equals(n_error, expectedUrls_error.length);
|
|
}));
|
|
|
|
}, " arguments to onResourceError and onResourceTimeout");
|