diff options
Diffstat (limited to 'testing/web-platform/tests/content-security-policy/script-src-attr-elem')
10 files changed, 204 insertions, 0 deletions
diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-attr-allowed-src-blocked.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-attr-allowed-src-blocked.html new file mode 100644 index 0000000000..d4c19c5466 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-attr-allowed-src-blocked.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-attr 'unsafe-inline'; + script-src 'nonce-abc';"> + <script nonce='abc' src="/resources/testharness.js"></script> + <script nonce='abc' src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script nonce='abc'> + var t = async_test("Should not fire a security policy violation event"); + window.addEventListener('securitypolicyviolation', t.unreached_func("Should not have fired a spv event")); + </script> + + <img src="../support/pass.png" onload="t.done()"> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html new file mode 100644 index 0000000000..199726e212 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-attr-blocked-src-allowed.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-attr 'none'; + script-src 'unsafe-inline' 'self';"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script> + var t = async_test("Should fire a security policy violation event"); + window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) { + assert_equals(e.violatedDirective, 'script-src-attr'); + assert_equals(e.blockedURI, 'inline'); + })); + </script> + + <img src="../support/pass.png" onload="t.unreached_func('Should not have executed the inline handler')"> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html new file mode 100644 index 0000000000..c21898377e --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-attr-blocked.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-elem 'self' 'unsafe-inline'; + script-src-attr 'none';"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script> + var t = async_test("Should fire a security policy violation for the attribute"); + window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) { + assert_equals(e.violatedDirective, 'script-src-attr'); + assert_equals(e.blockedURI, 'inline'); + })); + + var t1 = async_test("Should execute the inline script block"); + </script> + + <script> + t1.done(); + </script> + + <img src="../support/pass.png" onload="t.unreached_func('should not have run this event handler')"> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-src-blocked.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-src-blocked.html new file mode 100644 index 0000000000..c7954613c7 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-allowed-src-blocked.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-elem 'nonce-abc' 'nonce-def'; + script-src 'nonce-abc';"> + <script nonce='abc' src="/resources/testharness.js"></script> + <script nonce='abc' src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script nonce='abc'> + var t = async_test("Should not fire a security policy violation event"); + window.addEventListener('securitypolicyviolation', t.unreached_func("Should not have fired a spv event")); + </script> + + <script nonce='def'> + t.done(); + </script> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html new file mode 100644 index 0000000000..4a85c15376 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-attr-allowed.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-elem 'nonce-abc' 'self'; + script-src-attr 'unsafe-inline'"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script nonce='abc'> + var t = async_test("Should fire a security policy violation for the attribute"); + window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) { + assert_equals(e.violatedDirective, 'script-src-elem'); + assert_equals(e.blockedURI, 'inline'); + })); + + var t1 = async_test("Should execute the inline script attribute"); + </script> + + <script> + t.step_func(function() { + assert_unreached("Should not have executed the inline script block"); + }) + </script> + + <img src="../support/pass.png" onload="t1.done()"> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html new file mode 100644 index 0000000000..ac4726f9f4 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/script-src-elem-blocked-src-allowed.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-elem 'nonce-abc'; + script-src 'nonce-abc' 'nonce-def';"> + <script nonce='abc' src="/resources/testharness.js"></script> + <script nonce='abc' src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script nonce='abc'> + var t = async_test("Should fire a spv event"); + window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) { + assert_equals(e.violatedDirective, 'script-src-elem'); + assert_equals(e.blockedURI, 'inline'); + })); + + </script> + + <script nonce='def'> + t.step_func(function() { + assert_unreached("Should not have executed the inline block"); + }); + </script> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/strict-dynamic-elem-allowed-src-blocked.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/strict-dynamic-elem-allowed-src-blocked.html new file mode 100644 index 0000000000..b654377823 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/strict-dynamic-elem-allowed-src-blocked.html @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src-elem 'strict-dynamic' 'nonce-abc'; + script-src 'nonce-abc';"> + <script nonce='abc' src="/resources/testharness.js"></script> + <script nonce='abc' src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script nonce='abc'> + var t = async_test("Should not fire a security policy violation event"); + window.addEventListener('securitypolicyviolation', t.unreached_func("Should not have fired a spv event")); + + var s = document.createElement('script'); + s.src = 'support/t_done.js'; + document.head.appendChild(s); + </script> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html new file mode 100644 index 0000000000..04394dc33a --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/strict-dynamic-elem-blocked-src-allowed.sub.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> + +<head> + <meta http-equiv="Content-Security-Policy" content="script-src 'strict-dynamic' 'nonce-abc'; + script-src-elem 'nonce-abc';"> + <script nonce='abc' src="/resources/testharness.js"></script> + <script nonce='abc' src="/resources/testharnessreport.js"></script> +</head> + +<body> + <script nonce='abc'> + var t = async_test("Should fire a security policy violation event"); + window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) { + assert_equals(e.violatedDirective, "script-src-elem"); + assert_equals(e.blockedURI, "{{location[scheme]}}://{{location[host]}}/content-security-policy/script-src-attr-elem/support/t_fail.js"); + })); + + var s = document.createElement('script'); + s.src = 'support/t_fail.js'; + document.head.appendChild(s); + </script> +</body> + +</html> diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/support/t_done.js b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/support/t_done.js new file mode 100644 index 0000000000..e31eb1d959 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/support/t_done.js @@ -0,0 +1 @@ +t.done(); diff --git a/testing/web-platform/tests/content-security-policy/script-src-attr-elem/support/t_fail.js b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/support/t_fail.js new file mode 100644 index 0000000000..fa48d6e2c5 --- /dev/null +++ b/testing/web-platform/tests/content-security-policy/script-src-attr-elem/support/t_fail.js @@ -0,0 +1,3 @@ +t.step(function() { + assert_unreached("Should not loaded the script"); +}); |