Title: [251634] trunk/LayoutTests/imported/w3c
Revision
251634
Author
simon.fra...@apple.com
Date
2019-10-26 07:50:23 -0700 (Sat, 26 Oct 2019)

Log Message

Update css/support directory in WPT
https://bugs.webkit.org/show_bug.cgi?id=203452

Reviewed by Antti Koivisto.

Various WPT are relying on new functionality in css/support (e.g. test_shorthand_value).
In addition, the behavior for testing computed style of properties which don't exist has changed,
causing changes in test output.

* resources/import-expectations.json:
* web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
* web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
* web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt:
* web-platform-tests/css/css-images/inheritance-expected.txt:
* web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt:
* web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt:
* web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt:
* web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt:
* web-platform-tests/css/css-overflow/inheritance-expected.txt:
* web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
* web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt:
* web-platform-tests/css/css-shapes/parsing/shape-outside-computed-expected.txt:
* web-platform-tests/css/css-text/inheritance-expected.txt:
* web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt:
* web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt:
* web-platform-tests/css/css-values/clamp-length-computed-expected.txt:
* web-platform-tests/css/css-values/minmax-length-computed-expected.txt:
* web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt:
* web-platform-tests/css/cssom-view/inheritance-expected.txt:
* web-platform-tests/css/support/computed-testcommon.js:
(test_computed_value):
* web-platform-tests/css/support/inheritance-testcommon.js:
(assert_initial):
* web-platform-tests/css/support/parsing-testcommon.js:
* web-platform-tests/css/support/w3c-import.log:

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,3 +1,41 @@
+2019-10-25  Simon Fraser  <simon.fra...@apple.com>
+
+        Update css/support directory in WPT
+        https://bugs.webkit.org/show_bug.cgi?id=203452
+
+        Reviewed by Antti Koivisto.
+
+        Various WPT are relying on new functionality in css/support (e.g. test_shorthand_value).
+        In addition, the behavior for testing computed style of properties which don't exist has changed,
+        causing changes in test output.
+
+        * resources/import-expectations.json:
+        * web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
+        * web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
+        * web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt:
+        * web-platform-tests/css/css-images/inheritance-expected.txt:
+        * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt:
+        * web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt:
+        * web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt:
+        * web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt:
+        * web-platform-tests/css/css-overflow/inheritance-expected.txt:
+        * web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt:
+        * web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt:
+        * web-platform-tests/css/css-shapes/parsing/shape-outside-computed-expected.txt:
+        * web-platform-tests/css/css-text/inheritance-expected.txt:
+        * web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt:
+        * web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt:
+        * web-platform-tests/css/css-values/clamp-length-computed-expected.txt:
+        * web-platform-tests/css/css-values/minmax-length-computed-expected.txt:
+        * web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt:
+        * web-platform-tests/css/cssom-view/inheritance-expected.txt:
+        * web-platform-tests/css/support/computed-testcommon.js:
+        (test_computed_value):
+        * web-platform-tests/css/support/inheritance-testcommon.js:
+        (assert_initial):
+        * web-platform-tests/css/support/parsing-testcommon.js:
+        * web-platform-tests/css/support/w3c-import.log:
+
 2019-10-26  Chris Lord  <cl...@igalia.com>
 
         Put OffscreenCanvas behind a build flag

