blob: 19bc529be21cffc32eef45f2f7c482a354f0a0a8 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
`Tests that the navigation referrer can be overridden.`);
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;
}
var referrers = [];
await dp.Network.enable();
dp.Network.onRequestWillBeSent(event => {
var params = event.params;
var referrer = params.request.headers.Referer;
if (!referrer)
return;
referrers.push(parseURL(referrer).host);
if (referrers.length === 2) {
// Only log the list the found referrers at the end of the test.
// Otherwise the first one will be lost because the target page is in
// the middle of loading.
testRunner.log('Referrers: ' + JSON.stringify(referrers));
testRunner.completeTest();
}
});
dp.Page.navigate({url: testRunner.url('resources/image.html'), referrer: 'http://referrer.com/'});
})