blob: e268386b64e256383b606aa02ac1497e380d8f3f [file] [log] [blame]
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:html="http://www.w3.org/1999/xhtml">
<title>SVGGeometryElement.prototype.getPointAtLength clamps its argument to [0, length]</title>
<metadata>
<html:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/>
<html:meta name="assert" content="SVGGeometryElement.prototype.getPointAtLength clamps its argument."/>
</metadata>
<g stroke="blue">
<line id="line" x1="50" y1="60" x2="100" y2="60"/>
<path id="path" d="M40,70L110,70"/>
</g>
<html:script src="/resources/testharness.js"/>
<html:script src="/resources/testharnessreport.js"/>
<script><![CDATA[
test(function() {
let line = document.getElementById('line');
let point = line.getPointAtLength(-10);
assert_equals(point.x, 50, 'starting x');
assert_equals(point.y, 60, 'starting y');
}, document.title+', less than zero (SVGLineElement).');
test(function() {
let path = document.getElementById('path');
let point = path.getPointAtLength(-10);
assert_equals(point.x, 40, 'starting x');
assert_equals(point.y, 70, 'starting y');
}, document.title+', less than zero (SVGPathElement).');
test(function() {
let line = document.getElementById('line');
assert_less_than(line.getTotalLength(), 80);
let point = line.getPointAtLength(80);
assert_equals(point.x, 100, 'ending x');
assert_equals(point.y, 60, 'ending y');
}, document.title+', greater than \'length\' (SVGLineElement).');
test(function() {
let path = document.getElementById('path');
assert_less_than(path.getTotalLength(), 80);
let point = path.getPointAtLength(80);
assert_equals(point.x, 110, 'ending x');
assert_equals(point.y, 70, 'ending y');
}, document.title+', greater than \'length\' (SVGPathElement).');
]]></script>
</svg>