summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/trusted-types/trusted-types-navigation.tentative.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/trusted-types/trusted-types-navigation.tentative.html')
-rw-r--r--testing/web-platform/tests/trusted-types/trusted-types-navigation.tentative.html100
1 files changed, 100 insertions, 0 deletions
diff --git a/testing/web-platform/tests/trusted-types/trusted-types-navigation.tentative.html b/testing/web-platform/tests/trusted-types/trusted-types-navigation.tentative.html
new file mode 100644
index 0000000000..2113711902
--- /dev/null
+++ b/testing/web-platform/tests/trusted-types/trusted-types-navigation.tentative.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<script>
+ function expectMessage(filter) {
+ return new Promise(resolve => {
+ window.addEventListener("message", e => { if (filter(e)) resolve(); });
+ });
+ }
+
+ function expectViolationAsMessage(sample) {
+ const filter = e => ((e.data.effectiveDirective == "require-trusted-types-for" ||
+ e.data.effectiveDirective == "trusted-types") &&
+ (!sample || e.data.sample.startsWith(sample)));
+ return new expectMessage(filter);
+ }
+
+ function expectLoadedAsMessage(uri) {
+ const filter = e => (e.data.type == "DOMContentLoaded" &&
+ (!uri || e.data.uri.endsWith(uri)));
+ return new expectMessage(filter);
+ }
+
+ function openWindow(test, uri) {
+ const win = window.open(uri);
+ test.add_cleanup(_ => win.close());
+ }
+
+ promise_test(t => {
+ openWindow(t, "support/navigation-support.html");
+ return Promise.all([
+ expectLoadedAsMessage("navigation-support.html"),
+ expectViolationAsMessage("Location href"),
+ ]);
+ }, "Navigate a window with javascript:-urls in enforcing mode.");
+
+ promise_test(t => {
+ openWindow(t, "support/navigation-support.html?defaultpolicy=1");
+ return Promise.all([
+ expectLoadedAsMessage("navigation-support.html?defaultpolicy=1"),
+ expectLoadedAsMessage("navigation-support.html?defaultpolicy=1&defaultpolicywashere"),
+ ]);
+ }, "Navigate a window with javascript:-urls w/ default policy in enforcing mode.");
+
+ promise_test(t => {
+ const page = "navigation-report-only-support.html"
+ openWindow(t, `support/${page}`);
+ return Promise.all([
+ expectLoadedAsMessage(page),
+ expectLoadedAsMessage("navigation-support.html#continue"),
+ ]);
+ }, "Navigate a window with javascript:-urls in report-only mode.");
+
+ promise_test(t => {
+ const page = "navigation-report-only-support.html?defaultpolicy=1";
+ openWindow(t, `support/${page}`);
+ return Promise.all([
+ expectLoadedAsMessage(page),
+ expectLoadedAsMessage("navigation-support.html?defaultpolicy=1#defaultpolicywashere"),
+ ]);
+ }, "Navigate a window with javascript:-urls w/ default policy in report-only mode.");
+
+ promise_test(t => {
+ openWindow(t, "support/navigation-support.html?frame=1");
+ return Promise.all([
+ expectLoadedAsMessage("navigation-support.html?frame=1"),
+ expectViolationAsMessage("Location href"),
+ ]);
+ }, "Navigate a frame with javascript:-urls in enforcing mode.");
+
+ promise_test(t => {
+ openWindow(t, "support/navigation-support.html?defaultpolicy=1&frame=1");
+ return Promise.all([
+ expectLoadedAsMessage("navigation-support.html?defaultpolicy=1&frame=1"),
+ expectLoadedAsMessage("navigation-support.html?defaultpolicy=1&frame=1&defaultpolicywashere"),
+ ]);
+ }, "Navigate a frame with javascript:-urls w/ default policy in enforcing mode.");
+
+ promise_test(t => {
+ const page = "navigation-report-only-support.html?frame=1"
+ openWindow(t, `support/${page}`);
+ return Promise.all([
+ expectLoadedAsMessage(page),
+ expectLoadedAsMessage("navigation-support.html?frame=1#continue"),
+ ]);
+ }, "Navigate a frame with javascript:-urls in report-only mode.");
+
+ promise_test(t => {
+ const page = "navigation-report-only-support.html?defaultpolicy=1&frame=1";
+ openWindow(t, `support/${page}`);
+ return Promise.all([
+ expectLoadedAsMessage(page),
+ expectLoadedAsMessage("navigation-support.html?defaultpolicy=1&frame=1#defaultpolicywashere"),
+ ]);
+ }, "Navigate a frame with javascript:-urls w/ default policy in report-only mode.");
+</script>
+</body>