2 <title>SVG*List array method tests
</title>
3 <script src=../../resources/testharness.js
></script>
4 <script src=../../resources/testharnessreport.js
></script>
5 <div id=
"testcontainer"></div>
9 document
.getElementById("testcontainer").innerHTML
= '<svg id="svg" width="1" height="1" visibility="hidden"><polygon id="polygon" points="10 10 450 212 24 103 45 32 62 42 123 52 62 52 57 72 12 548 85 12" visibility="hidden" systemLanguage="sv, en, fr, de, zn, jp"/><path id="path" d="M 10 10 L 450 212 24 103 45 32 62 42 123 52 62 52 57 72 12 548 85 12" transform="scale(0.5) rotate(34) translate(10 10)" visibility="hidden"/><text id="text" dx="10 10 450 212 24 103 45 32 62 42 123 52 62 52 57 72 12 548 85 12" rotate="10 66 2 23 546 54657 567 546 3 2 2 2 23" visibility="hidden"/></svg>';
12 var svg
= document
.getElementById("svg");
13 var polygon
= document
.getElementById("polygon");
14 var path
= document
.getElementById("path");
15 var text
= document
.getElementById("text");
16 function createSVGPoint(x
,y
) {
19 o
= new SVGPoint(x
,y
);
22 o
= svg
.createSVGPoint();
28 function createSVGLength(value
) {
31 o
= new SVGLength(value
);
34 o
= svg
.createSVGLength();
39 function createSVGNumber(value
) {
42 o
= new SVGNumber(value
);
45 o
= svg
.createSVGNumber();
50 function createSVGTransformTranslate(tx
,ty
) {
53 o
= new SVGTransform();
56 o
= svg
.createSVGTransform();
58 o
.setTranslate(tx
, ty
);
63 { "impl": polygon
.points
,
66 "insert_value": createSVGPoint(5, 5),
67 "equals": function(a
,b
) { return a
.x
== b
.x
&& a
.y
== b
.y
; }
70 { "impl": polygon
.systemLanguage
,
74 "equals": function(a
,b
) { return a
== b
; }
77 { "impl": path
.transform
.baseVal
,
78 "type": "SVGTransform",
80 "insert_value": createSVGTransformTranslate(5,5),
81 "equals": function(a
,b
) { return a
.matrix
.a
== b
.matrix
.a
&&
82 a
.matrix
.b
== b
.matrix
.b
&&
83 a
.matrix
.c
== b
.matrix
.c
&&
84 a
.matrix
.d
== b
.matrix
.d
&&
85 a
.matrix
.e
== b
.matrix
.e
&&
86 a
.matrix
.f
== b
.matrix
.f
; }
89 { "impl": path
.pathSegList
,
90 "type": "SVGPathSegMovetoAbs",
92 "insert_value": path
.createSVGPathSegMovetoAbs(5,5),
93 "equals": function(a
,b
) { return a
.x
== b
.x
&& a
.y
== b
.y
; }
96 { "impl": text
.dx
.baseVal
,
99 "insert_value": createSVGLength(5),
100 "equals": function(a
,b
) { return a
.valueInSpecifiedUnits
== b
.valueInSpecifiedUnits
&&
101 a
.unitType
== b
.unitType
; }
104 { "impl": text
.rotate
.baseVal
,
107 "insert_value": createSVGNumber(5),
108 "equals": function(a
,b
) { return a
.value
== b
.value
; }
112 for (list_type
in lists
) {
114 assert_idl_attribute(lists
[list_type
].impl
, "length");
115 }, list_type
+ " has length attribute");
117 assert_idl_attribute(lists
[list_type
].impl
, "numberOfItems");
118 }, list_type
+ " has numberOfItems attribute");
120 assert_equals(lists
[list_type
].impl
.length
, lists
[list_type
].impl
.numberOfItems
);
121 assert_equals(lists
[list_type
].impl
.length
, lists
[list_type
].length
);
122 }, list_type
+ ".length equals " + list_type
+ ".numberOfItems.");
124 assert_true(lists
[list_type
].equals(lists
[list_type
].impl
.getItem(0), lists
[list_type
].impl
[0]));
125 }, list_type
+ " has array getter");
127 var old_value
= lists
[list_type
].impl
[0];
128 var new_value
= lists
[list_type
].insert_value
;
129 lists
[list_type
].impl
[0] = lists
[list_type
].insert_value
;
130 assert_false(lists
[list_type
].equals(old_value
, new_value
));
131 assert_true(lists
[list_type
].equals(lists
[list_type
].impl
[0], new_value
));
132 assert_equals(lists
[list_type
].impl
.length
, lists
[list_type
].length
);
133 }, list_type
+ " has array setter");