From 6bf0a5cb5034a7e684dcc3500e841785237ce2dd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 19:32:43 +0200 Subject: Adding upstream version 1:115.7.0. Signed-off-by: Daniel Baumann --- .../tests/mixed-content/generic/test-case.sub.js | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 testing/web-platform/tests/mixed-content/generic/test-case.sub.js (limited to 'testing/web-platform/tests/mixed-content/generic/test-case.sub.js') diff --git a/testing/web-platform/tests/mixed-content/generic/test-case.sub.js b/testing/web-platform/tests/mixed-content/generic/test-case.sub.js new file mode 100644 index 0000000000..bfb02a0e61 --- /dev/null +++ b/testing/web-platform/tests/mixed-content/generic/test-case.sub.js @@ -0,0 +1,61 @@ +/** + * @fileoverview Test case for mixed-content in web-platform-tests. + * @author burnik@google.com (Kristijan Burnik) + */ + +/** + * MixedContentTestCase exercises all the tests for checking browser behavior + * when resources regarded as mixed-content are requested. A single run covers + * only a single scenario. + * @param {object} scenario A JSON describing the test arrangement and + * expectation(s). Refer to /mixed-content/spec.src.json for details. + * @param {string} description The test scenario verbose description. + * @param {SanityChecker} sanityChecker Instance of an object used to check the + * running scenario. Useful in debug mode. See ./sanity-checker.js. + * Run {@code ./tools/generate.py -h} for info on test generating modes. + * @return {object} Object wrapping the start method used to run the test. + */ +function TestCase(scenarios, sanityChecker) { + function runTest(scenario) { + sanityChecker.checkScenario(scenario, subresourceMap); + + 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}; +} -- cgit v1.2.3