| OLD | NEW |
| (Empty) |
| 1 <!doctype html> | |
| 2 <html> | |
| 3 <head> | |
| 4 <title>The hashless hex color quirk</title> | |
| 5 <meta name="timeout" content="long"> | |
| 6 <script src="../../../resources/testharness.js"></script> | |
| 7 <script src="../../../resources/testharnessreport.js"></script> | |
| 8 <style> iframe { width:20px; height:20px; } </style> | |
| 9 </head> | |
| 10 <body> | |
| 11 <div id=log></div> | |
| 12 <iframe id=quirks></iframe> | |
| 13 <iframe id=almost></iframe> | |
| 14 <iframe id=standards></iframe> | |
| 15 <script> | |
| 16 setup({explicit_done:true}); | |
| 17 onload = function() { | |
| 18 var html = "<style id=style></style><div id=test></div><div id=ref></div
><svg><circle id=svg /><circle id=svg_ref /></svg>"; | |
| 19 var a_doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transition
al//EN" "http://www.w3.org/TR/html4/loose.dtd">'; | |
| 20 var s_doctype = '<!DOCTYPE HTML>'; | |
| 21 var q = document.getElementById('quirks').contentWindow; | |
| 22 var a = document.getElementById('almost').contentWindow; | |
| 23 var s = document.getElementById('standards').contentWindow; | |
| 24 q.document.open(); | |
| 25 q.document.write(html); | |
| 26 q.document.close(); | |
| 27 a.document.open(); | |
| 28 a.document.write(a_doctype + html); | |
| 29 a.document.close(); | |
| 30 s.document.open(); | |
| 31 s.document.write(s_doctype + html); | |
| 32 s.document.close(); | |
| 33 [q, a, s].forEach(function(win) { | |
| 34 ['style', 'test', 'ref', 'svg', 'svg_ref'].forEach(function(id) { | |
| 35 win[id] = win.document.getElementById(id); | |
| 36 }); | |
| 37 }); | |
| 38 | |
| 39 var tests = [ | |
| 40 {input:"123", q:"#000123"}, | |
| 41 {input:"023", q:"#000023"}, | |
| 42 {input:"003", q:"#000003"}, | |
| 43 {input:"000", q:"#000"}, | |
| 44 {input:"abc", q:"#abc"}, | |
| 45 {input:"ABC", q:"#abc"}, | |
| 46 {input:"1ab", q:"#0001ab"}, | |
| 47 {input:"1AB", q:"#0001ab"}, | |
| 48 {input:"112233", q:"#123"}, | |
| 49 {input:"012233", q:"#012233"}, | |
| 50 {input:"002233", q:"#023"}, | |
| 51 {input:"000233", q:"#000233"}, | |
| 52 {input:"000033", q:"#003"}, | |
| 53 {input:"000003", q:"#000003"}, | |
| 54 {input:"000000", q:"#000000"}, | |
| 55 {input:"aabbcc", q:"#abc"}, | |
| 56 {input:"AABBCC", q:"#abc"}, | |
| 57 {input:"11aabb", q:"#1ab"}, | |
| 58 {input:"11AABB", q:"#1ab"}, | |
| 59 {input:"\\31 23", q:"#123"}, | |
| 60 {input:"\\61 bc", q:"#abc"}, | |
| 61 {input:"\\41 BC", q:"#abc"}, | |
| 62 {input:"\\31 ab", q:"#1ab"}, | |
| 63 {input:"\\31 AB", q:"#1ab"}, | |
| 64 {input:"\\31 12233", q:"#123"}, | |
| 65 {input:"\\61 abbcc", q:"#abc"}, | |
| 66 {input:"\\41 ABBCC", q:"#abc"}, | |
| 67 {input:"\\31 1aabb", q:"#1ab"}, | |
| 68 {input:"\\31 1AABB", q:"#1ab"}, | |
| 69 {input:"12\\33 ", q:"#000123"}, | |
| 70 {input:"1", q:"#000001"}, | |
| 71 {input:"12", q:"#000012"}, | |
| 72 {input:"1234", q:"#001234"}, | |
| 73 {input:"12345", q:"#012345"}, | |
| 74 {input:"1234567"}, | |
| 75 {input:"12345678"}, | |
| 76 {input:"a"}, | |
| 77 {input:"aa"}, | |
| 78 {input:"aaaa"}, | |
| 79 {input:"aaaaa"}, | |
| 80 {input:"aaaaaaa"}, | |
| 81 {input:"aaaaaaaa"}, | |
| 82 {input:"A"}, | |
| 83 {input:"AA"}, | |
| 84 {input:"AAAA"}, | |
| 85 {input:"AAAAA"}, | |
| 86 {input:"AAAAAAA"}, | |
| 87 {input:"AAAAAAAA"}, | |
| 88 {input:"1a", q:"#00001a"}, | |
| 89 {input:"1abc", q:"#001abc"}, | |
| 90 {input:"1abcd", q:"#01abcd"}, | |
| 91 {input:"1abcdef"}, | |
| 92 {input:"1abcdeff"}, | |
| 93 {input:"+1", q:"#000001"}, | |
| 94 {input:"+12", q:"#000012"}, | |
| 95 {input:"+123", q:"#000123"}, | |
| 96 {input:"+1234", q:"#001234"}, | |
| 97 {input:"+12345", q:"#012345"}, | |
| 98 {input:"+123456", q:"#123456"}, | |
| 99 {input:"+1234567"}, | |
| 100 {input:"+12345678"}, | |
| 101 {input:"-1"}, | |
| 102 {input:"-12"}, | |
| 103 {input:"-123"}, | |
| 104 {input:"-1234"}, | |
| 105 {input:"-12345"}, | |
| 106 {input:"-123456"}, | |
| 107 {input:"-1234567"}, | |
| 108 {input:"-12345678"}, | |
| 109 {input:"+1a", q:"#00001a"}, | |
| 110 {input:"+12a", q:"#00012a"}, | |
| 111 {input:"+123a", q:"#00123a"}, | |
| 112 {input:"+1234a", q:"#01234a"}, | |
| 113 {input:"+12345a", q:"#12345a"}, | |
| 114 {input:"+123456a"}, | |
| 115 {input:"+1234567a"}, | |
| 116 {input:"-1a"}, | |
| 117 {input:"-12a"}, | |
| 118 {input:"-123a"}, | |
| 119 {input:"-1234a"}, | |
| 120 {input:"-12345a"}, | |
| 121 {input:"-123456a"}, | |
| 122 {input:"-1234567a"}, | |
| 123 {input:"-12345678a"}, | |
| 124 {input:"+1A", q:"#00001a"}, | |
| 125 {input:"+12A", q:"#00012a"}, | |
| 126 {input:"+123A", q:"#00123a"}, | |
| 127 {input:"+1234A", q:"#01234a"}, | |
| 128 {input:"+12345A", q:"#12345a"}, | |
| 129 {input:"+123456A"}, | |
| 130 {input:"+1234567A"}, | |
| 131 {input:"-1A"}, | |
| 132 {input:"-12A"}, | |
| 133 {input:"-123A"}, | |
| 134 {input:"-1234A"}, | |
| 135 {input:"-12345A"}, | |
| 136 {input:"-123456A"}, | |
| 137 {input:"-1234567A"}, | |
| 138 {input:"-12345678A"}, | |
| 139 {input:"+a"}, | |
| 140 {input:"+aa"}, | |
| 141 {input:"+aaa"}, | |
| 142 {input:"+aaaa"}, | |
| 143 {input:"+aaaaa"}, | |
| 144 {input:"+aaaaaa"}, | |
| 145 {input:"+aaaaaaa"}, | |
| 146 {input:"+aaaaaaaa"}, | |
| 147 {input:"-a"}, | |
| 148 {input:"-aa"}, | |
| 149 {input:"-aaa"}, | |
| 150 {input:"-aaaa"}, | |
| 151 {input:"-aaaaa"}, | |
| 152 {input:"-aaaaaa"}, | |
| 153 {input:"-aaaaaaa"}, | |
| 154 {input:"-aaaaaaaa"}, | |
| 155 {input:"-aaaaaaaaa"}, | |
| 156 {input:"+A"}, | |
| 157 {input:"+AA"}, | |
| 158 {input:"+AAA"}, | |
| 159 {input:"+AAAA"}, | |
| 160 {input:"+AAAAA"}, | |
| 161 {input:"+AAAAAA"}, | |
| 162 {input:"+AAAAAAA"}, | |
| 163 {input:"+AAAAAAAA"}, | |
| 164 {input:"-A"}, | |
| 165 {input:"-AA"}, | |
| 166 {input:"-AAA"}, | |
| 167 {input:"-AAAA"}, | |
| 168 {input:"-AAAAA"}, | |
| 169 {input:"-AAAAAA"}, | |
| 170 {input:"-AAAAAAA"}, | |
| 171 {input:"-AAAAAAAA"}, | |
| 172 {input:"-AAAAAAAAA"}, | |
| 173 {input:"1.1"}, | |
| 174 {input:"1.11"}, | |
| 175 {input:"1.111"}, | |
| 176 {input:"1.1111"}, | |
| 177 {input:"1.11111"}, | |
| 178 {input:"1.111111"}, | |
| 179 {input:"1.1111111"}, | |
| 180 {input:"+1.1"}, | |
| 181 {input:"+1.11"}, | |
| 182 {input:"+1.111"}, | |
| 183 {input:"+1.1111"}, | |
| 184 {input:"+1.11111"}, | |
| 185 {input:"+1.111111"}, | |
| 186 {input:"+1.1111111"}, | |
| 187 {input:"-1.1"}, | |
| 188 {input:"-1.11"}, | |
| 189 {input:"-1.111"}, | |
| 190 {input:"-1.1111"}, | |
| 191 {input:"-1.11111"}, | |
| 192 {input:"-1.111111"}, | |
| 193 {input:"-1.1111111"}, | |
| 194 {input:"1.1a"}, | |
| 195 {input:"1.11a"}, | |
| 196 {input:"1.111a"}, | |
| 197 {input:"1.1111a"}, | |
| 198 {input:"1.11111a"}, | |
| 199 {input:"1.111111a"}, | |
| 200 {input:"+1.1a"}, | |
| 201 {input:"+1.11a"}, | |
| 202 {input:"+1.111a"}, | |
| 203 {input:"+1.1111a"}, | |
| 204 {input:"+1.11111a"}, | |
| 205 {input:"+1.111111a"}, | |
| 206 {input:"-1.1a"}, | |
| 207 {input:"-1.11a"}, | |
| 208 {input:"-1.111a"}, | |
| 209 {input:"-1.1111a"}, | |
| 210 {input:"-1.11111a"}, | |
| 211 {input:"-1.111111a"}, | |
| 212 {input:"1.0"}, | |
| 213 {input:"11.0"}, | |
| 214 {input:"111.0"}, | |
| 215 {input:"1111.0"}, | |
| 216 {input:"11111.0"}, | |
| 217 {input:"111111.0"}, | |
| 218 {input:"1111111.0"}, | |
| 219 {input:"11111111.0"}, | |
| 220 {input:"+1.0"}, | |
| 221 {input:"+11.0"}, | |
| 222 {input:"+111.0"}, | |
| 223 {input:"+1111.0"}, | |
| 224 {input:"+11111.0"}, | |
| 225 {input:"+111111.0"}, | |
| 226 {input:"+1111111.0"}, | |
| 227 {input:"+11111111.0"}, | |
| 228 {input:"-1.0"}, | |
| 229 {input:"-11.0"}, | |
| 230 {input:"-111.0"}, | |
| 231 {input:"-1111.0"}, | |
| 232 {input:"-11111.0"}, | |
| 233 {input:"-111111.0"}, | |
| 234 {input:"-1111111.0"}, | |
| 235 {input:"-11111111.0"}, | |
| 236 {input:"1.0a"}, | |
| 237 {input:"11.0a"}, | |
| 238 {input:"111.0a"}, | |
| 239 {input:"1111.0a"}, | |
| 240 {input:"11111.0a"}, | |
| 241 {input:"111111.0a"}, | |
| 242 {input:"1111111.0a"}, | |
| 243 {input:"+1.0a"}, | |
| 244 {input:"+11.0a"}, | |
| 245 {input:"+111.0a"}, | |
| 246 {input:"+1111.0a"}, | |
| 247 {input:"+11111.0a"}, | |
| 248 {input:"+111111.0a"}, | |
| 249 {input:"+1111111.0a"}, | |
| 250 {input:"-1.0a"}, | |
| 251 {input:"-11.0a"}, | |
| 252 {input:"-111.0a"}, | |
| 253 {input:"-1111.0a"}, | |
| 254 {input:"-11111.0a"}, | |
| 255 {input:"-111111.0a"}, | |
| 256 {input:"-1111111.0a"}, | |
| 257 {input:"+/**/123"}, | |
| 258 {input:"-/**/123"}, | |
| 259 {input:"+/**/123456"}, | |
| 260 {input:"-/**/123456"}, | |
| 261 {input:"+/**/abc"}, | |
| 262 {input:"-/**/abc"}, | |
| 263 {input:"+/**/abcdef"}, | |
| 264 {input:"-/**/abcdef"}, | |
| 265 {input:"+/**/12a"}, | |
| 266 {input:"-/**/12a"}, | |
| 267 {input:"+/**/12345a"}, | |
| 268 {input:"-/**/12345a"}, | |
| 269 {input:"abg"}, | |
| 270 {input:"aabbcg"}, | |
| 271 {input:"1ag"}, | |
| 272 {input:"1122ag"}, | |
| 273 {input:"ABG"}, | |
| 274 {input:"AABBCG"}, | |
| 275 {input:"1AG"}, | |
| 276 {input:"1122AG"}, | |
| 277 {input:"@a"}, | |
| 278 {input:"@ab"}, | |
| 279 {input:"@abc"}, | |
| 280 {input:"@abcd"}, | |
| 281 {input:"@abcde"}, | |
| 282 {input:"@abcdef"}, | |
| 283 {input:"@1"}, | |
| 284 {input:"@11"}, | |
| 285 {input:"@111"}, | |
| 286 {input:"@1111"}, | |
| 287 {input:"@11111"}, | |
| 288 {input:"@111111"}, | |
| 289 {input:"@1a"}, | |
| 290 {input:"@11a"}, | |
| 291 {input:"@111a"}, | |
| 292 {input:"@1111a"}, | |
| 293 {input:"@11111a"}, | |
| 294 {input:'"a"'}, | |
| 295 {input:'"ab"'}, | |
| 296 {input:'"abc"'}, | |
| 297 {input:'"abcd"'}, | |
| 298 {input:'"abcde"'}, | |
| 299 {input:'"abcdef"'}, | |
| 300 {input:'"1"'}, | |
| 301 {input:'"11"'}, | |
| 302 {input:'"111"'}, | |
| 303 {input:'"1111"'}, | |
| 304 {input:'"11111"'}, | |
| 305 {input:'"111111"'}, | |
| 306 {input:'"1a"'}, | |
| 307 {input:'"11a"'}, | |
| 308 {input:'"111a"'}, | |
| 309 {input:'"1111a"'}, | |
| 310 {input:'"11111a"'}, | |
| 311 {input:"url(a)", svg:'url(a)'}, | |
| 312 {input:"url(aa)", svg:'url(aa)'}, | |
| 313 {input:"url(aaa)", svg:'url(aaa)'}, | |
| 314 {input:"url(aaaa)", svg:'url(aaaa)'}, | |
| 315 {input:"url(aaaaa)", svg:'url(aaaaa)'}, | |
| 316 {input:"url(aaaaaa)", svg:'url(aaaaaa)'}, | |
| 317 {input:"url('a')", svg:'url(a)'}, | |
| 318 {input:"url('aa')", svg:'url(aa)'}, | |
| 319 {input:"url('aaa')", svg:'url(aaa)'}, | |
| 320 {input:"url('aaaa')", svg:'url(aaaa)'}, | |
| 321 {input:"url('aaaaa')", svg:'url(aaaaa)'}, | |
| 322 {input:"url('aaaaaa')", svg:'url(aaaaaa)'}, | |
| 323 {input:"#a"}, | |
| 324 {input:"#aa"}, | |
| 325 {input:"#aaaaa"}, | |
| 326 {input:"#aaaaaaa"}, | |
| 327 {input:"#1"}, | |
| 328 {input:"#11"}, | |
| 329 {input:"#11111"}, | |
| 330 {input:"#1111111"}, | |
| 331 {input:"#1a"}, | |
| 332 {input:"#1111a"}, | |
| 333 {input:"#111111a"}, | |
| 334 {input:"1%"}, | |
| 335 {input:"11%"}, | |
| 336 {input:"111%"}, | |
| 337 {input:"1111%"}, | |
| 338 {input:"11111%"}, | |
| 339 {input:"111111%"}, | |
| 340 {input:"calc(123)"}, | |
| 341 {input:"rgb(119, 255, 255)", q:"#7ff", s:"#7ff", svg:"#7ff"}, | |
| 342 {input:"rgba(119, 255, 255, 001)", q:"#7ff", s:"#7ff", svg:"#7ff"}, | |
| 343 {input:"hsl(100, 100%, 100%)", q:"#fff", s:"#fff", svg:"#fff"}, | |
| 344 {input:"hsla(100, 100%, 100%, 001)", q:"#fff", s:"#fff", svg:"#fff"}, | |
| 345 {input:"rgb(calc(100 + 155), 255, 255)", q:"#fff", s:"#fff", svg:"#fff"}
, | |
| 346 {input:"rgba(calc(100 + 155), 255, 255, 001)", q:"#fff", s:"#fff", svg:"
#fff"}, | |
| 347 {input:"hsl(calc(050 + 050), 100%, 100%)", q:"#fff", s:"#fff", svg:"#fff
"}, | |
| 348 {input:"hsla(calc(050 + 050), 100%, 100%, 001)", q:"#fff", s:"#fff", svg
:"#fff"}, | |
| 349 {input:"rgb(/**/255, 255, 255)", q:"#fff", s:"#fff", svg:"#fff"}, | |
| 350 {input:"rgb(/**/255/**/, /**/255/**/, /**/255/**/)", q:"#fff", s:"#fff",
svg:"#fff"}, | |
| 351 {input:"rgb(calc(/**/100/**/ + /**/155/**/), 255, 255)", q:"#fff", s:"#f
ff", svg:"#fff"}, | |
| 352 {input:"#123 123 abc 12a", q:"#123 #000123 #abc #00012a", shorthand:true
}, | |
| 353 {input:"rgb(119, 255, 255) 123", q:"#7ff #000123", shorthand:true}, | |
| 354 {input:"123 rgb(119, 255, 255)", q:"#000123 #7ff", shorthand:true}, | |
| 355 {input:"1e1"}, | |
| 356 {input:"11e1"}, | |
| 357 {input:"111e1"}, | |
| 358 {input:"1111e1"}, | |
| 359 {input:"11111e1"}, | |
| 360 {input:"111111e1"}, | |
| 361 {input:"1e+1"}, | |
| 362 {input:"11e+1"}, | |
| 363 {input:"111e+1"}, | |
| 364 {input:"1111e+1"}, | |
| 365 {input:"11111e+1"}, | |
| 366 {input:"111111e+1"}, | |
| 367 {input:"1e-0"}, | |
| 368 {input:"11e-0"}, | |
| 369 {input:"111e-0"}, | |
| 370 {input:"1111e-0"}, | |
| 371 {input:"11111e-0"}, | |
| 372 {input:"111111e-0"}, | |
| 373 {input:"1e1a"}, | |
| 374 {input:"11e1a"}, | |
| 375 {input:"111e1a"}, | |
| 376 {input:"1111e1a"}, | |
| 377 {input:"11111e1a"}, | |
| 378 {input:"111111e1a"}, | |
| 379 {desc:"1111111111...", input:"111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111111"}, | |
| 380 {desc:"1111111111...a", input:"11111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111a"}, | |
| 381 {desc:"a1111111111...", input:"a1111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111"}, | |
| 382 ]; | |
| 383 | |
| 384 var props = [ | |
| 385 {prop:'background-color', check:'background-color'}, | |
| 386 {prop:'border-color', check:'border-top-color', check_also:['border-righ
t-color', 'border-bottom-color', 'border-left-color']}, | |
| 387 {prop:'border-top-color', check:'border-top-color'}, | |
| 388 {prop:'border-right-color', check:'border-right-color'}, | |
| 389 {prop:'border-bottom-color', check:'border-bottom-color'}, | |
| 390 {prop:'border-left-color', check:'border-left-color'}, | |
| 391 {prop:'color', check:'color'}, | |
| 392 ]; | |
| 393 var style_template = '#test{{prop}:{test};}' + | |
| 394 '#ref{{prop}:{ref};}'; | |
| 395 | |
| 396 tests.forEach(function(t) { | |
| 397 var name = t.desc || t.input; | |
| 398 var test_q = async_test(name + ' (quirks)'); | |
| 399 var test_a = async_test(name + ' (almost standards)'); | |
| 400 var test_s = async_test(name + ' (standards)'); | |
| 401 var test_svg = async_test(name + ' (SVG)'); | |
| 402 for (var i in props) { | |
| 403 if (t.shorthand && !(props[i].check_also)) { | |
| 404 continue; | |
| 405 } | |
| 406 test_q.step(function() { | |
| 407 q.style.textContent = style_template.replace('{test}', t.inp
ut) | |
| 408 .replace('{ref}', t.q).replace(/\{prop\}/g, prop
s[i].prop); | |
| 409 assert_equals(q.getComputedStyle(q.test).getPropertyValue(pr
ops[i].check), | |
| 410 q.getComputedStyle(q.ref).getPropertyValue(pro
ps[i].check), | |
| 411 props[i].prop); | |
| 412 if (t.shorthand && props[i].check_also) { | |
| 413 for (var j in props[i].check_also) { | |
| 414 assert_equals(q.getComputedStyle(q.test).getProperty
Value(props[i].check_also[j]), | |
| 415 q.getComputedStyle(q.ref).getPropertyV
alue(props[i].check_also[j]), | |
| 416 props[i].prop + ' checking ' + props[i
].check_also[j]); | |
| 417 } | |
| 418 } | |
| 419 }); | |
| 420 test_a.step(function() { | |
| 421 a.style.textContent = style_template.replace('{test}', t.inp
ut) | |
| 422 .replace('{ref}', t.s).replace(/\{prop\}/g, prop
s[i].prop); | |
| 423 assert_equals(a.getComputedStyle(a.test).getPropertyValue(pr
ops[i].check), | |
| 424 a.getComputedStyle(a.ref).getPropertyValue(pro
ps[i].check), | |
| 425 props[i].prop); | |
| 426 if (t.shorthand && props[i].check_also) { | |
| 427 for (var j in props[i].check_also) { | |
| 428 assert_equals(a.getComputedStyle(q.test).getProperty
Value(props[i].check_also[j]), | |
| 429 a.getComputedStyle(q.ref).getPropertyV
alue(props[i].check_also[j]), | |
| 430 props[i].prop + ' checking ' + props[i
].check_also[j]); | |
| 431 } | |
| 432 } | |
| 433 }); | |
| 434 test_s.step(function() { | |
| 435 s.style.textContent = style_template.replace('{test}', t.inp
ut) | |
| 436 .replace('{ref}', t.s).replace(/\{prop\}/g, prop
s[i].prop); | |
| 437 assert_equals(s.getComputedStyle(s.test).getPropertyValue(pr
ops[i].check), | |
| 438 s.getComputedStyle(s.ref).getPropertyValue(pro
ps[i].check), | |
| 439 props[i].prop); | |
| 440 if (t.shorthand && props[i].check_also) { | |
| 441 for (var j in props[i].check_also) { | |
| 442 assert_equals(s.getComputedStyle(q.test).getProperty
Value(props[i].check_also[j]), | |
| 443 s.getComputedStyle(q.ref).getPropertyV
alue(props[i].check_also[j]), | |
| 444 props[i].prop + ' checking ' + props[i
].check_also[j]); | |
| 445 } | |
| 446 } | |
| 447 }); | |
| 448 test_svg.step(function() { | |
| 449 q.svg.setAttribute('fill', t.input); | |
| 450 a.svg.setAttribute('fill', t.input); | |
| 451 s.svg.setAttribute('fill', t.input); | |
| 452 if (t.svg) { | |
| 453 q.svg_ref.setAttribute('fill', t.svg); | |
| 454 a.svg_ref.setAttribute('fill', t.svg); | |
| 455 s.svg_ref.setAttribute('fill', t.svg); | |
| 456 } else { | |
| 457 q.svg_ref.removeAttribute('fill'); | |
| 458 a.svg_ref.removeAttribute('fill'); | |
| 459 s.svg_ref.removeAttribute('fill'); | |
| 460 } | |
| 461 assert_equals(q.getComputedStyle(q.svg).fill, q.getComputedS
tyle(q.svg_ref).fill, 'SVG fill="" in quirks mode'); | |
| 462 assert_equals(a.getComputedStyle(a.svg).fill, a.getComputedS
tyle(a.svg_ref).fill, 'SVG fill="" in almost standards mode'); | |
| 463 assert_equals(s.getComputedStyle(s.svg).fill, s.getComputedS
tyle(s.svg_ref).fill, 'SVG fill="" in standards mode'); | |
| 464 }); | |
| 465 } | |
| 466 test_q.done(); | |
| 467 test_a.done(); | |
| 468 test_s.done(); | |
| 469 test_svg.done(); | |
| 470 }); | |
| 471 | |
| 472 var other_tests = [ | |
| 473 {input:'background:abc', prop:'background-color'}, | |
| 474 {input:'border-top:1px solid abc', prop:'border-top-color'}, | |
| 475 {input:'border-right:1px solid abc', prop:'border-right-color'}, | |
| 476 {input:'border-bottom:1px solid abc', prop:'border-bottom-color'}, | |
| 477 {input:'border-left:1px solid abc', prop:'border-left-color'}, | |
| 478 {input:'border:1px solid abc', prop:'border-top-color'}, | |
| 479 {input:'outline-color:abc', prop:'outline-color'}, | |
| 480 {input:'outline:1px solid abc', prop:'outline-color'} | |
| 481 ]; | |
| 482 | |
| 483 var other_template = "#test{{test};}" | |
| 484 | |
| 485 other_tests.forEach(function(t) { | |
| 486 test(function() { | |
| 487 q.style.textContent = other_template.replace('{test}', t.input); | |
| 488 assert_equals(q.getComputedStyle(q.test).getPropertyValue(t.prop
), | |
| 489 q.getComputedStyle(q.ref).getPropertyValue(t.prop)
, | |
| 490 'quirk was supported'); | |
| 491 }, document.title+', excluded property '+t.input); | |
| 492 }); | |
| 493 | |
| 494 done(); | |
| 495 } | |
| 496 </script> | |
| 497 </body> | |
| 498 </html> | |
| OLD | NEW |