| Index: LayoutTests/svg/animations/script-tests/use-animate-width-and-height.js
|
| diff --git a/LayoutTests/svg/animations/script-tests/use-animate-width-and-height.js b/LayoutTests/svg/animations/script-tests/use-animate-width-and-height.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bd2f8abb5ee354a064740ae401256aa2b99062e2
|
| --- /dev/null
|
| +++ b/LayoutTests/svg/animations/script-tests/use-animate-width-and-height.js
|
| @@ -0,0 +1,122 @@
|
| +description("Test animation of use element width/height");
|
| +createSVGTestCase();
|
| +
|
| +// Setup test document
|
| +var symbol = createSVGElement("symbol");
|
| +symbol.setAttribute("id", "symbol");
|
| +
|
| +var rect = createSVGElement("rect");
|
| +rect.setAttribute("id", "rect");
|
| +rect.setAttribute("x", "10");
|
| +rect.setAttribute("y", "10");
|
| +rect.setAttribute("width", "100%");
|
| +rect.setAttribute("height", "100%");
|
| +rect.setAttribute("fill", "green");
|
| +rect.setAttribute("onclick", "executeTest()");
|
| +symbol.appendChild(rect);
|
| +rootSVGElement.appendChild(symbol);
|
| +
|
| +var use = createSVGElement("use");
|
| +use.setAttribute("id", "use");
|
| +use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', '#symbol');
|
| +use.setAttribute("x", "0");
|
| +use.setAttribute("y", "0");
|
| +use.setAttribute("width", "100");
|
| +use.setAttribute("height", "100");
|
| +rootSVGElement.appendChild(use);
|
| +
|
| +var animate = createSVGElement("animate");
|
| +animate.setAttribute("id", "animate");
|
| +animate.setAttribute("attributeName", "width");
|
| +animate.setAttribute("attributeType", "XML");
|
| +animate.setAttribute("begin", "1s");
|
| +animate.setAttribute("dur", "10s");
|
| +animate.setAttribute("from", "100");
|
| +animate.setAttribute("to", "200");
|
| +use.appendChild(animate);
|
| +
|
| +var animate2 = createSVGElement("animate");
|
| +animate2.setAttribute("id", "animate2");
|
| +animate2.setAttribute("attributeName", "height");
|
| +animate2.setAttribute("attributeType", "XML");
|
| +animate2.setAttribute("begin", "1s");
|
| +animate2.setAttribute("dur", "10s");
|
| +animate2.setAttribute("from", "100");
|
| +animate2.setAttribute("to", "200");
|
| +use.appendChild(animate2);
|
| +
|
| +var shadowRoot = internals.shadowRoot(use);
|
| +
|
| +// Setup animation test
|
| +function sample1() {
|
| + // Check initial/end conditions
|
| + shouldBe("use.width.animVal.value", "100");
|
| + shouldBe("use.width.baseVal.value", "100");
|
| + shouldBe("use.height.animVal.value", "100");
|
| + shouldBe("use.height.baseVal.value", "100");
|
| + shouldBe("use.getAttribute('width')", "'100'");
|
| + shouldBe("use.getAttribute('height')", "'100'");
|
| + shouldBe("shadowRoot.firstChild.width.animVal.value", "100");
|
| + shouldBe("shadowRoot.firstChild.height.animVal.value", "100");
|
| +}
|
| +
|
| +function sample2() {
|
| + shouldBe("use.width.animVal.value", "105");
|
| + shouldBe("use.width.baseVal.value", "100");
|
| + shouldBe("use.height.animVal.value", "105");
|
| + shouldBe("use.height.baseVal.value", "100");
|
| + shouldBe("use.getAttribute('width')", "'105'");
|
| + shouldBe("use.getAttribute('height')", "'105'");
|
| + shouldBe("shadowRoot.firstChild.width.animVal.value", "105");
|
| + shouldBe("shadowRoot.firstChild.height.animVal.value", "105");
|
| +}
|
| +
|
| +function sample3() {
|
| + shouldBe("use.width.animVal.value", "115");
|
| + shouldBe("use.width.baseVal.value", "100");
|
| + shouldBe("use.height.animVal.value", "115");
|
| + shouldBe("use.height.baseVal.value", "100");
|
| + shouldBe("use.getAttribute('width')", "'115'");
|
| + shouldBe("use.getAttribute('height')", "'115'");
|
| + shouldBe("shadowRoot.firstChild.width.animVal.value", "115");
|
| + shouldBe("shadowRoot.firstChild.height.animVal.value", "115");
|
| +}
|
| +
|
| +function sample4() {
|
| + shouldBe("use.width.animVal.value", "125");
|
| + shouldBe("use.width.baseVal.value", "100");
|
| + shouldBe("use.height.animVal.value", "125");
|
| + shouldBe("use.height.baseVal.value", "100");
|
| + shouldBe("use.getAttribute('width')", "'125'");
|
| + shouldBe("use.getAttribute('height')", "'125'");
|
| + shouldBe("shadowRoot.firstChild.width.animVal.value", "125");
|
| + shouldBe("shadowRoot.firstChild.height.animVal.value", "125");
|
| +}
|
| +
|
| +function sample5() {
|
| + shouldBe("use.width.animVal.value", "135");
|
| + shouldBe("use.width.baseVal.value", "100");
|
| + shouldBe("use.height.animVal.value", "135");
|
| + shouldBe("use.height.baseVal.value", "100");
|
| + shouldBe("use.getAttribute('width')", "'135'");
|
| + shouldBe("use.getAttribute('height')", "'135'");
|
| + shouldBe("shadowRoot.firstChild.width.animVal.value", "135");
|
| + shouldBe("shadowRoot.firstChild.height.animVal.value", "135");
|
| +}
|
| +
|
| +function executeTest() {
|
| + const expectedValues = [
|
| + // [animationId, time, sampleCallback]
|
| + ["animate2", 0.0, sample1],
|
| + ["animate2", 0.5, sample2],
|
| + ["animate2", 1.5, sample3],
|
| + ["animate2", 2.5, sample4],
|
| + ["animate2", 3.5, sample5]
|
| + ];
|
| +
|
| + runAnimationTest(expectedValues);
|
| +}
|
| +
|
| +window.clickX = 50;
|
| +window.clickY = 50;
|
| +var successfullyParsed = true;
|
|
|