<!doctype html>
<title>'by' path animation</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/SVGAnimationTestCase-testharness.js"></script>
<script src="support/animated-path-helpers.js"></script>
<svg></svg>
<script>
var rootSVGElement = document.querySelector("svg");

// Setup test document
var path = createSVGElement("path");
path.setAttribute("id", "path");
path.setAttribute("d", "M 40 40 L 60 40 L 60 60 L 40 60 z");
path.setAttribute("fill", "green");
path.setAttribute("onclick", "executeTest()");

var animate = createSVGElement("animate");
animate.setAttribute("id", "animation");
animate.setAttribute("attributeName", "d");
animate.setAttribute("from", "M 40 40 L 60 40 L 60 60 L 40 60 z");
animate.setAttribute("by", "M 0 0 L 100 0 L 100 100 L 0 100 z");
animate.setAttribute("begin", "0s");
animate.setAttribute("fill", "freeze");
animate.setAttribute("dur", "4s");
path.appendChild(animate);
rootSVGElement.appendChild(path);

smil_async_test(t => {
  const expectedValues = [
    // [animationId, time, sampleCallback]
    ["animation", 0.0,   () => {
      assert_animated_path_equals(path,
                                  "M 40 40 L 60 40 L 60 60 L 40 60 z");
    }],
    ["animation", 1.999, () => {
      assert_animated_path_equals(path,
                                  "M 40 40 L 109.975 40 L 109.975 109.975 L 40 109.975 Z");
    }],
    ["animation", 2.001, () => {
      assert_animated_path_equals(path,
                                  "M 40 40 L 110.025 40 L 110.025 110.025 L 40 110.025 Z");
    }],
    ["animation", 3.999, () => {
      assert_animated_path_equals(path,
                                  "M 40 40 L 159.975 40 L 159.975 159.975 L 40 159.975 Z");
    }],
    ["animation", 4.001, () => {
      assert_animated_path_equals(path,
                                  "M 40 40 L 160 40 L 160 160 L 40 160 Z");
    }]
  ];
  runAnimationTest(t, expectedValues);
});
</script>
