blob: 788df16a456b83a23de662b710c200042a1e7254 [file] [log] [blame]
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,
};
current.test.step(function() { testFunction(current) });
let check_url = url_prefix + "svg.py" + "?id=" + current.id +
"&report-headers";
current.test.step_timeout(function() {
queryXhr(check_url, function(message) {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, current.expected);
current.test.done();
}, null, null, current.test);
}, 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;
}