1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
<!DOCTYPE html>
<html lang='en'>
<head>
<title>struct-svg-02-f-manual.svg</title>
<meta charset='utf-8'>
</head>
<body>
<h1>Source SVG: struct-svg-02-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">
<!--======================================================================-->
<!--= 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: 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><![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>
</body>
</html>
|