summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/trusted-types/block-string-assignment-to-Document-write.tentative.html')
-rw-r--r--testing/web-platform/tests/trusted-types/block-string-assignment-to-Document-write.tentative.html81
1 files changed, 81 insertions, 0 deletions
diff --git a/testing/web-platform/tests/trusted-types/block-string-assignment-to-Document-write.tentative.html b/testing/web-platform/tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
new file mode 100644
index 0000000000..974203c113
--- /dev/null
+++ b/testing/web-platform/tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="support/helper.sub.js"></script>
+
+ <meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script';">
+</head>
+<body>
+<script>
+ // TrustedURL assignments do not throw.
+ let p = createHTML_policy(window, 1);
+ test(t => {
+ document.body.innerText = '';
+ let html = p.createHTML(INPUTS.HTML);
+ document.write(html);
+ assert_equals(document.body.innerText, RESULTS.HTML);
+ }, "document.write with html assigned via policy (successful URL transformation).");
+
+ // TrustedURL assignments do not throw. (Now for writeln.)
+ test(t => {
+ document.body.innerText = '';
+ let html = p.createHTML(INPUTS.HTML);
+ document.writeln(html);
+ assert_equals(document.body.innerText, RESULTS.HTML);
+ }, "document.writeln with html assigned via policy (successful URL transformation).");
+
+ // String assignments throw.
+ test(t => {
+ const old = document.body.innerText;
+ assert_throws_js(TypeError, _ => {
+ document.write('A string');
+ });
+ assert_equals(document.body.innerText, old);
+ }, "`document.write(string)` throws");
+
+ // String assignments throw. (Now for writeln.)
+ test(t => {
+ const old = document.body.innerText;
+ assert_throws_js(TypeError, _ => {
+ document.writeln('A string');
+ });
+ assert_equals(document.body.innerText, old);
+ }, "`document.writeln(string)` throws");
+
+ // Null assignment throws.
+ test(t => {
+ const old = document.body.innerText;
+ assert_throws_js(TypeError, _ => {
+ document.write(null);
+ });
+ assert_equals(document.body.innerText, old);
+ }, "`document.write(null)` throws");
+
+ // Null assignment throws. (Now for writeln.)
+ test(t => {
+ const old = document.body.innerText;
+ assert_throws_js(TypeError, _ => {
+ document.writeln(null);
+ });
+ assert_equals(document.body.innerText, old);
+ }, "`document.writeln(null)` throws");
+
+ let default_policy = trustedTypes.createPolicy('default',
+ { createHTML: createHTMLJS }, true );
+
+ // Default policy works.
+ test(t => {
+ document.body.innerText = '';
+ document.write(INPUTS.HTML);
+ assert_equals(document.body.innerText, RESULTS.HTML);
+ }, "`document.write(string)` observes default policy");
+
+ // Default policy works. (Now for writeln.)
+ test(t => {
+ document.body.innerText = '';
+ document.writeln(INPUTS.HTML);
+ assert_equals(document.body.innerText, RESULTS.HTML);
+ }, "`document.writeln(string)` observes default policy");
+</script>