diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/clear-site-data/navigation-insecure.html | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/clear-site-data/navigation-insecure.html')
-rw-r--r-- | testing/web-platform/tests/clear-site-data/navigation-insecure.html | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/testing/web-platform/tests/clear-site-data/navigation-insecure.html b/testing/web-platform/tests/clear-site-data/navigation-insecure.html new file mode 100644 index 0000000000..9ccd712a22 --- /dev/null +++ b/testing/web-platform/tests/clear-site-data/navigation-insecure.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<html> + <head> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="support/test_utils.sub.js"></script> + </head> + + <body> + <script> + /** + * @param Array.<Array.<Datatype>> combination A combination of datatypes. + * @param Dict.<string, boolean> report A map between a datatype name and + * whether it is empty. + * @return boolean Whether all datatypes are still nonempty. + */ + function verifyDatatypes(report) { + TestUtils.DATATYPES.forEach(function(datatype) { + assert_false( + report[datatype.name], + datatype.name + " should NOT have been cleared."); + }); + } + + TestUtils.COMBINATIONS.forEach(function(combination) { + var test_name = + "Do not clear datatypes on insecure navigation (header: " + + combination.map(function(e) { return e.name; }).join(", ") + + ")"; + + promise_test(function(test) { + return new Promise(function(resolve_test, reject_test) { + TestUtils.populateDatatypes() + .then(function() { + // Navigate to a resource with a Clear-Site-Data header in + // an iframe, then verify that no data have been deleted. + return new Promise(function(resolve, reject) { + window.addEventListener("message", resolve); + var iframe = document.createElement("iframe"); + iframe.src = TestUtils.getClearSiteDataUrl(combination); + document.body.appendChild(iframe); + }).then(function(messageEvent) { + verifyDatatypes(messageEvent.data); + resolve_test(); + }); + }); + }); + }, test_name); + }); + </script> + </body> +</html> |