| OLD | NEW |
| (Empty) |
| 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</ma
rquee>'; | |
| 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</ma
rquee>'; | |
| 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</mar
quee>'; | |
| 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</mar
quee>'; | |
| 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> | |
| OLD | NEW |