Modified: trunk/LayoutTests/imported/w3c/resources/import-expectations.json (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/resources/import-expectations.json	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/resources/import-expectations.json	2019-10-26 14:50:23 UTC (rev 251634)
@@ -2,6 +2,7 @@
     "apng": "import", 
     "css/css-values": "import", 
     "css/geometry": "import", 
+    "css/support": "import", 
     "custom-elements": "import", 
     "shadow-dom": "import", 
     "tools": "import", 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,13 +1,13 @@
 
-PASS Property animation value '1s' computes to '1s ease 0s 1 normal none running none' 
-PASS Property animation value 'cubic-bezier(0, -2, 1, 3)' computes to '0s cubic-bezier(0, -2, 1, 3) 0s 1 normal none running none' 
-PASS Property animation value '1s -3s' computes to '1s ease -3s 1 normal none running none' 
-PASS Property animation value '4' computes to '0s ease 0s 4 normal none running none' 
-PASS Property animation value 'reverse' computes to '0s ease 0s 1 reverse none running none' 
-PASS Property animation value 'both' computes to '0s ease 0s 1 normal both running none' 
-PASS Property animation value 'paused' computes to '0s ease 0s 1 normal none paused none' 
-PASS Property animation value 'none' computes to '0s ease 0s 1 normal none running none' 
-PASS Property animation value 'anim' computes to '0s ease 0s 1 normal none running anim' 
-PASS Property animation value 'anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)' computes to '1s cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim' 
-PASS Property animation value 'anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)' computes to '0s ease 0s 1 reverse both paused anim, 1s cubic-bezier(0, -2, 1, 3) -3s 4 normal none running none' 
+FAIL Property animation value '1s' computes to '1s ease 0s 1 normal none running none' assert_equals: expected "1s ease 0s 1 normal none running none" but got ""
+FAIL Property animation value 'cubic-bezier(0, -2, 1, 3)' computes to '0s cubic-bezier(0, -2, 1, 3) 0s 1 normal none running none' assert_equals: expected "0s cubic-bezier(0, -2, 1, 3) 0s 1 normal none running none" but got ""
+FAIL Property animation value '1s -3s' computes to '1s ease -3s 1 normal none running none' assert_equals: expected "1s ease -3s 1 normal none running none" but got ""
+FAIL Property animation value '4' computes to '0s ease 0s 4 normal none running none' assert_equals: expected "0s ease 0s 4 normal none running none" but got ""
+FAIL Property animation value 'reverse' computes to '0s ease 0s 1 reverse none running none' assert_equals: expected "0s ease 0s 1 reverse none running none" but got ""
+FAIL Property animation value 'both' computes to '0s ease 0s 1 normal both running none' assert_equals: expected "0s ease 0s 1 normal both running none" but got ""
+FAIL Property animation value 'paused' computes to '0s ease 0s 1 normal none paused none' assert_equals: expected "0s ease 0s 1 normal none paused none" but got ""
+FAIL Property animation value 'none' computes to '0s ease 0s 1 normal none running none' assert_equals: expected "0s ease 0s 1 normal none running none" but got ""
+FAIL Property animation value 'anim' computes to '0s ease 0s 1 normal none running anim' assert_equals: expected "0s ease 0s 1 normal none running anim" but got ""
+FAIL Property animation value 'anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)' computes to '1s cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim' assert_equals: expected "1s cubic-bezier(0, -2, 1, 3) -3s 4 reverse both paused anim" but got ""
+FAIL Property animation value 'anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)' computes to '0s ease 0s 1 reverse both paused anim, 1s cubic-bezier(0, -2, 1, 3) -3s 4 normal none running none' assert_equals: expected "0s ease 0s 1 reverse both paused anim, 1s cubic-bezier(0, -2, 1, 3) -3s 4 normal none running none" but got ""
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,4 +1,29 @@
-CONSOLE MESSAGE: line 14: ReferenceError: Can't find variable: test_shorthand_value
 
-FAIL CSS Animations: animation sets longhands ReferenceError: Can't find variable: test_shorthand_value
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-delay 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-direction 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-duration 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-fill-mode 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-iteration-count 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-name 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-play-state 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-timing-function 
+PASS e.style['animation'] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should not set unrelated longhands 
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-delay assert_equals: animation-delay should be canonical expected "0s, -3s" but got "initial, -3s"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-direction assert_equals: animation-direction should be canonical expected "reverse, normal" but got "reverse, initial"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-duration assert_equals: animation-duration should be canonical expected "0s, 1s" but got "initial, 1s"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-fill-mode assert_equals: animation-fill-mode should be canonical expected "both, none" but got "both, initial"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-iteration-count assert_equals: animation-iteration-count should be canonical expected "1, 4" but got "initial, 4"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-name assert_equals: animation-name should be canonical expected "anim, none" but got "anim, initial"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-play-state assert_equals: animation-play-state should be canonical expected "paused, running" but got "paused, initial"
+FAIL e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-timing-function assert_equals: animation-timing-function should be canonical expected "ease, cubic-bezier(0, -2, 1, 3)" but got "initial, cubic-bezier(0, -2, 1, 3)"
+PASS e.style['animation'] = "anim paused both reverse, 4 1s -3s cubic-bezier(0, -2, 1, 3)" should not set unrelated longhands 
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-delay assert_equals: animation-delay should be canonical expected "-3s, 0s" but got "-3s, initial"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-direction assert_equals: animation-direction should be canonical expected "normal, reverse" but got "initial, reverse"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-duration assert_equals: animation-duration should be canonical expected "1s, 0s" but got "1s, initial"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-fill-mode assert_equals: animation-fill-mode should be canonical expected "none, both" but got "initial, both"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-iteration-count assert_equals: animation-iteration-count should be canonical expected "4, 1" but got "4, initial"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-name assert_equals: animation-name should be canonical expected "none, anim" but got "initial, anim"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-play-state assert_equals: animation-play-state should be canonical expected "running, paused" but got "initial, paused"
+FAIL e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should set animation-timing-function assert_equals: animation-timing-function should be canonical expected "cubic-bezier(0, -2, 1, 3), ease" but got "cubic-bezier(0, -2, 1, 3), initial"
+PASS e.style['animation'] = "4 1s -3s cubic-bezier(0, -2, 1, 3), anim paused both reverse" should not set unrelated longhands 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-animations/parsing/animation-timing-function-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -9,9 +9,9 @@
 PASS Property animation-timing-function value 'cubic-bezier(0, 0.7, 1, 1.3)' computes to 'cubic-bezier(0, 0.7, 1, 1.3)' 
 PASS Property animation-timing-function value 'steps(4, start)' computes to 'steps(4, start)' 
 FAIL Property animation-timing-function value 'steps(2, end)' computes to 'steps(2)' assert_equals: expected "steps(2)" but got "steps(2, end)"
-FAIL Property animation-timing-function value 'steps(2, jump-start)' computes to 'steps(2, jump-start)' assert_equals: expected "steps(2, jump-start)" but got "ease"
-FAIL Property animation-timing-function value 'steps(2, jump-end)' computes to 'steps(2)' assert_equals: expected "steps(2)" but got "ease"
-FAIL Property animation-timing-function value 'steps(2, jump-both)' computes to 'steps(2, jump-both)' assert_equals: expected "steps(2, jump-both)" but got "ease"
-FAIL Property animation-timing-function value 'steps(2, jump-none)' computes to 'steps(2, jump-none)' assert_equals: expected "steps(2, jump-none)" but got "ease"
+FAIL Property animation-timing-function value 'steps(2, jump-start)' computes to 'steps(2, jump-start)' assert_true: 'steps(2, jump-start)' is a supported value for animation-timing-function. expected true got false
+FAIL Property animation-timing-function value 'steps(2, jump-end)' computes to 'steps(2)' assert_true: 'steps(2, jump-end)' is a supported value for animation-timing-function. expected true got false
+FAIL Property animation-timing-function value 'steps(2, jump-both)' computes to 'steps(2, jump-both)' assert_true: 'steps(2, jump-both)' is a supported value for animation-timing-function. expected true got false
+FAIL Property animation-timing-function value 'steps(2, jump-none)' computes to 'steps(2, jump-none)' assert_true: 'steps(2, jump-none)' is a supported value for animation-timing-function. expected true got false
 PASS Property animation-timing-function value 'linear, ease, linear' computes to 'linear, ease, linear' 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/inheritance-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/inheritance-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/inheritance-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,6 +1,6 @@
 
-PASS Property image-orientation has initial value 0deg 
-PASS Property image-orientation inherits 
+FAIL Property image-orientation has initial value 0deg assert_true: image-orientation doesn't seem to be supported in the computed style expected true got false
+FAIL Property image-orientation inherits assert_true: image-orientation doesn't seem to be supported in the computed style expected true got false
 PASS Property image-rendering has initial value auto 
 PASS Property image-rendering inherits 
 PASS Property object-fit has initial value fill 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,4 +1,4 @@
 
-PASS Property image-orientation value 'from-image' computes to 'from-image' 
-PASS Property image-orientation value 'none' computes to 'none' 
+FAIL Property image-orientation value 'from-image' computes to 'from-image' assert_true: image-orientation doesn't seem to be supported in the computed style expected true got false
+FAIL Property image-orientation value 'none' computes to 'none' assert_true: image-orientation doesn't seem to be supported in the computed style expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/image-rendering-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,7 +1,7 @@
 
 PASS Property image-rendering value 'auto' computes to 'auto' 
-FAIL Property image-rendering value 'smooth' computes to 'smooth' assert_equals: expected "smooth" but got "auto"
-FAIL Property image-rendering value 'high-quality' computes to 'high-quality' assert_equals: expected "high-quality" but got "auto"
+FAIL Property image-rendering value 'smooth' computes to 'smooth' assert_true: 'smooth' is a supported value for image-rendering. expected true got false
+FAIL Property image-rendering value 'high-quality' computes to 'high-quality' assert_true: 'high-quality' is a supported value for image-rendering. expected true got false
 PASS Property image-rendering value 'crisp-edges' computes to 'crisp-edges' 
 PASS Property image-rendering value 'pixelated' computes to 'pixelated' 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-images/parsing/object-fit-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,7 +1,7 @@
 
 PASS Property object-fit value 'contain' computes to 'contain' 
 PASS Property object-fit value 'cover' computes to 'cover' 
-FAIL Property object-fit value 'cover scale-down' computes to 'cover scale-down' assert_equals: expected "cover scale-down" but got "fill"
+FAIL Property object-fit value 'cover scale-down' computes to 'cover scale-down' assert_true: 'cover scale-down' is a supported value for object-fit. expected true got false
 PASS Property object-fit value 'fill' computes to 'fill' 
 PASS Property object-fit value 'none' computes to 'none' 
 PASS Property object-fit value 'scale-down' computes to 'scale-down' 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/clip-path-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,6 +1,6 @@
 
-FAIL Property clip-path value 'circle(calc(10px + 0.5em) at -50% 50%)' computes to 'circle(30px at -50% 50%)' assert_equals: expected "circle(30px at -50% 50%)" but got "none"
-FAIL Property clip-path value 'circle(calc(10px - 0.5em) at 50% -50%)' computes to 'circle(0px at 50% -50%)' assert_equals: expected "circle(0px at 50% -50%)" but got "none"
-FAIL Property clip-path value 'ellipse(at 50% 50%)' computes to 'ellipse(at 50% 50%)' assert_equals: expected "ellipse(at 50% 50%)" but got "none"
-FAIL Property clip-path value 'ellipse(60% closest-side at 50% 50%)' computes to 'ellipse(60% closest-side at 50% 50%)' assert_equals: expected "ellipse(60% closest-side at 50% 50%)" but got "none"
+FAIL Property clip-path value 'circle(calc(10px + 0.5em) at -50% 50%)' computes to 'circle(30px at -50% 50%)' assert_true: 'circle(calc(10px + 0.5em) at -50% 50%)' is a supported value for clip-path. expected true got false
+FAIL Property clip-path value 'circle(calc(10px - 0.5em) at 50% -50%)' computes to 'circle(0px at 50% -50%)' assert_true: 'circle(calc(10px - 0.5em) at 50% -50%)' is a supported value for clip-path. expected true got false
+FAIL Property clip-path value 'ellipse(at 50% 50%)' computes to 'ellipse(at 50% 50%)' assert_true: 'ellipse(at 50% 50%)' is a supported value for clip-path. expected true got false
+FAIL Property clip-path value 'ellipse(60% closest-side at 50% 50%)' computes to 'ellipse(60% closest-side at 50% 50%)' assert_true: 'ellipse(60% closest-side at 50% 50%)' is a supported value for clip-path. expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/inheritance-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/inheritance-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/inheritance-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,14 +1,14 @@
 
-PASS Property block-ellipsis has initial value none 
-PASS Property block-ellipsis inherits 
-PASS Property continue has initial value auto 
-PASS Property continue does not inherit 
-PASS Property max-lines has initial value none 
-PASS Property max-lines does not inherit 
-PASS Property overflow-block has initial value visible 
-PASS Property overflow-block does not inherit 
-PASS Property overflow-inline has initial value visible 
-PASS Property overflow-inline does not inherit 
+FAIL Property block-ellipsis has initial value none assert_true: block-ellipsis doesn't seem to be supported in the computed style expected true got false
+FAIL Property block-ellipsis inherits assert_true: block-ellipsis doesn't seem to be supported in the computed style expected true got false
+FAIL Property continue has initial value auto assert_true: continue doesn't seem to be supported in the computed style expected true got false
+FAIL Property continue does not inherit assert_true: expected true got false
+FAIL Property max-lines has initial value none assert_true: max-lines doesn't seem to be supported in the computed style expected true got false
+FAIL Property max-lines does not inherit assert_true: expected true got false
+FAIL Property overflow-block has initial value visible assert_true: overflow-block doesn't seem to be supported in the computed style expected true got false
+FAIL Property overflow-block does not inherit assert_true: expected true got false
+FAIL Property overflow-inline has initial value visible assert_true: overflow-inline doesn't seem to be supported in the computed style expected true got false
+FAIL Property overflow-inline does not inherit assert_true: expected true got false
 PASS Property overflow-x has initial value visible 
 PASS Property overflow-x does not inherit 
 PASS Property overflow-y has initial value visible 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/parsing/overflow-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,20 +1,20 @@
 
 PASS Property overflow value 'visible' computes to 'visible' 
 PASS Property overflow value 'hidden' computes to 'hidden' 
-FAIL Property overflow value 'clip' computes to 'clip' assert_equals: expected "clip" but got "visible"
+FAIL Property overflow value 'clip' computes to 'clip' assert_true: 'clip' is a supported value for overflow. expected true got false
 PASS Property overflow value 'scroll' computes to 'scroll' 
 PASS Property overflow value 'auto' computes to 'auto' 
 PASS Property overflow value 'auto auto' computes to 'auto' 
-FAIL Property overflow value 'auto clip' computes to 'auto hidden' assert_equals: expected "auto hidden" but got "visible"
+FAIL Property overflow value 'auto clip' computes to 'auto hidden' assert_true: 'auto clip' is a supported value for overflow. expected true got false
 PASS Property overflow value 'auto visible' computes to 'auto' 
-FAIL Property overflow value 'clip auto' computes to 'hidden auto' assert_equals: expected "hidden auto" but got "visible"
-FAIL Property overflow value 'clip clip' computes to 'clip' assert_equals: expected "clip" but got "visible"
-FAIL Property overflow value 'clip hidden' computes to 'hidden' assert_equals: expected "hidden" but got "visible"
-FAIL Property overflow value 'clip scroll' computes to 'hidden scroll' assert_equals: expected "hidden scroll" but got "visible"
-FAIL Property overflow value 'hidden clip' computes to 'hidden' assert_equals: expected "hidden" but got "visible"
+FAIL Property overflow value 'clip auto' computes to 'hidden auto' assert_true: 'clip auto' is a supported value for overflow. expected true got false
+FAIL Property overflow value 'clip clip' computes to 'clip' assert_true: 'clip clip' is a supported value for overflow. expected true got false
+FAIL Property overflow value 'clip hidden' computes to 'hidden' assert_true: 'clip hidden' is a supported value for overflow. expected true got false
+FAIL Property overflow value 'clip scroll' computes to 'hidden scroll' assert_true: 'clip scroll' is a supported value for overflow. expected true got false
+FAIL Property overflow value 'hidden clip' computes to 'hidden' assert_true: 'hidden clip' is a supported value for overflow. expected true got false
 PASS Property overflow value 'hidden visible' computes to 'hidden auto' 
 PASS Property overflow value 'scroll auto' computes to 'scroll auto' 
-FAIL Property overflow value 'scroll clip' computes to 'scroll hidden' assert_equals: expected "scroll hidden" but got "visible"
+FAIL Property overflow value 'scroll clip' computes to 'scroll hidden' assert_true: 'scroll clip' is a supported value for overflow. expected true got false
 PASS Property overflow value 'scroll visible' computes to 'scroll auto' 
 PASS Property overflow value 'visible auto' computes to 'auto' 
 PASS Property overflow value 'visible hidden' computes to 'auto hidden' 
@@ -23,12 +23,12 @@
 PASS Property overflow-x value 'scroll' computes to 'scroll' 
 PASS Property overflow-x value 'hidden' computes to 'hidden' 
 PASS Property overflow-x value 'visible' computes to 'visible' 
-FAIL Property overflow-y value 'clip' computes to 'clip' assert_equals: expected "clip" but got "visible"
+FAIL Property overflow-y value 'clip' computes to 'clip' assert_true: 'clip' is a supported value for overflow-y. expected true got false
 PASS Property overflow-y value 'auto' computes to 'auto' 
 PASS Property overflow-y value 'visible' computes to 'visible' 
-PASS Property overflow-block value 'hidden' computes to 'hidden' 
-PASS Property overflow-block value 'clip' computes to 'clip' 
-PASS Property overflow-block value 'visible' computes to 'visible' 
-PASS Property overflow-inline value 'scroll' computes to 'scroll' 
-PASS Property overflow-inline value 'visible' computes to 'visible' 
+FAIL Property overflow-block value 'hidden' computes to 'hidden' assert_true: overflow-block doesn't seem to be supported in the computed style expected true got false
+FAIL Property overflow-block value 'clip' computes to 'clip' assert_true: overflow-block doesn't seem to be supported in the computed style expected true got false
+FAIL Property overflow-block value 'visible' computes to 'visible' assert_true: overflow-block doesn't seem to be supported in the computed style expected true got false
+FAIL Property overflow-inline value 'scroll' computes to 'scroll' assert_true: overflow-inline doesn't seem to be supported in the computed style expected true got false
+FAIL Property overflow-inline value 'visible' computes to 'visible' assert_true: overflow-inline doesn't seem to be supported in the computed style expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,6 +1,6 @@
 
-PASS Property overscroll-behavior-x has initial value auto 
-PASS Property overscroll-behavior-x does not inherit 
-PASS Property overscroll-behavior-y has initial value auto 
-PASS Property overscroll-behavior-y does not inherit 
+FAIL Property overscroll-behavior-x has initial value auto assert_true: overscroll-behavior-x doesn't seem to be supported in the computed style expected true got false
+FAIL Property overscroll-behavior-x does not inherit assert_true: expected true got false
+FAIL Property overscroll-behavior-y has initial value auto assert_true: overscroll-behavior-y doesn't seem to be supported in the computed style expected true got false
+FAIL Property overscroll-behavior-y does not inherit assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/parsing/shape-outside-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/parsing/shape-outside-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/parsing/shape-outside-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -5,7 +5,7 @@
 PASS Property shape-outside value 'ellipse(60% closest-side at 50% 50%)' computes to 'ellipse(60% closest-side at 50% 50%)' 
 PASS Property shape-outside value 'ellipse(calc(10px + 0.5em) calc(10px - 0.5em) at -50% 50%) padding-box' computes to 'ellipse(30px 0px at -50% 50%) padding-box' 
 PASS Property shape-outside value 'ellipse(calc(10px - 0.5em) calc(10px + 0.5em) at 50% -50%) border-box' computes to 'ellipse(0px 30px at 50% -50%) border-box' 
-PASS Property polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box value 'undefined' computes to 'undefined' 
-PASS Property polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box value 'undefined' computes to 'undefined' 
-PASS Property polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) value 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' computes to 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' 
+FAIL Property polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box value 'undefined' computes to 'undefined' assert_true: polygon(evenodd, -10px, -20px, -30px, -40px, -50px, -60px) margin-box doesn't seem to be supported in the computed style expected true got false
+FAIL Property polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box value 'undefined' computes to 'undefined' assert_true: polygon(10%, 20%, 30%, 40%, 50%, 60%) content-box doesn't seem to be supported in the computed style expected true got false
+FAIL Property polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) value 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' computes to 'polygon(-10px, 20%, 30%, 40%, 50%, -10px)' assert_true: polygon(calc(10px - 0.5em), 20%, 30%, 40%, 50%, calc(10px - 0.5em)) doesn't seem to be supported in the computed style expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,8 +1,8 @@
 
 PASS Property hanging-punctuation has initial value none 
 PASS Property hanging-punctuation inherits 
