Update web-platform-tests to revision 58eb04cecbbec2e18531ab440225e38944a9c444

This commit is contained in:
Josh Matthews 2017-04-17 12:06:02 +10:00 committed by Anthony Ramine
parent 25e8bf69e6
commit 665817d2a6
35333 changed files with 1818077 additions and 16036 deletions

View file

@ -0,0 +1,12 @@
These tests exercise differnt ways to load an image, generated via
```/referrer-policy/generic/subresource/image.py?id=<UUID>``` and later
verify the headers used to request that image.
Since there is no way to wait for a resource referenced from CSS to be loaded,
all tests use ```step_timeout()``` to delay the verification step until
after the image (hopefully) was loaded.
Since there is also no way to retrieve headers (or other information) from
images loaded via CSS, we store the headers with the given ```UUID``` as key
on the server, and retrieve them later via an XHR to
```/referrer-policy/generic/subresource/image.py?id=<UUID>&report-headers```.

View file

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from imported stylesheet (external)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="never">
</head>
<body>
<p>Check that resources from imported stylesheets (loaded from external
stylesheets) are loaded with the referrer and referrer policy from the
external stylesheet.</p>
<div class="styled"></div>
<script>
var css_test = async_test("Image from imported stylesheet (external).");
var id = token();
var cross_origin_url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
var css_url = cross_origin_url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&import-rule";
var url_prefix = location.protocol + "//" + location.hostname + ":" + location.port;
var css_referrer = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id;
var img_url = url_prefix + "/referrer-policy/generic/subresource/image.py" +
"?id=" + id + "&report-headers";
var link = document.createElement("link");
link.href = css_url;
link.rel = "stylesheet";
link.onload = function() {
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, css_referrer);
});
css_test.done();
}),
1000);
};
document.head.appendChild(link);
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from external stylesheet</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="never">
</head>
<body>
<p>Check that resources from external stylesheets are loaded with
the referrer and referrer policy from the external stylesheet.</p>
<div class="styled"></div>
<script>
var css_test = async_test("Image from external stylesheet.");
var id = token();
var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id;
var img_url = url_prefix + "/referrer-policy/generic/subresource/image.py" +
"?id=" + id + "&report-headers";
var link = document.createElement("link");
link.href = css_url;
link.rel = "stylesheet";
link.onload = function() {
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, css_url);
});
css_test.done();
}),
1000);
};
document.head.appendChild(link);
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from inline style</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="origin">
</head>
<body>
<p>Check that resources from inline styles are loaded with
the referrer and referrer policy from the document.</p>
<div class="styled"></div>
<script>
var css_test = async_test("Image from inline styles.");
var id = token();
var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/image.py" + "?id=" + id;
var img_url = css_url + "&report-headers";
var div = document.querySelector("div.styled");
div.style = "content:url(" + css_url + ")";
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, location.origin + "/");
});
css_test.done();
}),
1000);
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from imported stylesheet (internal)</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="origin">
</head>
<body>
<p>Check that resources from stylesheets (imported from internal
stylesheets) are loaded with the referrer and referrer policy from the
document.</p>
<div class="styled"></div>
<script>
var css_test = async_test("Image from imported stylesheet (internal).");
var id = token();
var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/";
var css_url = url_prefix + "stylesheet.py?id=" + id;
var img_url = url_prefix + "image.py?report-headers&id=" + id;
var style = document.createElement("style");
style.type = 'text/css';
style.appendChild(document.createTextNode("@import url('" + css_url + "');"));
document.head.appendChild(style);
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, css_url);
});
css_test.done();
}),
1000);
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from internal stylesheet</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="origin">
</head>
<body>
<p>Check that resources from internal stylesheets are loaded with
the referrer and referrer policy from the document.</p>
<div class="styled"></div>
<script>
var css_test = async_test("Image from internal stylesheet.");
var id = token();
var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/image.py" + "?id=" + id;
var img_url = css_url + "&report-headers";
var style = document.createElement("style");
style.type = 'text/css';
style.appendChild(document.createTextNode("div.styled::before { content:url(" + css_url + ")}"));
document.head.appendChild(style);
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, location.origin + "/");
});
css_test.done();
}),
1000);
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from presentation attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="origin">
</head>
<body>
<p>Check that resources from presentation attributes are loaded with
the referrer and referrer policy from the document.</p>
<script>
var css_test = async_test("Image from presentation attributes.");
var id = token();
var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/image.py" + "?id=" + id;
var img_url = css_url + "&report-headers";
document.body.background = css_url;
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, location.origin + "/");
});
css_test.done();
}),
1000);
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<head>
<title>CSS integration - image from external stylesheet inserted via a ProcessingInstruction</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<!-- Common global functions for referrer-policy tests. -->
<script src="/referrer-policy/generic/common.js"></script>
<meta name="referrer" content="never">
</head>
<body>
<p>Check that resources from external stylesheets (referenced from a
ProcessingInstruction) are loaded with the referrer and referrer policy
from the external stylesheet.</p>
<div class="styled"></div>
<script>
var css_test = async_test("Image from external stylesheet (from ProcessingInstruction).");
var id = token();
var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port;
var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id;
var img_url = url_prefix + "/referrer-policy/generic/subresource/image.py" +
"?id=" + id + "&report-headers";
var processingInstruction = document.createProcessingInstruction("xml-stylesheet", "href=\"" + css_url + "\" type=\"text/css\"");
css_test.step_timeout(
queryXhr.bind(this, img_url,
function(message) {
css_test.step(function() {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, css_url);
});
css_test.done();
}),
1000);
document.insertBefore(processingInstruction, document.firstChild);
</script>
<div id="log"></div>
</body>
</html>