<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.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-01-b.svg                                             -->
<!-- Notes.  This is based on sample files by Kelvin Lawrence et al, for   -->
<!-- IBM's SVGview.  Requires supplemental file, linkingCircle-f.svg.        -->
<!-- Author : Lofton Henderson  03-April-2000                              -->
<!--======================================================================-->
<svg version="1.1" baseProfile="basic" 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" onload="clickLinkSoon()">

<script>
if (window.layoutTestController)
    window.layoutTestController.waitUntilDone();

function clickLinkSoon()
{
    window.setTimeout("clickLinkNow()", 0);
}

function clickLinkNow() {
    if (window.eventSender) {
        eventSender.mouseMoveTo(200, 170);
        eventSender.mouseDown();
        eventSender.mouseUp();
    }
}
</script>

	<title id="test-title">linking-a-01-b</title>
	<desc id="test-desc">Basic in-bound link object addressing formats.</desc>
	<g id="test-body-content" transform="scale(2)">
		<a xlink:href="resources/link-target.html">
			<path fill="none" stroke-width="20" stroke="blue" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z"/>
		</a>
	</g>
	<text id="revision" x="10" y="340" font-size="20" stroke="none" fill="black">Clicking the arrow should load a new page.</text>
	<rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
</svg>
