| <!DOCTYPE html> |
| <title>SVGGeometryElement.getTotalLength method (element attached)</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <svg></svg> |
| <script> |
| setup(function() { |
| window.svgElement = document.querySelector("svg"); |
| }); |
| |
| test(function() { |
| var pathElement = document.createElementNS("http://www.w3.org/2000/svg", "path"); |
| svgElement.appendChild(pathElement); |
| |
| function getTotalLength(string) { |
| pathElement.setAttribute("d", string); |
| return pathElement.getTotalLength(); |
| } |
| |
| assert_equals(getTotalLength('M0,20 L400,20 L640,20'), 640); |
| assert_equals(getTotalLength('M0,20 L400,20 L640,20 z'), 1280); |
| assert_equals(getTotalLength('M0,20 L400,20 z M 320,20 L640,20'), 1120); |
| }, document.title + " with SVGPathElement"); |
| |
| test(function() { |
| var rectElement = document.createElementNS("http://www.w3.org/2000/svg", "rect"); |
| svgElement.appendChild(rectElement); |
| |
| function getTotalLength(rx, ry, width, height) { |
| rectElement.setAttribute("rx", rx); |
| rectElement.setAttribute("ry", ry); |
| rectElement.setAttribute("width", width); |
| rectElement.setAttribute("height", height); |
| |
| return rectElement.getTotalLength(); |
| } |
| |
| assert_equals(getTotalLength(0, 0, 200, 300), 1000); |
| assert_approx_equals(getTotalLength(50, 50, 200, 300), 913.65, 0.1); |
| }, document.title + " with SVGRectElement"); |
| |
| test(function() { |
| var circleElement = document.createElementNS("http://www.w3.org/2000/svg", "circle"); |
| svgElement.appendChild(circleElement); |
| |
| circleElement.setAttribute("r", 10); |
| assert_approx_equals(circleElement.getTotalLength(), 62.42, 0.1); |
| circleElement.setAttribute("r", 20); |
| assert_approx_equals(circleElement.getTotalLength(), 124.85, 0.1); |
| }, document.title + " with SVGCircleElement"); |
| </script> |