mirror of
https://github.com/servo/servo.git
synced 2025-06-25 17:44:33 +01:00
43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
// TODO(hiroshige): Document the type of `scenario`.
|
|
function TestCase(scenarios) {
|
|
function runTest(scenario) {
|
|
const urls = getRequestURLs(scenario.subresource,
|
|
scenario.origin,
|
|
scenario.redirection);
|
|
const checkResult = _ => {
|
|
// Send request to check if the key has been torn down.
|
|
return xhrRequest(urls.assertUrl)
|
|
.then(assertResult => {
|
|
// Now check if the value has been torn down. If it's still there,
|
|
// we have blocked the request to mixed-content.
|
|
assert_equals(assertResult.status, scenario.expectation,
|
|
"The resource request should be '" + scenario.expectation + "'.");
|
|
});
|
|
};
|
|
|
|
/** @type {Subresource} */
|
|
const subresource = {
|
|
subresourceType: scenario.subresource,
|
|
url: urls.testUrl,
|
|
policyDeliveries: scenario.subresource_policy_deliveries,
|
|
};
|
|
|
|
promise_test(() => {
|
|
return xhrRequest(urls.announceUrl)
|
|
// Send out the real resource request.
|
|
// This should tear down the key if it's not blocked.
|
|
.then(_ => invokeRequest(subresource, scenario.source_context_list))
|
|
// We check the key state, regardless of whether the main request
|
|
// succeeded or failed.
|
|
.then(checkResult, checkResult);
|
|
}, scenario.test_description);
|
|
} // runTest
|
|
|
|
function runTests() {
|
|
for (const scenario of scenarios) {
|
|
runTest(scenario);
|
|
}
|
|
}
|
|
|
|
return {start: runTests};
|
|
}
|