51 lines
1.5 KiB
HTML
51 lines
1.5 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<script src='/resources/testharness.js'></script>
|
|
<script src='/resources/testharnessreport.js'></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
let tests = [
|
|
{
|
|
"csp": "img-src http://{{host}}:{{ports[http][0]}}/",
|
|
"name": "Lowercase `http` should allow the image to load.",
|
|
},
|
|
{
|
|
"csp": "img-src HtTp://{{host}}:{{ports[http][0]}}/",
|
|
"name": "Mixed-case `http` should allow the image to load.",
|
|
},
|
|
{
|
|
"csp": "img-src HTTP://{{host}}:{{ports[http][0]}}/",
|
|
"name": "Uppercase `http` should allow the image to load.",
|
|
},
|
|
];
|
|
|
|
tests.forEach(test => {
|
|
async_test(t => {
|
|
let url = "support/load_img_and_post_result_meta.sub.html?csp="
|
|
+ encodeURIComponent(test.csp);
|
|
test_image_loads_as_expected(test, t, url);
|
|
}, test.name + " - meta tag");
|
|
|
|
async_test(t => {
|
|
let url = "support/load_img_and_post_result_header.html?csp="
|
|
+ encodeURIComponent(test.csp);
|
|
test_image_loads_as_expected(test, t, url);
|
|
}, test.name + " - HTTP header");
|
|
});
|
|
|
|
function test_image_loads_as_expected(test, t, url) {
|
|
let i = document.createElement('iframe');
|
|
i.src = url;
|
|
window.addEventListener('message', t.step_func(function(e) {
|
|
if (e.source != i.contentWindow) return;
|
|
assert_equals(e.data, "img loaded");
|
|
t.done();
|
|
}));
|
|
document.body.appendChild(i);
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|