1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 05:27:14 +09:00

LibWeb: Resolve FIXME around shorthand properties in remove_property()

This exposes some false-positive sub-tests in the font-computed.html
test which are now correctly marked as failed.
This commit is contained in:
Callum Law 2025-05-22 17:28:07 +12:00 committed by Sam Atkins
parent 88da6250f9
commit 670c247937
Notes: github-actions[bot] 2025-06-04 15:35:43 +00:00
6 changed files with 95 additions and 59 deletions

View file

@ -1077,20 +1077,31 @@ WebIDL::ExceptionOr<String> CSSStyleProperties::remove_property(StringView prope
// 3. Let value be the return value of invoking getPropertyValue() with property as argument.
auto value = get_property_value(property_name);
// 4. Let removed be false.
bool removed = false;
Function<bool(PropertyID)> remove_declaration = [&](auto property_id) {
// 4. Let removed be false.
bool removed = false;
// FIXME: 5. If property is a shorthand property, for each longhand property longhand that property maps to:
// 1. If longhand is not a property name of a CSS declaration in the declarations, continue.
// 2. Remove that CSS declaration and let removed be true.
// 5. If property is a shorthand property, for each longhand property longhand that property maps to:
if (property_is_shorthand(property_id)) {
for (auto longhand_property_id : longhands_for_shorthand(property_id)) {
// 1. If longhand is not a property name of a CSS declaration in the declarations, continue.
// 2. Remove that CSS declaration and let removed be true.
removed |= remove_declaration(longhand_property_id);
}
} else {
// 6. Otherwise, if property is a case-sensitive match for a property name of a CSS declaration in the declarations, remove that CSS declaration and let removed be true.
if (property_id == PropertyID::Custom) {
auto custom_name = FlyString::from_utf8_without_validation(property_name.bytes());
removed = m_custom_properties.remove(custom_name);
} else {
removed = m_properties.remove_first_matching([&](auto& entry) { return entry.property_id == property_id; });
}
}
// 6. Otherwise, if property is a case-sensitive match for a property name of a CSS declaration in the declarations, remove that CSS declaration and let removed be true.
if (property_id == PropertyID::Custom) {
auto custom_name = FlyString::from_utf8_without_validation(property_name.bytes());
removed = m_custom_properties.remove(custom_name);
} else {
removed = m_properties.remove_first_matching([&](auto& entry) { return entry.property_id == property_id; });
}
return removed;
};
auto removed = remove_declaration(property_id.value());
// 7. If removed is true, Update style attribute for the CSS declaration block.
if (removed) {

View file

@ -0,0 +1 @@
PASS

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 315 tests
278 Pass
37 Fail
244 Pass
71 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.
@ -17,7 +17,7 @@ Pass Property font value 'normal normal normal larger/calc(120% + 1.2em) fantasy
Pass Property font value 'normal normal normal normal smaller monospace'
Pass Property font value 'normal normal normal italic 10px/normal Menu'
Pass Property font value 'normal normal normal small-caps 20%/1.2 "Non-Generic Example Family Name"'
Pass Property font value 'normal normal normal bold calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'normal normal normal bold calc(30% - 40px)/calc(120% + 1.2em) serif'
Pass Property font value 'normal normal normal ultra-condensed xx-small sans-serif'
Pass Property font value 'normal normal italic medium/normal cursive'
Pass Property font value 'normal normal italic normal xx-large/1.2 fantasy'
@ -25,7 +25,7 @@ Pass Property font value 'normal normal italic small-caps larger/calc(120% + 1.2
Pass Property font value 'normal normal italic bolder smaller Menu'
Pass Property font value 'normal normal italic extra-condensed 10px/normal "Non-Generic Example Family Name"'
Pass Property font value 'normal normal small-caps 20%/1.2 serif'
Pass Property font value 'normal normal small-caps normal calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Fail Property font value 'normal normal small-caps normal calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Pass Property font value 'normal normal small-caps italic xx-small cursive'
Fail Property font value 'normal normal small-caps lighter medium/normal fantasy'
Pass Property font value 'normal normal small-caps condensed xx-large/1.2 monospace'
@ -41,7 +41,7 @@ Pass Property font value 'normal normal ultra-expanded small-caps larger/calc(12
Pass Property font value 'normal normal ultra-condensed 100 smaller serif'
Pass Property font value 'normal italic 10px/normal sans-serif'
Pass Property font value 'normal italic normal 20%/1.2 cursive'
Pass Property font value 'normal italic normal normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Fail Property font value 'normal italic normal normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Pass Property font value 'normal italic normal small-caps xx-small monospace'
Pass Property font value 'normal italic normal 900 medium/normal Menu'
Pass Property font value 'normal italic normal extra-condensed xx-large/1.2 "Non-Generic Example Family Name"'
@ -49,7 +49,7 @@ Pass Property font value 'normal italic small-caps larger/calc(120% + 1.2em) ser
Pass Property font value 'normal italic small-caps normal smaller sans-serif'
Pass Property font value 'normal italic small-caps bold 10px/normal cursive'
Pass Property font value 'normal italic small-caps condensed 20%/1.2 fantasy'
Pass Property font value 'normal italic bolder calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'normal italic bolder calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'normal italic lighter normal xx-small Menu'
Pass Property font value 'normal italic 100 small-caps medium/normal "Non-Generic Example Family Name"'
Pass Property font value 'normal italic 900 semi-condensed xx-large/1.2 serif'
@ -57,7 +57,7 @@ Pass Property font value 'normal italic semi-expanded larger/calc(120% + 1.2em)
Pass Property font value 'normal italic expanded normal smaller cursive'
Pass Property font value 'normal italic extra-expanded small-caps 10px/normal fantasy'
Pass Property font value 'normal italic ultra-expanded bold 20%/1.2 monospace'
Pass Property font value 'normal small-caps calc(30% - 40px)/calc(120% + 1.2em) Menu'
Fail Property font value 'normal small-caps calc(30% - 40px)/calc(120% + 1.2em) Menu'
Pass Property font value 'normal small-caps normal xx-small "Non-Generic Example Family Name"'
Pass Property font value 'normal small-caps normal normal medium/normal serif'
Pass Property font value 'normal small-caps normal italic xx-large/1.2 sans-serif'
@ -73,7 +73,7 @@ Pass Property font value 'normal small-caps bold italic larger/calc(120% + 1.2em
Pass Property font value 'normal small-caps bolder condensed smaller monospace'
Pass Property font value 'normal small-caps semi-condensed 10px/normal Menu'
Pass Property font value 'normal small-caps semi-expanded normal 20%/1.2 "Non-Generic Example Family Name"'
Pass Property font value 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'normal small-caps expanded italic calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'normal small-caps extra-expanded lighter xx-small sans-serif'
Pass Property font value 'normal 100 medium/normal cursive'
Pass Property font value 'normal 900 normal xx-large/1.2 fantasy'
@ -81,7 +81,7 @@ Pass Property font value 'normal bold normal normal larger/calc(120% + 1.2em) mo
Pass Property font value 'normal bolder normal italic smaller Menu'
Fail Property font value 'normal lighter normal small-caps 10px/normal "Non-Generic Example Family Name"'
Pass Property font value 'normal 100 normal ultra-expanded 20%/1.2 serif'
Pass Property font value 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Fail Property font value 'normal 900 italic calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Pass Property font value 'normal bold italic normal xx-small cursive'
Pass Property font value 'normal bolder italic small-caps medium/normal fantasy'
Fail Property font value 'normal lighter italic ultra-condensed xx-large/1.2 monospace'
@ -97,7 +97,7 @@ Pass Property font value 'normal extra-expanded larger/calc(120% + 1.2em) "Non-G
Pass Property font value 'normal ultra-expanded normal smaller serif'
Pass Property font value 'normal ultra-condensed normal normal 10px/normal sans-serif'
Pass Property font value 'normal extra-condensed normal italic 20%/1.2 cursive'
Pass Property font value 'normal condensed normal small-caps calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Fail Property font value 'normal condensed normal small-caps calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Pass Property font value 'normal semi-condensed normal bolder xx-small monospace'
Pass Property font value 'normal semi-expanded italic medium/normal Menu'
Pass Property font value 'normal expanded italic normal xx-large/1.2 "Non-Generic Example Family Name"'
@ -105,7 +105,7 @@ Pass Property font value 'normal extra-expanded italic small-caps larger/calc(12
Fail Property font value 'normal ultra-expanded italic lighter smaller sans-serif'
Pass Property font value 'normal ultra-condensed small-caps 10px/normal cursive'
Pass Property font value 'normal extra-condensed small-caps normal 20%/1.2 fantasy'
Pass Property font value 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'normal condensed small-caps italic calc(30% - 40px)/calc(120% + 1.2em) monospace'
Pass Property font value 'normal semi-condensed small-caps 100 xx-small Menu'
Pass Property font value 'normal semi-expanded 900 medium/normal "Non-Generic Example Family Name"'
Pass Property font value 'normal expanded bold normal xx-large/1.2 serif'
@ -113,7 +113,7 @@ Pass Property font value 'normal extra-expanded bolder italic larger/calc(120% +
Fail Property font value 'normal ultra-expanded lighter small-caps smaller cursive'
Pass Property font value 'italic 10px/normal fantasy'
Pass Property font value 'italic normal 20%/1.2 monospace'
Pass Property font value 'italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu'
Fail Property font value 'italic normal normal calc(30% - 40px)/calc(120% + 1.2em) Menu'
Pass Property font value 'italic normal normal normal xx-small "Non-Generic Example Family Name"'
Pass Property font value 'italic normal normal small-caps medium/normal serif'
Pass Property font value 'italic normal normal 100 xx-large/1.2 sans-serif'
@ -121,7 +121,7 @@ Pass Property font value 'italic normal normal ultra-condensed larger/calc(120%
Pass Property font value 'italic normal small-caps smaller fantasy'
Pass Property font value 'italic normal small-caps normal 10px/normal monospace'
Pass Property font value 'italic normal small-caps 900 20%/1.2 Menu'
Pass Property font value 'italic normal small-caps extra-condensed calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'
Fail Property font value 'italic normal small-caps extra-condensed calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'
Pass Property font value 'italic normal bold xx-small serif'
Pass Property font value 'italic normal bolder normal medium/normal sans-serif'
Fail Property font value 'italic normal lighter small-caps xx-large/1.2 cursive'
@ -129,7 +129,7 @@ Pass Property font value 'italic normal 100 condensed larger/calc(120% + 1.2em)
Pass Property font value 'italic normal semi-condensed smaller monospace'
Pass Property font value 'italic normal semi-expanded normal 10px/normal Menu'
Pass Property font value 'italic normal expanded small-caps 20%/1.2 "Non-Generic Example Family Name"'
Pass Property font value 'italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'italic normal extra-expanded 900 calc(30% - 40px)/calc(120% + 1.2em) serif'
Pass Property font value 'italic small-caps xx-small sans-serif'
Pass Property font value 'italic small-caps normal medium/normal cursive'
Pass Property font value 'italic small-caps normal normal xx-large/1.2 fantasy'
@ -137,7 +137,7 @@ Pass Property font value 'italic small-caps normal bold larger/calc(120% + 1.2em
Pass Property font value 'italic small-caps normal ultra-expanded smaller Menu'
Pass Property font value 'italic small-caps bolder 10px/normal "Non-Generic Example Family Name"'
Fail Property font value 'italic small-caps lighter normal 20%/1.2 serif'
Pass Property font value 'italic small-caps 100 ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Fail Property font value 'italic small-caps 100 ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Pass Property font value 'italic small-caps extra-condensed xx-small cursive'
Pass Property font value 'italic small-caps condensed normal medium/normal fantasy'
Pass Property font value 'italic small-caps semi-condensed 900 xx-large/1.2 monospace'
@ -145,7 +145,7 @@ Pass Property font value 'italic bold larger/calc(120% + 1.2em) Menu'
Pass Property font value 'italic bolder normal smaller "Non-Generic Example Family Name"'
Fail Property font value 'italic lighter normal normal 10px/normal serif'
Pass Property font value 'italic 100 normal small-caps 20%/1.2 sans-serif'
Pass Property font value 'italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive'
Fail Property font value 'italic 900 normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) cursive'
Pass Property font value 'italic bold small-caps xx-small fantasy'
Pass Property font value 'italic bolder small-caps normal medium/normal monospace'
Fail Property font value 'italic lighter small-caps expanded xx-large/1.2 Menu'
@ -153,7 +153,7 @@ Pass Property font value 'italic 100 extra-expanded larger/calc(120% + 1.2em) "N
Pass Property font value 'italic 900 ultra-expanded normal smaller serif'
Pass Property font value 'italic bold ultra-condensed small-caps 10px/normal sans-serif'
Pass Property font value 'italic extra-condensed 20%/1.2 cursive'
Pass Property font value 'italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Fail Property font value 'italic condensed normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Pass Property font value 'italic semi-condensed normal normal xx-small monospace'
Pass Property font value 'italic semi-expanded normal small-caps medium/normal Menu'
Pass Property font value 'italic expanded normal bolder xx-large/1.2 "Non-Generic Example Family Name"'
@ -161,7 +161,7 @@ Pass Property font value 'italic extra-expanded small-caps larger/calc(120% + 1.
Pass Property font value 'italic ultra-expanded small-caps normal smaller sans-serif'
Fail Property font value 'italic ultra-condensed small-caps lighter 10px/normal cursive'
Pass Property font value 'italic extra-condensed 100 20%/1.2 fantasy'
Pass Property font value 'italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'italic condensed 900 normal calc(30% - 40px)/calc(120% + 1.2em) monospace'
Pass Property font value 'italic semi-condensed bold small-caps xx-small Menu'
Pass Property font value 'small-caps medium/normal "Non-Generic Example Family Name"'
Pass Property font value 'small-caps normal xx-large/1.2 serif'
@ -169,7 +169,7 @@ Pass Property font value 'small-caps normal normal larger/calc(120% + 1.2em) san
Pass Property font value 'small-caps normal normal normal smaller cursive'
Pass Property font value 'small-caps normal normal italic 10px/normal fantasy'
Pass Property font value 'small-caps normal normal bolder 20%/1.2 monospace'
Pass Property font value 'small-caps normal normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) Menu'
Fail Property font value 'small-caps normal normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) Menu'
Pass Property font value 'small-caps normal italic xx-small "Non-Generic Example Family Name"'
Pass Property font value 'small-caps normal italic normal medium/normal serif'
Fail Property font value 'small-caps normal italic lighter xx-large/1.2 sans-serif'
@ -177,7 +177,7 @@ Pass Property font value 'small-caps normal italic expanded larger/calc(120% + 1
Pass Property font value 'small-caps normal 100 smaller fantasy'
Pass Property font value 'small-caps normal 900 normal 10px/normal monospace'
Pass Property font value 'small-caps normal bold italic 20%/1.2 Menu'
Pass Property font value 'small-caps normal bolder extra-expanded calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'
Fail Property font value 'small-caps normal bolder extra-expanded calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'
Pass Property font value 'small-caps normal ultra-expanded xx-small serif'
Pass Property font value 'small-caps normal ultra-condensed normal medium/normal sans-serif'
Pass Property font value 'small-caps normal extra-condensed italic xx-large/1.2 cursive'
@ -185,7 +185,7 @@ Fail Property font value 'small-caps normal condensed lighter larger/calc(120% +
Pass Property font value 'small-caps italic smaller monospace'
Pass Property font value 'small-caps italic normal 10px/normal Menu'
Pass Property font value 'small-caps italic normal normal 20%/1.2 "Non-Generic Example Family Name"'
Pass Property font value 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'small-caps italic normal 100 calc(30% - 40px)/calc(120% + 1.2em) serif'
Pass Property font value 'small-caps italic normal semi-condensed xx-small sans-serif'
Pass Property font value 'small-caps italic 900 medium/normal cursive'
Pass Property font value 'small-caps italic bold normal xx-large/1.2 fantasy'
@ -193,7 +193,7 @@ Pass Property font value 'small-caps italic bolder semi-expanded larger/calc(120
Pass Property font value 'small-caps italic expanded smaller Menu'
Pass Property font value 'small-caps italic extra-expanded normal 10px/normal "Non-Generic Example Family Name"'
Fail Property font value 'small-caps italic ultra-expanded lighter 20%/1.2 serif'
Pass Property font value 'small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Fail Property font value 'small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Pass Property font value 'small-caps 900 normal xx-small cursive'
Pass Property font value 'small-caps bold normal normal medium/normal fantasy'
Pass Property font value 'small-caps bolder normal italic xx-large/1.2 monospace'
@ -201,7 +201,7 @@ Fail Property font value 'small-caps lighter normal ultra-condensed larger/calc(
Pass Property font value 'small-caps 100 italic smaller "Non-Generic Example Family Name"'
Pass Property font value 'small-caps 900 italic normal 10px/normal serif'
Pass Property font value 'small-caps bold italic extra-condensed 20%/1.2 sans-serif'
Pass Property font value 'small-caps bolder condensed calc(30% - 40px)/calc(120% + 1.2em) cursive'
Fail Property font value 'small-caps bolder condensed calc(30% - 40px)/calc(120% + 1.2em) cursive'
Fail Property font value 'small-caps lighter semi-condensed normal xx-small fantasy'
Pass Property font value 'small-caps 100 semi-expanded italic medium/normal monospace'
Pass Property font value 'small-caps expanded xx-large/1.2 Menu'
@ -209,7 +209,7 @@ Pass Property font value 'small-caps extra-expanded normal larger/calc(120% + 1.
Pass Property font value 'small-caps ultra-expanded normal normal smaller serif'
Pass Property font value 'small-caps ultra-condensed normal italic 10px/normal sans-serif'
Pass Property font value 'small-caps extra-condensed normal 900 20%/1.2 cursive'
Pass Property font value 'small-caps condensed italic calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Fail Property font value 'small-caps condensed italic calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Pass Property font value 'small-caps semi-condensed italic normal xx-small monospace'
Pass Property font value 'small-caps semi-expanded italic bold medium/normal Menu'
Pass Property font value 'small-caps expanded bolder xx-large/1.2 "Non-Generic Example Family Name"'
@ -217,7 +217,7 @@ Fail Property font value 'small-caps extra-expanded lighter normal larger/calc(1
Pass Property font value 'small-caps ultra-expanded 100 italic smaller sans-serif'
Pass Property font value '900 10px/normal cursive'
Pass Property font value 'bold normal 20%/1.2 fantasy'
Pass Property font value 'bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'bolder normal normal calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'lighter normal normal normal xx-small Menu'
Pass Property font value '100 normal normal italic medium/normal "Non-Generic Example Family Name"'
Pass Property font value '900 normal normal small-caps xx-large/1.2 serif'
@ -225,7 +225,7 @@ Pass Property font value 'bold normal normal ultra-condensed larger/calc(120% +
Pass Property font value 'bolder normal italic smaller cursive'
Fail Property font value 'lighter normal italic normal 10px/normal fantasy'
Pass Property font value '100 normal italic small-caps 20%/1.2 monospace'
Pass Property font value '900 normal italic extra-condensed calc(30% - 40px)/calc(120% + 1.2em) Menu'
Fail Property font value '900 normal italic extra-condensed calc(30% - 40px)/calc(120% + 1.2em) Menu'
Pass Property font value 'bold normal small-caps xx-small "Non-Generic Example Family Name"'
Pass Property font value 'bolder normal small-caps normal medium/normal serif'
Fail Property font value 'lighter normal small-caps italic xx-large/1.2 sans-serif'
@ -241,7 +241,7 @@ Pass Property font value 'bolder italic normal small-caps larger/calc(120% + 1.2
Fail Property font value 'lighter italic normal ultra-expanded smaller monospace'
Pass Property font value '100 italic small-caps 10px/normal Menu'
Pass Property font value '900 italic small-caps normal 20%/1.2 "Non-Generic Example Family Name"'
Pass Property font value 'bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'bold italic small-caps ultra-condensed calc(30% - 40px)/calc(120% + 1.2em) serif'
Pass Property font value 'bolder italic extra-condensed xx-small sans-serif'
Fail Property font value 'lighter italic condensed normal medium/normal cursive'
Pass Property font value '100 italic semi-condensed small-caps xx-large/1.2 fantasy'
@ -249,7 +249,7 @@ Pass Property font value '900 small-caps larger/calc(120% + 1.2em) monospace'
Pass Property font value 'bold small-caps normal smaller Menu'
Pass Property font value 'bolder small-caps normal normal 10px/normal "Non-Generic Example Family Name"'
Fail Property font value 'lighter small-caps normal italic 20%/1.2 serif'
Pass Property font value '100 small-caps normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Fail Property font value '100 small-caps normal semi-expanded calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Pass Property font value '900 small-caps italic xx-small cursive'
Pass Property font value 'bold small-caps italic normal medium/normal fantasy'
Pass Property font value 'bolder small-caps italic expanded xx-large/1.2 monospace'
@ -257,7 +257,7 @@ Fail Property font value 'lighter small-caps extra-expanded larger/calc(120% + 1
Pass Property font value '100 small-caps ultra-expanded normal smaller "Non-Generic Example Family Name"'
Pass Property font value '900 small-caps ultra-condensed italic 10px/normal serif'
Pass Property font value 'bold extra-condensed 20%/1.2 sans-serif'
Pass Property font value 'bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive'
Fail Property font value 'bolder condensed normal calc(30% - 40px)/calc(120% + 1.2em) cursive'
Fail Property font value 'lighter semi-condensed normal normal xx-small fantasy'
Pass Property font value '100 semi-expanded normal italic medium/normal monospace'
Pass Property font value '900 expanded normal small-caps xx-large/1.2 Menu'
@ -265,7 +265,7 @@ Pass Property font value 'bold extra-expanded italic larger/calc(120% + 1.2em) "
Pass Property font value 'bolder ultra-expanded italic normal smaller serif'
Fail Property font value 'lighter ultra-condensed italic small-caps 10px/normal sans-serif'
Pass Property font value '100 extra-condensed small-caps 20%/1.2 cursive'
Pass Property font value '900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Fail Property font value '900 condensed small-caps normal calc(30% - 40px)/calc(120% + 1.2em) fantasy'
Pass Property font value 'bold semi-condensed small-caps italic xx-small monospace'
Pass Property font value 'semi-expanded medium/normal Menu'
Pass Property font value 'expanded normal xx-large/1.2 "Non-Generic Example Family Name"'
@ -273,7 +273,7 @@ Pass Property font value 'extra-expanded normal normal larger/calc(120% + 1.2em)
Pass Property font value 'ultra-expanded normal normal normal smaller sans-serif'
Pass Property font value 'ultra-condensed normal normal italic 10px/normal cursive'
Pass Property font value 'extra-condensed normal normal small-caps 20%/1.2 fantasy'
Pass Property font value 'condensed normal normal bolder calc(30% - 40px)/calc(120% + 1.2em) monospace'
Fail Property font value 'condensed normal normal bolder calc(30% - 40px)/calc(120% + 1.2em) monospace'
Pass Property font value 'semi-condensed normal italic xx-small Menu'
Pass Property font value 'semi-expanded normal italic normal medium/normal "Non-Generic Example Family Name"'
Pass Property font value 'expanded normal italic small-caps xx-large/1.2 serif'
@ -281,7 +281,7 @@ Fail Property font value 'extra-expanded normal italic lighter larger/calc(120%
Pass Property font value 'ultra-expanded normal small-caps smaller cursive'
Pass Property font value 'ultra-condensed normal small-caps normal 10px/normal fantasy'
Pass Property font value 'extra-condensed normal small-caps italic 20%/1.2 monospace'
Pass Property font value 'condensed normal small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) Menu'
Fail Property font value 'condensed normal small-caps 100 calc(30% - 40px)/calc(120% + 1.2em) Menu'
Pass Property font value 'semi-condensed normal 900 xx-small "Non-Generic Example Family Name"'
Pass Property font value 'semi-expanded normal bold normal medium/normal serif'
Pass Property font value 'expanded normal bolder italic xx-large/1.2 sans-serif'
@ -289,7 +289,7 @@ Fail Property font value 'extra-expanded normal lighter small-caps larger/calc(1
Pass Property font value 'ultra-expanded italic smaller fantasy'
Pass Property font value 'ultra-condensed italic normal 10px/normal monospace'
Pass Property font value 'extra-condensed italic normal normal 20%/1.2 Menu'
Pass Property font value 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'
Fail Property font value 'condensed italic normal small-caps calc(30% - 40px)/calc(120% + 1.2em) "Non-Generic Example Family Name"'
Pass Property font value 'semi-condensed italic normal 100 xx-small serif'
Pass Property font value 'semi-expanded italic small-caps medium/normal sans-serif'
Pass Property font value 'expanded italic small-caps normal xx-large/1.2 cursive'
@ -297,7 +297,7 @@ Pass Property font value 'extra-expanded italic small-caps 900 larger/calc(120%
Pass Property font value 'ultra-expanded italic bold smaller monospace'
Pass Property font value 'ultra-condensed italic bolder normal 10px/normal Menu'
Fail Property font value 'extra-condensed italic lighter small-caps 20%/1.2 "Non-Generic Example Family Name"'
Pass Property font value 'condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif'
Fail Property font value 'condensed small-caps calc(30% - 40px)/calc(120% + 1.2em) serif'
Pass Property font value 'semi-condensed small-caps normal xx-small sans-serif'
Pass Property font value 'semi-expanded small-caps normal normal medium/normal cursive'
Pass Property font value 'expanded small-caps normal italic xx-large/1.2 fantasy'
@ -305,7 +305,7 @@ Pass Property font value 'extra-expanded small-caps normal 100 larger/calc(120%
Pass Property font value 'ultra-expanded small-caps italic smaller Menu'
Pass Property font value 'ultra-condensed small-caps italic normal 10px/normal "Non-Generic Example Family Name"'
Pass Property font value 'extra-condensed small-caps italic 900 20%/1.2 serif'
Pass Property font value 'condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Fail Property font value 'condensed small-caps bold calc(30% - 40px)/calc(120% + 1.2em) sans-serif'
Pass Property font value 'semi-condensed small-caps bolder normal xx-small cursive'
Fail Property font value 'semi-expanded small-caps lighter italic medium/normal fantasy'
Pass Property font value 'expanded 100 xx-large/1.2 monospace'
@ -313,7 +313,7 @@ Pass Property font value 'extra-expanded 900 normal larger/calc(120% + 1.2em) Me
Pass Property font value 'ultra-expanded bold normal normal smaller "Non-Generic Example Family Name"'
Pass Property font value 'ultra-condensed bolder normal italic 10px/normal serif'
Fail Property font value 'extra-condensed lighter normal small-caps 20%/1.2 sans-serif'
Pass Property font value 'condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive'
Fail Property font value 'condensed 100 italic calc(30% - 40px)/calc(120% + 1.2em) cursive'
Pass Property font value 'semi-condensed 900 italic normal xx-small fantasy'
Pass Property font value 'semi-expanded bold italic small-caps medium/normal monospace'
Pass Property font value 'expanded bolder small-caps xx-large/1.2 Menu'

View file

@ -2,8 +2,7 @@ Harness status: OK
Found 45 tests
40 Pass
5 Fail
45 Pass
Pass e.style['white-space'] = "collapse" should set the property value
Pass Property white-space value 'collapse'
Pass e.style['white-space'] = "wrap" should set the property value
@ -44,8 +43,8 @@ Pass e.style['white-space'] = "preserve-breaks nowrap" should set the property v
Pass Property white-space value 'preserve-breaks nowrap'
Pass e.style['white-space'] = "nowrap preserve-breaks" should set the property value
Pass Property white-space value 'nowrap preserve-breaks'
Fail e.style['white-space'] = "balance" should not set the property value
Fail e.style['white-space'] = "collapse balance" should not set the property value
Fail e.style['white-space'] = "balance collapse" should not set the property value
Fail e.style['white-space'] = "preserve balance" should not set the property value
Fail e.style['white-space'] = "balance preserve" should not set the property value
Pass e.style['white-space'] = "balance" should not set the property value
Pass e.style['white-space'] = "collapse balance" should not set the property value
Pass e.style['white-space'] = "balance collapse" should not set the property value
Pass e.style['white-space'] = "preserve balance" should not set the property value
Pass e.style['white-space'] = "balance preserve" should not set the property value

View file

@ -2,8 +2,8 @@ Harness status: OK
Found 28 tests
22 Pass
6 Fail
24 Pass
4 Fail
Pass e.style['transition-behavior'] = "normal" should set the property value
Pass Property transition-behavior value 'normal'
Pass e.style['transition-behavior'] = "allow-discrete" should set the property value
@ -18,8 +18,8 @@ Pass e.style['transition'] = "allow-discrete display 3s ease-in-out" should set
Pass Property transition value 'allow-discrete display 3s ease-in-out'
Pass e.style['transition'] = "allow-discrete display 3s ease-in-out 1s" should set the property value
Pass Property transition value 'allow-discrete display 3s ease-in-out 1s'
Fail e.style['transition'] = "asdf display" should not set the property value
Fail e.style['transition'] = "display asdf" should not set the property value
Pass e.style['transition'] = "asdf display" should not set the property value
Pass e.style['transition'] = "display asdf" should not set the property value
Pass e.style['transition'] = "display allow-discrete 3s ease-in-out 1s" should set the property value
Pass e.style['transition'] = "display 3s allow-discrete ease-in-out 1s" should set the property value
Pass e.style['transition'] = "display 3s ease-in-out allow-discrete 1s" should set the property value

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<script src="../include.js"></script>
<div id="a"></div>
<script>
test(() => {
a.style.border = '1px solid red';
a.style.removeProperty('border');
if (a.style.getPropertyValue('border') != "") {
println("FAIL!: The border property should be removed");
return;
}
a.style.border = '1px solid red';
a.style.border = '';
if (a.style.getPropertyValue('border') != "") {
println("FAIL!: The border property should be removed when set to an empty string");
return;
}
println("PASS")
});
</script>
</html>