summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html')
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html155
1 files changed, 155 insertions, 0 deletions
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html
new file mode 100644
index 0000000000..4a722f8f84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-dom-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-dom-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="test()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-dom-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+ #test-body-content rect { stroke: black; }
+ </style>
+ <script type="text/ecmascript"><![CDATA[
+ var pos = { "x": 20, "y": 40 };
+ var subtestCounter = 1;
+ var passed = true;
+
+ function toString(m)
+ {
+ var decimals = 0;
+ return m.a.toFixed(decimals) + "," +
+ m.b.toFixed(decimals) + "," +
+ m.c.toFixed(decimals) + "," +
+ m.d.toFixed(decimals) + "," +
+ m.e.toFixed(decimals) + "," +
+ m.f.toFixed(decimals);
+ }
+
+ function referenceEqual(m1,ref,eps)
+ {
+ return (Math.abs(m1.a-ref[0]) < eps &&
+ Math.abs(m1.b-ref[1]) < eps &&
+ Math.abs(m1.c-ref[2]) < eps &&
+ Math.abs(m1.d-ref[3]) < eps &&
+ Math.abs(m1.e-ref[4]) < eps &&
+ Math.abs(m1.f-ref[5]) < eps);
+ }
+
+ function assertEquals(m, ref, eps)
+ {
+ var result = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ var resultrect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ result.setAttribute("x", pos.x);
+ result.setAttribute("y", pos.y);
+ resultrect.setAttribute("fill", "lime");
+ resultrect.setAttribute("width", 15);
+ resultrect.setAttribute("height", 15);
+ resultrect.setAttribute("y", pos.y-15);
+
+ if(referenceEqual(m, ref, eps))
+ {
+ result.textContent = "Passed subtest #" + subtestCounter;
+ }
+ else
+ {
+ passed = false;
+ result.textContent = "Failed subtest #" + subtestCounter + ". Expected " + ref + " but got " + toString(m);
+ }
+ pos.y += 20;
+ subtestCounter++;
+ var results = document.getElementById("subteststatus");
+ results.appendChild(resultrect)
+ results.appendChild(result);
+ }
+
+ function test()
+ {
+ eps = 0.005; // "close enough"
+ r = document.getElementById("r");
+
+ t1 = r.transform.baseVal.getItem(0);
+ t2 = r.transform.baseVal.getItem(1);
+
+ // check that matrices are as specified in the markup
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 10], eps);
+ assertEquals(t2.matrix, [0, 1, -1, 0, 0, 0], eps);
+
+ // consolidate
+ tfm = r.transform.baseVal.consolidate();
+
+ // check that the consolidation is ok
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 10], eps);
+
+ // check that t1 and t2 were not affected by the consolidation
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 10], eps);
+ assertEquals(t2.matrix, [0, 1, -1, 0, 0, 0], eps);
+
+ // check that modifying t1 has no effect on the consolidated transform
+ t1.setTranslate(10,200);
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 200], eps);
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 10], eps);
+
+ // check that modifying t2 has no effect on the consolidated transform
+ t2.setRotate(-90, 0, 0);
+ assertEquals(t2.matrix, [0, -1, 1, 0, 0, 0], eps);
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 10], eps);
+
+ // check that modifying the consolidated transform has no effect on the t1 and t2 transforms
+ tfm.matrix.f = 400;
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 400], eps);
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 200], eps);
+ assertEquals(t2.matrix, [0, -1, 1, 0, 0, 0], eps);
+
+ document.getElementById("status").setAttributeNS(null, "fill", passed ? "lime" : "red");
+ document.getElementById("scriptstatus").textContent = "Scripting enabled";
+ }
+
+ ]]></script>
+ </defs>
+
+ <g transform="translate(20 -10)">
+ <g id="subteststatus" transform="translate(0,40)">
+ <rect id="status" y="5" width="15" height="15" fill="red"/>
+ <text id="scriptstatus" y="20" x="20" >Scripting disabled</text>
+ </g>
+
+ <polyline id="r" fill="none" stroke="green" display="none" transform="translate(10 10) rotate(90)" points="0 0 30 40 80 -20" stroke-width="10"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>