OLD | NEW |
| (Empty) |
1 <!doctype html> | |
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> | |
6 <div id=log></div> | |
7 <script> | |
8 function createSvg() { | |
9 document.getElementById("testcontainer").innerHTML = '<svg id="svg" width="1"
height="1" visibility="hidden"><polygon id="polygon" points="10 10 450 212 24 10
3 45 32 62 42 123 52 62 52 57 72 12 548 85 12" visibility="hidden" systemLanguag
e="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 4
2 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>'; | |
10 } | |
11 setup(createSvg); | |
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) { | |
17 var o; | |
18 try { | |
19 o = new SVGPoint(x,y); | |
20 } | |
21 catch(e) { | |
22 o = svg.createSVGPoint(); | |
23 o.x = x; | |
24 o.y = y; | |
25 } | |
26 return o; | |
27 } | |
28 function createSVGLength(value) { | |
29 var o; | |
30 try { | |
31 o = new SVGLength(value); | |
32 } | |
33 catch(e) { | |
34 o = svg.createSVGLength(); | |
35 o.value = value; | |
36 } | |
37 return o; | |
38 } | |
39 function createSVGNumber(value) { | |
40 var o; | |
41 try { | |
42 o = new SVGNumber(value); | |
43 } | |
44 catch(e) { | |
45 o = svg.createSVGNumber(); | |
46 o.value = value; | |
47 } | |
48 return o; | |
49 } | |
50 function createSVGTransformTranslate(tx,ty) { | |
51 var o; | |
52 try { | |
53 o = new SVGTransform(); | |
54 } | |
55 catch(e) { | |
56 o = svg.createSVGTransform(); | |
57 } | |
58 o.setTranslate(tx, ty); | |
59 return o; | |
60 } | |
61 var lists = { | |
62 "SVGPointList": | |
63 { "impl": polygon.points, | |
64 "type": "SVGPoint", | |
65 "length": 10, | |
66 "insert_value": createSVGPoint(5, 5), | |
67 "equals": function(a,b) { return a.x == b.x && a.y == b.y; } | |
68 }, | |
69 "SVGStringList": | |
70 { "impl": polygon.systemLanguage, | |
71 "type": "DOMString", | |
72 "length": 6, | |
73 "insert_value": "uk", | |
74 "equals": function(a,b) { return a == b; } | |
75 }, | |
76 "SVGTransformList": | |
77 { "impl": path.transform.baseVal, | |
78 "type": "SVGTransform", | |
79 "length": 3, | |
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; } | |
87 }, | |
88 "SVGLengthList": | |
89 { "impl": text.dx.baseVal, | |
90 "type": "SVGLength", | |
91 "length": 20, | |
92 "insert_value": createSVGLength(5), | |
93 "equals": function(a,b) { return a.valueInSpecifiedUnits == b.valueInS
pecifiedUnits && | |
94 a.unitType == b.unitType; } | |
95 }, | |
96 "SVGNumberList": | |
97 { "impl": text.rotate.baseVal, | |
98 "type": "SVGNumber", | |
99 "length": 13, | |
100 "insert_value": createSVGNumber(5), | |
101 "equals": function(a,b) { return a.value == b.value; } | |
102 } | |
103 }; | |
104 | |
105 for (list_type in lists) { | |
106 test(function() { | |
107 assert_idl_attribute(lists[list_type].impl, "length"); | |
108 }, list_type + " has length attribute"); | |
109 test(function() { | |
110 assert_idl_attribute(lists[list_type].impl, "numberOfItems"); | |
111 }, list_type + " has numberOfItems attribute"); | |
112 test(function() { | |
113 assert_equals(lists[list_type].impl.length, lists[list_type].impl.numberOf
Items); | |
114 assert_equals(lists[list_type].impl.length, lists[list_type].length); | |
115 }, list_type + ".length equals " + list_type + ".numberOfItems."); | |
116 test(function() { | |
117 assert_true(lists[list_type].equals(lists[list_type].impl.getItem(0), li
sts[list_type].impl[0])); | |
118 }, list_type + " has array getter"); | |
119 test(function() { | |
120 var old_value = lists[list_type].impl[0]; | |
121 var new_value = lists[list_type].insert_value; | |
122 lists[list_type].impl[0] = lists[list_type].insert_value; | |
123 assert_false(lists[list_type].equals(old_value, new_value)); | |
124 assert_true(lists[list_type].equals(lists[list_type].impl[0], new_value)
); | |
125 assert_equals(lists[list_type].impl.length, lists[list_type].length); | |
126 }, list_type + " has array setter"); | |
127 } | |
128 | |
129 </script> | |
OLD | NEW |