| <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"> |
| <!--======================================================================--> |
| <!--= 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/. =--> |
| <!--======================================================================--> |
| <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/" |
| template-version="1.4" reviewer="CM" author="ED" status="reviewed" |
| version="$Revision: 1.5 $" testname="$RCSfile: struct-svg-02-f.svg,v $"> |
| <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/struct.html#SVGElement"> |
| <p> |
| Testing various interactions on the width attribute on an svg element. |
| The width attribute defaults to "100%" if it's not specified. |
| </p> |
| </d:testDescription> |
| <d:operatorScript xmlns="http://www.w3.org/1999/xhtml"> |
| <p> |
| Run the test. No interaction required. |
| </p> |
| </d:operatorScript> |
| <d:passCriteria xmlns="http://www.w3.org/1999/xhtml"> |
| <p> |
| The test is passed if the testframe is filled with green, and there's no red. |
| </p> |
| </d:passCriteria> |
| </d:SVGTestCase> |
| <title id="test-title">$RCSfile: struct-svg-02-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"> |
| <script type="text/ecmascript" xlink:href="../resources/testharness.js"/> |
| |
| <!-- The testroot is here only to get a predictable 480x360 viewport --> |
| <svg id="testroot" width="480" height="360"> |
| <svg id="testSVG1" /> |
| <svg id="testSVG2" /> |
| <svg id="subSVG" width="300" height="175"/> |
| </svg> |
| |
| <g id="testoutput"/> |
| |
| <!-- Cover the whole testframe with a simple visual result --> |
| <rect id="status" width="100%" height="100%" fill="none"/> |
| |
| <script type="text/javascript"><![CDATA[ |
| var passes = 0; |
| var ypos = 50; |
| |
| function verify(str, result) |
| { |
| var g = document.createElementNS("http://www.w3.org/2000/svg", "g"); |
| var r = document.createElementNS("http://www.w3.org/2000/svg", "rect"); |
| var t = document.createElementNS("http://www.w3.org/2000/svg", "text"); |
| var tc = document.createTextNode(str); |
| t.appendChild(tc); |
| t.setAttribute("class", "result"); |
| t.setAttribute("font-family", "monospace"); |
| t.setAttribute("font-size", "9px"); |
| t.setAttribute("fill", "black"); |
| t.setAttribute("x", "10"); |
| t.setAttribute("y", "7"); |
| r.setAttribute("y", "1"); |
| r.setAttribute("width", "5"); |
| r.setAttribute("height", "5"); |
| g.setAttribute("class", result ? "passed" : "failed"); |
| g.setAttribute("fill", result ? "lime" : "red"); |
| g.appendChild(r); |
| g.appendChild(t); |
| g.setAttribute("transform", "translate(10 " + ypos + ")"); |
| ypos += 10; |
| document.getElementById("testoutput").appendChild(g); |
| |
| if (result) |
| passes++; |
| } |
| |
| try |
| { |
| var testSVG = document.getElementById("testSVG1"); |
| var subSVG = document.getElementById("subSVG"); |
| var status = document.getElementById("status"); |
| |
| var base = testSVG.width.baseVal; |
| |
| verify("value: " + base.value, base.value == 480); |
| test(function() {assert_equals(base.value, 480)}, "Assert that the width baseVal is 100% computed to user units."); |
| |
| verify("valueInSpecifiedUnits: " + base.valueInSpecifiedUnits, base.valueInSpecifiedUnits == 100); |
| test(function() {assert_equals(base.value, 100)}, "Assert that the default width baseVal is 100."); |
| |
| // set the value in user units and then read it back |
| base.value = 240; |
| verify("value: " + base.value, base.value == 240); |
| test(function() {assert_equals(base.value, 240)}, "Assert that the width baseVal is 240 after setting it."); |
| verify("valueInSpecifiedUnits: " + base.valueInSpecifiedUnits, base.valueInSpecifiedUnits == 50); |
| test(function() {assert_equals(base.valueInSpecifiedUnits, 50)}, "Assert that the value in specified units is now 50."); |
| |
| // move the svg to be child of another viewport and read values again |
| subSVG.appendChild(testSVG); |
| verify("value: " + base.value, base.value == 150); |
| test(function() {assert_equals(base.value, 150)}, "Assert that the value changes to 150 after being moved to a new viewport."); |
| verify("valueInSpecifiedUnits: " + base.valueInSpecifiedUnits, base.valueInSpecifiedUnits == 50); |
| test(function() {assert_equals(base.valueInSpecifiedUnits, 50)}, "Assert that the value in specified units is still 50 after being moved to a new viewport."); |
| |
| // move an svg that hasn't been modified to another viewport and read values |
| testSVG = document.getElementById("testSVG2"); |
| subSVG.appendChild(testSVG); |
| base = testSVG.width.baseVal; |
| verify("value: " + base.value, base.value == 300); |
| test(function() {assert_equals(base.value, 300)}, "Assert that the width baseVal is 300 user units after being moved to a new viewport."); |
| } |
| catch(ex) |
| { |
| } |
| |
| status.setAttribute("fill", passes == 7 ? "lime" : "red"); |
| test(function() {assert_equals(passes,7)}, "Assert that all subtests passed."); |
| ]]></script> |
| |
| </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> |