JS Test Harness: Remove successfullyParsed from more tests
[WebKit-https.git] / LayoutTests / svg / dom / SVGPathSegList-appendItem.xhtml
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <script>window.enablePixelTesting = true;</script>
4 <script src="../../fast/js/resources/js-test-pre.js"></script>
5 </head>
6 <body>
7 <svg id="svg" xmlns="http://www.w3.org/2000/svg" width="250" height="250">
8     <g transform="translate(10, 10)">
9         <path id="path1" d="M 0 0 L 100 0 L 100 100" fill="green"/>
10         <path transform="translate(110, 0)" id="path2" d="M 0 0 L 50 100 h 100 h 100 v 100" fill="green"/>
11     </g>
12 </svg>
13
14 <p id="description"></p>
15 <div id="console"></div>
16 <script type="text/javascript">
17 <![CDATA[
18     description("This is a test of the SVGPathSegList::appendItem() API.");
19
20     var svg = document.getElementById("svg");
21     var path1 = document.getElementById("path1");
22     var path2 = document.getElementById("path2");
23
24     debug("");
25     debug("Check initial 'pathSegList' value of path1");
26     shouldBe("path1.pathSegList.numberOfItems", "3");
27     shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
28     shouldBe("path1.pathSegList.getItem(0).x", "0");
29     shouldBe("path1.pathSegList.getItem(0).y", "0");
30     shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
31     shouldBe("path1.pathSegList.getItem(1).x", "100");
32     shouldBe("path1.pathSegList.getItem(1).y", "0");
33     shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
34     shouldBe("path1.pathSegList.getItem(2).x", "100");
35     shouldBe("path1.pathSegList.getItem(2).y", "100");
36  
37     debug("");
38     debug("Check initial 'pathSegList' value of path2");
39     shouldBe("path2.pathSegList.numberOfItems", "5");
40     shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
41     shouldBe("path2.pathSegList.getItem(0).x", "0");
42     shouldBe("path2.pathSegList.getItem(0).y", "0");
43     shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
44     shouldBe("path2.pathSegList.getItem(1).x", "50");
45     shouldBe("path2.pathSegList.getItem(1).y", "100");
46     shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoHorizontalRel]");
47     shouldBe("path2.pathSegList.getItem(2).x", "100");
48     shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoHorizontalRel]");
49     shouldBe("path2.pathSegList.getItem(3).x", "100");
50     shouldBeEqualToString("path2.pathSegList.getItem(4).toString()", "[object SVGPathSegLinetoVerticalRel]");
51     shouldBe("path2.pathSegList.getItem(4).y", "100");
52
53     debug("");
54     debug("Negate x value of fourth segment in path2");
55     shouldBe("path2.pathSegList.getItem(3).x = -path2.pathSegList.getItem(3).x", "-100");
56
57     debug("")
58     debug("Swap segment four and five of path2 - now should look like a rectangle");
59     shouldBeEqualToString("path2.pathSegList.appendItem(path2.pathSegList.getItem(3)).toString()", "[object SVGPathSegLinetoHorizontalRel]");
60
61     debug("");
62     debug("Append second item from path2 to path1 list");
63     shouldBeEqualToString("path1.pathSegList.appendItem(path2.pathSegList.getItem(1)).toString()", "[object SVGPathSegLinetoAbs]");
64
65     debug("");
66     debug("Change last item of path1 list, that came from path2 list, assure it's updating path1");
67     shouldBe("path1.pathSegList.getItem(3).x -= 50", "0");
68
69     debug("");
70     debug("Check final 'pathSegList' value of path1");
71     shouldBe("path1.pathSegList.numberOfItems", "4");
72     shouldBeEqualToString("path1.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
73     shouldBe("path1.pathSegList.getItem(0).x", "0");
74     shouldBe("path1.pathSegList.getItem(0).y", "0");
75     shouldBeEqualToString("path1.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoAbs]");
76     shouldBe("path1.pathSegList.getItem(1).x", "100");
77     shouldBe("path1.pathSegList.getItem(1).y", "0");
78     shouldBeEqualToString("path1.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoAbs]");
79     shouldBe("path1.pathSegList.getItem(2).x", "100");
80     shouldBe("path1.pathSegList.getItem(2).y", "100");
81     shouldBeEqualToString("path1.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoAbs]");
82     shouldBe("path1.pathSegList.getItem(3).x", "0");
83     shouldBe("path1.pathSegList.getItem(3).y", "100");
84
85     debug("");
86     debug("Check final 'pathSegList' value of path2");
87     shouldBe("path2.pathSegList.numberOfItems", "4");
88     shouldBeEqualToString("path2.pathSegList.getItem(0).toString()", "[object SVGPathSegMovetoAbs]");
89     shouldBe("path2.pathSegList.getItem(0).x", "0");
90     shouldBe("path2.pathSegList.getItem(0).y", "0");
91     shouldBeEqualToString("path2.pathSegList.getItem(1).toString()", "[object SVGPathSegLinetoHorizontalRel]");
92     shouldBe("path2.pathSegList.getItem(1).x", "100");
93     shouldBeEqualToString("path2.pathSegList.getItem(2).toString()", "[object SVGPathSegLinetoVerticalRel]");
94     shouldBe("path2.pathSegList.getItem(2).y", "100");
95     shouldBeEqualToString("path2.pathSegList.getItem(3).toString()", "[object SVGPathSegLinetoHorizontalRel]");
96     shouldBe("path2.pathSegList.getItem(3).x", "-100");
97
98 ]]>
99 </script>
100 <script src="../../fast/js/resources/js-test-post.js"></script>
101 </body>
102 </html>