mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-28 11:49:44 +00:00
LibWeb: Allow parsing of <quirky-color>
This commit is contained in:
parent
2058fb1144
commit
2bb40b615a
Notes:
github-actions[bot]
2025-05-17 05:48:55 +00:00
Author: https://github.com/Calme1709 🔰
Commit: 2bb40b615a
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4791
Reviewed-by: https://github.com/tcl3 ✅
5 changed files with 1154 additions and 1 deletions
|
@ -1936,7 +1936,7 @@ RefPtr<CSSStyleValue const> Parser::parse_color_value(TokenStream<ComponentValue
|
|||
}
|
||||
for (auto i = 1u; i < m_value_context.size() && quirky_color_allowed; i++) {
|
||||
quirky_color_allowed = m_value_context[i].visit(
|
||||
[](PropertyID const& property_id) { return property_has_quirk(property_id, Quirk::UnitlessLength); },
|
||||
[](PropertyID const& property_id) { return property_has_quirk(property_id, Quirk::HashlessHexColor); },
|
||||
[](FunctionContext const&) { return false; },
|
||||
[](DescriptorContext const&) { return false; });
|
||||
}
|
||||
|
|
|
@ -0,0 +1,697 @@
|
|||
Harness status: OK
|
||||
|
||||
Found 692 tests
|
||||
|
||||
692 Pass
|
||||
Pass 123
|
||||
Pass 123 (SVG)
|
||||
Pass 023
|
||||
Pass 023 (SVG)
|
||||
Pass 003
|
||||
Pass 003 (SVG)
|
||||
Pass 000
|
||||
Pass 000 (SVG)
|
||||
Pass abc
|
||||
Pass abc (SVG)
|
||||
Pass ABC
|
||||
Pass ABC (SVG)
|
||||
Pass 1ab
|
||||
Pass 1ab (SVG)
|
||||
Pass 1AB
|
||||
Pass 1AB (SVG)
|
||||
Pass 112233
|
||||
Pass 112233 (SVG)
|
||||
Pass 012233
|
||||
Pass 012233 (SVG)
|
||||
Pass 002233
|
||||
Pass 002233 (SVG)
|
||||
Pass 000233
|
||||
Pass 000233 (SVG)
|
||||
Pass 000033
|
||||
Pass 000033 (SVG)
|
||||
Pass 000003
|
||||
Pass 000003 (SVG)
|
||||
Pass 000000
|
||||
Pass 000000 (SVG)
|
||||
Pass aabbcc
|
||||
Pass aabbcc (SVG)
|
||||
Pass AABBCC
|
||||
Pass AABBCC (SVG)
|
||||
Pass 11aabb
|
||||
Pass 11aabb (SVG)
|
||||
Pass 11AABB
|
||||
Pass 11AABB (SVG)
|
||||
Pass \31 23
|
||||
Pass \31 23 (SVG)
|
||||
Pass \61 bc
|
||||
Pass \61 bc (SVG)
|
||||
Pass \41 BC
|
||||
Pass \41 BC (SVG)
|
||||
Pass \31 ab
|
||||
Pass \31 ab (SVG)
|
||||
Pass \31 AB
|
||||
Pass \31 AB (SVG)
|
||||
Pass \31 12233
|
||||
Pass \31 12233 (SVG)
|
||||
Pass \61 abbcc
|
||||
Pass \61 abbcc (SVG)
|
||||
Pass \41 ABBCC
|
||||
Pass \41 ABBCC (SVG)
|
||||
Pass \31 1aabb
|
||||
Pass \31 1aabb (SVG)
|
||||
Pass \31 1AABB
|
||||
Pass \31 1AABB (SVG)
|
||||
Pass 12\33
|
||||
Pass 12\33 (SVG)
|
||||
Pass 1
|
||||
Pass 1 (SVG)
|
||||
Pass 12
|
||||
Pass 12 (SVG)
|
||||
Pass 1234
|
||||
Pass 1234 (SVG)
|
||||
Pass 12345
|
||||
Pass 12345 (SVG)
|
||||
Pass 1234567
|
||||
Pass 1234567 (SVG)
|
||||
Pass 12345678
|
||||
Pass 12345678 (SVG)
|
||||
Pass a
|
||||
Pass a (SVG)
|
||||
Pass aa
|
||||
Pass aa (SVG)
|
||||
Pass aaaa
|
||||
Pass aaaa (SVG)
|
||||
Pass aaaaa
|
||||
Pass aaaaa (SVG)
|
||||
Pass aaaaaaa
|
||||
Pass aaaaaaa (SVG)
|
||||
Pass aaaaaaaa
|
||||
Pass aaaaaaaa (SVG)
|
||||
Pass A
|
||||
Pass A (SVG)
|
||||
Pass AA
|
||||
Pass AA (SVG)
|
||||
Pass AAAA
|
||||
Pass AAAA (SVG)
|
||||
Pass AAAAA
|
||||
Pass AAAAA (SVG)
|
||||
Pass AAAAAAA
|
||||
Pass AAAAAAA (SVG)
|
||||
Pass AAAAAAAA
|
||||
Pass AAAAAAAA (SVG)
|
||||
Pass 1a
|
||||
Pass 1a (SVG)
|
||||
Pass 1abc
|
||||
Pass 1abc (SVG)
|
||||
Pass 1abcd
|
||||
Pass 1abcd (SVG)
|
||||
Pass 1abcdef
|
||||
Pass 1abcdef (SVG)
|
||||
Pass 1abcdeff
|
||||
Pass 1abcdeff (SVG)
|
||||
Pass +1
|
||||
Pass +1 (SVG)
|
||||
Pass +12
|
||||
Pass +12 (SVG)
|
||||
Pass +123
|
||||
Pass +123 (SVG)
|
||||
Pass +1234
|
||||
Pass +1234 (SVG)
|
||||
Pass +12345
|
||||
Pass +12345 (SVG)
|
||||
Pass +123456
|
||||
Pass +123456 (SVG)
|
||||
Pass +1234567
|
||||
Pass +1234567 (SVG)
|
||||
Pass +12345678
|
||||
Pass +12345678 (SVG)
|
||||
Pass -1
|
||||
Pass -1 (SVG)
|
||||
Pass -12
|
||||
Pass -12 (SVG)
|
||||
Pass -123
|
||||
Pass -123 (SVG)
|
||||
Pass -1234
|
||||
Pass -1234 (SVG)
|
||||
Pass -12345
|
||||
Pass -12345 (SVG)
|
||||
Pass -123456
|
||||
Pass -123456 (SVG)
|
||||
Pass -1234567
|
||||
Pass -1234567 (SVG)
|
||||
Pass -12345678
|
||||
Pass -12345678 (SVG)
|
||||
Pass +1a
|
||||
Pass +1a (SVG)
|
||||
Pass +12a
|
||||
Pass +12a (SVG)
|
||||
Pass +123a
|
||||
Pass +123a (SVG)
|
||||
Pass +1234a
|
||||
Pass +1234a (SVG)
|
||||
Pass +12345a
|
||||
Pass +12345a (SVG)
|
||||
Pass +123456a
|
||||
Pass +123456a (SVG)
|
||||
Pass +1234567a
|
||||
Pass +1234567a (SVG)
|
||||
Pass -1a
|
||||
Pass -1a (SVG)
|
||||
Pass -12a
|
||||
Pass -12a (SVG)
|
||||
Pass -123a
|
||||
Pass -123a (SVG)
|
||||
Pass -1234a
|
||||
Pass -1234a (SVG)
|
||||
Pass -12345a
|
||||
Pass -12345a (SVG)
|
||||
Pass -123456a
|
||||
Pass -123456a (SVG)
|
||||
Pass -1234567a
|
||||
Pass -1234567a (SVG)
|
||||
Pass -12345678a
|
||||
Pass -12345678a (SVG)
|
||||
Pass +1A
|
||||
Pass +1A (SVG)
|
||||
Pass +12A
|
||||
Pass +12A (SVG)
|
||||
Pass +123A
|
||||
Pass +123A (SVG)
|
||||
Pass +1234A
|
||||
Pass +1234A (SVG)
|
||||
Pass +12345A
|
||||
Pass +12345A (SVG)
|
||||
Pass +123456A
|
||||
Pass +123456A (SVG)
|
||||
Pass +1234567A
|
||||
Pass +1234567A (SVG)
|
||||
Pass -1A
|
||||
Pass -1A (SVG)
|
||||
Pass -12A
|
||||
Pass -12A (SVG)
|
||||
Pass -123A
|
||||
Pass -123A (SVG)
|
||||
Pass -1234A
|
||||
Pass -1234A (SVG)
|
||||
Pass -12345A
|
||||
Pass -12345A (SVG)
|
||||
Pass -123456A
|
||||
Pass -123456A (SVG)
|
||||
Pass -1234567A
|
||||
Pass -1234567A (SVG)
|
||||
Pass -12345678A
|
||||
Pass -12345678A (SVG)
|
||||
Pass +a
|
||||
Pass +a (SVG)
|
||||
Pass +aa
|
||||
Pass +aa (SVG)
|
||||
Pass +aaa
|
||||
Pass +aaa (SVG)
|
||||
Pass +aaaa
|
||||
Pass +aaaa (SVG)
|
||||
Pass +aaaaa
|
||||
Pass +aaaaa (SVG)
|
||||
Pass +aaaaaa
|
||||
Pass +aaaaaa (SVG)
|
||||
Pass +aaaaaaa
|
||||
Pass +aaaaaaa (SVG)
|
||||
Pass +aaaaaaaa
|
||||
Pass +aaaaaaaa (SVG)
|
||||
Pass -a
|
||||
Pass -a (SVG)
|
||||
Pass -aa
|
||||
Pass -aa (SVG)
|
||||
Pass -aaa
|
||||
Pass -aaa (SVG)
|
||||
Pass -aaaa
|
||||
Pass -aaaa (SVG)
|
||||
Pass -aaaaa
|
||||
Pass -aaaaa (SVG)
|
||||
Pass -aaaaaa
|
||||
Pass -aaaaaa (SVG)
|
||||
Pass -aaaaaaa
|
||||
Pass -aaaaaaa (SVG)
|
||||
Pass -aaaaaaaa
|
||||
Pass -aaaaaaaa (SVG)
|
||||
Pass -aaaaaaaaa
|
||||
Pass -aaaaaaaaa (SVG)
|
||||
Pass +A
|
||||
Pass +A (SVG)
|
||||
Pass +AA
|
||||
Pass +AA (SVG)
|
||||
Pass +AAA
|
||||
Pass +AAA (SVG)
|
||||
Pass +AAAA
|
||||
Pass +AAAA (SVG)
|
||||
Pass +AAAAA
|
||||
Pass +AAAAA (SVG)
|
||||
Pass +AAAAAA
|
||||
Pass +AAAAAA (SVG)
|
||||
Pass +AAAAAAA
|
||||
Pass +AAAAAAA (SVG)
|
||||
Pass +AAAAAAAA
|
||||
Pass +AAAAAAAA (SVG)
|
||||
Pass -A
|
||||
Pass -A (SVG)
|
||||
Pass -AA
|
||||
Pass -AA (SVG)
|
||||
Pass -AAA
|
||||
Pass -AAA (SVG)
|
||||
Pass -AAAA
|
||||
Pass -AAAA (SVG)
|
||||
Pass -AAAAA
|
||||
Pass -AAAAA (SVG)
|
||||
Pass -AAAAAA
|
||||
Pass -AAAAAA (SVG)
|
||||
Pass -AAAAAAA
|
||||
Pass -AAAAAAA (SVG)
|
||||
Pass -AAAAAAAA
|
||||
Pass -AAAAAAAA (SVG)
|
||||
Pass -AAAAAAAAA
|
||||
Pass -AAAAAAAAA (SVG)
|
||||
Pass 1.1
|
||||
Pass 1.1 (SVG)
|
||||
Pass 1.11
|
||||
Pass 1.11 (SVG)
|
||||
Pass 1.111
|
||||
Pass 1.111 (SVG)
|
||||
Pass 1.1111
|
||||
Pass 1.1111 (SVG)
|
||||
Pass 1.11111
|
||||
Pass 1.11111 (SVG)
|
||||
Pass 1.111111
|
||||
Pass 1.111111 (SVG)
|
||||
Pass 1.1111111
|
||||
Pass 1.1111111 (SVG)
|
||||
Pass +1.1
|
||||
Pass +1.1 (SVG)
|
||||
Pass +1.11
|
||||
Pass +1.11 (SVG)
|
||||
Pass +1.111
|
||||
Pass +1.111 (SVG)
|
||||
Pass +1.1111
|
||||
Pass +1.1111 (SVG)
|
||||
Pass +1.11111
|
||||
Pass +1.11111 (SVG)
|
||||
Pass +1.111111
|
||||
Pass +1.111111 (SVG)
|
||||
Pass +1.1111111
|
||||
Pass +1.1111111 (SVG)
|
||||
Pass -1.1
|
||||
Pass -1.1 (SVG)
|
||||
Pass -1.11
|
||||
Pass -1.11 (SVG)
|
||||
Pass -1.111
|
||||
Pass -1.111 (SVG)
|
||||
Pass -1.1111
|
||||
Pass -1.1111 (SVG)
|
||||
Pass -1.11111
|
||||
Pass -1.11111 (SVG)
|
||||
Pass -1.111111
|
||||
Pass -1.111111 (SVG)
|
||||
Pass -1.1111111
|
||||
Pass -1.1111111 (SVG)
|
||||
Pass 1.1a
|
||||
Pass 1.1a (SVG)
|
||||
Pass 1.11a
|
||||
Pass 1.11a (SVG)
|
||||
Pass 1.111a
|
||||
Pass 1.111a (SVG)
|
||||
Pass 1.1111a
|
||||
Pass 1.1111a (SVG)
|
||||
Pass 1.11111a
|
||||
Pass 1.11111a (SVG)
|
||||
Pass 1.111111a
|
||||
Pass 1.111111a (SVG)
|
||||
Pass +1.1a
|
||||
Pass +1.1a (SVG)
|
||||
Pass +1.11a
|
||||
Pass +1.11a (SVG)
|
||||
Pass +1.111a
|
||||
Pass +1.111a (SVG)
|
||||
Pass +1.1111a
|
||||
Pass +1.1111a (SVG)
|
||||
Pass +1.11111a
|
||||
Pass +1.11111a (SVG)
|
||||
Pass +1.111111a
|
||||
Pass +1.111111a (SVG)
|
||||
Pass -1.1a
|
||||
Pass -1.1a (SVG)
|
||||
Pass -1.11a
|
||||
Pass -1.11a (SVG)
|
||||
Pass -1.111a
|
||||
Pass -1.111a (SVG)
|
||||
Pass -1.1111a
|
||||
Pass -1.1111a (SVG)
|
||||
Pass -1.11111a
|
||||
Pass -1.11111a (SVG)
|
||||
Pass -1.111111a
|
||||
Pass -1.111111a (SVG)
|
||||
Pass 1.0
|
||||
Pass 1.0 (SVG)
|
||||
Pass 11.0
|
||||
Pass 11.0 (SVG)
|
||||
Pass 111.0
|
||||
Pass 111.0 (SVG)
|
||||
Pass 1111.0
|
||||
Pass 1111.0 (SVG)
|
||||
Pass 11111.0
|
||||
Pass 11111.0 (SVG)
|
||||
Pass 111111.0
|
||||
Pass 111111.0 (SVG)
|
||||
Pass 1111111.0
|
||||
Pass 1111111.0 (SVG)
|
||||
Pass 11111111.0
|
||||
Pass 11111111.0 (SVG)
|
||||
Pass +1.0
|
||||
Pass +1.0 (SVG)
|
||||
Pass +11.0
|
||||
Pass +11.0 (SVG)
|
||||
Pass +111.0
|
||||
Pass +111.0 (SVG)
|
||||
Pass +1111.0
|
||||
Pass +1111.0 (SVG)
|
||||
Pass +11111.0
|
||||
Pass +11111.0 (SVG)
|
||||
Pass +111111.0
|
||||
Pass +111111.0 (SVG)
|
||||
Pass +1111111.0
|
||||
Pass +1111111.0 (SVG)
|
||||
Pass +11111111.0
|
||||
Pass +11111111.0 (SVG)
|
||||
Pass -1.0
|
||||
Pass -1.0 (SVG)
|
||||
Pass -11.0
|
||||
Pass -11.0 (SVG)
|
||||
Pass -111.0
|
||||
Pass -111.0 (SVG)
|
||||
Pass -1111.0
|
||||
Pass -1111.0 (SVG)
|
||||
Pass -11111.0
|
||||
Pass -11111.0 (SVG)
|
||||
Pass -111111.0
|
||||
Pass -111111.0 (SVG)
|
||||
Pass -1111111.0
|
||||
Pass -1111111.0 (SVG)
|
||||
Pass -11111111.0
|
||||
Pass -11111111.0 (SVG)
|
||||
Pass 1.0a
|
||||
Pass 1.0a (SVG)
|
||||
Pass 11.0a
|
||||
Pass 11.0a (SVG)
|
||||
Pass 111.0a
|
||||
Pass 111.0a (SVG)
|
||||
Pass 1111.0a
|
||||
Pass 1111.0a (SVG)
|
||||
Pass 11111.0a
|
||||
Pass 11111.0a (SVG)
|
||||
Pass 111111.0a
|
||||
Pass 111111.0a (SVG)
|
||||
Pass 1111111.0a
|
||||
Pass 1111111.0a (SVG)
|
||||
Pass +1.0a
|
||||
Pass +1.0a (SVG)
|
||||
Pass +11.0a
|
||||
Pass +11.0a (SVG)
|
||||
Pass +111.0a
|
||||
Pass +111.0a (SVG)
|
||||
Pass +1111.0a
|
||||
Pass +1111.0a (SVG)
|
||||
Pass +11111.0a
|
||||
Pass +11111.0a (SVG)
|
||||
Pass +111111.0a
|
||||
Pass +111111.0a (SVG)
|
||||
Pass +1111111.0a
|
||||
Pass +1111111.0a (SVG)
|
||||
Pass -1.0a
|
||||
Pass -1.0a (SVG)
|
||||
Pass -11.0a
|
||||
Pass -11.0a (SVG)
|
||||
Pass -111.0a
|
||||
Pass -111.0a (SVG)
|
||||
Pass -1111.0a
|
||||
Pass -1111.0a (SVG)
|
||||
Pass -11111.0a
|
||||
Pass -11111.0a (SVG)
|
||||
Pass -111111.0a
|
||||
Pass -111111.0a (SVG)
|
||||
Pass -1111111.0a
|
||||
Pass -1111111.0a (SVG)
|
||||
Pass +/**/123
|
||||
Pass +/**/123 (SVG)
|
||||
Pass -/**/123
|
||||
Pass -/**/123 (SVG)
|
||||
Pass +/**/123456
|
||||
Pass +/**/123456 (SVG)
|
||||
Pass -/**/123456
|
||||
Pass -/**/123456 (SVG)
|
||||
Pass +/**/abc
|
||||
Pass +/**/abc (SVG)
|
||||
Pass -/**/abc
|
||||
Pass -/**/abc (SVG)
|
||||
Pass +/**/abcdef
|
||||
Pass +/**/abcdef (SVG)
|
||||
Pass -/**/abcdef
|
||||
Pass -/**/abcdef (SVG)
|
||||
Pass +/**/12a
|
||||
Pass +/**/12a (SVG)
|
||||
Pass -/**/12a
|
||||
Pass -/**/12a (SVG)
|
||||
Pass +/**/12345a
|
||||
Pass +/**/12345a (SVG)
|
||||
Pass -/**/12345a
|
||||
Pass -/**/12345a (SVG)
|
||||
Pass abg
|
||||
Pass abg (SVG)
|
||||
Pass aabbcg
|
||||
Pass aabbcg (SVG)
|
||||
Pass 1ag
|
||||
Pass 1ag (SVG)
|
||||
Pass 1122ag
|
||||
Pass 1122ag (SVG)
|
||||
Pass ABG
|
||||
Pass ABG (SVG)
|
||||
Pass AABBCG
|
||||
Pass AABBCG (SVG)
|
||||
Pass 1AG
|
||||
Pass 1AG (SVG)
|
||||
Pass 1122AG
|
||||
Pass 1122AG (SVG)
|
||||
Pass @a
|
||||
Pass @a (SVG)
|
||||
Pass @ab
|
||||
Pass @ab (SVG)
|
||||
Pass @abc
|
||||
Pass @abc (SVG)
|
||||
Pass @abcd
|
||||
Pass @abcd (SVG)
|
||||
Pass @abcde
|
||||
Pass @abcde (SVG)
|
||||
Pass @abcdef
|
||||
Pass @abcdef (SVG)
|
||||
Pass @1
|
||||
Pass @1 (SVG)
|
||||
Pass @11
|
||||
Pass @11 (SVG)
|
||||
Pass @111
|
||||
Pass @111 (SVG)
|
||||
Pass @1111
|
||||
Pass @1111 (SVG)
|
||||
Pass @11111
|
||||
Pass @11111 (SVG)
|
||||
Pass @111111
|
||||
Pass @111111 (SVG)
|
||||
Pass @1a
|
||||
Pass @1a (SVG)
|
||||
Pass @11a
|
||||
Pass @11a (SVG)
|
||||
Pass @111a
|
||||
Pass @111a (SVG)
|
||||
Pass @1111a
|
||||
Pass @1111a (SVG)
|
||||
Pass @11111a
|
||||
Pass @11111a (SVG)
|
||||
Pass "a"
|
||||
Pass "a" (SVG)
|
||||
Pass "ab"
|
||||
Pass "ab" (SVG)
|
||||
Pass "abc"
|
||||
Pass "abc" (SVG)
|
||||
Pass "abcd"
|
||||
Pass "abcd" (SVG)
|
||||
Pass "abcde"
|
||||
Pass "abcde" (SVG)
|
||||
Pass "abcdef"
|
||||
Pass "abcdef" (SVG)
|
||||
Pass "1"
|
||||
Pass "1" (SVG)
|
||||
Pass "11"
|
||||
Pass "11" (SVG)
|
||||
Pass "111"
|
||||
Pass "111" (SVG)
|
||||
Pass "1111"
|
||||
Pass "1111" (SVG)
|
||||
Pass "11111"
|
||||
Pass "11111" (SVG)
|
||||
Pass "111111"
|
||||
Pass "111111" (SVG)
|
||||
Pass "1a"
|
||||
Pass "1a" (SVG)
|
||||
Pass "11a"
|
||||
Pass "11a" (SVG)
|
||||
Pass "111a"
|
||||
Pass "111a" (SVG)
|
||||
Pass "1111a"
|
||||
Pass "1111a" (SVG)
|
||||
Pass "11111a"
|
||||
Pass "11111a" (SVG)
|
||||
Pass url(a)
|
||||
Pass url(a) (SVG)
|
||||
Pass url(aa)
|
||||
Pass url(aa) (SVG)
|
||||
Pass url(aaa)
|
||||
Pass url(aaa) (SVG)
|
||||
Pass url(aaaa)
|
||||
Pass url(aaaa) (SVG)
|
||||
Pass url(aaaaa)
|
||||
Pass url(aaaaa) (SVG)
|
||||
Pass url(aaaaaa)
|
||||
Pass url(aaaaaa) (SVG)
|
||||
Pass url('a')
|
||||
Pass url('a') (SVG)
|
||||
Pass url('aa')
|
||||
Pass url('aa') (SVG)
|
||||
Pass url('aaa')
|
||||
Pass url('aaa') (SVG)
|
||||
Pass url('aaaa')
|
||||
Pass url('aaaa') (SVG)
|
||||
Pass url('aaaaa')
|
||||
Pass url('aaaaa') (SVG)
|
||||
Pass url('aaaaaa')
|
||||
Pass url('aaaaaa') (SVG)
|
||||
Pass #a
|
||||
Pass #a (SVG)
|
||||
Pass #aa
|
||||
Pass #aa (SVG)
|
||||
Pass #aaaaa
|
||||
Pass #aaaaa (SVG)
|
||||
Pass #aaaaaaa
|
||||
Pass #aaaaaaa (SVG)
|
||||
Pass #1
|
||||
Pass #1 (SVG)
|
||||
Pass #11
|
||||
Pass #11 (SVG)
|
||||
Pass #11111
|
||||
Pass #11111 (SVG)
|
||||
Pass #1111111
|
||||
Pass #1111111 (SVG)
|
||||
Pass #1a
|
||||
Pass #1a (SVG)
|
||||
Pass #1111a
|
||||
Pass #1111a (SVG)
|
||||
Pass #111111a
|
||||
Pass #111111a (SVG)
|
||||
Pass 1%
|
||||
Pass 1% (SVG)
|
||||
Pass 11%
|
||||
Pass 11% (SVG)
|
||||
Pass 111%
|
||||
Pass 111% (SVG)
|
||||
Pass 1111%
|
||||
Pass 1111% (SVG)
|
||||
Pass 11111%
|
||||
Pass 11111% (SVG)
|
||||
Pass 111111%
|
||||
Pass 111111% (SVG)
|
||||
Pass calc(123)
|
||||
Pass calc(123) (SVG)
|
||||
Pass rgb(119, 255, 255)
|
||||
Pass rgb(119, 255, 255) (SVG)
|
||||
Pass rgba(119, 255, 255, 001)
|
||||
Pass rgba(119, 255, 255, 001) (SVG)
|
||||
Pass hsl(100, 100%, 100%)
|
||||
Pass hsl(100, 100%, 100%) (SVG)
|
||||
Pass hsla(100, 100%, 100%, 001)
|
||||
Pass hsla(100, 100%, 100%, 001) (SVG)
|
||||
Pass rgb(calc(100 + 155), 255, 255)
|
||||
Pass rgb(calc(100 + 155), 255, 255) (SVG)
|
||||
Pass rgba(calc(100 + 155), 255, 255, 001)
|
||||
Pass rgba(calc(100 + 155), 255, 255, 001) (SVG)
|
||||
Pass hsl(calc(050 + 050), 100%, 100%)
|
||||
Pass hsl(calc(050 + 050), 100%, 100%) (SVG)
|
||||
Pass hsla(calc(050 + 050), 100%, 100%, 001)
|
||||
Pass hsla(calc(050 + 050), 100%, 100%, 001) (SVG)
|
||||
Pass rgb(/**/255, 255, 255)
|
||||
Pass rgb(/**/255, 255, 255) (SVG)
|
||||
Pass rgb(/**/255/**/, /**/255/**/, /**/255/**/)
|
||||
Pass rgb(/**/255/**/, /**/255/**/, /**/255/**/) (SVG)
|
||||
Pass rgb(calc(/**/100/**/ + /**/155/**/), 255, 255)
|
||||
Pass rgb(calc(/**/100/**/ + /**/155/**/), 255, 255) (SVG)
|
||||
Pass #123 123 abc 12a
|
||||
Pass #123 123 abc 12a (SVG)
|
||||
Pass rgb(119, 255, 255) 123
|
||||
Pass rgb(119, 255, 255) 123 (SVG)
|
||||
Pass 123 rgb(119, 255, 255)
|
||||
Pass 123 rgb(119, 255, 255) (SVG)
|
||||
Pass 1e1
|
||||
Pass 1e1 (SVG)
|
||||
Pass 11e1
|
||||
Pass 11e1 (SVG)
|
||||
Pass 111e1
|
||||
Pass 111e1 (SVG)
|
||||
Pass 1111e1
|
||||
Pass 1111e1 (SVG)
|
||||
Pass 11111e1
|
||||
Pass 11111e1 (SVG)
|
||||
Pass 111111e1
|
||||
Pass 111111e1 (SVG)
|
||||
Pass 1e+1
|
||||
Pass 1e+1 (SVG)
|
||||
Pass 11e+1
|
||||
Pass 11e+1 (SVG)
|
||||
Pass 111e+1
|
||||
Pass 111e+1 (SVG)
|
||||
Pass 1111e+1
|
||||
Pass 1111e+1 (SVG)
|
||||
Pass 11111e+1
|
||||
Pass 11111e+1 (SVG)
|
||||
Pass 111111e+1
|
||||
Pass 111111e+1 (SVG)
|
||||
Pass 1e-0
|
||||
Pass 1e-0 (SVG)
|
||||
Pass 11e-0
|
||||
Pass 11e-0 (SVG)
|
||||
Pass 111e-0
|
||||
Pass 111e-0 (SVG)
|
||||
Pass 1111e-0
|
||||
Pass 1111e-0 (SVG)
|
||||
Pass 11111e-0
|
||||
Pass 11111e-0 (SVG)
|
||||
Pass 111111e-0
|
||||
Pass 111111e-0 (SVG)
|
||||
Pass 1e1a
|
||||
Pass 1e1a (SVG)
|
||||
Pass 11e1a
|
||||
Pass 11e1a (SVG)
|
||||
Pass 111e1a
|
||||
Pass 111e1a (SVG)
|
||||
Pass 1111e1a
|
||||
Pass 1111e1a (SVG)
|
||||
Pass 11111e1a
|
||||
Pass 11111e1a (SVG)
|
||||
Pass 111111e1a
|
||||
Pass 111111e1a (SVG)
|
||||
Pass 1111111111...
|
||||
Pass 1111111111... (SVG)
|
||||
Pass 1111111111...a
|
||||
Pass 1111111111...a (SVG)
|
||||
Pass a1111111111...
|
||||
Pass a1111111111... (SVG)
|
||||
Pass The hashless hex color quirk (quirks), excluded property background:abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property border-top:1px solid abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property border-right:1px solid abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property border-bottom:1px solid abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property border-left:1px solid abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property border:1px solid abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property outline-color:abc
|
||||
Pass The hashless hex color quirk (quirks), excluded property outline:1px solid abc
|
|
@ -0,0 +1,16 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>The hashless hex color quirk (quirks)</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="../../resources/testharness.js"></script>
|
||||
<script src="../../resources/testharnessreport.js"></script>
|
||||
<style> iframe { width:20px; height:20px; } </style>
|
||||
</head>
|
||||
<body>
|
||||
<div id=log></div>
|
||||
<iframe class=quirks></iframe>
|
||||
<script src=../support/test-ref-iframe.js></script>
|
||||
<script src=support/common.js></script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,423 @@
|
|||
setup({explicit_done:true});
|
||||
onload = function() {
|
||||
setupIframe();
|
||||
|
||||
var tests = [
|
||||
{input:"123", q:"#000123"},
|
||||
{input:"023", q:"#000023"},
|
||||
{input:"003", q:"#000003"},
|
||||
{input:"000", q:"#000"},
|
||||
{input:"abc", q:"#abc"},
|
||||
{input:"ABC", q:"#abc"},
|
||||
{input:"1ab", q:"#0001ab"},
|
||||
{input:"1AB", q:"#0001ab"},
|
||||
{input:"112233", q:"#123"},
|
||||
{input:"012233", q:"#012233"},
|
||||
{input:"002233", q:"#023"},
|
||||
{input:"000233", q:"#000233"},
|
||||
{input:"000033", q:"#003"},
|
||||
{input:"000003", q:"#000003"},
|
||||
{input:"000000", q:"#000000"},
|
||||
{input:"aabbcc", q:"#abc"},
|
||||
{input:"AABBCC", q:"#abc"},
|
||||
{input:"11aabb", q:"#1ab"},
|
||||
{input:"11AABB", q:"#1ab"},
|
||||
{input:"\\31 23", q:"#123"},
|
||||
{input:"\\61 bc", q:"#abc"},
|
||||
{input:"\\41 BC", q:"#abc"},
|
||||
{input:"\\31 ab", q:"#1ab"},
|
||||
{input:"\\31 AB", q:"#1ab"},
|
||||
{input:"\\31 12233", q:"#123"},
|
||||
{input:"\\61 abbcc", q:"#abc"},
|
||||
{input:"\\41 ABBCC", q:"#abc"},
|
||||
{input:"\\31 1aabb", q:"#1ab"},
|
||||
{input:"\\31 1AABB", q:"#1ab"},
|
||||
{input:"12\\33 ", q:"#000123"},
|
||||
{input:"1", q:"#000001"},
|
||||
{input:"12", q:"#000012"},
|
||||
{input:"1234", q:"#001234"},
|
||||
{input:"12345", q:"#012345"},
|
||||
{input:"1234567"},
|
||||
{input:"12345678"},
|
||||
{input:"a"},
|
||||
{input:"aa"},
|
||||
{input:"aaaa"},
|
||||
{input:"aaaaa"},
|
||||
{input:"aaaaaaa"},
|
||||
{input:"aaaaaaaa"},
|
||||
{input:"A"},
|
||||
{input:"AA"},
|
||||
{input:"AAAA"},
|
||||
{input:"AAAAA"},
|
||||
{input:"AAAAAAA"},
|
||||
{input:"AAAAAAAA"},
|
||||
{input:"1a", q:"#00001a"},
|
||||
{input:"1abc", q:"#001abc"},
|
||||
{input:"1abcd", q:"#01abcd"},
|
||||
{input:"1abcdef"},
|
||||
{input:"1abcdeff"},
|
||||
{input:"+1", q:"#000001"},
|
||||
{input:"+12", q:"#000012"},
|
||||
{input:"+123", q:"#000123"},
|
||||
{input:"+1234", q:"#001234"},
|
||||
{input:"+12345", q:"#012345"},
|
||||
{input:"+123456", q:"#123456"},
|
||||
{input:"+1234567"},
|
||||
{input:"+12345678"},
|
||||
{input:"-1"},
|
||||
{input:"-12"},
|
||||
{input:"-123"},
|
||||
{input:"-1234"},
|
||||
{input:"-12345"},
|
||||
{input:"-123456"},
|
||||
{input:"-1234567"},
|
||||
{input:"-12345678"},
|
||||
{input:"+1a", q:"#00001a"},
|
||||
{input:"+12a", q:"#00012a"},
|
||||
{input:"+123a", q:"#00123a"},
|
||||
{input:"+1234a", q:"#01234a"},
|
||||
{input:"+12345a", q:"#12345a"},
|
||||
{input:"+123456a"},
|
||||
{input:"+1234567a"},
|
||||
{input:"-1a"},
|
||||
{input:"-12a"},
|
||||
{input:"-123a"},
|
||||
{input:"-1234a"},
|
||||
{input:"-12345a"},
|
||||
{input:"-123456a"},
|
||||
{input:"-1234567a"},
|
||||
{input:"-12345678a"},
|
||||
{input:"+1A", q:"#00001a"},
|
||||
{input:"+12A", q:"#00012a"},
|
||||
{input:"+123A", q:"#00123a"},
|
||||
{input:"+1234A", q:"#01234a"},
|
||||
{input:"+12345A", q:"#12345a"},
|
||||
{input:"+123456A"},
|
||||
{input:"+1234567A"},
|
||||
{input:"-1A"},
|
||||
{input:"-12A"},
|
||||
{input:"-123A"},
|
||||
{input:"-1234A"},
|
||||
{input:"-12345A"},
|
||||
{input:"-123456A"},
|
||||
{input:"-1234567A"},
|
||||
{input:"-12345678A"},
|
||||
{input:"+a"},
|
||||
{input:"+aa"},
|
||||
{input:"+aaa"},
|
||||
{input:"+aaaa"},
|
||||
{input:"+aaaaa"},
|
||||
{input:"+aaaaaa"},
|
||||
{input:"+aaaaaaa"},
|
||||
{input:"+aaaaaaaa"},
|
||||
{input:"-a"},
|
||||
{input:"-aa"},
|
||||
{input:"-aaa"},
|
||||
{input:"-aaaa"},
|
||||
{input:"-aaaaa"},
|
||||
{input:"-aaaaaa"},
|
||||
{input:"-aaaaaaa"},
|
||||
{input:"-aaaaaaaa"},
|
||||
{input:"-aaaaaaaaa"},
|
||||
{input:"+A"},
|
||||
{input:"+AA"},
|
||||
{input:"+AAA"},
|
||||
{input:"+AAAA"},
|
||||
{input:"+AAAAA"},
|
||||
{input:"+AAAAAA"},
|
||||
{input:"+AAAAAAA"},
|
||||
{input:"+AAAAAAAA"},
|
||||
{input:"-A"},
|
||||
{input:"-AA"},
|
||||
{input:"-AAA"},
|
||||
{input:"-AAAA"},
|
||||
{input:"-AAAAA"},
|
||||
{input:"-AAAAAA"},
|
||||
{input:"-AAAAAAA"},
|
||||
{input:"-AAAAAAAA"},
|
||||
{input:"-AAAAAAAAA"},
|
||||
{input:"1.1"},
|
||||
{input:"1.11"},
|
||||
{input:"1.111"},
|
||||
{input:"1.1111"},
|
||||
{input:"1.11111"},
|
||||
{input:"1.111111"},
|
||||
{input:"1.1111111"},
|
||||
{input:"+1.1"},
|
||||
{input:"+1.11"},
|
||||
{input:"+1.111"},
|
||||
{input:"+1.1111"},
|
||||
{input:"+1.11111"},
|
||||
{input:"+1.111111"},
|
||||
{input:"+1.1111111"},
|
||||
{input:"-1.1"},
|
||||
{input:"-1.11"},
|
||||
{input:"-1.111"},
|
||||
{input:"-1.1111"},
|
||||
{input:"-1.11111"},
|
||||
{input:"-1.111111"},
|
||||
{input:"-1.1111111"},
|
||||
{input:"1.1a"},
|
||||
{input:"1.11a"},
|
||||
{input:"1.111a"},
|
||||
{input:"1.1111a"},
|
||||
{input:"1.11111a"},
|
||||
{input:"1.111111a"},
|
||||
{input:"+1.1a"},
|
||||
{input:"+1.11a"},
|
||||
{input:"+1.111a"},
|
||||
{input:"+1.1111a"},
|
||||
{input:"+1.11111a"},
|
||||
{input:"+1.111111a"},
|
||||
{input:"-1.1a"},
|
||||
{input:"-1.11a"},
|
||||
{input:"-1.111a"},
|
||||
{input:"-1.1111a"},
|
||||
{input:"-1.11111a"},
|
||||
{input:"-1.111111a"},
|
||||
{input:"1.0"},
|
||||
{input:"11.0"},
|
||||
{input:"111.0"},
|
||||
{input:"1111.0"},
|
||||
{input:"11111.0"},
|
||||
{input:"111111.0"},
|
||||
{input:"1111111.0"},
|
||||
{input:"11111111.0"},
|
||||
{input:"+1.0"},
|
||||
{input:"+11.0"},
|
||||
{input:"+111.0"},
|
||||
{input:"+1111.0"},
|
||||
{input:"+11111.0"},
|
||||
{input:"+111111.0"},
|
||||
{input:"+1111111.0"},
|
||||
{input:"+11111111.0"},
|
||||
{input:"-1.0"},
|
||||
{input:"-11.0"},
|
||||
{input:"-111.0"},
|
||||
{input:"-1111.0"},
|
||||
{input:"-11111.0"},
|
||||
{input:"-111111.0"},
|
||||
{input:"-1111111.0"},
|
||||
{input:"-11111111.0"},
|
||||
{input:"1.0a"},
|
||||
{input:"11.0a"},
|
||||
{input:"111.0a"},
|
||||
{input:"1111.0a"},
|
||||
{input:"11111.0a"},
|
||||
{input:"111111.0a"},
|
||||
{input:"1111111.0a"},
|
||||
{input:"+1.0a"},
|
||||
{input:"+11.0a"},
|
||||
{input:"+111.0a"},
|
||||
{input:"+1111.0a"},
|
||||
{input:"+11111.0a"},
|
||||
{input:"+111111.0a"},
|
||||
{input:"+1111111.0a"},
|
||||
{input:"-1.0a"},
|
||||
{input:"-11.0a"},
|
||||
{input:"-111.0a"},
|
||||
{input:"-1111.0a"},
|
||||
{input:"-11111.0a"},
|
||||
{input:"-111111.0a"},
|
||||
{input:"-1111111.0a"},
|
||||
{input:"+/**/123"},
|
||||
{input:"-/**/123"},
|
||||
{input:"+/**/123456"},
|
||||
{input:"-/**/123456"},
|
||||
{input:"+/**/abc"},
|
||||
{input:"-/**/abc"},
|
||||
{input:"+/**/abcdef"},
|
||||
{input:"-/**/abcdef"},
|
||||
{input:"+/**/12a"},
|
||||
{input:"-/**/12a"},
|
||||
{input:"+/**/12345a"},
|
||||
{input:"-/**/12345a"},
|
||||
{input:"abg"},
|
||||
{input:"aabbcg"},
|
||||
{input:"1ag"},
|
||||
{input:"1122ag"},
|
||||
{input:"ABG"},
|
||||
{input:"AABBCG"},
|
||||
{input:"1AG"},
|
||||
{input:"1122AG"},
|
||||
{input:"@a"},
|
||||
{input:"@ab"},
|
||||
{input:"@abc"},
|
||||
{input:"@abcd"},
|
||||
{input:"@abcde"},
|
||||
{input:"@abcdef"},
|
||||
{input:"@1"},
|
||||
{input:"@11"},
|
||||
{input:"@111"},
|
||||
{input:"@1111"},
|
||||
{input:"@11111"},
|
||||
{input:"@111111"},
|
||||
{input:"@1a"},
|
||||
{input:"@11a"},
|
||||
{input:"@111a"},
|
||||
{input:"@1111a"},
|
||||
{input:"@11111a"},
|
||||
{input:'"a"'},
|
||||
{input:'"ab"'},
|
||||
{input:'"abc"'},
|
||||
{input:'"abcd"'},
|
||||
{input:'"abcde"'},
|
||||
{input:'"abcdef"'},
|
||||
{input:'"1"'},
|
||||
{input:'"11"'},
|
||||
{input:'"111"'},
|
||||
{input:'"1111"'},
|
||||
{input:'"11111"'},
|
||||
{input:'"111111"'},
|
||||
{input:'"1a"'},
|
||||
{input:'"11a"'},
|
||||
{input:'"111a"'},
|
||||
{input:'"1111a"'},
|
||||
{input:'"11111a"'},
|
||||
{input:"url(a)", svg:'url(a)'},
|
||||
{input:"url(aa)", svg:'url(aa)'},
|
||||
{input:"url(aaa)", svg:'url(aaa)'},
|
||||
{input:"url(aaaa)", svg:'url(aaaa)'},
|
||||
{input:"url(aaaaa)", svg:'url(aaaaa)'},
|
||||
{input:"url(aaaaaa)", svg:'url(aaaaaa)'},
|
||||
{input:"url('a')", svg:'url(a)'},
|
||||
{input:"url('aa')", svg:'url(aa)'},
|
||||
{input:"url('aaa')", svg:'url(aaa)'},
|
||||
{input:"url('aaaa')", svg:'url(aaaa)'},
|
||||
{input:"url('aaaaa')", svg:'url(aaaaa)'},
|
||||
{input:"url('aaaaaa')", svg:'url(aaaaaa)'},
|
||||
{input:"#a"},
|
||||
{input:"#aa"},
|
||||
{input:"#aaaaa"},
|
||||
{input:"#aaaaaaa"},
|
||||
{input:"#1"},
|
||||
{input:"#11"},
|
||||
{input:"#11111"},
|
||||
{input:"#1111111"},
|
||||
{input:"#1a"},
|
||||
{input:"#1111a"},
|
||||
{input:"#111111a"},
|
||||
{input:"1%"},
|
||||
{input:"11%"},
|
||||
{input:"111%"},
|
||||
{input:"1111%"},
|
||||
{input:"11111%"},
|
||||
{input:"111111%"},
|
||||
{input:"calc(123)"},
|
||||
{input:"rgb(119, 255, 255)", q:"#7ff", s:"#7ff", svg:"#7ff"},
|
||||
{input:"rgba(119, 255, 255, 001)", q:"#7ff", s:"#7ff", svg:"#7ff"},
|
||||
{input:"hsl(100, 100%, 100%)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"hsla(100, 100%, 100%, 001)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"rgb(calc(100 + 155), 255, 255)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"rgba(calc(100 + 155), 255, 255, 001)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"hsl(calc(050 + 050), 100%, 100%)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"hsla(calc(050 + 050), 100%, 100%, 001)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"rgb(/**/255, 255, 255)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"rgb(/**/255/**/, /**/255/**/, /**/255/**/)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"rgb(calc(/**/100/**/ + /**/155/**/), 255, 255)", q:"#fff", s:"#fff", svg:"#fff"},
|
||||
{input:"#123 123 abc 12a", q:"#123 #000123 #abc #00012a", shorthand:true},
|
||||
{input:"rgb(119, 255, 255) 123", q:"#7ff #000123", shorthand:true},
|
||||
{input:"123 rgb(119, 255, 255)", q:"#000123 #7ff", shorthand:true},
|
||||
{input:"1e1"},
|
||||
{input:"11e1"},
|
||||
{input:"111e1"},
|
||||
{input:"1111e1"},
|
||||
{input:"11111e1"},
|
||||
{input:"111111e1"},
|
||||
{input:"1e+1"},
|
||||
{input:"11e+1"},
|
||||
{input:"111e+1"},
|
||||
{input:"1111e+1"},
|
||||
{input:"11111e+1"},
|
||||
{input:"111111e+1"},
|
||||
{input:"1e-0"},
|
||||
{input:"11e-0"},
|
||||
{input:"111e-0"},
|
||||
{input:"1111e-0"},
|
||||
{input:"11111e-0"},
|
||||
{input:"111111e-0"},
|
||||
{input:"1e1a"},
|
||||
{input:"11e1a"},
|
||||
{input:"111e1a"},
|
||||
{input:"1111e1a"},
|
||||
{input:"11111e1a"},
|
||||
{input:"111111e1a"},
|
||||
{desc:"1111111111...", input:"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"},
|
||||
{desc:"1111111111...a", input:"1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111a"},
|
||||
{desc:"a1111111111...", input:"a1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"},
|
||||
];
|
||||
|
||||
var props = [
|
||||
{prop:'background-color', check:'background-color'},
|
||||
{prop:'border-color', check:'border-top-color', check_also:['border-right-color', 'border-bottom-color', 'border-left-color']},
|
||||
{prop:'border-top-color', check:'border-top-color'},
|
||||
{prop:'border-right-color', check:'border-right-color'},
|
||||
{prop:'border-bottom-color', check:'border-bottom-color'},
|
||||
{prop:'border-left-color', check:'border-left-color'},
|
||||
{prop:'color', check:'color'},
|
||||
];
|
||||
var style_template = '#test{{prop}:{test};}' +
|
||||
'#ref{{prop}:{ref};}';
|
||||
|
||||
tests.forEach(function(t) {
|
||||
var name = t.desc || t.input;
|
||||
var test_html = async_test(name);
|
||||
var test_svg = async_test(name + ' (SVG)');
|
||||
for (var i in props) {
|
||||
if (t.shorthand && !(props[i].check_also)) {
|
||||
continue;
|
||||
}
|
||||
test_html.step(function() {
|
||||
win.style.textContent = style_template.replace('{test}', t.input)
|
||||
.replace('{ref}', quirks ? t.q : t.s).replace(/\{prop\}/g, props[i].prop);
|
||||
assert_equals(win.getComputedStyle(win.test).getPropertyValue(props[i].check),
|
||||
win.getComputedStyle(win.ref).getPropertyValue(props[i].check),
|
||||
props[i].prop);
|
||||
if (t.shorthand && props[i].check_also) {
|
||||
for (var j in props[i].check_also) {
|
||||
assert_equals(win.getComputedStyle(win.test).getPropertyValue(props[i].check_also[j]),
|
||||
win.getComputedStyle(win.ref).getPropertyValue(props[i].check_also[j]),
|
||||
props[i].prop + ' checking ' + props[i].check_also[j]);
|
||||
}
|
||||
}
|
||||
});
|
||||
test_svg.step(function() {
|
||||
win.svg.setAttribute('fill', t.input);
|
||||
if (t.svg) {
|
||||
win.svg_ref.setAttribute('fill', t.svg);
|
||||
} else {
|
||||
win.svg_ref.removeAttribute('fill');
|
||||
}
|
||||
assert_equals(win.getComputedStyle(win.svg).fill, win.getComputedStyle(win.svg_ref).fill, 'SVG fill=""');
|
||||
});
|
||||
}
|
||||
test_html.done();
|
||||
test_svg.done();
|
||||
});
|
||||
|
||||
if (quirks) {
|
||||
var other_tests = [
|
||||
{input:'background:abc', prop:'background-color'},
|
||||
{input:'border-top:1px solid abc', prop:'border-top-color'},
|
||||
{input:'border-right:1px solid abc', prop:'border-right-color'},
|
||||
{input:'border-bottom:1px solid abc', prop:'border-bottom-color'},
|
||||
{input:'border-left:1px solid abc', prop:'border-left-color'},
|
||||
{input:'border:1px solid abc', prop:'border-top-color'},
|
||||
{input:'outline-color:abc', prop:'outline-color'},
|
||||
{input:'outline:1px solid abc', prop:'outline-color'}
|
||||
];
|
||||
|
||||
var other_template = "#test{{test};}"
|
||||
|
||||
other_tests.forEach(function(t) {
|
||||
test(function() {
|
||||
win.style.textContent = other_template.replace('{test}', t.input);
|
||||
assert_equals(win.getComputedStyle(win.test).getPropertyValue(t.prop),
|
||||
win.getComputedStyle(win.ref).getPropertyValue(t.prop),
|
||||
'quirk was supported');
|
||||
}, document.title+', excluded property '+t.input);
|
||||
});
|
||||
}
|
||||
|
||||
done();
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
function setupIframe() {
|
||||
var iframe = document.querySelector('iframe');
|
||||
var html = "<style id=style></style><div id=test></div><div id=ref></div><svg><circle id=svg /><circle id=svg_ref /></svg>";
|
||||
if (iframe.className === "limited-quirks") {
|
||||
html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">' + html;
|
||||
} else if (iframe.className === "no-quirks") {
|
||||
html = '<!DOCTYPE HTML>' + html;
|
||||
}
|
||||
window.quirks = iframe.className === "quirks";
|
||||
window.win = iframe.contentWindow;
|
||||
win.document.open();
|
||||
win.document.write(html);
|
||||
win.document.close();
|
||||
['style', 'test', 'ref', 'svg', 'svg_ref'].forEach(function(id) {
|
||||
win[id] = win.document.getElementById(id);
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue