From 671d3e8a48dc46abe8b7d0f325c2400405d1980d Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Fri, 29 Nov 2024 14:46:15 +0000 Subject: [PATCH] LibWeb/CSS: Sort text-decoration-line values in spec order This wins us 49 WPT subtest passes! :^) --- Libraries/LibWeb/CSS/Enums.json | 6 +- Libraries/LibWeb/CSS/Parser/Parser.cpp | 5 + .../parsing/text-decoration-line-valid.txt | 102 +++++++++--------- 3 files changed, 59 insertions(+), 54 deletions(-) diff --git a/Libraries/LibWeb/CSS/Enums.json b/Libraries/LibWeb/CSS/Enums.json index e3e2fed8684..432ebc382d7 100644 --- a/Libraries/LibWeb/CSS/Enums.json +++ b/Libraries/LibWeb/CSS/Enums.json @@ -439,11 +439,11 @@ "-libweb-right" ], "text-decoration-line": [ - "blink", - "line-through", "none", + "underline", "overline", - "underline" + "line-through", + "blink" ], "text-decoration-style": [ "dashed", diff --git a/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Libraries/LibWeb/CSS/Parser/Parser.cpp index 5abc10937a8..15d32e14c7f 100644 --- a/Libraries/LibWeb/CSS/Parser/Parser.cpp +++ b/Libraries/LibWeb/CSS/Parser/Parser.cpp @@ -6384,6 +6384,11 @@ RefPtr Parser::parse_text_decoration_line_value(TokenStreamto_keyword()) < *keyword_to_text_decoration_line(right->to_keyword()); + }); + return StyleValueList::create(move(style_values), StyleValueList::Separator::Space); } diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-text-decor/parsing/text-decoration-line-valid.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-text-decor/parsing/text-decoration-line-valid.txt index e9d592c48bd..76a7e6d9e9e 100644 --- a/Tests/LibWeb/Text/expected/wpt-import/css/css-text-decor/parsing/text-decoration-line-valid.txt +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-text-decor/parsing/text-decoration-line-valid.txt @@ -6,8 +6,8 @@ Rerun Found 67 tests -16 Pass -51 Fail +65 Pass +2 Fail Details Result Test Name MessagePass e.style['text-decoration-line'] = "none" should set the property value Pass e.style['text-decoration-line'] = "underline" should set the property value @@ -15,64 +15,64 @@ Pass e.style['text-decoration-line'] = "overline" should set the property value Pass e.style['text-decoration-line'] = "line-through" should set the property value Pass e.style['text-decoration-line'] = "blink" should set the property value Pass e.style['text-decoration-line'] = "underline overline" should set the property value -Fail e.style['text-decoration-line'] = "overline underline" should set the property value +Pass e.style['text-decoration-line'] = "overline underline" should set the property value Pass e.style['text-decoration-line'] = "underline line-through" should set the property value -Fail e.style['text-decoration-line'] = "line-through underline" should set the property value +Pass e.style['text-decoration-line'] = "line-through underline" should set the property value Pass e.style['text-decoration-line'] = "underline blink" should set the property value -Fail e.style['text-decoration-line'] = "blink underline" should set the property value +Pass e.style['text-decoration-line'] = "blink underline" should set the property value Pass e.style['text-decoration-line'] = "overline line-through" should set the property value -Fail e.style['text-decoration-line'] = "line-through overline" should set the property value +Pass e.style['text-decoration-line'] = "line-through overline" should set the property value Pass e.style['text-decoration-line'] = "overline blink" should set the property value -Fail e.style['text-decoration-line'] = "blink overline" should set the property value +Pass e.style['text-decoration-line'] = "blink overline" should set the property value Pass e.style['text-decoration-line'] = "line-through blink" should set the property value -Fail e.style['text-decoration-line'] = "blink line-through" should set the property value +Pass e.style['text-decoration-line'] = "blink line-through" should set the property value Pass e.style['text-decoration-line'] = "underline overline line-through" should set the property value -Fail e.style['text-decoration-line'] = "underline line-through overline" should set the property value -Fail e.style['text-decoration-line'] = "overline underline line-through" should set the property value -Fail e.style['text-decoration-line'] = "overline line-through underline" should set the property value -Fail e.style['text-decoration-line'] = "line-through underline overline" should set the property value -Fail e.style['text-decoration-line'] = "line-through overline underline" should set the property value +Pass e.style['text-decoration-line'] = "underline line-through overline" should set the property value +Pass e.style['text-decoration-line'] = "overline underline line-through" should set the property value +Pass e.style['text-decoration-line'] = "overline line-through underline" should set the property value +Pass e.style['text-decoration-line'] = "line-through underline overline" should set the property value +Pass e.style['text-decoration-line'] = "line-through overline underline" should set the property value Pass e.style['text-decoration-line'] = "underline overline blink" should set the property value -Fail e.style['text-decoration-line'] = "underline blink overline" should set the property value -Fail e.style['text-decoration-line'] = "overline underline blink" should set the property value -Fail e.style['text-decoration-line'] = "overline blink underline" should set the property value -Fail e.style['text-decoration-line'] = "blink underline overline" should set the property value -Fail e.style['text-decoration-line'] = "blink overline underline" should set the property value +Pass e.style['text-decoration-line'] = "underline blink overline" should set the property value +Pass e.style['text-decoration-line'] = "overline underline blink" should set the property value +Pass e.style['text-decoration-line'] = "overline blink underline" should set the property value +Pass e.style['text-decoration-line'] = "blink underline overline" should set the property value +Pass e.style['text-decoration-line'] = "blink overline underline" should set the property value Pass e.style['text-decoration-line'] = "underline line-through blink" should set the property value -Fail e.style['text-decoration-line'] = "underline blink line-through" should set the property value -Fail e.style['text-decoration-line'] = "line-through underline blink" should set the property value -Fail e.style['text-decoration-line'] = "line-through blink underline" should set the property value -Fail e.style['text-decoration-line'] = "blink underline line-through" should set the property value -Fail e.style['text-decoration-line'] = "blink line-through underline" should set the property value +Pass e.style['text-decoration-line'] = "underline blink line-through" should set the property value +Pass e.style['text-decoration-line'] = "line-through underline blink" should set the property value +Pass e.style['text-decoration-line'] = "line-through blink underline" should set the property value +Pass e.style['text-decoration-line'] = "blink underline line-through" should set the property value +Pass e.style['text-decoration-line'] = "blink line-through underline" should set the property value Pass e.style['text-decoration-line'] = "overline line-through blink" should set the property value -Fail e.style['text-decoration-line'] = "overline blink line-through" should set the property value -Fail e.style['text-decoration-line'] = "line-through overline blink" should set the property value -Fail e.style['text-decoration-line'] = "line-through blink overline" should set the property value -Fail e.style['text-decoration-line'] = "blink overline line-through" should set the property value -Fail e.style['text-decoration-line'] = "blink line-through overline" should set the property value +Pass e.style['text-decoration-line'] = "overline blink line-through" should set the property value +Pass e.style['text-decoration-line'] = "line-through overline blink" should set the property value +Pass e.style['text-decoration-line'] = "line-through blink overline" should set the property value +Pass e.style['text-decoration-line'] = "blink overline line-through" should set the property value +Pass e.style['text-decoration-line'] = "blink line-through overline" should set the property value Pass e.style['text-decoration-line'] = "underline overline line-through blink" should set the property value -Fail e.style['text-decoration-line'] = "underline overline blink line-through" should set the property value -Fail e.style['text-decoration-line'] = "underline line-through overline blink" should set the property value -Fail e.style['text-decoration-line'] = "underline line-through blink overline" should set the property value -Fail e.style['text-decoration-line'] = "underline blink overline line-through" should set the property value -Fail e.style['text-decoration-line'] = "underline blink line-through overline" should set the property value -Fail e.style['text-decoration-line'] = "overline underline line-through blink" should set the property value -Fail e.style['text-decoration-line'] = "overline underline blink line-through" should set the property value -Fail e.style['text-decoration-line'] = "overline line-through underline blink" should set the property value -Fail e.style['text-decoration-line'] = "overline line-through blink underline" should set the property value -Fail e.style['text-decoration-line'] = "overline blink underline line-through" should set the property value -Fail e.style['text-decoration-line'] = "overline blink line-through underline" should set the property value -Fail e.style['text-decoration-line'] = "line-through underline overline blink" should set the property value -Fail e.style['text-decoration-line'] = "line-through underline blink overline" should set the property value -Fail e.style['text-decoration-line'] = "line-through overline underline blink" should set the property value -Fail e.style['text-decoration-line'] = "line-through overline blink underline" should set the property value -Fail e.style['text-decoration-line'] = "line-through blink underline overline" should set the property value -Fail e.style['text-decoration-line'] = "line-through blink overline underline" should set the property value -Fail e.style['text-decoration-line'] = "blink underline overline line-through" should set the property value -Fail e.style['text-decoration-line'] = "blink underline line-through overline" should set the property value -Fail e.style['text-decoration-line'] = "blink overline underline line-through" should set the property value -Fail e.style['text-decoration-line'] = "blink overline line-through underline" should set the property value -Fail e.style['text-decoration-line'] = "blink line-through underline overline" should set the property value -Fail e.style['text-decoration-line'] = "blink line-through overline underline" should set the property value +Pass e.style['text-decoration-line'] = "underline overline blink line-through" should set the property value +Pass e.style['text-decoration-line'] = "underline line-through overline blink" should set the property value +Pass e.style['text-decoration-line'] = "underline line-through blink overline" should set the property value +Pass e.style['text-decoration-line'] = "underline blink overline line-through" should set the property value +Pass e.style['text-decoration-line'] = "underline blink line-through overline" should set the property value +Pass e.style['text-decoration-line'] = "overline underline line-through blink" should set the property value +Pass e.style['text-decoration-line'] = "overline underline blink line-through" should set the property value +Pass e.style['text-decoration-line'] = "overline line-through underline blink" should set the property value +Pass e.style['text-decoration-line'] = "overline line-through blink underline" should set the property value +Pass e.style['text-decoration-line'] = "overline blink underline line-through" should set the property value +Pass e.style['text-decoration-line'] = "overline blink line-through underline" should set the property value +Pass e.style['text-decoration-line'] = "line-through underline overline blink" should set the property value +Pass e.style['text-decoration-line'] = "line-through underline blink overline" should set the property value +Pass e.style['text-decoration-line'] = "line-through overline underline blink" should set the property value +Pass e.style['text-decoration-line'] = "line-through overline blink underline" should set the property value +Pass e.style['text-decoration-line'] = "line-through blink underline overline" should set the property value +Pass e.style['text-decoration-line'] = "line-through blink overline underline" should set the property value +Pass e.style['text-decoration-line'] = "blink underline overline line-through" should set the property value +Pass e.style['text-decoration-line'] = "blink underline line-through overline" should set the property value +Pass e.style['text-decoration-line'] = "blink overline underline line-through" should set the property value +Pass e.style['text-decoration-line'] = "blink overline line-through underline" should set the property value +Pass e.style['text-decoration-line'] = "blink line-through underline overline" should set the property value +Pass e.style['text-decoration-line'] = "blink line-through overline underline" should set the property value Fail e.style['text-decoration-line'] = "spelling-error" should set the property value Fail e.style['text-decoration-line'] = "grammar-error" should set the property value \ No newline at end of file