<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">

<!--======================================================================-->
<!--=  Copyright 2000 World Wide Web Consortium, (Massachusetts          =-->
<!--=  Institute of Technology, Institut National de Recherche en        =-->
<!--=  Informatique et en Automatique, Keio University). All Rights      =-->
<!--=  Reserved. See http://www.w3.org/Consortium/Legal/.                =-->
<!--======================================================================-->
<!-- =====================================================================-->
<!--                                                                      -->
<!-- linking-a-04-t.svg                                                   -->
<!--                                                                      -->
<!-- Verify basic out-bound links and the 'a' element.                    -->
<!--                                                                      -->
<!-- Notes.  This is based on sample files by Kelvin Lawrence et al, for  -->
<!-- IBM's SVGview.  Requires supplemental file, linkingToc-t.svg.        -->
<!--                                                                      -->
<!-- Author : Lee Klosterman  31-January-2002                             -->
<!-- Revised for Mobile Profiles: Jun Fujisawa 16-Jul-2002                -->
<!--                                                                      -->
<!-- History:                                                             -->
<!--                                                                      -->
<!-- =====================================================================-->
<!--======================================================================-->
<!--= Note. After October 2000, revision history is kept as CVS 'commit' =-->
<!--= log messages, and therefore is no longer in the preceding preamble.=-->
<!--======================================================================-->
<svg version="1.1" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  id="svg-root" width="100%" height="100%" viewBox="0 0 480 360">

    <SVGTestCase xmlns="http://www.w3.org/2000/02/svg/testsuite/description/" chapter="linking" section="a" profile="f" index="02" >

        <!-- For BE-01 case, 'Previous' should target last BE of previous chapter-focus --> 

        <!-- Previous chapter="interact" focus="cursor" BENumber="08" / -->

        <!-- For last BE of chapter, 'Next' should target first BE of next chapter-focus --> 

        <!-- Next focus="xlinkAttr" BENumber="02" / -->
        <!-- Parent chapter="toc" / -->

        <!-- For now, all BE target DT-01 in same chapter-focus as Child -->

        <!-- Child testType="DT" DTNumber="01" / -->

		<OperatorScript version="$Revision: 1.9 $" testname="linking-a-04-t.svg">
		    <Paragraph>
                Verify the capability to handle basic links out of SVG content
                using the 'a' element, with the xlink:href attributes.  
                There are three subtests, in each of which one
                of three colored arrows comprise the content of an 'a' element.  The
                link destination is expressed by "xlink:href=".  
                The initial view of this test contains the three arrows, a colored
                circle, labelling text, and the usual template legend and frame.
            </Paragraph>
            <Paragraph>
                The top-most (yellow) arrow links to an external SVG file, which is 
                local (in the same directory).  The target file contains SVG 'text' elements
                which comprise a TOC and brief description of all of the test files 
                for Linking.  Upon clicking the first arrow, the image of the linkingToc-t.svg
                file should replace the initial view of this test case in the viewer frame.
            </Paragraph>
            <Paragraph>
                The middle (green) arrow links to an object in this SVG test file, the yellow
                circle (id="internal-circle") immediately to its right, using "#circle-object"
                as the value of of the xlink:href attribute.  
                There should be no change to the viewer frame upon clicking this arrow.
            </Paragraph>
            <Paragraph>
                The bottom-most (blue) arrow links to remote non-SVG content, the W3C home page
                using xlink:href attribute value "http://www.w3.org".  For viewers in a Web
                browser environment, the W3C home page should replace the initial view
                of this test case in the browser/viewer frame.  For other viewers (e.g.,
                interactive but SVG-only standalone viewers), the result is undefined, but could 
                include such actions as a diagnostic "Error parsing..." message.
            </Paragraph>
            <Paragraph>
                There are several reference images associated with this test case.  The first
                illustrates the correct "start" or initial state of the rendered SVG file.
                The second illustrates the correct image after the first link is activated
                (to the linkingToc.svg file).  The third (for browser-environment viewers)
                should match the current image of the W3C home page, as viewed with a 
                conventional browser.  (Note.  This harness does not yet 
                provide access to multiple PNGs; the first, initial-state PNG is shown.)	
            </Paragraph>
            <Paragraph>
                The test uses the 'rect' and 'polygon' elements, as well as basic fill (solid simple colors), 
                stroke (black and colored wide and 1-pixel lines), font-family (Arial) and font-size properties.
            </Paragraph>
        </OperatorScript>

    </SVGTestCase>

	<title id="test-title">linking-a-04-t</title>
	<desc id="test-desc">Verify basic out-bound links and the 'a' element.</desc>
	<!--======================================================================-->
	<!--Content of Test Case follows...                  =====================-->
	<!--======================================================================-->
	<g id="test-body-content">
		<text x="90" y="16" font-size="12" >Basic out-bound links and the 'a' element.</text>
		<!-- First linking test:  link to another SVG file in same location. -->
		<a xlink:href="resources/linkingToc-t.svg">
			<path fill="yellow" stroke="blue"  d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
		</a>
		<!-- Second linking test:  link to another object in this file. -->
		<g transform="translate(0,90)">
			<a xlink:href="#internal-circle">
				<path fill="lime" stroke="blue"  d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
			</a>
		</g>
		<!-- Third linking test:  links to external, remote, non-SVG content (for  -->
		<!-- plugin viewers in browser environments.)                              -->
		<g transform="translate(0,180)">
			<a xlink:href="http://www.w3.org">
				<path fill="aqua" stroke="blue"  d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
			</a>
		</g>
		<!-- Link target of second test -->
		<circle id="internal-circle" cx="390" cy="153" r="20" stroke="lime" fill="yellow" stroke-width="4" />
		<text x="350" y="189" font-size="10" >id="internal-circle"</text>
	</g>
	<text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text>
	<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>
