blob: f1b4f4dd3f731082202f767817a99c4f4295e968 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
`Tests that redirect from navigator.sendBeacon() is recorded.`);
function parseURL(url) {
var result = {};
var match = url.match(/^([^:]+):\/\/([^\/:]*)(?::([\d]+))?(?:(\/[^#]*)(?:#(.*))?)?$/i);
if (!match)
return result;
result.scheme = match[1].toLowerCase();
result.host = match[2];
result.port = match[3];
result.path = match[4] || "/";
result.fragment = match[5];
return result;
}
await dp.Network.enable();
session.evaluate(`
navigator.sendBeacon('${testRunner.url('resources/ping-redirect.php')}', 'foo');
`);
var requestSent = 0;
dp.Network.onRequestWillBeSent(event => {
requestSent++;
var params = event.params;
testRunner.log('Request Sent: ' + parseURL(params.request.url).path);
if (requestSent == 2) {
var redirectSource = '';
if (params.redirectResponse)
redirectSource = parseURL(params.redirectResponse.url).path;
testRunner.log('Redirect Source: ' + redirectSource);
testRunner.completeTest();
}
});
})