LibWeb/CSS: Support nested shorthands in CSSStyleDeclaration

Without this, getting a property's value from `element.style.foo` would
fail if `foo` is a shorthand property which has a longhand that is also
a shorthand. For example, `border` expands to `border-width` which
expands to `border-top-width`.

This is because we used `property()` to get a longhand's value, but this
returns nothing if the property is a shorthand.

This commit solves that by moving most of get_property_value() into a
separate method that returns a StyleProperty instead of a String, and
which calls itself recursively for shorthands. Also move the manual
shorthand construction out of ResolvedCSSStyleDeclaration so that all
CSSStyleDeclarations can use it.
This commit is contained in:
Sam Atkins 2025-02-06 11:10:36 +00:00
commit 412b758107
Notes: github-actions[bot] 2025-02-12 16:02:13 +00:00
7 changed files with 237 additions and 207 deletions

View file

@ -2,48 +2,49 @@ Harness status: OK
Found 315 tests
315 Fail
Fail caption should be a supported system font.
Fail icon should be a supported system font.
Fail menu should be a supported system font.
Fail message-box should be a supported system font.
Fail small-caption should be a supported system font.
Fail status-bar should be a supported system font.
Fail e.style['font'] = "xx-small serif" should set the property value
Fail e.style['font'] = "normal medium/normal sans-serif" should set the property value
Fail e.style['font'] = "normal normal xx-large/1.2 cursive" should set the property value
91 Pass
224 Fail
Pass caption should be a supported system font.
Pass icon should be a supported system font.
Pass menu should be a supported system font.
Pass message-box should be a supported system font.
Pass small-caption should be a supported system font.
Pass status-bar should be a supported system font.
Pass e.style['font'] = "xx-small serif" should set the property value
Pass e.style['font'] = "normal medium/normal sans-serif" should set the property value
Pass e.style['font'] = "normal normal xx-large/1.2 cursive" should set the property value
Fail e.style['font'] = "normal normal normal larger/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "normal normal normal normal smaller monospace" should set the property value
Fail e.style['font'] = "normal normal normal italic 10px/normal Menu" should set the property value
Pass e.style['font'] = "normal normal normal normal smaller monospace" should set the property value
Pass e.style['font'] = "normal normal normal italic 10px/normal Menu" should set the property value
Fail e.style['font'] = "normal normal normal small-caps 20%/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal normal normal bold calc(30% - 40px)/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "normal normal normal ultra-condensed xx-small sans-serif" should set the property value
Fail e.style['font'] = "normal normal oblique medium/normal cursive" should set the property value
Fail e.style['font'] = "normal normal italic normal xx-large/1.2 fantasy" should set the property value
Pass e.style['font'] = "normal normal normal ultra-condensed xx-small sans-serif" should set the property value
Pass e.style['font'] = "normal normal oblique medium/normal cursive" should set the property value
Pass e.style['font'] = "normal normal italic normal xx-large/1.2 fantasy" should set the property value
Fail e.style['font'] = "normal normal oblique small-caps larger/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "normal normal italic bolder smaller Menu" should set the property value
Fail e.style['font'] = "normal normal oblique extra-condensed 10px/normal \"FB Armada\"" should set the property value
Pass e.style['font'] = "normal normal italic bolder smaller Menu" should set the property value
Pass e.style['font'] = "normal normal oblique extra-condensed 10px/normal \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal normal small-caps 20%/1.2 serif" should set the property value
Fail e.style['font'] = "normal normal small-caps normal calc(30% - 40px)/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "normal normal small-caps italic xx-small cursive" should set the property value
Fail e.style['font'] = "normal normal small-caps lighter medium/normal fantasy" should set the property value
Fail e.style['font'] = "normal normal small-caps condensed xx-large/1.2 monospace" should set the property value
Fail e.style['font'] = "normal normal 100 larger/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "normal normal 900 normal smaller \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal normal bold oblique 10px/normal serif" should set the property value
Pass e.style['font'] = "normal normal 900 normal smaller \"FB Armada\"" should set the property value
Pass e.style['font'] = "normal normal bold oblique 10px/normal serif" should set the property value
Fail e.style['font'] = "normal normal bolder small-caps 20%/1.2 sans-serif" should set the property value
Fail e.style['font'] = "normal normal lighter semi-condensed calc(30% - 40px)/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "normal normal semi-expanded xx-small fantasy" should set the property value
Fail e.style['font'] = "normal normal expanded normal medium/normal monospace" should set the property value
Fail e.style['font'] = "normal normal extra-expanded italic xx-large/1.2 Menu" should set the property value
Pass e.style['font'] = "normal normal semi-expanded xx-small fantasy" should set the property value
Pass e.style['font'] = "normal normal expanded normal medium/normal monospace" should set the property value
Pass e.style['font'] = "normal normal extra-expanded italic xx-large/1.2 Menu" should set the property value
Fail e.style['font'] = "normal normal ultra-expanded small-caps larger/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal normal ultra-condensed 100 smaller serif" should set the property value
Fail e.style['font'] = "normal oblique 10px/normal sans-serif" should set the property value
Fail e.style['font'] = "normal italic normal 20%/1.2 cursive" should set the property value
Pass e.style['font'] = "normal normal ultra-condensed 100 smaller serif" should set the property value
Pass e.style['font'] = "normal oblique 10px/normal sans-serif" should set the property value
Pass e.style['font'] = "normal italic normal 20%/1.2 cursive" should set the property value
Fail e.style['font'] = "normal oblique normal normal calc(30% - 40px)/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "normal italic normal small-caps xx-small monospace" should set the property value
Fail e.style['font'] = "normal oblique normal 900 medium/normal Menu" should set the property value
Fail e.style['font'] = "normal italic normal extra-condensed xx-large/1.2 \"FB Armada\"" should set the property value
Pass e.style['font'] = "normal oblique normal 900 medium/normal Menu" should set the property value
Pass e.style['font'] = "normal italic normal extra-condensed xx-large/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal oblique small-caps larger/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "normal italic small-caps normal smaller sans-serif" should set the property value
Fail e.style['font'] = "normal oblique small-caps bold 10px/normal cursive" should set the property value
@ -51,11 +52,11 @@ Fail e.style['font'] = "normal italic small-caps condensed 20%/1.2 fantasy" shou
Fail e.style['font'] = "normal oblique bolder calc(30% - 40px)/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "normal italic lighter normal xx-small Menu" should set the property value
Fail e.style['font'] = "normal oblique 100 small-caps medium/normal \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal italic 900 semi-condensed xx-large/1.2 serif" should set the property value
Pass e.style['font'] = "normal italic 900 semi-condensed xx-large/1.2 serif" should set the property value
Fail e.style['font'] = "normal oblique semi-expanded larger/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "normal italic expanded normal smaller cursive" should set the property value
Pass e.style['font'] = "normal italic expanded normal smaller cursive" should set the property value
Fail e.style['font'] = "normal oblique extra-expanded small-caps 10px/normal fantasy" should set the property value
Fail e.style['font'] = "normal italic ultra-expanded bold 20%/1.2 monospace" should set the property value
Pass e.style['font'] = "normal italic ultra-expanded bold 20%/1.2 monospace" should set the property value
Fail e.style['font'] = "normal small-caps calc(30% - 40px)/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "normal small-caps normal xx-small \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal small-caps normal normal medium/normal serif" should set the property value
@ -74,14 +75,14 @@ Fail e.style['font'] = "normal small-caps semi-condensed 10px/normal Menu" shoul
Fail e.style['font'] = "normal small-caps semi-expanded normal 20%/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal small-caps expanded oblique calc(30% - 40px)/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "normal small-caps extra-expanded lighter xx-small sans-serif" should set the property value
Fail e.style['font'] = "normal 100 medium/normal cursive" should set the property value
Fail e.style['font'] = "normal 900 normal xx-large/1.2 fantasy" should set the property value
Pass e.style['font'] = "normal 100 medium/normal cursive" should set the property value
Pass e.style['font'] = "normal 900 normal xx-large/1.2 fantasy" should set the property value
Fail e.style['font'] = "normal bold normal normal larger/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "normal bolder normal italic smaller Menu" should set the property value
Pass e.style['font'] = "normal bolder normal italic smaller Menu" should set the property value
Fail e.style['font'] = "normal lighter normal small-caps 10px/normal \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal 100 normal ultra-expanded 20%/1.2 serif" should set the property value
Pass e.style['font'] = "normal 100 normal ultra-expanded 20%/1.2 serif" should set the property value
Fail e.style['font'] = "normal 900 oblique calc(30% - 40px)/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "normal bold italic normal xx-small cursive" should set the property value
Pass e.style['font'] = "normal bold italic normal xx-small cursive" should set the property value
Fail e.style['font'] = "normal bolder oblique small-caps medium/normal fantasy" should set the property value
Fail e.style['font'] = "normal lighter italic ultra-condensed xx-large/1.2 monospace" should set the property value
Fail e.style['font'] = "normal 100 small-caps larger/calc(120% + 1.2em) Menu" should set the property value
@ -89,44 +90,44 @@ Fail e.style['font'] = "normal 900 small-caps normal smaller \"FB Armada\"" shou
Fail e.style['font'] = "normal bold small-caps oblique 10px/normal serif" should set the property value
Fail e.style['font'] = "normal bolder small-caps extra-condensed 20%/1.2 sans-serif" should set the property value
Fail e.style['font'] = "normal lighter condensed calc(30% - 40px)/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "normal 100 semi-condensed normal xx-small fantasy" should set the property value
Fail e.style['font'] = "normal 900 semi-expanded italic medium/normal monospace" should set the property value
Pass e.style['font'] = "normal 100 semi-condensed normal xx-small fantasy" should set the property value
Pass e.style['font'] = "normal 900 semi-expanded italic medium/normal monospace" should set the property value
Fail e.style['font'] = "normal bold expanded small-caps xx-large/1.2 Menu" should set the property value
Fail e.style['font'] = "normal extra-expanded larger/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal ultra-expanded normal smaller serif" should set the property value
Fail e.style['font'] = "normal ultra-condensed normal normal 10px/normal sans-serif" should set the property value
Fail e.style['font'] = "normal extra-condensed normal oblique 20%/1.2 cursive" should set the property value
Pass e.style['font'] = "normal ultra-expanded normal smaller serif" should set the property value
Pass e.style['font'] = "normal ultra-condensed normal normal 10px/normal sans-serif" should set the property value
Pass e.style['font'] = "normal extra-condensed normal oblique 20%/1.2 cursive" should set the property value
Fail e.style['font'] = "normal condensed normal small-caps calc(30% - 40px)/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "normal semi-condensed normal bolder xx-small monospace" should set the property value
Fail e.style['font'] = "normal semi-expanded italic medium/normal Menu" should set the property value
Fail e.style['font'] = "normal expanded oblique normal xx-large/1.2 \"FB Armada\"" should set the property value
Pass e.style['font'] = "normal semi-condensed normal bolder xx-small monospace" should set the property value
Pass e.style['font'] = "normal semi-expanded italic medium/normal Menu" should set the property value
Pass e.style['font'] = "normal expanded oblique normal xx-large/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal extra-expanded italic small-caps larger/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "normal ultra-expanded oblique lighter smaller sans-serif" should set the property value
Fail e.style['font'] = "normal ultra-condensed small-caps 10px/normal cursive" should set the property value
Fail e.style['font'] = "normal extra-condensed small-caps normal 20%/1.2 fantasy" should set the property value
Fail e.style['font'] = "normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "normal semi-condensed small-caps 100 xx-small Menu" should set the property value
Fail e.style['font'] = "normal semi-expanded 900 medium/normal \"FB Armada\"" should set the property value
Fail e.style['font'] = "normal expanded bold normal xx-large/1.2 serif" should set the property value
Pass e.style['font'] = "normal semi-expanded 900 medium/normal \"FB Armada\"" should set the property value
Pass e.style['font'] = "normal expanded bold normal xx-large/1.2 serif" should set the property value
Fail e.style['font'] = "normal extra-expanded bolder oblique larger/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "normal ultra-expanded lighter small-caps smaller cursive" should set the property value
Fail e.style['font'] = "italic 10px/normal fantasy" should set the property value
Fail e.style['font'] = "oblique normal 20%/1.2 monospace" should set the property value
Pass e.style['font'] = "italic 10px/normal fantasy" should set the property value
Pass e.style['font'] = "oblique normal 20%/1.2 monospace" should set the property value
Fail e.style['font'] = "italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "oblique normal normal normal xx-small \"FB Armada\"" should set the property value
Pass e.style['font'] = "oblique normal normal normal xx-small \"FB Armada\"" should set the property value
Fail e.style['font'] = "italic normal normal small-caps medium/normal serif" should set the property value
Fail e.style['font'] = "oblique normal normal 100 xx-large/1.2 sans-serif" should set the property value
Pass e.style['font'] = "oblique normal normal 100 xx-large/1.2 sans-serif" should set the property value
Fail e.style['font'] = "italic normal normal ultra-condensed larger/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "oblique normal small-caps smaller fantasy" should set the property value
Fail e.style['font'] = "italic normal small-caps normal 10px/normal monospace" should set the property value
Fail e.style['font'] = "oblique normal small-caps 900 20%/1.2 Menu" should set the property value
Fail e.style['font'] = "italic normal small-caps extra-condensed calc(30% - 40px)/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "oblique normal bold xx-small serif" should set the property value
Fail e.style['font'] = "italic normal bolder normal medium/normal sans-serif" should set the property value
Pass e.style['font'] = "oblique normal bold xx-small serif" should set the property value
Pass e.style['font'] = "italic normal bolder normal medium/normal sans-serif" should set the property value
Fail e.style['font'] = "oblique normal lighter small-caps xx-large/1.2 cursive" should set the property value
Fail e.style['font'] = "italic normal 100 condensed larger/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "oblique normal semi-condensed smaller monospace" should set the property value
Fail e.style['font'] = "italic normal semi-expanded normal 10px/normal Menu" should set the property value
Pass e.style['font'] = "oblique normal semi-condensed smaller monospace" should set the property value
Pass e.style['font'] = "italic normal semi-expanded normal 10px/normal Menu" should set the property value
Fail e.style['font'] = "oblique normal expanded small-caps 20%/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "oblique small-caps xx-small sans-serif" should set the property value
@ -141,7 +142,7 @@ Fail e.style['font'] = "oblique small-caps extra-condensed xx-small cursive" sho
Fail e.style['font'] = "italic small-caps condensed normal medium/normal fantasy" should set the property value
Fail e.style['font'] = "oblique small-caps semi-condensed 900 xx-large/1.2 monospace" should set the property value
Fail e.style['font'] = "italic bold larger/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "oblique bolder normal smaller \"FB Armada\"" should set the property value
Pass e.style['font'] = "oblique bolder normal smaller \"FB Armada\"" should set the property value
Fail e.style['font'] = "italic lighter normal normal 10px/normal serif" should set the property value
Fail e.style['font'] = "oblique 100 normal small-caps 20%/1.2 sans-serif" should set the property value
Fail e.style['font'] = "italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive" should set the property value
@ -149,17 +150,17 @@ Fail e.style['font'] = "oblique bold small-caps xx-small fantasy" should set the
Fail e.style['font'] = "italic bolder small-caps normal medium/normal monospace" should set the property value
Fail e.style['font'] = "oblique lighter small-caps expanded xx-large/1.2 Menu" should set the property value
Fail e.style['font'] = "italic 100 extra-expanded larger/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "oblique 900 ultra-expanded normal smaller serif" should set the property value
Pass e.style['font'] = "oblique 900 ultra-expanded normal smaller serif" should set the property value
Fail e.style['font'] = "italic bold ultra-condensed small-caps 10px/normal sans-serif" should set the property value
Fail e.style['font'] = "oblique extra-condensed 20%/1.2 cursive" should set the property value
Pass e.style['font'] = "oblique extra-condensed 20%/1.2 cursive" should set the property value
Fail e.style['font'] = "italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "oblique semi-condensed normal normal xx-small monospace" should set the property value
Pass e.style['font'] = "oblique semi-condensed normal normal xx-small monospace" should set the property value
Fail e.style['font'] = "italic semi-expanded normal small-caps medium/normal Menu" should set the property value
Fail e.style['font'] = "oblique expanded normal bolder xx-large/1.2 \"FB Armada\"" should set the property value
Pass e.style['font'] = "oblique expanded normal bolder xx-large/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "italic extra-expanded small-caps larger/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "oblique ultra-expanded small-caps normal smaller sans-serif" should set the property value
Fail e.style['font'] = "italic ultra-condensed small-caps lighter 10px/normal cursive" should set the property value
Fail e.style['font'] = "oblique extra-condensed 100 20%/1.2 fantasy" should set the property value
Pass e.style['font'] = "oblique extra-condensed 100 20%/1.2 fantasy" should set the property value
Fail e.style['font'] = "italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "oblique semi-condensed bold small-caps xx-small Menu" should set the property value
Fail e.style['font'] = "small-caps medium/normal \"FB Armada\"" should set the property value
@ -214,14 +215,14 @@ Fail e.style['font'] = "small-caps semi-expanded italic bold medium/normal Menu"
Fail e.style['font'] = "small-caps expanded bolder xx-large/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "small-caps extra-expanded lighter normal larger/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "small-caps ultra-expanded 100 oblique smaller sans-serif" should set the property value
Fail e.style['font'] = "900 10px/normal cursive" should set the property value
Fail e.style['font'] = "bold normal 20%/1.2 fantasy" should set the property value
Pass e.style['font'] = "900 10px/normal cursive" should set the property value
Pass e.style['font'] = "bold normal 20%/1.2 fantasy" should set the property value
Fail e.style['font'] = "bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "lighter normal normal normal xx-small Menu" should set the property value
Fail e.style['font'] = "100 normal normal italic medium/normal \"FB Armada\"" should set the property value
Pass e.style['font'] = "100 normal normal italic medium/normal \"FB Armada\"" should set the property value
Fail e.style['font'] = "900 normal normal small-caps xx-large/1.2 serif" should set the property value
Fail e.style['font'] = "bold normal normal ultra-condensed larger/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "bolder normal oblique smaller cursive" should set the property value
Pass e.style['font'] = "bolder normal oblique smaller cursive" should set the property value
Fail e.style['font'] = "lighter normal italic normal 10px/normal fantasy" should set the property value
Fail e.style['font'] = "100 normal oblique small-caps 20%/1.2 monospace" should set the property value
Fail e.style['font'] = "900 normal italic extra-condensed calc(30% - 40px)/calc(120% + 1.2em) Menu" should set the property value
@ -229,19 +230,19 @@ Fail e.style['font'] = "bold normal small-caps xx-small \"FB Armada\"" should se
Fail e.style['font'] = "bolder normal small-caps normal medium/normal serif" should set the property value
Fail e.style['font'] = "lighter normal small-caps oblique xx-large/1.2 sans-serif" should set the property value
Fail e.style['font'] = "100 normal small-caps condensed larger/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "900 normal semi-condensed smaller fantasy" should set the property value
Fail e.style['font'] = "bold normal semi-expanded normal 10px/normal monospace" should set the property value
Fail e.style['font'] = "bolder normal expanded italic 20%/1.2 Menu" should set the property value
Pass e.style['font'] = "900 normal semi-condensed smaller fantasy" should set the property value
Pass e.style['font'] = "bold normal semi-expanded normal 10px/normal monospace" should set the property value
Pass e.style['font'] = "bolder normal expanded italic 20%/1.2 Menu" should set the property value
Fail e.style['font'] = "lighter normal extra-expanded small-caps calc(30% - 40px)/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "100 oblique xx-small serif" should set the property value
Fail e.style['font'] = "900 italic normal medium/normal sans-serif" should set the property value
Fail e.style['font'] = "bold oblique normal normal xx-large/1.2 cursive" should set the property value
Pass e.style['font'] = "100 oblique xx-small serif" should set the property value
Pass e.style['font'] = "900 italic normal medium/normal sans-serif" should set the property value
Pass e.style['font'] = "bold oblique normal normal xx-large/1.2 cursive" should set the property value
Fail e.style['font'] = "bolder italic normal small-caps larger/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "lighter oblique normal ultra-expanded smaller monospace" should set the property value
Fail e.style['font'] = "100 italic small-caps 10px/normal Menu" should set the property value
Fail e.style['font'] = "900 oblique small-caps normal 20%/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "bolder oblique extra-condensed xx-small sans-serif" should set the property value
Pass e.style['font'] = "bolder oblique extra-condensed xx-small sans-serif" should set the property value
Fail e.style['font'] = "lighter italic condensed normal medium/normal cursive" should set the property value
Fail e.style['font'] = "100 oblique semi-condensed small-caps xx-large/1.2 fantasy" should set the property value
Fail e.style['font'] = "900 small-caps larger/calc(120% + 1.2em) monospace" should set the property value
@ -255,46 +256,46 @@ Fail e.style['font'] = "bolder small-caps oblique expanded xx-large/1.2 monospac
Fail e.style['font'] = "lighter small-caps extra-expanded larger/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "100 small-caps ultra-expanded normal smaller \"FB Armada\"" should set the property value
Fail e.style['font'] = "900 small-caps ultra-condensed italic 10px/normal serif" should set the property value
Fail e.style['font'] = "bold extra-condensed 20%/1.2 sans-serif" should set the property value
Pass e.style['font'] = "bold extra-condensed 20%/1.2 sans-serif" should set the property value
Fail e.style['font'] = "bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "lighter semi-condensed normal normal xx-small fantasy" should set the property value
Fail e.style['font'] = "100 semi-expanded normal oblique medium/normal monospace" should set the property value
Pass e.style['font'] = "100 semi-expanded normal oblique medium/normal monospace" should set the property value
Fail e.style['font'] = "900 expanded normal small-caps xx-large/1.2 Menu" should set the property value
Fail e.style['font'] = "bold extra-expanded italic larger/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "bolder ultra-expanded oblique normal smaller serif" should set the property value
Pass e.style['font'] = "bolder ultra-expanded oblique normal smaller serif" should set the property value
Fail e.style['font'] = "lighter ultra-condensed italic small-caps 10px/normal sans-serif" should set the property value
Fail e.style['font'] = "100 extra-condensed small-caps 20%/1.2 cursive" should set the property value
Fail e.style['font'] = "900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "bold semi-condensed small-caps oblique xx-small monospace" should set the property value
Fail e.style['font'] = "semi-expanded medium/normal Menu" should set the property value
Fail e.style['font'] = "expanded normal xx-large/1.2 \"FB Armada\"" should set the property value
Pass e.style['font'] = "semi-expanded medium/normal Menu" should set the property value
Pass e.style['font'] = "expanded normal xx-large/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "extra-expanded normal normal larger/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "ultra-expanded normal normal normal smaller sans-serif" should set the property value
Fail e.style['font'] = "ultra-condensed normal normal italic 10px/normal cursive" should set the property value
Pass e.style['font'] = "ultra-expanded normal normal normal smaller sans-serif" should set the property value
Pass e.style['font'] = "ultra-condensed normal normal italic 10px/normal cursive" should set the property value
Fail e.style['font'] = "extra-condensed normal normal small-caps 20%/1.2 fantasy" should set the property value
Fail e.style['font'] = "condensed normal normal bolder calc(30% - 40px)/calc(120% + 1.2em) monospace" should set the property value
Fail e.style['font'] = "semi-condensed normal oblique xx-small Menu" should set the property value
Fail e.style['font'] = "semi-expanded normal italic normal medium/normal \"FB Armada\"" should set the property value
Pass e.style['font'] = "semi-condensed normal oblique xx-small Menu" should set the property value
Pass e.style['font'] = "semi-expanded normal italic normal medium/normal \"FB Armada\"" should set the property value
Fail e.style['font'] = "expanded normal oblique small-caps xx-large/1.2 serif" should set the property value
Fail e.style['font'] = "extra-expanded normal italic lighter larger/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "ultra-expanded normal small-caps smaller cursive" should set the property value
Fail e.style['font'] = "ultra-condensed normal small-caps normal 10px/normal fantasy" should set the property value
Fail e.style['font'] = "extra-condensed normal small-caps oblique 20%/1.2 monospace" should set the property value
Fail e.style['font'] = "condensed normal small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "semi-condensed normal 900 xx-small \"FB Armada\"" should set the property value
Fail e.style['font'] = "semi-expanded normal bold normal medium/normal serif" should set the property value
Fail e.style['font'] = "expanded normal bolder italic xx-large/1.2 sans-serif" should set the property value
Pass e.style['font'] = "semi-condensed normal 900 xx-small \"FB Armada\"" should set the property value
Pass e.style['font'] = "semi-expanded normal bold normal medium/normal serif" should set the property value
Pass e.style['font'] = "expanded normal bolder italic xx-large/1.2 sans-serif" should set the property value
Fail e.style['font'] = "extra-expanded normal lighter small-caps larger/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "ultra-expanded oblique smaller fantasy" should set the property value
Fail e.style['font'] = "ultra-condensed italic normal 10px/normal monospace" should set the property value
Fail e.style['font'] = "extra-condensed oblique normal normal 20%/1.2 Menu" should set the property value
Pass e.style['font'] = "ultra-expanded oblique smaller fantasy" should set the property value
Pass e.style['font'] = "ultra-condensed italic normal 10px/normal monospace" should set the property value
Pass e.style['font'] = "extra-condensed oblique normal normal 20%/1.2 Menu" should set the property value
Fail e.style['font'] = "condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) \"FB Armada\"" should set the property value
Fail e.style['font'] = "semi-condensed oblique normal 100 xx-small serif" should set the property value
Pass e.style['font'] = "semi-condensed oblique normal 100 xx-small serif" should set the property value
Fail e.style['font'] = "semi-expanded italic small-caps medium/normal sans-serif" should set the property value
Fail e.style['font'] = "expanded oblique small-caps normal xx-large/1.2 cursive" should set the property value
Fail e.style['font'] = "extra-expanded italic small-caps 900 larger/calc(120% + 1.2em) fantasy" should set the property value
Fail e.style['font'] = "ultra-expanded oblique bold smaller monospace" should set the property value
Fail e.style['font'] = "ultra-condensed italic bolder normal 10px/normal Menu" should set the property value
Pass e.style['font'] = "ultra-expanded oblique bold smaller monospace" should set the property value
Pass e.style['font'] = "ultra-condensed italic bolder normal 10px/normal Menu" should set the property value
Fail e.style['font'] = "extra-condensed oblique lighter small-caps 20%/1.2 \"FB Armada\"" should set the property value
Fail e.style['font'] = "condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif" should set the property value
Fail e.style['font'] = "semi-condensed small-caps normal xx-small sans-serif" should set the property value
@ -307,13 +308,13 @@ Fail e.style['font'] = "extra-condensed small-caps oblique 900 20%/1.2 serif" sh
Fail e.style['font'] = "condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif" should set the property value
Fail e.style['font'] = "semi-condensed small-caps bolder normal xx-small cursive" should set the property value
Fail e.style['font'] = "semi-expanded small-caps lighter italic medium/normal fantasy" should set the property value
Fail e.style['font'] = "expanded 100 xx-large/1.2 monospace" should set the property value
Pass e.style['font'] = "expanded 100 xx-large/1.2 monospace" should set the property value
Fail e.style['font'] = "extra-expanded 900 normal larger/calc(120% + 1.2em) Menu" should set the property value
Fail e.style['font'] = "ultra-expanded bold normal normal smaller \"FB Armada\"" should set the property value
Fail e.style['font'] = "ultra-condensed bolder normal oblique 10px/normal serif" should set the property value
Pass e.style['font'] = "ultra-expanded bold normal normal smaller \"FB Armada\"" should set the property value
Pass e.style['font'] = "ultra-condensed bolder normal oblique 10px/normal serif" should set the property value
Fail e.style['font'] = "extra-condensed lighter normal small-caps 20%/1.2 sans-serif" should set the property value
Fail e.style['font'] = "condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive" should set the property value
Fail e.style['font'] = "semi-condensed 900 oblique normal xx-small fantasy" should set the property value
Pass e.style['font'] = "semi-condensed 900 oblique normal xx-small fantasy" should set the property value
Fail e.style['font'] = "semi-expanded bold italic small-caps medium/normal monospace" should set the property value
Fail e.style['font'] = "expanded bolder small-caps xx-large/1.2 Menu" should set the property value
Fail e.style['font'] = "extra-expanded lighter small-caps normal larger/calc(120% + 1.2em) \"FB Armada\"" should set the property value