-PASS Property hyphens has initial value manual 
-PASS Property hyphens inherits 
+FAIL Property hyphens has initial value manual assert_true: hyphens doesn't seem to be supported in the computed style expected true got false
+FAIL Property hyphens inherits assert_true: hyphens doesn't seem to be supported in the computed style expected true got false
 PASS Property letter-spacing has initial value normal 
 PASS Property letter-spacing inherits 
 PASS Property line-break has initial value auto 
@@ -11,14 +11,14 @@
 FAIL Property overflow-wrap inherits assert_equals: expected "break-word" but got "normal"
 PASS Property tab-size has initial value 8 
 PASS Property tab-size inherits 
-PASS Property text-align-all has initial value start 
-PASS Property text-align-all inherits 
-PASS Property text-align-last has initial value auto 
-PASS Property text-align-last inherits 
+FAIL Property text-align-all has initial value start assert_true: text-align-all doesn't seem to be supported in the computed style expected true got false
+FAIL Property text-align-all inherits assert_true: text-align-all doesn't seem to be supported in the computed style expected true got false
+FAIL Property text-align-last has initial value auto assert_true: text-align-last doesn't seem to be supported in the computed style expected true got false
+FAIL Property text-align-last inherits assert_true: text-align-last doesn't seem to be supported in the computed style expected true got false
 PASS Property text-indent has initial value 0px 
 PASS Property text-indent inherits 
