Source code
Revision control
Copy as Markdown
Other Tools
var url_prefix = location.protocol + "//" + location.hostname + ":" +
location.port + "/common/security-features/subresource/";
var svg_test_properties = [
'fill',
'stroke',
'filter',
'clip-path',
'marker-start',
'marker-mid',
'marker-end',
'mask',
'mask-image',
];
// 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) {
for (const property of testProperties) {
let current = {
id: token(),
property: property,
};
promise_test(t => {
testFunction(current);
return timeoutPromise(t, 800)
.then(() => {
let check_url = url_prefix + "svg.py" + "?id=" + current.id +
"&report-headers";
return requestViaFetch(check_url);
})
.then(message => {
assert_own_property(message, "headers");
assert_own_property(message, "referrer");
assert_equals(message.referrer, current.expected);
});
},
testDescription + " " + property);
}
}
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;
}