Source code
Revision control
Copy as Markdown
Other Tools
<svg version="1.1" baseProfile="basic" id="svg-root"
width="100%" height="100%" viewBox="0 0 480 360"
<!--======================================================================-->
<!--= SVG 1.1 2nd Edition Test Case =-->
<!--======================================================================-->
<!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
<!--= Institute of Technology, European Research Consortium for =-->
<!--= Informatics and Mathematics (ERCIM), Keio University). =-->
<!--= All Rights Reserved. =-->
<!--======================================================================-->
template-version="1.4" reviewer="SVGWG" author="Lee Klosterman" status="accepted"
version="$Revision: 1.10 $" testname="$RCSfile: linking-uri-02-b.svg,v $">
<d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/linking.html#LinksIntoSVG">
<p>
Verify the capability to handle links to 'view' elements, and the
permissible attributes on those elements. All of the links in this
test case are <em>external</em>, i.e., to 'view' elements in another SVG file.
That file is linking-uri-01-b.svg.
</p>
<p>
This test is identical to linking-uri-01-b except that the links here are external.
</p>
<p>
In the four quadrants of the initial picture are four graphical objects.
Clockwise from upper right, they are
a purple rectangle, blue ellipse, green polygon (pentagon), and yellow
circle. Each is labelled and tightly boxes with a rectangular frame.
These are identical to their counterparts in linking-uri-01-b.svg, in which
file each has an associated 'view' element, with attributes
per the labels in the initial picture.
</p>
<p>
In the center is a gray box with four lines of text, each of which says
"Go to" followed by Rectangle, Ellipse, Polygon, and Circle, respectively.
Each of these is contained within an 'a' element, whose xlink:href names
the respective 'view' element of the respective graphical object.
</p>
<p>
There are several reference images associated with this test case. The first
illustrates the correct initial state of the rendered SVG file, which should
also be the correct picture after the Rectangle link is executed.
The second, third, and fourth illustrate the correct images as described
above after respectively the Ellipse, Polygon, and Circle links are activated.
(Note. This harness does not yet provide access to multiple PNGs; the PNG for the
initial view is shown.)
</p>
<p>
The test uses the 'rect', 'circle', 'ellipse', and 'polygon' elements,
as well as basic fill (solid simple colors),
stroke (black and colored 1-pixel lines), font-family (Arial) and font-size properties.
</p>
</d:testDescription>
<p>
In turn, activate each of the "Rectangle", "Ellipse", "Polygon" and "Circle" links
in the gray box in the middle of the document, navigating back (for example with
the Back button if in a browser) after activating each one.
</p>
</d:operatorScript>
<p>
The test is passed if all of the sub-tests have the correct behavior:
</p>
<ul>
<li>After activating the "Rectangle" link, the whole of linking-uri-01-b.svg
must be displayed, which is visually similar to this document, linking-uri-02-b.svg.
(The 'view' element has no attributes (other than id), so the correct view in
the frame is of the parent 'svg' element, which is the whole picture.)</li>
<li>After navigating back and activating the "Ellipse" link, the view must change so that it is
zoomed (uniformly scaled) and centered on the ellipse in linking-uri-01-b.svg.
The black rectangle surrounding the ellipse must be just within the frame.</li>
<li>After navigating back and activating the "Circle" link, the view must change so that it is
zoomed and centered on the yellow circle in linking-uri-01-b.svg. The view is scaled non-uniformly, however,
so that the circle is stretched horizontally ito an ellipse. The black rectangle
surrounding it must be just within the frame.</li>
<li>After navigating back and activating the "Polygon" link, the whole of
linking-uri-01-b.svg must be displayed.</li>
</ul>
</d:passCriteria>
</d:SVGTestCase>
<title id="test-title">$RCSfile: linking-uri-02-b.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">
<text x="50" y="16" font-size="12">Link test of the 'view' element and its attributes, 2 of 2, external.</text>
<g font-size="14">
<g transform="translate(-150,75)">
<rect x="300" y="55" width="125" height="85" fill="#aaa"/>
<a xlink:href="../images/linking-uri-01-b.svg#rect-view">
<text x="310" y="70" fill="purple">Go to Rectangle</text>
</a>
<a xlink:href="../images/linking-uri-01-b.svg#ellipse-view">
<text x="310" y="90" fill="blue">Go to Ellipse</text>
</a>
<a xlink:href="../images/linking-uri-01-b.svg#circle-view">
<text x="310" y="110" fill="yellow">Go to Circle</text>
</a>
<a xlink:href="../images/linking-uri-01-b.svg#polygon-view">
<text x="310" y="130" fill="green">Go to Polygon</text>
</a>
<text x="310" y="150" font-size="12">Click element's line</text>
<text x="310" y="162" font-size="12">to link to its view in</text>
<text x="310" y="174" font-size="12">linking-uri-01-b.</text>
</g>
<!-- In linking-uri-01-b, there is the following 'view' element. -->
<!-- View with no attributes. Picture should not change. -->
<!-- <view id="rect-view" /> -->
<rect id="rect-object" fill="purple" x="295" y="36" width="135" height="68"/>
<text id="rect-label" x="362.5" y="116" text-anchor="middle">Rectangle</text>
<rect x="292" y="29" width="141" height="91" fill="none" stroke="black"/>
<text x="362.5" y="132" font-size="10" text-anchor="middle">No view attributes except id.</text>
<!-- In linking-uri-01-b, there is the following 'view' element. -->
<!-- Test viewBox. Should blow-up the ellipse in the frame. -->
<!-- <view id="ellipse-view" viewBox="295 216 150 82"/> -->
<ellipse id="ellipse-object" fill="blue" cx="370" cy="251" rx="72" ry="32"/>
<text id="ellipse-label" x="370" y="295" text-anchor="middle">Ellipse</text>
<rect x="295" y="216" width="150" height="82" fill="none" stroke="black"/>
<text x="370" y="212" font-size="10" text-anchor="middle">viewBox, should fill frame.</text>
<!-- In linking-uri-01-b, there is the following 'view' element. -->
<!-- Test preserveAspectRatio. -->
<!-- <view id="circle-view" viewBox="20 29 128 91.5" preserveAspectRatio="none"/> -->
<circle id="circle-object" fill="yellow" cx="85" cy="68" r="36"/>
<text id="circle-label" x="85" y="116" text-anchor="middle">Circle</text>
<rect x="36" y="29" width="98" height="91" fill="none" stroke="black"/>
<text x="85" y="130" font-size="10" text-anchor="middle">viewBox & non-uniform</text>
<text x="85" y="139" font-size="10" text-anchor="middle">preserveAspectRatio</text>
<!-- In linking-uri-01-b, there is the following 'view' element. -->
<!-- Test viewTarget attribute, no change to the viewport. -->
<!-- <view id="polygon-view" viewTarget="polygon-object" /> -->
<polygon id="polygon-object" fill="green" points="87,211 134,238 116,283 57,283 39,238 87,211"/>
<text id="polygon-label" x="85" y="295" text-anchor="middle">Polygon</text>
<rect x="36" y="208" width="100" height="89" fill="none" stroke="black"/>
<text x="85" y="195" font-size="10" text-anchor="middle">viewTarget, no</text>
<text x="85" y="204" font-size="10" text-anchor="middle">changes to viewport</text>
</g>
</g>
<g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
<text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
</g>
<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
<!-- 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>