-PASS Property text-justify has initial value auto 
-PASS Property text-justify inherits 
+FAIL Property text-justify has initial value auto assert_true: text-justify doesn't seem to be supported in the computed style expected true got false
+FAIL Property text-justify inherits assert_true: text-justify doesn't seem to be supported in the computed style expected true got false
 PASS Property text-transform has initial value none 
 PASS Property text-transform inherits 
 PASS Property white-space has initial value normal 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,4 +1,17 @@
-CONSOLE MESSAGE: line 14: ReferenceError: Can't find variable: test_shorthand_value
 
-FAIL CSS Transitions: transition sets longhands ReferenceError: Can't find variable: test_shorthand_value
+PASS e.style['transition'] = "1s -3s cubic-bezier(0, -2, 1, 3) top" should set transition-delay 
+PASS e.style['transition'] = "1s -3s cubic-bezier(0, -2, 1, 3) top" should set transition-duration 
+PASS e.style['transition'] = "1s -3s cubic-bezier(0, -2, 1, 3) top" should set transition-property 
+PASS e.style['transition'] = "1s -3s cubic-bezier(0, -2, 1, 3) top" should set transition-timing-function 
+PASS e.style['transition'] = "1s -3s cubic-bezier(0, -2, 1, 3) top" should not set unrelated longhands 
+FAIL e.style['transition'] = "1s -3s, cubic-bezier(0, -2, 1, 3) top" should set transition-delay assert_equals: transition-delay should be canonical expected "-3s, 0s" but got "-3s, initial"
+FAIL e.style['transition'] = "1s -3s, cubic-bezier(0, -2, 1, 3) top" should set transition-duration assert_equals: transition-duration should be canonical expected "1s, 0s" but got "1s, initial"
+FAIL e.style['transition'] = "1s -3s, cubic-bezier(0, -2, 1, 3) top" should set transition-property assert_equals: transition-property should be canonical expected "all, top" but got "initial, top"
+FAIL e.style['transition'] = "1s -3s, cubic-bezier(0, -2, 1, 3) top" should set transition-timing-function assert_equals: transition-timing-function should be canonical expected "ease, cubic-bezier(0, -2, 1, 3)" but got "initial, cubic-bezier(0, -2, 1, 3)"
+PASS e.style['transition'] = "1s -3s, cubic-bezier(0, -2, 1, 3) top" should not set unrelated longhands 
+FAIL e.style['transition'] = "cubic-bezier(0, -2, 1, 3) top, 1s -3s" should set transition-delay assert_equals: transition-delay should be canonical expected "0s, -3s" but got "initial, -3s"
+FAIL e.style['transition'] = "cubic-bezier(0, -2, 1, 3) top, 1s -3s" should set transition-duration assert_equals: transition-duration should be canonical expected "0s, 1s" but got "initial, 1s"
+FAIL e.style['transition'] = "cubic-bezier(0, -2, 1, 3) top, 1s -3s" should set transition-property assert_equals: transition-property should be canonical expected "top, all" but got "top, initial"
+FAIL e.style['transition'] = "cubic-bezier(0, -2, 1, 3) top, 1s -3s" should set transition-timing-function assert_equals: transition-timing-function should be canonical expected "cubic-bezier(0, -2, 1, 3), ease" but got "cubic-bezier(0, -2, 1, 3), initial"
+PASS e.style['transition'] = "cubic-bezier(0, -2, 1, 3) top, 1s -3s" should not set unrelated longhands 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,6 +1,6 @@
 
 PASS Property transition-timing-function value 'linear' computes to 'linear' 
-PASS Property transition-timing-function value '' computes to 'ease' 
+FAIL Property transition-timing-function value '' computes to 'ease' assert_true: '' is a supported value for transition-timing-function. expected true got false
 PASS Property transition-timing-function value 'initial' computes to 'ease' 
 PASS Property transition-timing-function value 'ease' computes to 'ease' 
 PASS Property transition-timing-function value 'ease-in' computes to 'ease-in' 
@@ -14,9 +14,9 @@
 FAIL Property transition-timing-function value 'steps(4)' computes to 'steps(4)' assert_equals: expected "steps(4)" but got "steps(4, end)"
 PASS Property transition-timing-function value 'steps(4, start)' computes to 'steps(4, start)' 
 FAIL Property transition-timing-function value 'steps(2, end)' computes to 'steps(2)' assert_equals: expected "steps(2)" but got "steps(2, end)"
