| <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> |