aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js')
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js b/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js
new file mode 100644
index 00000000000..f5886dbbcbe
--- /dev/null
+++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js
@@ -0,0 +1,66 @@
+var svg_ns = "http://www.w3.org/2000/svg";
+var url_prefix = location.protocol + "//" + location.hostname + ":" +
+ location.port + "/referrer-policy/generic/subresource/";
+
+var svg_test_properties = [
+ 'fill',
+ 'stroke',
+ 'filter',
+ 'clip-path',
+ 'marker-start',
+ 'marker-mid',
+ 'marker-end',
+ 'mask',
+ 'mask-image',
+];
+
+// Schedules async_test's for each of the test properties
+// Parameters:
+// testProperties: An array of test properties.
+// testDescription: A test description
+// testFunction: A function call which sets up the expect result and runs
+// the actual test
+function runSvgTests(testProperties, testDescription, testFunction) {
+ let runNextTest = function () {
+ let property = testProperties.shift();
+ if (property === undefined) {
+ return;
+ }
+
+ let current = {
+ test: async_test(testDescription + " " + property),
+ id: token(),
+ property: property,
+ };
+
+ testFunction(current);
+
+ let check_url = url_prefix + "svg.py" + "?id=" + current.id +
+ "&report-headers";
+ current.test.step_timeout(
+ queryXhr.bind(this, check_url,
+ function(message) {
+ current.test.step(function() {
+ assert_own_property(message, "headers");
+ assert_own_property(message, "referrer");
+ assert_equals(message.referrer, current.expected);
+ });
+ current.test.done();
+ }),
+ 800);
+
+ };
+
+ add_result_callback(runNextTest);
+ runNextTest();
+}
+
+function createSvg() {
+ let svg = document.createElementNS(svg_ns, 'svg');
+ svg.setAttribute('width', '400');
+ svg.setAttribute('height', '400');
+ let path = document.createElementNS(svg_ns, 'path');
+ path.setAttribute('d', 'M 50,5 95,100 5,100 z');
+ svg.appendChild(path);
+ return svg;
+}