diff options
Diffstat (limited to 'testing/web-platform/tests/svg/animations/svgenum-animation-10.html')
-rw-r--r-- | testing/web-platform/tests/svg/animations/svgenum-animation-10.html | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/testing/web-platform/tests/svg/animations/svgenum-animation-10.html b/testing/web-platform/tests/svg/animations/svgenum-animation-10.html new file mode 100644 index 0000000000..e645ea5066 --- /dev/null +++ b/testing/web-platform/tests/svg/animations/svgenum-animation-10.html @@ -0,0 +1,81 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test SVGMarkerUnitsType enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "2"); +marker.setAttribute("markerHeight", "2"); +marker.setAttribute("refX", "5"); +marker.setAttribute("refY", "5"); +marker.setAttribute("markerUnits", "userSpaceOnUse"); + +var markerPath = createSVGElement("path"); +markerPath.setAttribute("fill", "blue"); +markerPath.setAttribute("d", "M 5 0 L 10 10 L 0 10 Z"); +marker.appendChild(markerPath); + +var defsElement = createSVGElement("defs"); +defsElement.appendChild(marker); +rootSVGElement.appendChild(defsElement); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("onclick", "executeTest()"); +path.setAttribute("fill", "none"); +path.setAttribute("stroke", "green"); +path.setAttribute("stroke-width", "10"); +path.setAttribute("marker-start", "url(#marker)"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("d", "M 130 135 L 180 135 L 180 185"); +path.setAttribute("transform", "translate(-130, -120)"); +rootSVGElement.appendChild(path); + +var animate1 = createSVGElement("animate"); +animate1.setAttribute("id", "animation"); +animate1.setAttribute("attributeName", "markerUnits"); +animate1.setAttribute("begin", "0s"); +animate1.setAttribute("dur", "4s"); +animate1.setAttribute("from", "userSpaceOnUse"); +animate1.setAttribute("to", "strokeWidth"); +animate1.setAttribute("fill", "freeze"); +marker.appendChild(animate1); + +// Setup animation test +function sample1() { + assert_equals(marker.markerUnits.animVal, SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE); + assert_equals(marker.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE); +} + +function sample2() { + assert_equals(marker.markerUnits.animVal, SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH); + assert_equals(marker.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 1.999, sample1], + ["animation", 2.001, sample2], + ["animation", 3.999, sample2], + ["animation", 4.001, sample2] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file |