-FAIL Property transition-timing-function value 'steps(2, jump-start)' computes to 'steps(2, jump-start)' assert_equals: expected "steps(2, jump-start)" but got "ease"
-FAIL Property transition-timing-function value 'steps(2, jump-end)' computes to 'steps(2)' assert_equals: expected "steps(2)" but got "ease"
-FAIL Property transition-timing-function value 'steps(2, jump-both)' computes to 'steps(2, jump-both)' assert_equals: expected "steps(2, jump-both)" but got "ease"
-FAIL Property transition-timing-function value 'steps(2, jump-none)' computes to 'steps(2, jump-none)' assert_equals: expected "steps(2, jump-none)" but got "ease"
+FAIL Property transition-timing-function value 'steps(2, jump-start)' computes to 'steps(2, jump-start)' assert_true: 'steps(2, jump-start)' is a supported value for transition-timing-function. expected true got false
+FAIL Property transition-timing-function value 'steps(2, jump-end)' computes to 'steps(2)' assert_true: 'steps(2, jump-end)' is a supported value for transition-timing-function. expected true got false
+FAIL Property transition-timing-function value 'steps(2, jump-both)' computes to 'steps(2, jump-both)' assert_true: 'steps(2, jump-both)' is a supported value for transition-timing-function. expected true got false
+FAIL Property transition-timing-function value 'steps(2, jump-none)' computes to 'steps(2, jump-none)' assert_true: 'steps(2, jump-none)' is a supported value for transition-timing-function. expected true got false
 FAIL Property transition-timing-function value 'linear, ease, linear' computes to 'linear, ease, linear' assert_equals: expected "linear, ease, linear" but got "linear"
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/clamp-length-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/clamp-length-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/clamp-length-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,6 +1,6 @@
 
-FAIL Property letter-spacing value 'clamp(10px, 20px, 30px)' computes to '20px' assert_equals: expected "20px" but got "normal"
-FAIL Property letter-spacing value 'clamp(10px, 5px, 30px)' computes to '10px' assert_equals: expected "10px" but got "normal"
-FAIL Property letter-spacing value 'clamp(10px, 35px, 30px)' computes to '30px' assert_equals: expected "30px" but got "normal"
-FAIL Property letter-spacing value 'clamp(30px, 100px, 20px)' computes to '30px' assert_equals: expected "30px" but got "normal"
+FAIL Property letter-spacing value 'clamp(10px, 20px, 30px)' computes to '20px' assert_true: 'clamp(10px, 20px, 30px)' is a supported value for letter-spacing. expected true got false
+FAIL Property letter-spacing value 'clamp(10px, 5px, 30px)' computes to '10px' assert_true: 'clamp(10px, 5px, 30px)' is a supported value for letter-spacing. expected true got false
+FAIL Property letter-spacing value 'clamp(10px, 35px, 30px)' computes to '30px' assert_true: 'clamp(10px, 35px, 30px)' is a supported value for letter-spacing. expected true got false
+FAIL Property letter-spacing value 'clamp(30px, 100px, 20px)' computes to '30px' assert_true: 'clamp(30px, 100px, 20px)' is a supported value for letter-spacing. expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -2,7 +2,7 @@
 PASS Property letter-spacing value 'min(1px)' computes to '1px' 
 PASS Property letter-spacing value 'min(1cm)' computes to '37.7952766418457px' 
 PASS Property letter-spacing value 'min(1mm)' computes to '3.7795276641845703px' 
-PASS Property letter-spacing value 'min(1Q)' computes to 'normal' 
+FAIL Property letter-spacing value 'min(1Q)' computes to 'normal' assert_true: 'min(1Q)' is a supported value for letter-spacing. expected true got false
 PASS Property letter-spacing value 'min(1in)' computes to '96px' 
 PASS Property letter-spacing value 'min(1pc)' computes to '16px' 
 PASS Property letter-spacing value 'min(1pt)' computes to '1.3333333730697632px' 
@@ -17,7 +17,7 @@
 PASS Property letter-spacing value 'max(1px)' computes to '1px' 
 PASS Property letter-spacing value 'max(1cm)' computes to '37.7952766418457px' 
 PASS Property letter-spacing value 'max(1mm)' computes to '3.7795276641845703px' 
-PASS Property letter-spacing value 'max(1Q)' computes to 'normal' 
+FAIL Property letter-spacing value 'max(1Q)' computes to 'normal' assert_true: 'max(1Q)' is a supported value for letter-spacing. expected true got false
 PASS Property letter-spacing value 'max(1in)' computes to '96px' 
 PASS Property letter-spacing value 'max(1pc)' computes to '16px' 
 PASS Property letter-spacing value 'max(1pt)' computes to '1.3333333730697632px' 
@@ -32,7 +32,7 @@
 PASS Property letter-spacing value 'min(1px, 2px)' computes to '1px' 
 PASS Property letter-spacing value 'min(1cm, 2cm)' computes to '37.7952766418457px' 
 PASS Property letter-spacing value 'min(1mm, 2mm)' computes to '3.7795276641845703px' 
-PASS Property letter-spacing value 'min(1Q, 2Q)' computes to 'normal' 
+FAIL Property letter-spacing value 'min(1Q, 2Q)' computes to 'normal' assert_true: 'min(1Q, 2Q)' is a supported value for letter-spacing. expected true got false
 PASS Property letter-spacing value 'min(1in, 2in)' computes to '96px' 
 PASS Property letter-spacing value 'min(1pc, 2pc)' computes to '16px' 
 PASS Property letter-spacing value 'min(1pt, 2pt)' computes to '1.3333333730697632px' 
@@ -47,7 +47,7 @@
 PASS Property letter-spacing value 'max(1px, 2px)' computes to '2px' 
 PASS Property letter-spacing value 'max(1cm, 2cm)' computes to '75.5905532836914px' 
 PASS Property letter-spacing value 'max(1mm, 2mm)' computes to '7.559055328369141px' 
-PASS Property letter-spacing value 'max(1Q, 2Q)' computes to 'normal' 
+FAIL Property letter-spacing value 'max(1Q, 2Q)' computes to 'normal' assert_true: 'max(1Q, 2Q)' is a supported value for letter-spacing. expected true got false
 PASS Property letter-spacing value 'max(1in, 2in)' computes to '192px' 
 PASS Property letter-spacing value 'max(1pc, 2pc)' computes to '32px' 
 PASS Property letter-spacing value 'max(1pt, 2pt)' computes to '2.6666667461395264px' 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/minmax-length-percent-computed-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -2,7 +2,7 @@
 PASS Property margin-left value 'min(1px + 1%)' computes to '5px' 
 PASS Property margin-left value 'min(1cm + 1%)' computes to '41.78125px' 
 PASS Property margin-left value 'min(1mm + 1%)' computes to '7.765625px' 
-PASS Property margin-left value 'min(1Q + 1%)' computes to '0px' 
+FAIL Property margin-left value 'min(1Q + 1%)' computes to '0px' assert_true: 'min(1Q + 1%)' is a supported value for margin-left. expected true got false
 PASS Property margin-left value 'min(1in + 1%)' computes to '100px' 
 PASS Property margin-left value 'min(1pc + 1%)' computes to '20px' 
 PASS Property margin-left value 'min(1pt + 1%)' computes to '5.328125px' 
@@ -17,7 +17,7 @@
 PASS Property margin-left value 'max(1px + 1%)' computes to '5px' 
 PASS Property margin-left value 'max(1cm + 1%)' computes to '41.78125px' 
 PASS Property margin-left value 'max(1mm + 1%)' computes to '7.765625px' 
