blob: 823432375442c339056b9da949705c7a4ce96865 [file] [log] [blame]
(async function(testRunner) {
const {page, session, dp} = await testRunner.startURL(
'http://localhost:8000/',
'Verifies that redirected CORS preflight failure must be detectable.');
await dp.Network.enable();
let postRequestId = undefined;
let optionsRequestId = undefined;
let postErrorText = undefined;
let optionsErrorText = undefined;
dp.Network.onRequestWillBeSent(event => {
if (event.params.request.method === 'POST') {
postRequestId = event.params.requestId;
} else if (event.params.request.method === 'OPTIONS') {
optionsRequestId = event.params.requestId;
}
});
dp.Network.onLoadingFailed(async event => {
if (postRequestId === event.params.requestId) {
postErrorText = event.params.errorText;
} else if (optionsRequestId === event.params.requestId) {
optionsErrorText = event.params.errorText;
}
if (postErrorText !== undefined && optionsErrorText !== undefined) {
testRunner.log(`error text for OPTIONS request: ${optionsErrorText}`);
testRunner.log(`error text for POST request: ${postErrorText}`);
testRunner.completeTest();
}
});
await session.evaluate(`
const xhr = new XMLHttpRequest();
xhr.open('POST', 'http://127.0.0.1:8000/inspector-protocol/network/resources/cors-preflight-redirect.php');
xhr.setRequestHeader('header-name', 'header-value');
xhr.send(JSON.stringify({data: 'test post data'}));
`);
})