var svg_ns = "http://www.w3.org/2000/svg"; 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; }