-PASS Property margin-left value 'max(1Q + 1%)' computes to '0px' 
+FAIL Property margin-left value 'max(1Q + 1%)' computes to '0px' assert_true: 'max(1Q + 1%)' is a supported value for margin-left. expected true got false
 PASS Property margin-left value 'max(1in + 1%)' computes to '100px' 
 PASS Property margin-left value 'max(1pc + 1%)' computes to '20px' 
 PASS Property margin-left value 'max(1pt + 1%)' computes to '5.328125px' 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/inheritance-expected.txt (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/inheritance-expected.txt	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom-view/inheritance-expected.txt	2019-10-26 14:50:23 UTC (rev 251634)
@@ -1,4 +1,4 @@
 
-PASS Property scroll-behavior has initial value auto 
-PASS Property scroll-behavior does not inherit 
+FAIL Property scroll-behavior has initial value auto assert_true: scroll-behavior doesn't seem to be supported in the computed style expected true got false
+FAIL Property scroll-behavior does not inherit assert_true: expected true got false
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/computed-testcommon.js (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/computed-testcommon.js	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/computed-testcommon.js	2019-10-26 14:50:23 UTC (rev 251634)
@@ -6,17 +6,37 @@
  *
  * @param {string} property  The name of the CSS property being tested.
  * @param {string} specified A specified value for the property.
- * @param {string} computed  The expected computed value. If omitted,
-                             defaults to specified.
+ * @param {string|array} computed  The expected computed value,
+ *                                 or an array of permitted computed value.
+ *                                 If omitted, defaults to specified.
  */
 function test_computed_value(property, specified, computed) {
   if (!computed)
     computed = specified;
+
+  let computedDesc = "'" + computed + "'";
+  if (Array.isArray(computed))
+    computedDesc = '[' + computed.map(e => "'" + e + "'").join(' or ') + ']';
+
   test(() => {
-    if (!getComputedStyle(target)[property])
-      return;
+    const target = document.getElementById('target');
+    assert_true(property in getComputedStyle(target), property + " doesn't seem to be supported in the computed style");
+    assert_true(CSS.supports(property, specified), "'" + specified + "' is a supported value for " + property + ".");
     target.style[property] = '';
     target.style[property] = specified;
-    assert_equals(getComputedStyle(target)[property], computed);
-  }, "Property " + property + " value '" + specified + "' computes to '" + computed + "'");
+
+    let readValue = getComputedStyle(target)[property];
+    if (Array.isArray(computed)) {
+      assert_in_array(readValue, computed);
+    } else {
+      assert_equals(readValue, computed);
+    }
+    if (readValue !== specified) {
+      target.style[property] = '';
+      target.style[property] = readValue;
+      assert_equals(getComputedStyle(target)[property], readValue,
+                    'computed value should round-trip');
+    }
+  }, "Property " + property + " value '" + specified + "' computes to " +
+     computedDesc);
 }

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/inheritance-testcommon.js (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/inheritance-testcommon.js	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/inheritance-testcommon.js	2019-10-26 14:50:23 UTC (rev 251634)
@@ -3,14 +3,21 @@
 (function() {
 
 function assert_initial(property, initial) {
+  let initialDesc = initial;
+  if (Array.isArray(initial))
+    initialDesc = '[' + initial.map(e => "'" + e + "'").join(' or ') + ']';
+
   test(() => {
     const target = document.getElementById('target');
-    if (!getComputedStyle(target)[property])
-      return;
+    assert_true(property in getComputedStyle(target), property + " doesn't seem to be supported in the computed style");
     target.style[property] = 'initial';
-    assert_equals(getComputedStyle(target)[property], initial);
+    if (Array.isArray(initial)) {
+      assert_in_array(getComputedStyle(target)[property], initial);
+    } else {
+      assert_equals(getComputedStyle(target)[property], initial);
+    }
     target.style[property] = '';
-  }, 'Property ' + property + ' has initial value ' + initial);
+  }, 'Property ' + property + ' has initial value ' + initialDesc);
 }
 
 /**
@@ -18,19 +25,21 @@
  *
  * The current document must have an element #target within element #container.
  *
- * @param {string} property  The name of the CSS property being tested.
- * @param {string} initial   The computed value for 'initial'.
- * @param {string} other     An arbitrary value for the property that round
- *                           trips and is distinct from the initial value.
+ * @param {string}        property  The name of the CSS property being tested.
+ * @param {string|array}  initial   The computed value for 'initial' or a list
+ *                                  of acceptable computed value serializations.
+ * @param {string}        other     An arbitrary value for the property that
+ *                                  round trips and is distinct from the initial
+ *                                  value.
  */
 function assert_inherited(property, initial, other) {
-  assert_initial(property, initial);
+  if (initial)
+    assert_initial(property, initial);
 
   test(() => {
     const container = document.getElementById('container');
     const target = document.getElementById('target');
-    if (!getComputedStyle(target)[property])
-      return;
+    assert_true(property in getComputedStyle(target), property + " doesn't seem to be supported in the computed style");
     container.style[property] = 'initial';
     target.style[property] = 'unset';
     assert_not_equals(getComputedStyle(container)[property], other);
@@ -54,10 +63,12 @@
  *
  * The current document must have an element #target within element #container.
  *
- * @param {string} property  The name of the CSS property being tested.
- * @param {string} initial   The computed value for 'initial'.
- * @param {string} other     An arbitrary value for the property that round
- *                           trips and is distinct from the initial value.
+ * @param {string}        property  The name of the CSS property being tested.
+ * @param {string|array}  initial   The computed value for 'initial' or a list
+ *                                  of acceptable computed value serializations.
+ * @param {string}        other     An arbitrary value for the property that
+ *                                  round trips and is distinct from the initial
+ *                                  value.
  */
 function assert_not_inherited(property, initial, other) {
   assert_initial(property, initial);
@@ -65,8 +76,7 @@
   test(() => {
     const container = document.getElementById('container');
     const target = document.getElementById('target');
-    if (!getComputedStyle(target)[property])
-      return;
+    assert_true(property in getComputedStyle(target));
     container.style[property] = 'initial';
     target.style[property] = 'unset';
     assert_not_equals(getComputedStyle(container)[property], other);

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js (0 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js	2019-10-26 14:50:23 UTC (rev 251634)
@@ -0,0 +1,332 @@
+'use strict';
+(function() {
+  var interpolationTests = [];
+  var cssAnimationsData = {
+    sharedStyle: null,
+    nextID: 0,
+  };
+  var expectNoInterpolation = {};
+  var neutralKeyframe = {};
+  function isNeutralKeyframe(keyframe) {
+    return keyframe === neutralKeyframe;
+  }
+
+  // For the CSS interpolation methods set the delay to be negative half the
+  // duration, so we are immediately at the halfway point of the animation.
+  // We then use an easing function that maps halfway to whatever progress
+  // we actually want.
+
+  var cssAnimationsInterpolation = {
+    name: 'CSS Animations',
+    supportsProperty: function() {return true;},
+    supportsValue: function() {return true;},
+    setup: function() {},
+    nonInterpolationExpectations: function(from, to) {
+      return expectFlip(from, to, 0.5);
+    },
+    interpolate: function(property, from, to, at, target) {
+      var id = cssAnimationsData.nextID++;
+      if (!cssAnimationsData.sharedStyle) {
+        cssAnimationsData.sharedStyle = createElement(document.body, 'style');
+      }
+      cssAnimationsData.sharedStyle.textContent += '' +
+        '@keyframes animation' + id + ' {' +
+          (isNeutralKeyframe(from) ? '' : `from {${property}:${from};}`) +
+          (isNeutralKeyframe(to) ? '' : `to {${property}:${to};}`) +
+        '}';
+      target.style.animationName = 'animation' + id;
+      target.style.animationDuration = '100s';
+      target.style.animationDelay = '-50s';
+      target.style.animationTimingFunction = createEasing(at);
+    },
+  };
+
+  var cssTransitionsInterpolation = {
+    name: 'CSS Transitions',
+    supportsProperty: function() {return true;},
+    supportsValue: function() {return true;},
+    setup: function(property, from, target) {
+      target.style.setProperty(property, isNeutralKeyframe(from) ? '' : from);
+    },
+    nonInterpolationExpectations: function(from, to) {
+      return expectFlip(from, to, -Infinity);
+    },
+    interpolate: function(property, from, to, at, target) {
+      // Force a style recalc on target to set the 'from' value.
+      getComputedStyle(target).getPropertyValue(property);
+      target.style.transitionDuration = '100s';
+      target.style.transitionDelay = '-50s';
+      target.style.transitionTimingFunction = createEasing(at);
+      target.style.transitionProperty = property;
+      target.style.setProperty(property, isNeutralKeyframe(to) ? '' : to);
+    },
+  };
+
+  var cssTransitionAllInterpolation = {
+    name: 'CSS Transitions with transition: all',
+    // The 'all' value doesn't cover custom properties.
+    supportsProperty: function(property) {return property.indexOf('--') !== 0;},
+    supportsValue: function() {return true;},
+    setup: function(property, from, target) {
+      target.style.setProperty(property, isNeutralKeyframe(from) ? '' : from);
+    },
+    nonInterpolationExpectations: function(from, to) {
+      return expectFlip(from, to, -Infinity);
+    },
+    interpolate: function(property, from, to, at, target) {
+      // Force a style recalc on target to set the 'from' value.
+      getComputedStyle(target).getPropertyValue(property);
+      target.style.transitionDuration = '100s';
+      target.style.transitionDelay = '-50s';
+      target.style.transitionTimingFunction = createEasing(at);
+      target.style.transitionProperty = 'all';
+      target.style.setProperty(property, isNeutralKeyframe(to) ? '' : to);
+    },
+  };
+
+  var webAnimationsInterpolation = {
+    name: 'Web Animations',
+    supportsProperty: function(property) {return true;},
+    supportsValue: function(value) {return value !== '';},
+    setup: function() {},
+    nonInterpolationExpectations: function(from, to) {
+      return expectFlip(from, to, 0.5);
+    },
+    interpolate: function(property, from, to, at, target) {
+      this.interpolateComposite(property, from, 'replace', to, 'replace', at, target);
+    },
+    interpolateComposite: function(property, from, fromComposite, to, toComposite, at, target) {
+      // Convert standard properties to camelCase.
+      if (!property.startsWith('--')) {
+        for (var i = property.length - 2; i > 0; --i) {
+          if (property[i] === '-') {
+            property = property.substring(0, i) + property[i + 1].toUpperCase() + property.substring(i + 2);
+          }
+        }
+        if (property === 'offset') {
+          property = 'cssOffset';
+        } else if (property === 'float') {
+          property = 'cssFloat';
+        }
+      }
+      var keyframes = [];
+      if (!isNeutralKeyframe(from)) {
+        keyframes.push({
+          offset: 0,
+          composite: fromComposite,
+          [property]: from,
+        });
+      }
+      if (!isNeutralKeyframe(to)) {
+        keyframes.push({
+          offset: 1,
+          composite: toComposite,
+          [property]: to,
+        });
+      }
+      var animation = target.animate(keyframes, {
+        fill: 'forwards',
+        duration: 100 * 1000,
+        easing: createEasing(at),
+      });
+      animation.pause();
+      animation.currentTime = 50 * 1000;
+    },
+  };
+
+  function expectFlip(from, to, flipAt) {
+    return [-0.3, 0, 0.3, 0.5, 0.6, 1, 1.5].map(function(at) {
+      return {
+        at: at,
+        expect: at < flipAt ? from : to
+      };
+    });
+  }
+
+  // Constructs a timing function which produces 'y' at x = 0.5
+  function createEasing(y) {
+    if (y == 0) {
+      return 'steps(1, end)';
+    }
+    if (y == 1) {
+      return 'steps(1, start)';
+    }
+    if (y == 0.5) {
+      return 'linear';
+    }
+    // Approximate using a bezier.
+    var b = (8 * y - 1) / 6;
+    return 'cubic-bezier(0, ' + b + ', 1, ' + b + ')';
+  }
+
+  function createElement(parent, tag, text) {
+    var element = document.createElement(tag || 'div');
+    element.textContent = text || '';
+    parent.appendChild(element);
+    return element;
+  }
+
+  function createTargetContainer(parent, className) {
+    var targetContainer = createElement(parent);
+    targetContainer.classList.add('container');
+    var template = document.querySelector('#target-template');
+    if (template) {
+      targetContainer.appendChild(template.content.cloneNode(true));
+    }
+    var target = targetContainer.querySelector('.target') || targetContainer;
+    target.classList.add('target', className);
+    target.parentElement.classList.add('parent');
+    targetContainer.target = target;
+    return targetContainer;
+  }
+
+  function roundNumbers(value) {
+    return value.
+        // Round numbers to two decimal places.
+        replace(/-?\d*\.\d+(e-?\d+)?/g, function(n) {
+          return (parseFloat(n).toFixed(2)).
+              replace(/\.\d+/, function(m) {
+                return m.replace(/0+$/, '');
+              }).
+              replace(/\.$/, '').
+              replace(/^-0$/, '0');
+        });
+  }
+
+  var anchor = document.createElement('a');
+  function sanitizeUrls(value) {
+    var matches = value.match(/url\("([^#][^\)]*)"\)/g);
+    if (matches !== null) {
+      for (var i = 0; i < matches.length; ++i) {
+        var url = ""
+        anchor.href = ""
+        anchor.pathname = '...' + anchor.pathname.substring(anchor.pathname.lastIndexOf('/'));
+        value = value.replace(matches[i], 'url(' + anchor.href + ')');
+      }
+    }
+    return value;
+  }
+
+  function normalizeValue(value) {
+    return roundNumbers(sanitizeUrls(value)).
+        // Place whitespace between tokens.
+        replace(/([\w\d.]+|[^\s])/g, '$1 ').
+        replace(/\s+/g, ' ');
+  }
+
+  function stringify(text) {
+    if (!text.includes("'")) {
+      return `'${text}'`;
+    }
+    return `"${text.replace('"', '\\"')}"`;
+  }
+
+  function keyframeText(keyframe) {
+    return isNeutralKeyframe(keyframe) ? 'neutral' : `[${keyframe}]`;
+  }
+
+  function keyframeCode(keyframe) {
+    return isNeutralKeyframe(keyframe) ? 'neutralKeyframe' : `${stringify(keyframe)}`;
+  }
+
+  function createInterpolationTestTargets(interpolationMethod, interpolationMethodContainer, interpolationTest) {
+    var property = interpolationTest.options.property;
+    var from = interpolationTest.options.from;
+    var to = interpolationTest.options.to;
+    var comparisonFunction = interpolationTest.options.comparisonFunction;
+
+    if ((interpolationTest.options.method && interpolationTest.options.method != interpolationMethod.name)
+      || !interpolationMethod.supportsProperty(property)
+      || !interpolationMethod.supportsValue(from)
+      || !interpolationMethod.supportsValue(to)) {
+      return;
+    }
+
+    var testText = `${interpolationMethod.name}: property <${property}> from ${keyframeText(from)} to ${keyframeText(to)}`;
+    var testContainer = createElement(interpolationMethodContainer, 'div');
+    createElement(testContainer);
+    var expectations = interpolationTest.expectations;
+    if (expectations === expectNoInterpolation) {
+      expectations = interpolationMethod.nonInterpolationExpectations(from, to);
+    }
+
+    // Setup a standard equality function if an override is not provided.
+    if (!comparisonFunction) {
+      comparisonFunction = (actual, expected) => {
+        assert_equals(normalizeValue(actual), normalizeValue(expected));
+      };
+    }
+
+    return expectations.map(function(expectation) {
+      var actualTargetContainer = createTargetContainer(testContainer, 'actual');
+      var expectedTargetContainer = createTargetContainer(testContainer, 'expected');
+      if (!isNeutralKeyframe(expectation.expect)) {
+        expectedTargetContainer.target.style.setProperty(property, expectation.expect);
+      }
+      var target = actualTargetContainer.target;
+      interpolationMethod.setup(property, from, target);
+      target.interpolate = function() {
+        interpolationMethod.interpolate(property, from, to, expectation.at, target);
+      };
+      target.measure = function() {
+        var expectedValue = getComputedStyle(expectedTargetContainer.target).getPropertyValue(property);
+        test(function() {
+          if (from && from !== neutralKeyframe) {
+            assert_true(CSS.supports(property, from), '\'from\' value should be supported');
+          }
+          if (to && to !== neutralKeyframe) {
+            assert_true(CSS.supports(property, to), '\'to\' value should be supported');
+          }
+          if (typeof underlying !== 'undefined') {
+            assert_true(CSS.supports(property, underlying), '\'underlying\' value should be supported');
+          }
+
+          comparisonFunction(
+              getComputedStyle(target).getPropertyValue(property),
+              expectedValue);
+        }, `${testText} at (${expectation.at}) should be [${sanitizeUrls(expectation.expect)}]`);
+      };
+      return target;
+    });
+  }
+
+  function createTestTargets(interpolationMethods, interpolationTests, container) {
+    var targets = [];
+    for (var interpolationMethod of interpolationMethods) {
+      var interpolationMethodContainer = createElement(container);
+      for (var interpolationTest of interpolationTests) {
+        [].push.apply(targets, createInterpolationTestTargets(interpolationMethod, interpolationMethodContainer, interpolationTest));
+      }
+    }
+    return targets;
+  }
+
+  function test_no_interpolation(options) {
+    test_interpolation(options, expectNoInterpolation);
+  }
+
+  function test_interpolation(options, expectations) {
+    interpolationTests.push({options, expectations});
+    var interpolationMethods = [
+      cssTransitionsInterpolation,
+      cssTransitionAllInterpolation,
+      cssAnimationsInterpolation,
+      webAnimationsInterpolation,
+    ];
+    var container = createElement(document.body);
+    var targets = createTestTargets(interpolationMethods, interpolationTests, container);
+    // Separate interpolation and measurement into different phases to avoid O(n^2) of the number of targets.
+    for (var target of targets) {
+      target.interpolate();
+    }
+    for (var target of targets) {
+      target.measure();
+    }
+    container.remove();
+    interpolationTests = [];
+  }
+
+  window.test_interpolation = test_interpolation;
+  window.test_no_interpolation = test_no_interpolation;
+  window.neutralKeyframe = neutralKeyframe;
+})();

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/parsing-testcommon.js (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/parsing-testcommon.js	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/parsing-testcommon.js	2019-10-26 14:50:23 UTC (rev 251634)
@@ -36,3 +36,62 @@
         assert_equals(div.style.getPropertyValue(property), "");
     }, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value");
 }
+
+// serializedSelector can be the expected serialization of selector,
+// or an array of permitted serializations,
+// or omitted if value should serialize as selector.
+function test_valid_selector(selector, serializedSelector) {
+    if (arguments.length < 2)
+        serializedSelector = selector;
+
+    const stringifiedSelector = JSON.stringify(selector);
+
+    test(function(){
+        document.querySelector(selector);
+        assert_true(true, stringifiedSelector + " should not throw in querySelector");
+
+        const style = document.createElement("style");
+        document.head.append(style);
+        const {sheet} = style;
+        document.head.removeChild(style);
+        const {cssRules} = sheet;
+
+        assert_equals(cssRules.length, 0, "Sheet should have no rule");
+        sheet.insertRule(selector + "{}");
+        assert_equals(cssRules.length, 1, "Sheet should have 1 rule");
+
+        const readSelector = cssRules[0].selectorText;
+        if (Array.isArray(serializedSelector))
+            assert_in_array(readSelector, serializedSelector, "serialization should be sound");
+        else
+            assert_equals(readSelector, serializedSelector, "serialization should be canonical");
+
+        sheet.deleteRule(0);
+        assert_equals(cssRules.length, 0, "Sheet should have no rule");
+        sheet.insertRule(readSelector + "{}");
+        assert_equals(cssRules.length, 1, "Sheet should have 1 rule");
+
+        assert_equals(cssRules[0].selectorText, readSelector, "serialization should round-trip");
+    }, stringifiedSelector + " should be a valid selector");
+}
+
+function test_invalid_selector(selector) {
+    const stringifiedSelector = JSON.stringify(selector);
+
+    test(function(){
+        assert_throws(
+          DOMException.SYNTAX_ERR,
+          () => document.querySelector(selector),
+          stringifiedSelector + " should throw in querySelector");
+
+        const style = document.createElement("style");
+        document.head.append(style);
+        const {sheet} = style;
+        document.head.removeChild(style);
+
+        assert_throws(
+          DOMException.SYNTAX_ERR,
+          () => sheet.insertRule(selector + "{}"),
+          stringifiedSelector + " should throw in insertRule");
+    }, stringifiedSelector + " should be an invalid selector");
+}

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/red-rect.svg (0 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/red-rect.svg	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/red-rect.svg	2019-10-26 14:50:23 UTC (rev 251634)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
+              "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 100">
+    <rect width="200" height="100" style="fill:red;" />
+</svg>

Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/shorthand-testcommon.js (0 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/shorthand-testcommon.js	                        (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/shorthand-testcommon.js	2019-10-26 14:50:23 UTC (rev 251634)
@@ -0,0 +1,40 @@
+'use strict';
+
+function test_shorthand_value(property, value, longhands) {
+    const stringifiedValue = JSON.stringify(value);
+
+    for (let longhand of Object.keys(longhands).sort()) {
+        test(function(){
+            var div = document.getElementById('target') || document.createElement('div');
+            div.style[property] = "";
+            try {
+                div.style[property] = value;
+
+                const readValue = div.style[longhand];
+                assert_equals(readValue, longhands[longhand], longhand + " should be canonical");
+
+                div.style[longhand] = "";
+                div.style[longhand] = readValue;
+                assert_equals(div.style[longhand], readValue, "serialization should round-trip");
+            } finally {
+                div.style[property] = "";
+            }
+        }, "e.style['" + property + "'] = " + stringifiedValue + " should set " + longhand);
+    }
+
+    test(function(){
+        var div = document.getElementById('target') || document.createElement('div');
+        div.style[property] = "";
+        try {
+            const expectedLength = div.style.length;
+            div.style[property] = value;
+            assert_true(CSS.supports(property, value));
+            for (let longhand of Object.keys(longhands).sort()) {
+                div.style[longhand] = "";
+            }
+            assert_equals(div.style.length, expectedLength);
+        } finally {
+            div.style[property] = "";
+        }
+    }, "e.style['" + property + "'] = " + stringifiedValue + " should not set unrelated longhands");
+}

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/w3c-import.log (251633 => 251634)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/w3c-import.log	2019-10-26 12:53:00 UTC (rev 251633)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/support/w3c-import.log	2019-10-26 14:50:23 UTC (rev 251634)
@@ -37,16 +37,19 @@
 /LayoutTests/imported/w3c/web-platform-tests/css/support/import-green.css
 /LayoutTests/imported/w3c/web-platform-tests/css/support/import-red.css
 /LayoutTests/imported/w3c/web-platform-tests/css/support/inheritance-testcommon.js
+/LayoutTests/imported/w3c/web-platform-tests/css/support/interpolation-testcommon.js
 /LayoutTests/imported/w3c/web-platform-tests/css/support/parsing-testcommon.js
 /LayoutTests/imported/w3c/web-platform-tests/css/support/pattern-grg-rgr-grg.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/pattern-grg-rrg-rgg.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/pattern-rgr-grg-rgr.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/pattern-tr.png
+/LayoutTests/imported/w3c/web-platform-tests/css/support/red-rect.svg
 /LayoutTests/imported/w3c/web-platform-tests/css/support/red.ico
 /LayoutTests/imported/w3c/web-platform-tests/css/support/ruler-h-50%.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/ruler-h-50px.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/ruler-v-100px.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/ruler-v-50px.png
+/LayoutTests/imported/w3c/web-platform-tests/css/support/shorthand-testcommon.js
 /LayoutTests/imported/w3c/web-platform-tests/css/support/square-purple.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/square-teal.png
 /LayoutTests/imported/w3c/web-platform-tests/css/support/square-white.png
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to