Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / html / marquee-element.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../../resources/js-test.js"></script>
5 </head>
6 <body>
7 <div id="testParent" style="visibility:hidden"></div>
8 <script>
9 description('Various tests for the marquee element.');
10
11 var marquee;
12 var testParent = document.getElementById("testParent");
13
14 debug('"behavior" IDL attribute reflects content attribute:');
15 testParent.innerHTML = '<marquee id="marquee" behavior="slide">test</marquee>';
16 marquee = document.getElementById('marquee');
17 shouldBe('marquee.behavior', '"slide"');
18
19 debug('"behavior" IDL attribute can be modified:');
20 testParent.innerHTML = '<marquee id="marquee" behavior="slide">test</marquee>';
21 marquee = document.getElementById('marquee');
22 marquee.behavior = "alternate";
23 shouldBe('marquee.behavior', '"alternate"');
24
25 debug('"bgColor" IDL attribute reflects content attribute:');
26 testParent.innerHTML = '<marquee id="marquee" bgcolor="red">test</marquee>';
27 marquee = document.getElementById('marquee');
28 shouldBe('marquee.bgColor', '"red"');
29
30 debug('"bgColor" IDL attribute can be modified:');
31 testParent.innerHTML = '<marquee id="marquee" bgcolor="red">test</marquee>';
32 marquee = document.getElementById('marquee');
33 marquee.bgColor = "blue";
34 shouldBe('marquee.bgColor', '"blue"');
35
36 debug('"direction" IDL attribute reflects content attribute:');
37 testParent.innerHTML = '<marquee id="marquee" direction="right">test</marquee>';
38 marquee = document.getElementById('marquee');
39 shouldBe('marquee.direction', '"right"');
40
41 debug('"direction" IDL attribute can be modified:');
42 testParent.innerHTML = '<marquee id="marquee" direction="right">test</marquee>';
43 marquee = document.getElementById('marquee');
44 marquee.direction = "left";
45 shouldBe('marquee.direction', '"left"');
46
47 debug('"height" IDL attribute reflects content attribute:');
48 testParent.innerHTML = '<marquee id="marquee" height="100px">test</marquee>';
49 marquee = document.getElementById('marquee');
50 shouldBe('marquee.height', '"100px"');
51
52 debug('"height" IDL attribute can be modified:');
53 testParent.innerHTML = '<marquee id="marquee" height="100px">test</marquee>';
54 marquee = document.getElementById('marquee');
55 marquee.height = "200px";
56 shouldBe('marquee.height', '"200px"');
57
58 debug('"hspace" IDL attribute reflects content attribute:');
59 testParent.innerHTML = '<marquee id="marquee" hspace="10">test</marquee>';
60 marquee = document.getElementById('marquee');
61 shouldBe('marquee.hspace', '10');
62
63 debug('"hspace" IDL attribute can be modified:');
64 testParent.innerHTML = '<marquee id="marquee" hspace="10">test</marquee>';
65 marquee = document.getElementById('marquee');
66 marquee.hspace = 20;
67 shouldBe('marquee.hspace', '20');
68
69 debug('"hspace" IDL attribute is 0 when content attribute is negative:');
70 testParent.innerHTML = '<marquee id="marquee" hspace="-1">test</marquee>';
71 marquee = document.getElementById('marquee');
72 shouldBe('marquee.hspace', '0');
73
74 debug('"hspace" IDL attribute is 0 when content attribute is too large:');
75 testParent.innerHTML = '<marquee id="marquee" hspace="2147483648">test</marquee>';
76 marquee = document.getElementById('marquee');
77 shouldBe('marquee.hspace', '0');
78
79 debug('"loop" IDL attribute reflects content attribute:');
80 testParent.innerHTML = '<marquee id="marquee" loop="3">test</marquee>';
81 marquee = document.getElementById('marquee');
82 shouldBe('marquee.loop', '3');
83
84 debug('"loop" IDL attribute can be modified:');
85 testParent.innerHTML = '<marquee id="marquee" loop="3">test</marquee>';
86 marquee = document.getElementById('marquee');
87 marquee.loop = 4;
88 shouldBe('marquee.loop', '4');
89
90 debug('"scrollAmount" IDL attribute reflects content attribute:');
91 testParent.innerHTML = '<marquee id="marquee" scrollamount="5">test</marquee>';
92 marquee = document.getElementById('marquee');
93 shouldBe('marquee.scrollAmount', '5');
94
95 debug('"scrollAmount" IDL attribute can be modified:');
96 testParent.innerHTML = '<marquee id="marquee" scrollamount="5">test</marquee>';
97 marquee = document.getElementById('marquee');
98 marquee.scrollAmount = 6;
99 shouldBe('marquee.scrollAmount', '6');
100
101 debug('"scrollDelay" IDL attribute reflects content attribute:');
102 testParent.innerHTML = '<marquee id="marquee" scrolldelay="50">test</marquee>';
103 marquee = document.getElementById('marquee');
104 shouldBe('marquee.scrollDelay', '50');
105
106 debug('"scrollDelay" IDL attribute can be modified:');
107 testParent.innerHTML = '<marquee id="marquee" scrolldelay="50">test</marquee>';
108 marquee = document.getElementById('marquee');
109 marquee.scrollDelay = 60;
110 shouldBe('marquee.scrollDelay', '60');
111
112 debug('"trueSpeed" IDL attribute reflects content attribute:');
113 testParent.innerHTML = '<marquee id="marquee" truespeed="true">test</marquee>';
114 marquee = document.getElementById('marquee');
115 shouldBeTrue('marquee.trueSpeed');
116
117 debug('"trueSpeed" IDL attribute can be modified:');
118 testParent.innerHTML = '<marquee id="marquee" truespeed="true">test</marquee>';
119 marquee = document.getElementById('marquee');
120 marquee.trueSpeed = false;
121 shouldBe('marquee.trueSpeed', 'false');
122 shouldBe('marquee.hasAttribute("truespeed")', 'false');
123
124 debug('"trueSpeed" IDL attribute can be modified:');
125 testParent.innerHTML = '<marquee id="marquee" truespeed="true"></marquee>';
126 marquee = document.getElementById('marquee');
127 marquee.trueSpeed = null;
128 shouldBe('marquee.hasAttribute("truespeed")', 'false');
129
130 debug('"trueSpeed" IDL attribute can be modified:');
131 testParent.innerHTML = '<marquee id="marquee" truespeed="true"></marquee>';
132 marquee = document.getElementById('marquee');
133 marquee.trueSpeed = undefined;
134 shouldBe('marquee.hasAttribute("truespeed")', 'false');
135
136 debug('"vspace" IDL attribute reflects content attribute:');
137 testParent.innerHTML = '<marquee id="marquee" vspace="10">test</marquee>';
138 marquee = document.getElementById('marquee');
139 shouldBe('marquee.vspace', '10');
140
141 debug('"vspace" IDL attribute can be modified:');
142 testParent.innerHTML = '<marquee id="marquee" vspace="10">test</marquee>';
143 marquee = document.getElementById('marquee');
144 marquee.vspace = 20;
145 shouldBe('marquee.vspace', '20');
146
147 debug('"vspace" IDL attribute is 0 when content attribute is negative:');
148 testParent.innerHTML = '<marquee id="marquee" vspace="-1">test</marquee>';
149 marquee = document.getElementById('marquee');
150 shouldBe('marquee.vspace', '0');
151
152 debug('"vspace" IDL attribute is 0 when content attribute is too large:');
153 testParent.innerHTML = '<marquee id="marquee" vspace="2147483648">test</marquee>';
154 marquee = document.getElementById('marquee');
155 shouldBe('marquee.vspace', '0');
156
157 debug('Default "scrollAmount" value is 6:');
158 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
159 marquee = document.getElementById('marquee');
160 shouldBe('marquee.scrollAmount', '6');
161
162 debug('"scrollAmount" uses default value when content attribute is not a number:');
163 testParent.innerHTML = '<marquee id="marquee" scrollamount="a1">test</marquee>';
164 marquee = document.getElementById('marquee');
165 shouldBe('marquee.scrollAmount', '6');
166
167 debug('"scrollAmount" uses default value when content attribute is too large:');
168 testParent.innerHTML = '<marquee id="marquee" scrollamount="2147483648">test</marquee>';
169 marquee = document.getElementById('marquee');
170 shouldBe('marquee.scrollAmount', '6');
171
172 debug('"scrollAmount" uses default value when content attribute is negative:');
173 testParent.innerHTML = '<marquee id="marquee" scrollamount="-1">test</marquee>';
174 marquee = document.getElementById('marquee');
175 shouldBe('marquee.scrollAmount', '6');
176
177 debug('"scrollAmount" can be set to 0:');
178 testParent.innerHTML = '<marquee id="marquee" scrollamount="0">test</marquee>';
179 marquee = document.getElementById('marquee');
180 shouldBe('marquee.scrollAmount', '0');
181
182 debug('"scrollAmount" can be set to 2^31-1:');
183 testParent.innerHTML = '<marquee id="marquee" scrollamount="2147483647">test</marquee>';
184 marquee = document.getElementById('marquee');
185 shouldBe('marquee.scrollAmount', '2147483647');
186
187 debug('"scrollAmount" can contain whitespace:');
188 testParent.innerHTML = '<marquee id="marquee" scrollamount=" 5 ">test</marquee>';
189 marquee = document.getElementById('marquee');
190 shouldBe('marquee.scrollAmount', '5');
191
192 debug('"scrollAmount" can contain trailing non-numeric values:');
193 testParent.innerHTML = '<marquee id="marquee" scrollamount="5a">test</marquee>';
194 marquee = document.getElementById('marquee');
195 shouldBe('marquee.scrollAmount', '5');
196
197 debug('Setting "scrollAmount" to a negative value raises an exception:');
198 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
199 shouldThrow('document.getElementById("marquee").scrollAmount = -1;');
200
201 debug('Setting "scrollAmount" to a value that is too large raises an exception:');
202 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
203 shouldThrow('document.getElementById("marquee").scrollAmount = 2147483648;');
204
205 debug('Default "scrollDelay" value is 85:');
206 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
207 marquee = document.getElementById('marquee');
208 shouldBe('marquee.scrollDelay', '85');
209
210 debug('"scrollDelay" uses default value when content attribute is not a number:');
211 testParent.innerHTML = '<marquee id="marquee" scrolldelay="a1">test</marquee>';
212 marquee = document.getElementById('marquee');
213 shouldBe('marquee.scrollDelay', '85');
214
215 debug('"scrollDelay" uses default value when content attribute is too large:');
216 testParent.innerHTML = '<marquee id="marquee" scrolldelay="2147483648">test</marquee>';
217 marquee = document.getElementById('marquee');
218 shouldBe('marquee.scrollDelay', '85');
219
220 debug('"scrollDelay" uses default value when content attribute is negative:');
221 testParent.innerHTML = '<marquee id="marquee" scrolldelay="-1">test</marquee>';
222 marquee = document.getElementById('marquee');
223 shouldBe('marquee.scrollDelay', '85');
224
225 debug('"scrollDelay" can be set to 0:');
226 testParent.innerHTML = '<marquee id="marquee" scrolldelay="0">test</marquee>';
227 marquee = document.getElementById('marquee');
228 shouldBe('marquee.scrollDelay', '0');
229
230 debug('"scrollDelay" can be set to 2^31-1:');
231 testParent.innerHTML = '<marquee id="marquee" scrolldelay="2147483647">test</marquee>';
232 marquee = document.getElementById('marquee');
233 shouldBe('marquee.scrollDelay', '2147483647');
234
235 debug('"scrollDelay" can contain whitespace:');
236 testParent.innerHTML = '<marquee id="marquee" scrolldelay=" 5 ">test</marquee>';
237 marquee = document.getElementById('marquee');
238 shouldBe('marquee.scrollDelay', '5');
239
240 debug('"scrollDelay" can contain trailing non-numeric values:');
241 testParent.innerHTML = '<marquee id="marquee" scrolldelay="5a">test</marquee>';
242 marquee = document.getElementById('marquee');
243 shouldBe('marquee.scrollDelay', '5');
244
245 debug('Setting "scrollDelay" to a negative value raises an exception:');
246 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
247 shouldThrow('document.getElementById("marquee").scrollDelay = -1;');
248
249 debug('Setting "scrollDelay" to a value that is too large raises an exception:');
250 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
251 shouldThrow('document.getElementById("marquee").scrollDelay = 2147483648;');
252
253 debug('Default "loop" value is -1:');
254 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
255 marquee = document.getElementById('marquee');
256 shouldBe('marquee.loop', '-1');
257
258 debug('"loop" uses default value when content attribute is not a number:');
259 testParent.innerHTML = '<marquee id="marquee" loop="a1">test</marquee>';
260 marquee = document.getElementById('marquee');
261 shouldBe('marquee.loop', '-1');
262
263 debug('"loop" uses default value when content attribute is too large:');
264 testParent.innerHTML = '<marquee id="marquee" loop="2147483648">test</marquee>';
265 marquee = document.getElementById('marquee');
266 shouldBe('marquee.loop', '-1');
267
268 debug('"loop" uses default value when content attribute is negative:');
269 testParent.innerHTML = '<marquee id="marquee" loop="-5">test</marquee>';
270 marquee = document.getElementById('marquee');
271 shouldBe('marquee.loop', '-1');
272
273 debug('"loop" uses default value when set to 0:');
274 testParent.innerHTML = '<marquee id="marquee" loop="0">test</marquee>';
275 marquee = document.getElementById('marquee');
276 shouldBe('marquee.loop', '-1');
277
278 debug('"loop" can be set to 1:');
279 testParent.innerHTML = '<marquee id="marquee" loop="1">test</marquee>';
280 marquee = document.getElementById('marquee');
281 shouldBe('marquee.loop', '1');
282
283 debug('"loop" can be set to 2^31-1:');
284 testParent.innerHTML = '<marquee id="marquee" loop="2147483647">test</marquee>';
285 marquee = document.getElementById('marquee');
286 shouldBe('marquee.loop', '2147483647');
287
288 debug('"loop" can contain whitespace:');
289 testParent.innerHTML = '<marquee id="marquee" loop=" 5 ">test</marquee>';
290 marquee = document.getElementById('marquee');
291 shouldBe('marquee.loop', '5');
292
293 debug('"loop" can contain trailing non-numeric values:');
294 testParent.innerHTML = '<marquee id="marquee" loop="5a">test</marquee>';
295 marquee = document.getElementById('marquee');
296 shouldBe('marquee.loop', '5');
297
298 debug('Setting "loop" to 0 raises an exception:');
299 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
300 shouldThrow('document.getElementById("marquee").loop = 0;');
301
302 debug('Setting "loop" to a negative value raises an exception:');
303 testParent.innerHTML = '<marquee id="marquee">test</marquee>';
304 shouldThrow('document.getElementById("marquee").scrollDelay = -5;');
305
306 debug('"loop" can be set to -1 by script:');
307 testParent.innerHTML = '<marquee id="marquee" loop="5">test</marquee>';
308 marquee = document.getElementById('marquee');
309 marquee.loop = -1;
310 shouldBe('marquee.loop', '-1');
311 </script>
312 </body>
313 </html>