Import css/css-box WPT
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Oct 2019 22:25:14 +0000 (22:25 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 29 Oct 2019 22:25:14 +0000 (22:25 +0000)
https://bugs.webkit.org/show_bug.cgi?id=203584

Reviewed by Tim Horton.

* resources/import-expectations.json:
* web-platform-tests/css/css-box/META.yml: Added.
* web-platform-tests/css/css-box/animation/margin-interpolation-expected.txt: Added.
* web-platform-tests/css/css-box/animation/margin-interpolation.html: Added.
* web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt: Added.
* web-platform-tests/css/css-box/animation/padding-interpolation.html: Added.
* web-platform-tests/css/css-box/animation/w3c-import.log: Added.
* web-platform-tests/css/css-box/box-chrome-crash-001-expected.txt: Added.
* web-platform-tests/css/css-box/box-chrome-crash-001.html: Added.
* web-platform-tests/css/css-box/inheritance-expected.txt: Added.
* web-platform-tests/css/css-box/inheritance.html: Added.
* web-platform-tests/css/css-box/parsing/clear-computed-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/clear-computed.html: Added.
* web-platform-tests/css/css-box/parsing/clear-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/clear-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/clear-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/clear-valid.html: Added.
* web-platform-tests/css/css-box/parsing/float-computed-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/float-computed.html: Added.
* web-platform-tests/css/css-box/parsing/float-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/float-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/float-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/float-valid.html: Added.
* web-platform-tests/css/css-box/parsing/height-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/height-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/height-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/height-valid.html: Added.
* web-platform-tests/css/css-box/parsing/margin-computed-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/margin-computed.html: Added.
* web-platform-tests/css/css-box/parsing/margin-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/margin-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/margin-shorthand-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/margin-shorthand.html: Added.
* web-platform-tests/css/css-box/parsing/margin-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/margin-valid.html: Added.
* web-platform-tests/css/css-box/parsing/max-height-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/max-height-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/max-height-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/max-height-valid.html: Added.
* web-platform-tests/css/css-box/parsing/max-width-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/max-width-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/max-width-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/max-width-valid.html: Added.
* web-platform-tests/css/css-box/parsing/min-height-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/min-height-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/min-height-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/min-height-valid.html: Added.
* web-platform-tests/css/css-box/parsing/min-width-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/min-width-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/min-width-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/min-width-valid.html: Added.
* web-platform-tests/css/css-box/parsing/overflow-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/overflow-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/overflow-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/overflow-valid.html: Added.
* web-platform-tests/css/css-box/parsing/padding-computed-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/padding-computed.html: Added.
* web-platform-tests/css/css-box/parsing/padding-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/padding-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/padding-shorthand-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/padding-shorthand.html: Added.
* web-platform-tests/css/css-box/parsing/padding-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/padding-valid.html: Added.
* web-platform-tests/css/css-box/parsing/visibility-computed-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/visibility-computed.html: Added.
* web-platform-tests/css/css-box/parsing/visibility-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/visibility-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/visibility-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/visibility-valid.html: Added.
* web-platform-tests/css/css-box/parsing/w3c-import.log: Added.
* web-platform-tests/css/css-box/parsing/width-invalid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/width-invalid.html: Added.
* web-platform-tests/css/css-box/parsing/width-valid-expected.txt: Added.
* web-platform-tests/css/css-box/parsing/width-valid.html: Added.
* web-platform-tests/css/css-box/w3c-import.log: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251738 268f45cc-cd09-0410-ab3c-d52691b4dbfc

76 files changed:
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/resources/import-expectations.json
LayoutTests/imported/w3c/web-platform-tests/css/css-box/META.yml [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/w3c-import.log [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid-expected.txt [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid.html [new file with mode: 0644]
LayoutTests/imported/w3c/web-platform-tests/css/css-box/w3c-import.log [new file with mode: 0644]

index f54e059..226d07c 100644 (file)
@@ -1,5 +1,88 @@
 2019-10-29  Simon Fraser  <simon.fraser@apple.com>
 
+        Import css/css-box WPT
+        https://bugs.webkit.org/show_bug.cgi?id=203584
+
+        Reviewed by Tim Horton.
+
+        * resources/import-expectations.json:
+        * web-platform-tests/css/css-box/META.yml: Added.
+        * web-platform-tests/css/css-box/animation/margin-interpolation-expected.txt: Added.
+        * web-platform-tests/css/css-box/animation/margin-interpolation.html: Added.
+        * web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt: Added.
+        * web-platform-tests/css/css-box/animation/padding-interpolation.html: Added.
+        * web-platform-tests/css/css-box/animation/w3c-import.log: Added.
+        * web-platform-tests/css/css-box/box-chrome-crash-001-expected.txt: Added.
+        * web-platform-tests/css/css-box/box-chrome-crash-001.html: Added.
+        * web-platform-tests/css/css-box/inheritance-expected.txt: Added.
+        * web-platform-tests/css/css-box/inheritance.html: Added.
+        * web-platform-tests/css/css-box/parsing/clear-computed-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/clear-computed.html: Added.
+        * web-platform-tests/css/css-box/parsing/clear-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/clear-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/clear-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/clear-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/float-computed-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/float-computed.html: Added.
+        * web-platform-tests/css/css-box/parsing/float-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/float-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/float-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/float-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/height-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/height-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/height-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/height-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/margin-computed-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/margin-computed.html: Added.
+        * web-platform-tests/css/css-box/parsing/margin-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/margin-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/margin-shorthand-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/margin-shorthand.html: Added.
+        * web-platform-tests/css/css-box/parsing/margin-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/margin-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/max-height-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/max-height-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/max-height-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/max-height-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/max-width-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/max-width-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/max-width-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/max-width-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/min-height-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/min-height-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/min-height-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/min-height-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/min-width-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/min-width-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/min-width-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/min-width-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/overflow-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/overflow-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/overflow-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/overflow-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/padding-computed-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/padding-computed.html: Added.
+        * web-platform-tests/css/css-box/parsing/padding-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/padding-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/padding-shorthand-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/padding-shorthand.html: Added.
+        * web-platform-tests/css/css-box/parsing/padding-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/padding-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/visibility-computed-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/visibility-computed.html: Added.
+        * web-platform-tests/css/css-box/parsing/visibility-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/visibility-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/visibility-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/visibility-valid.html: Added.
+        * web-platform-tests/css/css-box/parsing/w3c-import.log: Added.
+        * web-platform-tests/css/css-box/parsing/width-invalid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/width-invalid.html: Added.
+        * web-platform-tests/css/css-box/parsing/width-valid-expected.txt: Added.
+        * web-platform-tests/css/css-box/parsing/width-valid.html: Added.
+        * web-platform-tests/css/css-box/w3c-import.log: Added.
+
+2019-10-29  Simon Fraser  <simon.fraser@apple.com>
+
         Update css/css-multicol WPT
         https://bugs.webkit.org/show_bug.cgi?id=203551
 
index 3e47834..0c22009 100644 (file)
@@ -1,5 +1,6 @@
 {
     "apng": "import", 
+    "css/css-box": "import", 
     "css/css-multicol": "import", 
     "css/css-position": "import", 
     "css/css-shapes": "import", 
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/META.yml b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/META.yml
new file mode 100644 (file)
index 0000000..dde4093
--- /dev/null
@@ -0,0 +1,5 @@
+spec: https://drafts.csswg.org/css-box/
+suggested_reviewers:
+  - dbaron
+  - dholbert
+  - mstensho
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..70c0367
--- /dev/null
@@ -0,0 +1,146 @@
+
+PASS CSS Transitions: property <margin> from neutral to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions: property <margin> from neutral to [20px] at (0) should be [30px] 
+PASS CSS Transitions: property <margin> from neutral to [20px] at (0.3) should be [27px] 
+PASS CSS Transitions: property <margin> from neutral to [20px] at (0.6) should be [24px] 
+PASS CSS Transitions: property <margin> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <margin> from neutral to [20px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <margin> from neutral to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions with transition: all: property <margin> from neutral to [20px] at (0) should be [30px] 
+PASS CSS Transitions with transition: all: property <margin> from neutral to [20px] at (0.3) should be [27px] 
+PASS CSS Transitions with transition: all: property <margin> from neutral to [20px] at (0.6) should be [24px] 
+PASS CSS Transitions with transition: all: property <margin> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <margin> from neutral to [20px] at (1.5) should be [15px] 
+PASS CSS Animations: property <margin> from neutral to [20px] at (-0.3) should be [33px] 
+PASS CSS Animations: property <margin> from neutral to [20px] at (0) should be [30px] 
+PASS CSS Animations: property <margin> from neutral to [20px] at (0.3) should be [27px] 
+PASS CSS Animations: property <margin> from neutral to [20px] at (0.6) should be [24px] 
+PASS CSS Animations: property <margin> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <margin> from neutral to [20px] at (1.5) should be [15px] 
+PASS Web Animations: property <margin> from neutral to [20px] at (-0.3) should be [33px] 
+FAIL Web Animations: property <margin> from neutral to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "33px "
+FAIL Web Animations: property <margin> from neutral to [20px] at (0.3) should be [27px] assert_equals: expected "27px " but got "29.1px "
+FAIL Web Animations: property <margin> from neutral to [20px] at (0.6) should be [24px] assert_equals: expected "24px " but got "23.64px "
+PASS Web Animations: property <margin> from neutral to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <margin> from neutral to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "20px "
+PASS CSS Transitions: property <margin> from [initial] to [20px] at (-0.3) should be [-6px] 
+PASS CSS Transitions: property <margin> from [initial] to [20px] at (0) should be [0px] 
+PASS CSS Transitions: property <margin> from [initial] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions: property <margin> from [initial] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions: property <margin> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <margin> from [initial] to [20px] at (1.5) should be [30px] 
+PASS CSS Transitions with transition: all: property <margin> from [initial] to [20px] at (-0.3) should be [-6px] 
+PASS CSS Transitions with transition: all: property <margin> from [initial] to [20px] at (0) should be [0px] 
+PASS CSS Transitions with transition: all: property <margin> from [initial] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions with transition: all: property <margin> from [initial] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions with transition: all: property <margin> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <margin> from [initial] to [20px] at (1.5) should be [30px] 
+PASS CSS Animations: property <margin> from [initial] to [20px] at (-0.3) should be [-6px] 
+PASS CSS Animations: property <margin> from [initial] to [20px] at (0) should be [0px] 
+PASS CSS Animations: property <margin> from [initial] to [20px] at (0.3) should be [6px] 
+PASS CSS Animations: property <margin> from [initial] to [20px] at (0.6) should be [12px] 
+PASS CSS Animations: property <margin> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <margin> from [initial] to [20px] at (1.5) should be [30px] 
+PASS Web Animations: property <margin> from [initial] to [20px] at (-0.3) should be [-6px] 
+PASS Web Animations: property <margin> from [initial] to [20px] at (0) should be [0px] 
+PASS Web Animations: property <margin> from [initial] to [20px] at (0.3) should be [6px] 
+PASS Web Animations: property <margin> from [initial] to [20px] at (0.6) should be [12px] 
+PASS Web Animations: property <margin> from [initial] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <margin> from [initial] to [20px] at (1.5) should be [30px] 
+PASS CSS Transitions: property <margin> from [inherit] to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions: property <margin> from [inherit] to [20px] at (0) should be [10px] 
+PASS CSS Transitions: property <margin> from [inherit] to [20px] at (0.3) should be [13px] 
+PASS CSS Transitions: property <margin> from [inherit] to [20px] at (0.6) should be [16px] 
+PASS CSS Transitions: property <margin> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <margin> from [inherit] to [20px] at (1.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <margin> from [inherit] to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions with transition: all: property <margin> from [inherit] to [20px] at (0) should be [10px] 
+PASS CSS Transitions with transition: all: property <margin> from [inherit] to [20px] at (0.3) should be [13px] 
+PASS CSS Transitions with transition: all: property <margin> from [inherit] to [20px] at (0.6) should be [16px] 
+PASS CSS Transitions with transition: all: property <margin> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <margin> from [inherit] to [20px] at (1.5) should be [25px] 
+FAIL CSS Animations: property <margin> from [inherit] to [20px] at (-0.3) should be [7px] assert_equals: expected "7px " but got "33px "
+FAIL CSS Animations: property <margin> from [inherit] to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "30px "
+FAIL CSS Animations: property <margin> from [inherit] to [20px] at (0.3) should be [13px] assert_equals: expected "13px " but got "27px "
+FAIL CSS Animations: property <margin> from [inherit] to [20px] at (0.6) should be [16px] assert_equals: expected "16px " but got "24px "
+PASS CSS Animations: property <margin> from [inherit] to [20px] at (1) should be [20px] 
+FAIL CSS Animations: property <margin> from [inherit] to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "15px "
+FAIL Web Animations: property <margin> from [inherit] to [20px] at (-0.3) should be [7px] assert_equals: expected "7px " but got "33px "
+FAIL Web Animations: property <margin> from [inherit] to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "33px "
+FAIL Web Animations: property <margin> from [inherit] to [20px] at (0.3) should be [13px] assert_equals: expected "13px " but got "29.1px "
+FAIL Web Animations: property <margin> from [inherit] to [20px] at (0.6) should be [16px] assert_equals: expected "16px " but got "23.64px "
+PASS Web Animations: property <margin> from [inherit] to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <margin> from [inherit] to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "20px "
+PASS CSS Transitions: property <margin> from [unset] to [20px] at (-0.3) should be [-6px] 
+PASS CSS Transitions: property <margin> from [unset] to [20px] at (0) should be [0px] 
+PASS CSS Transitions: property <margin> from [unset] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions: property <margin> from [unset] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions: property <margin> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <margin> from [unset] to [20px] at (1.5) should be [30px] 
+PASS CSS Transitions with transition: all: property <margin> from [unset] to [20px] at (-0.3) should be [-6px] 
+PASS CSS Transitions with transition: all: property <margin> from [unset] to [20px] at (0) should be [0px] 
+PASS CSS Transitions with transition: all: property <margin> from [unset] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions with transition: all: property <margin> from [unset] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions with transition: all: property <margin> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <margin> from [unset] to [20px] at (1.5) should be [30px] 
+PASS CSS Animations: property <margin> from [unset] to [20px] at (-0.3) should be [-6px] 
+PASS CSS Animations: property <margin> from [unset] to [20px] at (0) should be [0px] 
+PASS CSS Animations: property <margin> from [unset] to [20px] at (0.3) should be [6px] 
+PASS CSS Animations: property <margin> from [unset] to [20px] at (0.6) should be [12px] 
+PASS CSS Animations: property <margin> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <margin> from [unset] to [20px] at (1.5) should be [30px] 
+PASS Web Animations: property <margin> from [unset] to [20px] at (-0.3) should be [-6px] 
+PASS Web Animations: property <margin> from [unset] to [20px] at (0) should be [0px] 
+PASS Web Animations: property <margin> from [unset] to [20px] at (0.3) should be [6px] 
+PASS Web Animations: property <margin> from [unset] to [20px] at (0.6) should be [12px] 
+PASS Web Animations: property <margin> from [unset] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <margin> from [unset] to [20px] at (1.5) should be [30px] 
+PASS CSS Transitions: property <margin> from [0px] to [10px] at (-0.3) should be [-3px] 
+PASS CSS Transitions: property <margin> from [0px] to [10px] at (0) should be [0px] 
+PASS CSS Transitions: property <margin> from [0px] to [10px] at (0.3) should be [3px] 
+PASS CSS Transitions: property <margin> from [0px] to [10px] at (0.6) should be [6px] 
+PASS CSS Transitions: property <margin> from [0px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions: property <margin> from [0px] to [10px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <margin> from [0px] to [10px] at (-0.3) should be [-3px] 
+PASS CSS Transitions with transition: all: property <margin> from [0px] to [10px] at (0) should be [0px] 
+PASS CSS Transitions with transition: all: property <margin> from [0px] to [10px] at (0.3) should be [3px] 
+PASS CSS Transitions with transition: all: property <margin> from [0px] to [10px] at (0.6) should be [6px] 
+PASS CSS Transitions with transition: all: property <margin> from [0px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions with transition: all: property <margin> from [0px] to [10px] at (1.5) should be [15px] 
+PASS CSS Animations: property <margin> from [0px] to [10px] at (-0.3) should be [-3px] 
+PASS CSS Animations: property <margin> from [0px] to [10px] at (0) should be [0px] 
+PASS CSS Animations: property <margin> from [0px] to [10px] at (0.3) should be [3px] 
+PASS CSS Animations: property <margin> from [0px] to [10px] at (0.6) should be [6px] 
+PASS CSS Animations: property <margin> from [0px] to [10px] at (1) should be [10px] 
+PASS CSS Animations: property <margin> from [0px] to [10px] at (1.5) should be [15px] 
+PASS Web Animations: property <margin> from [0px] to [10px] at (-0.3) should be [-3px] 
+PASS Web Animations: property <margin> from [0px] to [10px] at (0) should be [0px] 
+PASS Web Animations: property <margin> from [0px] to [10px] at (0.3) should be [3px] 
+PASS Web Animations: property <margin> from [0px] to [10px] at (0.6) should be [6px] 
+PASS Web Animations: property <margin> from [0px] to [10px] at (1) should be [10px] 
+PASS Web Animations: property <margin> from [0px] to [10px] at (1.5) should be [15px] 
+PASS CSS Transitions: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS CSS Transitions: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS CSS Transitions: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS CSS Transitions: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS CSS Transitions: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS CSS Transitions: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+PASS CSS Transitions with transition: all: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS CSS Transitions with transition: all: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS CSS Transitions with transition: all: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS CSS Transitions with transition: all: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS CSS Transitions with transition: all: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS CSS Transitions with transition: all: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+PASS CSS Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS CSS Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS CSS Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS CSS Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS CSS Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS CSS Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+PASS Web Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS Web Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS Web Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS Web Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS Web Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS Web Animations: property <margin> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation.html
new file mode 100644 (file)
index 0000000..088836c
--- /dev/null
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>margin interpolation</title>
+<link rel="help" href="https://www.w3.org/TR/CSS2/box.html#margin-properties">
+<meta name="assert" content="margin supports animation">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  margin: 10px;
+  border: solid;
+  display: inline-block;
+}
+
+.target {
+  width: 40px;
+  height: 40px;
+  background-color: black;
+  display: inline-block;
+  margin: 30px;
+  opacity: 0.5;
+}
+
+.expected {
+  background-color: green;
+}
+</style>
+
+<body>
+<template id="target-template">
+  <div>
+    <div class="target"></div>
+  </div>
+</template>
+
+<script>
+test_interpolation({
+  property: 'margin',
+  from: neutralKeyframe,
+  to: '20px',
+}, [
+  {at: -0.3, expect: '33px'},
+  {at: 0, expect: '30px'},
+  {at: 0.3, expect: '27px'},
+  {at: 0.6, expect: '24px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '15px'},
+]);
+
+test_interpolation({
+  property: 'margin',
+  from: 'initial',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '-6px'},
+  {at: 0, expect: '0px'},
+  {at: 0.3, expect: '6px'},
+  {at: 0.6, expect: '12px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '30px'},
+]);
+
+test_interpolation({
+  property: 'margin',
+  from: 'inherit',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '7px'},
+  {at: 0, expect: '10px'},
+  {at: 0.3, expect: '13px'},
+  {at: 0.6, expect: '16px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '25px'},
+]);
+
+test_interpolation({
+  property: 'margin',
+  from: 'unset',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '-6px'},
+  {at: 0, expect: '0px'},
+  {at: 0.3, expect: '6px'},
+  {at: 0.6, expect: '12px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '30px'},
+]);
+
+test_interpolation({
+  property: 'margin',
+  from: '0px',
+  to: '10px'
+}, [
+  {at: -0.3, expect: '-3px'},
+  {at: 0, expect: '0px'},
+  {at: 0.3, expect: '3px'},
+  {at: 0.6, expect: '6px'},
+  {at: 1, expect: '10px'},
+  {at: 1.5, expect: '15px'}
+]);
+
+test_interpolation({
+  property: 'margin',
+  from: '20px 40px 60px 80px',
+  to: '30px 50px 70px 90px'
+}, [
+  {at: -0.3, expect: '17px 37px 57px 77px'},
+  {at: 0, expect: '20px 40px 60px 80px'},
+  {at: 0.3, expect: '23px 43px 63px 83px'},
+  {at: 0.6, expect: '26px 46px 66px 86px'},
+  {at: 1, expect: '30px 50px 70px 90px'},
+  {at: 1.5, expect: '35px 55px 75px 95px'}
+]);
+</script>
+</body>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt
new file mode 100644 (file)
index 0000000..cdb7a28
--- /dev/null
@@ -0,0 +1,146 @@
+
+PASS CSS Transitions: property <padding> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions: property <padding> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions: property <padding> from neutral to [20px] at (0.3) should be [13px] 
+PASS CSS Transitions: property <padding> from neutral to [20px] at (0.6) should be [16px] 
+PASS CSS Transitions: property <padding> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <padding> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Transitions with transition: all: property <padding> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Transitions with transition: all: property <padding> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Transitions with transition: all: property <padding> from neutral to [20px] at (0.3) should be [13px] 
+PASS CSS Transitions with transition: all: property <padding> from neutral to [20px] at (0.6) should be [16px] 
+PASS CSS Transitions with transition: all: property <padding> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <padding> from neutral to [20px] at (1.5) should be [25px] 
+PASS CSS Animations: property <padding> from neutral to [20px] at (-0.3) should be [7px] 
+PASS CSS Animations: property <padding> from neutral to [20px] at (0) should be [10px] 
+PASS CSS Animations: property <padding> from neutral to [20px] at (0.3) should be [13px] 
+PASS CSS Animations: property <padding> from neutral to [20px] at (0.6) should be [16px] 
+PASS CSS Animations: property <padding> from neutral to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <padding> from neutral to [20px] at (1.5) should be [25px] 
+PASS Web Animations: property <padding> from neutral to [20px] at (-0.3) should be [7px] 
+FAIL Web Animations: property <padding> from neutral to [20px] at (0) should be [10px] assert_equals: expected "10px " but got "7px "
+FAIL Web Animations: property <padding> from neutral to [20px] at (0.3) should be [13px] assert_equals: expected "13px " but got "10.9px "
+FAIL Web Animations: property <padding> from neutral to [20px] at (0.6) should be [16px] assert_equals: expected "16px " but got "16.36px "
+PASS Web Animations: property <padding> from neutral to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <padding> from neutral to [20px] at (1.5) should be [25px] assert_equals: expected "25px " but got "20px "
+FAIL CSS Transitions: property <padding> from [initial] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS CSS Transitions: property <padding> from [initial] to [20px] at (0) should be [0px] 
+PASS CSS Transitions: property <padding> from [initial] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions: property <padding> from [initial] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions: property <padding> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <padding> from [initial] to [20px] at (1.5) should be [30px] 
+FAIL CSS Transitions with transition: all: property <padding> from [initial] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS CSS Transitions with transition: all: property <padding> from [initial] to [20px] at (0) should be [0px] 
+PASS CSS Transitions with transition: all: property <padding> from [initial] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions with transition: all: property <padding> from [initial] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions with transition: all: property <padding> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <padding> from [initial] to [20px] at (1.5) should be [30px] 
+FAIL CSS Animations: property <padding> from [initial] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS CSS Animations: property <padding> from [initial] to [20px] at (0) should be [0px] 
+PASS CSS Animations: property <padding> from [initial] to [20px] at (0.3) should be [6px] 
+PASS CSS Animations: property <padding> from [initial] to [20px] at (0.6) should be [12px] 
+PASS CSS Animations: property <padding> from [initial] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <padding> from [initial] to [20px] at (1.5) should be [30px] 
+FAIL Web Animations: property <padding> from [initial] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS Web Animations: property <padding> from [initial] to [20px] at (0) should be [0px] 
+PASS Web Animations: property <padding> from [initial] to [20px] at (0.3) should be [6px] 
+PASS Web Animations: property <padding> from [initial] to [20px] at (0.6) should be [12px] 
+PASS Web Animations: property <padding> from [initial] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <padding> from [initial] to [20px] at (1.5) should be [30px] 
+PASS CSS Transitions: property <padding> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions: property <padding> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions: property <padding> from [inherit] to [20px] at (0.3) should be [27px] 
+PASS CSS Transitions: property <padding> from [inherit] to [20px] at (0.6) should be [24px] 
+PASS CSS Transitions: property <padding> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <padding> from [inherit] to [20px] at (1.5) should be [15px] 
+PASS CSS Transitions with transition: all: property <padding> from [inherit] to [20px] at (-0.3) should be [33px] 
+PASS CSS Transitions with transition: all: property <padding> from [inherit] to [20px] at (0) should be [30px] 
+PASS CSS Transitions with transition: all: property <padding> from [inherit] to [20px] at (0.3) should be [27px] 
+PASS CSS Transitions with transition: all: property <padding> from [inherit] to [20px] at (0.6) should be [24px] 
+PASS CSS Transitions with transition: all: property <padding> from [inherit] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <padding> from [inherit] to [20px] at (1.5) should be [15px] 
+FAIL CSS Animations: property <padding> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL CSS Animations: property <padding> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "10px "
+FAIL CSS Animations: property <padding> from [inherit] to [20px] at (0.3) should be [27px] assert_equals: expected "27px " but got "13px "
+FAIL CSS Animations: property <padding> from [inherit] to [20px] at (0.6) should be [24px] assert_equals: expected "24px " but got "16px "
+PASS CSS Animations: property <padding> from [inherit] to [20px] at (1) should be [20px] 
+FAIL CSS Animations: property <padding> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "25px "
+FAIL Web Animations: property <padding> from [inherit] to [20px] at (-0.3) should be [33px] assert_equals: expected "33px " but got "7px "
+FAIL Web Animations: property <padding> from [inherit] to [20px] at (0) should be [30px] assert_equals: expected "30px " but got "7px "
+FAIL Web Animations: property <padding> from [inherit] to [20px] at (0.3) should be [27px] assert_equals: expected "27px " but got "10.9px "
+FAIL Web Animations: property <padding> from [inherit] to [20px] at (0.6) should be [24px] assert_equals: expected "24px " but got "16.36px "
+PASS Web Animations: property <padding> from [inherit] to [20px] at (1) should be [20px] 
+FAIL Web Animations: property <padding> from [inherit] to [20px] at (1.5) should be [15px] assert_equals: expected "15px " but got "20px "
+FAIL CSS Transitions: property <padding> from [unset] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS CSS Transitions: property <padding> from [unset] to [20px] at (0) should be [0px] 
+PASS CSS Transitions: property <padding> from [unset] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions: property <padding> from [unset] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions: property <padding> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions: property <padding> from [unset] to [20px] at (1.5) should be [30px] 
+FAIL CSS Transitions with transition: all: property <padding> from [unset] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS CSS Transitions with transition: all: property <padding> from [unset] to [20px] at (0) should be [0px] 
+PASS CSS Transitions with transition: all: property <padding> from [unset] to [20px] at (0.3) should be [6px] 
+PASS CSS Transitions with transition: all: property <padding> from [unset] to [20px] at (0.6) should be [12px] 
+PASS CSS Transitions with transition: all: property <padding> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Transitions with transition: all: property <padding> from [unset] to [20px] at (1.5) should be [30px] 
+FAIL CSS Animations: property <padding> from [unset] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS CSS Animations: property <padding> from [unset] to [20px] at (0) should be [0px] 
+PASS CSS Animations: property <padding> from [unset] to [20px] at (0.3) should be [6px] 
+PASS CSS Animations: property <padding> from [unset] to [20px] at (0.6) should be [12px] 
+PASS CSS Animations: property <padding> from [unset] to [20px] at (1) should be [20px] 
+PASS CSS Animations: property <padding> from [unset] to [20px] at (1.5) should be [30px] 
+FAIL Web Animations: property <padding> from [unset] to [20px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 6px "
+PASS Web Animations: property <padding> from [unset] to [20px] at (0) should be [0px] 
+PASS Web Animations: property <padding> from [unset] to [20px] at (0.3) should be [6px] 
+PASS Web Animations: property <padding> from [unset] to [20px] at (0.6) should be [12px] 
+PASS Web Animations: property <padding> from [unset] to [20px] at (1) should be [20px] 
+PASS Web Animations: property <padding> from [unset] to [20px] at (1.5) should be [30px] 
+FAIL CSS Transitions: property <padding> from [0px] to [10px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 3px "
+PASS CSS Transitions: property <padding> from [0px] to [10px] at (0) should be [0px] 
+PASS CSS Transitions: property <padding> from [0px] to [10px] at (0.3) should be [3px] 
+PASS CSS Transitions: property <padding> from [0px] to [10px] at (0.6) should be [6px] 
+PASS CSS Transitions: property <padding> from [0px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions: property <padding> from [0px] to [10px] at (1.5) should be [15px] 
+FAIL CSS Transitions with transition: all: property <padding> from [0px] to [10px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 3px "
+PASS CSS Transitions with transition: all: property <padding> from [0px] to [10px] at (0) should be [0px] 
+PASS CSS Transitions with transition: all: property <padding> from [0px] to [10px] at (0.3) should be [3px] 
+PASS CSS Transitions with transition: all: property <padding> from [0px] to [10px] at (0.6) should be [6px] 
+PASS CSS Transitions with transition: all: property <padding> from [0px] to [10px] at (1) should be [10px] 
+PASS CSS Transitions with transition: all: property <padding> from [0px] to [10px] at (1.5) should be [15px] 
+FAIL CSS Animations: property <padding> from [0px] to [10px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 3px "
+PASS CSS Animations: property <padding> from [0px] to [10px] at (0) should be [0px] 
+PASS CSS Animations: property <padding> from [0px] to [10px] at (0.3) should be [3px] 
+PASS CSS Animations: property <padding> from [0px] to [10px] at (0.6) should be [6px] 
+PASS CSS Animations: property <padding> from [0px] to [10px] at (1) should be [10px] 
+PASS CSS Animations: property <padding> from [0px] to [10px] at (1.5) should be [15px] 
+FAIL Web Animations: property <padding> from [0px] to [10px] at (-0.3) should be [0px] assert_equals: expected "0px " but got "- 3px "
+PASS Web Animations: property <padding> from [0px] to [10px] at (0) should be [0px] 
+PASS Web Animations: property <padding> from [0px] to [10px] at (0.3) should be [3px] 
+PASS Web Animations: property <padding> from [0px] to [10px] at (0.6) should be [6px] 
+PASS Web Animations: property <padding> from [0px] to [10px] at (1) should be [10px] 
+PASS Web Animations: property <padding> from [0px] to [10px] at (1.5) should be [15px] 
+PASS CSS Transitions: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS CSS Transitions: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS CSS Transitions: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS CSS Transitions: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS CSS Transitions: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS CSS Transitions: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+PASS CSS Transitions with transition: all: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS CSS Transitions with transition: all: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS CSS Transitions with transition: all: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS CSS Transitions with transition: all: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS CSS Transitions with transition: all: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS CSS Transitions with transition: all: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+PASS CSS Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS CSS Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS CSS Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS CSS Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS CSS Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS CSS Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+PASS Web Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (-0.3) should be [17px 37px 57px 77px] 
+PASS Web Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0) should be [20px 40px 60px 80px] 
+PASS Web Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.3) should be [23px 43px 63px 83px] 
+PASS Web Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (0.6) should be [26px 46px 66px 86px] 
+PASS Web Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1) should be [30px 50px 70px 90px] 
+PASS Web Animations: property <padding> from [20px 40px 60px 80px] to [30px 50px 70px 90px] at (1.5) should be [35px 55px 75px 95px] 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation.html
new file mode 100644 (file)
index 0000000..3bf2841
--- /dev/null
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>padding interpolation</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#padding-shorthand">
+<meta name="assert" content="padding supports animation as a list of lengths">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+  padding: 30px;
+}
+.target {
+  width: 1px;
+  height: 1px;
+  background-color: black;
+  display: inline-block;
+  padding: 10px;
+}
+.expected {
+  background-color: green;
+  margin-right: 10px;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+  property: 'padding',
+  from: neutralKeyframe,
+  to: '20px',
+}, [
+  {at: -0.3, expect: '7px'},
+  {at: 0, expect: '10px'},
+  {at: 0.3, expect: '13px'},
+  {at: 0.6, expect: '16px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '25px'},
+]);
+
+test_interpolation({
+  property: 'padding',
+  from: 'initial',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '0px'},
+  {at: 0, expect: '0px'},
+  {at: 0.3, expect: '6px'},
+  {at: 0.6, expect: '12px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '30px'},
+]);
+
+test_interpolation({
+  property: 'padding',
+  from: 'inherit',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '33px'},
+  {at: 0, expect: '30px'},
+  {at: 0.3, expect: '27px'},
+  {at: 0.6, expect: '24px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '15px'},
+]);
+
+test_interpolation({
+  property: 'padding',
+  from: 'unset',
+  to: '20px',
+}, [
+  {at: -0.3, expect: '0px'},
+  {at: 0, expect: '0px'},
+  {at: 0.3, expect: '6px'},
+  {at: 0.6, expect: '12px'},
+  {at: 1, expect: '20px'},
+  {at: 1.5, expect: '30px'},
+]);
+
+test_interpolation({
+  property: 'padding',
+  from: '0px',
+  to: '10px'
+}, [
+  {at: -0.3, expect: '0px'}, // CSS padding can't be negative.
+  {at: 0, expect: '0px'},
+  {at: 0.3, expect: '3px'},
+  {at: 0.6, expect: '6px'},
+  {at: 1, expect: '10px'},
+  {at: 1.5, expect: '15px'}
+]);
+
+test_interpolation({
+  property: 'padding',
+  from: '20px 40px 60px 80px',
+  to: '30px 50px 70px 90px'
+}, [
+  {at: -0.3, expect: '17px 37px 57px 77px'},
+  {at: 0, expect: '20px 40px 60px 80px'},
+  {at: 0.3, expect: '23px 43px 63px 83px'},
+  {at: 0.6, expect: '26px 46px 66px 86px'},
+  {at: 1, expect: '30px 50px 70px 90px'},
+  {at: 1.5, expect: '35px 55px 75px 95px'}
+]);
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/w3c-import.log
new file mode 100644 (file)
index 0000000..433068c
--- /dev/null
@@ -0,0 +1,18 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/margin-interpolation.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/animation/padding-interpolation.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001-expected.txt
new file mode 100644 (file)
index 0000000..264d001
--- /dev/null
@@ -0,0 +1,4 @@
+anon
+
+PASS test passes if it does not crash 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001.html
new file mode 100644 (file)
index 0000000..351df37
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<title>CSS Box: chrome crash</title>
+<link rel="author" href="mailto:atotic@google.com">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="help" href="https://crbug.com/967361">
+<meta name="assert" content="Chrome does not crash on narrow div with scrollbars.">
+<style>
+body  {
+  writing-mode: vertical-lr;
+}
+#target {
+  overflow-y: scroll;
+  max-height: 5px;
+  background: gray;
+}
+</style>
+<!--  -->
+<div>
+  <span>
+    <div id="container">
+      <div id="target">anon</div>
+    </div>
+  </span>
+</div>
+
+<script>
+test(() => {
+}, 'test passes if it does not crash');
+</script>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance-expected.txt
new file mode 100644 (file)
index 0000000..97be71a
--- /dev/null
@@ -0,0 +1,26 @@
+
+PASS Property clear has initial value none 
+PASS Property clear does not inherit 
+PASS Property float has initial value none 
+PASS Property float does not inherit 
+PASS Property margin-bottom has initial value 0px 
+PASS Property margin-bottom does not inherit 
+PASS Property margin-left has initial value 0px 
+PASS Property margin-left does not inherit 
+PASS Property margin-right has initial value 0px 
+PASS Property margin-right does not inherit 
+PASS Property margin-top has initial value 0px 
+PASS Property margin-top does not inherit 
+FAIL Property margin-trim has initial value none assert_true: margin-trim doesn't seem to be supported in the computed style expected true got false
+FAIL Property margin-trim does not inherit assert_true: expected true got false
+PASS Property padding-bottom has initial value 0px 
+PASS Property padding-bottom does not inherit 
+PASS Property padding-left has initial value 0px 
+PASS Property padding-left does not inherit 
+PASS Property padding-right has initial value 0px 
+PASS Property padding-right does not inherit 
+PASS Property padding-top has initial value 0px 
+PASS Property padding-top does not inherit 
+PASS Property visibility has initial value visible 
+PASS Property visibility inherits 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance.html
new file mode 100644 (file)
index 0000000..d18106f
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Inheritance of CSS Box Model properties</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#property-index">
+<link rel="help" href="https://www.w3.org/TR/CSS2/">
+<meta name="assert" content="Properties do not inherit.">
+<meta name="assert" content="length-percentage properties have initial value 0.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/inheritance-testcommon.js"></script>
+</head>
+<body>
+<div id="container">
+  <div id="target"></div>
+</div>
+<script>
+assert_not_inherited('clear', 'none', 'right');
+assert_not_inherited('float', 'none', 'right');
+
+assert_not_inherited('margin-bottom', '0px', '10px');
+assert_not_inherited('margin-left', '0px', '10px');
+assert_not_inherited('margin-right', '0px', '10px');
+assert_not_inherited('margin-top', '0px', '10px');
+assert_not_inherited('margin-trim', 'none', 'all');
+assert_not_inherited('padding-bottom', '0px', '10px');
+assert_not_inherited('padding-left', '0px', '10px');
+assert_not_inherited('padding-right', '0px', '10px');
+assert_not_inherited('padding-top', '0px', '10px');
+
+assert_inherited('visibility', 'visible', 'collapse');
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed-expected.txt
new file mode 100644 (file)
index 0000000..7a27de6
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS Property clear value 'none' computes to 'none' 
+PASS Property clear value 'left' computes to 'left' 
+PASS Property clear value 'right' computes to 'right' 
+PASS Property clear value 'both' computes to 'both' 
+FAIL Property clear value 'inline-start' computes to 'inline-start' assert_true: 'inline-start' is a supported value for clear. expected true got false
+FAIL Property clear value 'inline-end' computes to 'inline-end' assert_true: 'inline-end' is a supported value for clear. expected true got false
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed.html
new file mode 100644 (file)
index 0000000..9571cb7
--- /dev/null
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: getComputedStyle().clear</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-clear">
+<link rel="help" href="https://drafts.csswg.org/css-logical/#float-clear">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("clear", "none");
+test_computed_value("clear", "left");
+test_computed_value("clear", "right");
+test_computed_value("clear", "both");
+
+test_computed_value("clear", "inline-start");
+test_computed_value("clear", "inline-end");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid-expected.txt
new file mode 100644 (file)
index 0000000..e1aa283
--- /dev/null
@@ -0,0 +1,4 @@
+
+PASS e.style['clear'] = "auto" should not set the property value 
+PASS e.style['clear'] = "left right" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid.html
new file mode 100644 (file)
index 0000000..38d1821
--- /dev/null
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing clear with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-clear">
+<meta name="assert" content="clear supports only the grammar 'none | left | right | both'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("clear", "auto");
+test_invalid_value("clear", "left right");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid-expected.txt
new file mode 100644 (file)
index 0000000..cf31362
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS e.style['clear'] = "none" should set the property value 
+PASS e.style['clear'] = "left" should set the property value 
+PASS e.style['clear'] = "right" should set the property value 
+PASS e.style['clear'] = "both" should set the property value 
+FAIL e.style['clear'] = "inline-start" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['clear'] = "inline-end" should set the property value assert_not_equals: property should be set got disallowed value ""
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid.html
new file mode 100644 (file)
index 0000000..fc1947f
--- /dev/null
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing clear with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-clear">
+<link rel="help" href="https://drafts.csswg.org/css-logical/#float-clear">
+<meta name="assert" content="clear supports the full grammar 'none | left | right | both'.">
+<meta name="assert" content="clear also supports inline-start and inline-end.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("clear", "none");
+test_valid_value("clear", "left");
+test_valid_value("clear", "right");
+test_valid_value("clear", "both");
+
+test_valid_value("clear", "inline-start");
+test_valid_value("clear", "inline-end");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed-expected.txt
new file mode 100644 (file)
index 0000000..cae4df3
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS Property float value 'none' computes to 'none' 
+PASS Property float value 'left' computes to 'left' 
+PASS Property float value 'right' computes to 'right' 
+FAIL Property float value 'inline-start' computes to 'inline-start' assert_true: 'inline-start' is a supported value for float. expected true got false
+FAIL Property float value 'inline-end' computes to 'inline-end' assert_true: 'inline-end' is a supported value for float. expected true got false
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed.html
new file mode 100644 (file)
index 0000000..9d680e1
--- /dev/null
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: getComputedStyle().float</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-float">
+<link rel="help" href="https://drafts.csswg.org/css-logical/#float-clear">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("float", "none");
+test_computed_value("float", "left");
+test_computed_value("float", "right");
+
+test_computed_value("float", "inline-start");
+test_computed_value("float", "inline-end");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid-expected.txt
new file mode 100644 (file)
index 0000000..611e26f
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['float'] = "auto" should not set the property value 
+PASS e.style['float'] = "right bottom" should not set the property value 
+PASS e.style['float'] = "top, left" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid.html
new file mode 100644 (file)
index 0000000..c11f4e2
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing float with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-float">
+<meta name="assert" content="float supports only the grammar 'left | right | top | bottom | start | end | none | <page-floats>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("float", "auto");
+test_invalid_value("float", "right bottom");
+test_invalid_value("float", "top, left");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid-expected.txt
new file mode 100644 (file)
index 0000000..7ae2d8e
--- /dev/null
@@ -0,0 +1,7 @@
+
+PASS e.style['float'] = "left" should set the property value 
+PASS e.style['float'] = "right" should set the property value 
+PASS e.style['float'] = "none" should set the property value 
+FAIL e.style['float'] = "inline-start" should set the property value assert_not_equals: property should be set got disallowed value ""
+FAIL e.style['float'] = "inline-end" should set the property value assert_not_equals: property should be set got disallowed value ""
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid.html
new file mode 100644 (file)
index 0000000..32cf7ed
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing float with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-float">
+<link rel="help" href="https://drafts.csswg.org/css-logical/#float-clear">
+<meta name="assert" content="float supports the full grammar 'left | right | top | bottom | start | end | none | <page-floats>'.">
+<meta name="assert" content="float supports 'inline-start | inline-end'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("float", "left");
+test_valid_value("float", "right");
+test_valid_value("float", "none");
+
+test_valid_value("float", "inline-start");
+test_valid_value("float", "inline-end");
+
+// The following are not yet supported by browsers:
+// test_valid_value("float", "top");
+// test_valid_value("float", "bottom");
+// test_valid_value("float", "start"); // not permitted in https://drafts.csswg.org/css-page-floats/#float-property
+// test_valid_value("float", "end"); // not permitted in https://drafts.csswg.org/css-page-floats/#float-property
+
+// Page floats are now defined in
+// https://drafts.csswg.org/css-page-floats/#float-property
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid-expected.txt
new file mode 100644 (file)
index 0000000..316e57b
--- /dev/null
@@ -0,0 +1,12 @@
+
+PASS e.style['height'] = "none" should not set the property value 
+PASS e.style['height'] = "min-content available" should not set the property value 
+PASS e.style['height'] = "max-content 10px" should not set the property value 
+PASS e.style['height'] = "20% available" should not set the property value 
+PASS e.style['height'] = "-10px" should not set the property value 
+PASS e.style['height'] = "-20%" should not set the property value 
+PASS e.style['height'] = "60" should not set the property value 
+PASS e.style['height'] = "10px 20%" should not set the property value 
+PASS e.style['height'] = "10px border-box" should not set the property value 
+PASS e.style['height'] = "content-box 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid.html
new file mode 100644 (file)
index 0000000..dcd4d1a
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing height with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-height">
+<meta name="assert" content="height supports only the grammar '[<length> | <percentage>] | available | min-content | max-content | fit-content | complex | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("height", "none");
+
+test_invalid_value("height", "min-content available");
+test_invalid_value("height", "max-content 10px");
+test_invalid_value("height", "20% available");
+
+test_invalid_value("height", "-10px");
+test_invalid_value("height", "-20%");
+test_invalid_value("height", "60");
+test_invalid_value("height", "10px 20%");
+
+test_invalid_value("height", "10px border-box");
+test_invalid_value("height", "content-box 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid-expected.txt
new file mode 100644 (file)
index 0000000..83f093c
--- /dev/null
@@ -0,0 +1,9 @@
+
+PASS e.style['height'] = "auto" should set the property value 
+PASS e.style['height'] = "10px" should set the property value 
+PASS e.style['height'] = "20%" should set the property value 
+PASS e.style['height'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['height'] = "min-content" should set the property value 
+PASS e.style['height'] = "max-content" should set the property value 
+PASS e.style['height'] = "fit-content" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid.html
new file mode 100644 (file)
index 0000000..7cc09a5
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing height with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-height">
+<meta name="assert" content="height supports the full grammar '[<length> | <percentage>] | available | min-content | max-content | fit-content | complex | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("height", "auto");
+
+test_valid_value("height", "10px");
+test_valid_value("height", "20%");
+test_valid_value("height", "calc(2em + 3ex)");
+
+test_valid_value("height", "min-content");
+test_valid_value("height", "max-content");
+test_valid_value("height", "fit-content");
+
+// The following are not yet supported by browsers:
+// test_valid_value("height", "available");
+// test_valid_value("height", "complex");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed-expected.txt
new file mode 100644 (file)
index 0000000..9e3442f
--- /dev/null
@@ -0,0 +1,10 @@
+
+PASS Property margin value '10px' computes to '10px' 
+PASS Property margin value '10px 20px 30px 40px' computes to '10px 20px 30px 40px' 
+PASS Property margin value 'calc(0.5em + 10px)' computes to '30px' 
+PASS Property margin value '30%' computes to '60px' 
+PASS Property margin-top value '10px' computes to '10px' 
+PASS Property margin-right value '20px' computes to '20px' 
+PASS Property margin-bottom value '30px' computes to '30px' 
+PASS Property margin-left value '40px' computes to '40px' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed.html
new file mode 100644 (file)
index 0000000..6c3b321
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: getComputedStyle().margin</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-margin">
+<meta name="assert" content="margin computed value has absolute lengths.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+  #parent {
+    width: 200px;
+  }
+  #target {
+    width: 0px;
+    font-size: 40px;
+  }
+</style>
+</head>
+<body>
+<div id="parent">
+  <div id="target"></div>
+</div>
+<script>
+const target = document.getElementById("target");
+
+test_computed_value("margin", "10px");
+test_computed_value("margin", "10px 20px 30px 40px");
+test_computed_value("margin", "calc(0.5em + 10px)", "30px");
+test_computed_value("margin", "30%", "60px");
+
+// Since what should the margin be in presence of other margins is a bit
+// unclear (https://github.com/w3c/csswg-drafts/issues/2328), reset the margin
+// before testing.
+target.style.margin = "0";
+test_computed_value("margin-top", "10px");
+target.style.margin = "0";
+test_computed_value("margin-right", "20px");
+target.style.margin = "0";
+test_computed_value("margin-bottom", "30px");
+target.style.margin = "0";
+test_computed_value("margin-left", "40px");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid-expected.txt
new file mode 100644 (file)
index 0000000..cca7757
--- /dev/null
@@ -0,0 +1,9 @@
+
+PASS e.style['margin'] = "available" should not set the property value 
+PASS e.style['margin'] = "10px border-box" should not set the property value 
+PASS e.style['margin'] = "1% 2% 3% 4% 5%" should not set the property value 
+PASS e.style['margin-top'] = "calc(2em + 3ex) auto" should not set the property value 
+PASS e.style['margin-right'] = "auto calc(2em + 3ex) 20%" should not set the property value 
+PASS e.style['margin-bottom'] = "10px 20% calc(2em + 3ex) auto" should not set the property value 
+PASS e.style['margin-bottom-left'] = "none" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid.html
new file mode 100644 (file)
index 0000000..7700917
--- /dev/null
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing margin with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-margin">
+<meta name="assert" content="margin supports only the grammar '[ <length> | <percentage> | auto]{1,4}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("margin", "available");
+test_invalid_value("margin", "10px border-box");
+test_invalid_value("margin", "1% 2% 3% 4% 5%");
+
+test_invalid_value("margin-top", "calc(2em + 3ex) auto");
+test_invalid_value("margin-right", "auto calc(2em + 3ex) 20%");
+test_invalid_value("margin-bottom", "10px 20% calc(2em + 3ex) auto");
+test_invalid_value("margin-bottom-left", "none");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand-expected.txt
new file mode 100644 (file)
index 0000000..7328948
--- /dev/null
@@ -0,0 +1,22 @@
+
+PASS e.style['margin'] = "1px 2px 3px 4px" should set margin-bottom 
+PASS e.style['margin'] = "1px 2px 3px 4px" should set margin-left 
+PASS e.style['margin'] = "1px 2px 3px 4px" should set margin-right 
+PASS e.style['margin'] = "1px 2px 3px 4px" should set margin-top 
+PASS e.style['margin'] = "1px 2px 3px 4px" should not set unrelated longhands 
+PASS e.style['margin'] = "1px 2px 3px" should set margin-bottom 
+PASS e.style['margin'] = "1px 2px 3px" should set margin-left 
+PASS e.style['margin'] = "1px 2px 3px" should set margin-right 
+PASS e.style['margin'] = "1px 2px 3px" should set margin-top 
+PASS e.style['margin'] = "1px 2px 3px" should not set unrelated longhands 
+PASS e.style['margin'] = "1px 2px" should set margin-bottom 
+PASS e.style['margin'] = "1px 2px" should set margin-left 
+PASS e.style['margin'] = "1px 2px" should set margin-right 
+PASS e.style['margin'] = "1px 2px" should set margin-top 
+PASS e.style['margin'] = "1px 2px" should not set unrelated longhands 
+PASS e.style['margin'] = "1px" should set margin-bottom 
+PASS e.style['margin'] = "1px" should set margin-left 
+PASS e.style['margin'] = "1px" should set margin-right 
+PASS e.style['margin'] = "1px" should set margin-top 
+PASS e.style['margin'] = "1px" should not set unrelated longhands 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand.html
new file mode 100644 (file)
index 0000000..2939279
--- /dev/null
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: margin sets longhands</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-margin">
+<meta name="assert" content="margin supports the full grammar '<length-percentage>{1,4}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/shorthand-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_shorthand_value('margin', '1px 2px 3px 4px', {
+  'margin-top': '1px',
+  'margin-right': '2px',
+  'margin-bottom': '3px',
+  'margin-left': '4px'
+});
+
+test_shorthand_value('margin', '1px 2px 3px', {
+  'margin-top': '1px',
+  'margin-right': '2px',
+  'margin-bottom': '3px',
+  'margin-left': '2px'
+});
+
+test_shorthand_value('margin', '1px 2px', {
+  'margin-top': '1px',
+  'margin-right': '2px',
+  'margin-bottom': '1px',
+  'margin-left': '2px'
+});
+
+test_shorthand_value('margin', '1px', {
+  'margin-top': '1px',
+  'margin-right': '1px',
+  'margin-bottom': '1px',
+  'margin-left': '1px'
+});
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid-expected.txt
new file mode 100644 (file)
index 0000000..2c6e46b
--- /dev/null
@@ -0,0 +1,17 @@
+
+PASS e.style['margin'] = "10px" should set the property value 
+PASS e.style['margin'] = "20%" should set the property value 
+PASS e.style['margin'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['margin'] = "auto" should set the property value 
+PASS e.style['margin'] = "-10px" should set the property value 
+PASS e.style['margin'] = "-20%" should set the property value 
+PASS e.style['margin'] = "calc(2em + 3ex) auto" should set the property value 
+PASS e.style['margin'] = "auto calc(2em + 3ex) 20%" should set the property value 
+PASS e.style['margin'] = "10px 20% calc(2em + 3ex) auto" should set the property value 
+PASS e.style['margin-top'] = "10px" should set the property value 
+PASS e.style['margin-right'] = "20%" should set the property value 
+PASS e.style['margin-bottom'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['margin-left'] = "auto" should set the property value 
+PASS e.style['margin-top'] = "-10px" should set the property value 
+PASS e.style['margin-right'] = "-20%" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid.html
new file mode 100644 (file)
index 0000000..154aa2d
--- /dev/null
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing margin with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-margin">
+<meta name="assert" content="margin supports the full grammar '[ <length> | <percentage> | auto]{1,4}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("margin", "10px");
+test_valid_value("margin", "20%");
+test_valid_value("margin", "calc(2em + 3ex)");
+test_valid_value("margin", "auto");
+test_valid_value("margin", "-10px");
+test_valid_value("margin", "-20%");
+
+test_valid_value("margin", "calc(2em + 3ex) auto");
+test_valid_value("margin", "auto calc(2em + 3ex) 20%");
+test_valid_value("margin", "10px 20% calc(2em + 3ex) auto");
+
+test_valid_value("margin-top", "10px");
+test_valid_value("margin-right", "20%");
+test_valid_value("margin-bottom", "calc(2em + 3ex)");
+test_valid_value("margin-left", "auto");
+test_valid_value("margin-top", "-10px");
+test_valid_value("margin-right", "-20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid-expected.txt
new file mode 100644 (file)
index 0000000..b5590c4
--- /dev/null
@@ -0,0 +1,14 @@
+
+PASS e.style['max-height'] = "complex" should not set the property value 
+PASS e.style['max-height'] = "auto" should not set the property value 
+PASS e.style['max-height'] = "none available" should not set the property value 
+PASS e.style['max-height'] = "max-content 10px" should not set the property value 
+PASS e.style['max-height'] = "20% available" should not set the property value 
+PASS e.style['max-height'] = "-10px" should not set the property value 
+PASS e.style['max-height'] = "-20%" should not set the property value 
+PASS e.style['max-height'] = "60" should not set the property value 
+PASS e.style['max-height'] = "10px 20%" should not set the property value 
+PASS e.style['max-height'] = "content-box border-box" should not set the property value 
+PASS e.style['max-height'] = "10px border-box 20%" should not set the property value 
+PASS e.style['max-height'] = "content-box 20% border-box" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid.html
new file mode 100644 (file)
index 0000000..aeb6e64
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing max-height with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-max-height">
+<meta name="assert" content="max-height supports only the grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content | none'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("max-height", "complex");
+test_invalid_value("max-height", "auto");
+test_invalid_value("max-height", "none available");
+test_invalid_value("max-height", "max-content 10px");
+test_invalid_value("max-height", "20% available");
+
+test_invalid_value("max-height", "-10px");
+test_invalid_value("max-height", "-20%");
+test_invalid_value("max-height", "60");
+test_invalid_value("max-height", "10px 20%");
+test_invalid_value("max-height", "content-box border-box");
+test_invalid_value("max-height", "10px border-box 20%");
+test_invalid_value("max-height", "content-box 20% border-box");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid-expected.txt
new file mode 100644 (file)
index 0000000..7c7c74c
--- /dev/null
@@ -0,0 +1,9 @@
+
+PASS e.style['max-height'] = "none" should set the property value 
+PASS e.style['max-height'] = "10px" should set the property value 
+PASS e.style['max-height'] = "20%" should set the property value 
+PASS e.style['max-height'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['max-height'] = "min-content" should set the property value 
+PASS e.style['max-height'] = "max-content" should set the property value 
+PASS e.style['max-height'] = "fit-content" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid.html
new file mode 100644 (file)
index 0000000..04880c4
--- /dev/null
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing max-height with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-max-height">
+<meta name="assert" content="max-height supports the full grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content | none'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("max-height", "none");
+
+test_valid_value("max-height", "10px");
+test_valid_value("max-height", "20%");
+test_valid_value("max-height", "calc(2em + 3ex)");
+
+test_valid_value("max-height", "min-content");
+test_valid_value("max-height", "max-content");
+test_valid_value("max-height", "fit-content");
+
+// The following are not yet supported by browsers:
+// test_valid_value("max-height", "available");
+// test_valid_value("max-height", "10px border-box");
+// test_valid_value("max-height", "content-box 20%", "20% content-box");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid-expected.txt
new file mode 100644 (file)
index 0000000..589b734
--- /dev/null
@@ -0,0 +1,14 @@
+
+PASS e.style['max-width'] = "complex" should not set the property value 
+PASS e.style['max-width'] = "auto" should not set the property value 
+PASS e.style['max-width'] = "none available" should not set the property value 
+PASS e.style['max-width'] = "max-content 10px" should not set the property value 
+PASS e.style['max-width'] = "20% available" should not set the property value 
+PASS e.style['max-width'] = "-10px" should not set the property value 
+PASS e.style['max-width'] = "-20%" should not set the property value 
+PASS e.style['max-width'] = "60" should not set the property value 
+PASS e.style['max-width'] = "10px 20%" should not set the property value 
+PASS e.style['max-width'] = "content-box border-box" should not set the property value 
+PASS e.style['max-width'] = "10px border-box 20%" should not set the property value 
+PASS e.style['max-width'] = "content-box 20% border-box" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid.html
new file mode 100644 (file)
index 0000000..03db7e2
--- /dev/null
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing max-width with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-max-width">
+<meta name="assert" content="max-width supports only the grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content | none'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("max-width", "complex");
+test_invalid_value("max-width", "auto");
+test_invalid_value("max-width", "none available");
+test_invalid_value("max-width", "max-content 10px");
+test_invalid_value("max-width", "20% available");
+
+test_invalid_value("max-width", "-10px");
+test_invalid_value("max-width", "-20%");
+test_invalid_value("max-width", "60");
+test_invalid_value("max-width", "10px 20%");
+test_invalid_value("max-width", "content-box border-box");
+test_invalid_value("max-width", "10px border-box 20%");
+test_invalid_value("max-width", "content-box 20% border-box");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid-expected.txt
new file mode 100644 (file)
index 0000000..e8859cc
--- /dev/null
@@ -0,0 +1,9 @@
+
+PASS e.style['max-width'] = "none" should set the property value 
+PASS e.style['max-width'] = "10px" should set the property value 
+PASS e.style['max-width'] = "20%" should set the property value 
+PASS e.style['max-width'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['max-width'] = "min-content" should set the property value 
+PASS e.style['max-width'] = "max-content" should set the property value 
+PASS e.style['max-width'] = "fit-content" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid.html
new file mode 100644 (file)
index 0000000..1e08a82
--- /dev/null
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing max-width with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-max-width">
+<meta name="assert" content="max-width supports the full grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content | none'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("max-width", "none");
+
+test_valid_value("max-width", "10px");
+test_valid_value("max-width", "20%");
+test_valid_value("max-width", "calc(2em + 3ex)");
+
+test_valid_value("max-width", "min-content");
+test_valid_value("max-width", "max-content");
+test_valid_value("max-width", "fit-content");
+
+// The following are not yet supported by browsers:
+// test_valid_value("max-width", "available");
+// test_valid_value("max-width", "10px border-box");
+// test_valid_value("max-width", "content-box 20%", "20% content-box");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid-expected.txt
new file mode 100644 (file)
index 0000000..b05708b
--- /dev/null
@@ -0,0 +1,15 @@
+
+PASS e.style['min-height'] = "complex" should not set the property value 
+PASS e.style['min-height'] = "none" should not set the property value 
+PASS e.style['min-height'] = "none available" should not set the property value 
+PASS e.style['min-height'] = "max-content 10px" should not set the property value 
+PASS e.style['min-height'] = "20% available" should not set the property value 
+PASS e.style['min-height'] = "-10px" should not set the property value 
+PASS e.style['min-height'] = "-20%" should not set the property value 
+PASS e.style['min-height'] = "60" should not set the property value 
+PASS e.style['min-height'] = "10px 20%" should not set the property value 
+PASS e.style['min-height'] = "content-box border-box" should not set the property value 
+PASS e.style['min-height'] = "10px border-box 20%" should not set the property value 
+PASS e.style['min-height'] = "content-box 20% border-box" should not set the property value 
+FAIL e.style['min-height'] = "auto" should not set the property value assert_equals: expected "" but got "auto"
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid.html
new file mode 100644 (file)
index 0000000..edc480e
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing min-height with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-min-height">
+<meta name="assert" content="min-height supports only the grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("min-height", "complex");
+test_invalid_value("min-height", "none");
+test_invalid_value("min-height", "none available");
+test_invalid_value("min-height", "max-content 10px");
+test_invalid_value("min-height", "20% available");
+
+test_invalid_value("min-height", "-10px");
+test_invalid_value("min-height", "-20%");
+test_invalid_value("min-height", "60");
+test_invalid_value("min-height", "10px 20%");
+test_invalid_value("min-height", "content-box border-box");
+test_invalid_value("min-height", "10px border-box 20%");
+test_invalid_value("min-height", "content-box 20% border-box");
+
+// The following is not yet rejected by browsers:
+test_invalid_value("min-height", "auto");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid-expected.txt
new file mode 100644 (file)
index 0000000..64be19e
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS e.style['min-height'] = "10px" should set the property value 
+PASS e.style['min-height'] = "20%" should set the property value 
+PASS e.style['min-height'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['min-height'] = "min-content" should set the property value 
+PASS e.style['min-height'] = "max-content" should set the property value 
+PASS e.style['min-height'] = "fit-content" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid.html
new file mode 100644 (file)
index 0000000..0154c02
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing min-height with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-min-height">
+<meta name="assert" content="min-height supports the full grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("min-height", "10px");
+test_valid_value("min-height", "20%");
+test_valid_value("min-height", "calc(2em + 3ex)");
+
+test_valid_value("min-height", "min-content");
+test_valid_value("min-height", "max-content");
+test_valid_value("min-height", "fit-content");
+
+// The following are not yet supported by browsers:
+// test_valid_value("min-height", "available");
+// test_valid_value("min-height", "10px border-box");
+// test_valid_value("min-height", "content-box 20%", "20% content-box");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid-expected.txt
new file mode 100644 (file)
index 0000000..f303a8b
--- /dev/null
@@ -0,0 +1,15 @@
+
+PASS e.style['min-width'] = "complex" should not set the property value 
+PASS e.style['min-width'] = "none" should not set the property value 
+PASS e.style['min-width'] = "none available" should not set the property value 
+PASS e.style['min-width'] = "max-content 10px" should not set the property value 
+PASS e.style['min-width'] = "20% available" should not set the property value 
+PASS e.style['min-width'] = "-10px" should not set the property value 
+PASS e.style['min-width'] = "-20%" should not set the property value 
+PASS e.style['min-width'] = "60" should not set the property value 
+PASS e.style['min-width'] = "10px 20%" should not set the property value 
+PASS e.style['min-width'] = "content-box border-box" should not set the property value 
+PASS e.style['min-width'] = "10px border-box 20%" should not set the property value 
+PASS e.style['min-width'] = "content-box 20% border-box" should not set the property value 
+FAIL e.style['min-width'] = "auto" should not set the property value assert_equals: expected "" but got "auto"
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid.html
new file mode 100644 (file)
index 0000000..e89826f
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing min-width with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-min-width">
+<meta name="assert" content="min-width supports only the grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("min-width", "complex");
+test_invalid_value("min-width", "none");
+test_invalid_value("min-width", "none available");
+test_invalid_value("min-width", "max-content 10px");
+test_invalid_value("min-width", "20% available");
+
+test_invalid_value("min-width", "-10px");
+test_invalid_value("min-width", "-20%");
+test_invalid_value("min-width", "60");
+test_invalid_value("min-width", "10px 20%");
+test_invalid_value("min-width", "content-box border-box");
+test_invalid_value("min-width", "10px border-box 20%");
+test_invalid_value("min-width", "content-box 20% border-box");
+
+// The following is not yet rejected by browsers:
+test_invalid_value("min-width", "auto");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid-expected.txt
new file mode 100644 (file)
index 0000000..83b4af0
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS e.style['min-width'] = "10px" should set the property value 
+PASS e.style['min-width'] = "20%" should set the property value 
+PASS e.style['min-width'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['min-width'] = "min-content" should set the property value 
+PASS e.style['min-width'] = "max-content" should set the property value 
+PASS e.style['min-width'] = "fit-content" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid.html
new file mode 100644 (file)
index 0000000..f745b66
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing min-width with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-min-width">
+<meta name="assert" content="min-width supports the full grammar '[ [<length> | <percentage>] && [border-box | content-box]? ] | available | min-content | max-content | fit-content'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("min-width", "10px");
+test_valid_value("min-width", "20%");
+test_valid_value("min-width", "calc(2em + 3ex)");
+
+test_valid_value("min-width", "min-content");
+test_valid_value("min-width", "max-content");
+test_valid_value("min-width", "fit-content");
+
+// The following are not yet supported by browsers:
+// test_valid_value("min-width", "available");
+// test_valid_value("min-width", "10px border-box");
+// test_valid_value("min-width", "content-box 20%", "20% content-box");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid-expected.txt
new file mode 100644 (file)
index 0000000..83f62cc
--- /dev/null
@@ -0,0 +1,8 @@
+
+PASS e.style['overflow'] = "none" should not set the property value 
+PASS e.style['overflow'] = "visible hidden scroll" should not set the property value 
+PASS e.style['overflow'] = "no-display, no-content" should not set the property value 
+PASS e.style['overflow-x'] = "none" should not set the property value 
+PASS e.style['overflow-y'] = "visible hidden" should not set the property value 
+PASS e.style['overflow-y'] = "no-display, no-content" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid.html
new file mode 100644 (file)
index 0000000..4747764
--- /dev/null
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing overflow with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-overflow">
+<meta name="assert" content="overflow supports only the grammar '[ visible | hidden | scroll | auto | no-display | no-content ]{1,2}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("overflow", "none");
+test_invalid_value("overflow", "visible hidden scroll");
+test_invalid_value("overflow", "no-display, no-content");
+
+test_invalid_value("overflow-x", "none");
+test_invalid_value("overflow-y", "visible hidden");
+test_invalid_value("overflow-y", "no-display, no-content");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid-expected.txt
new file mode 100644 (file)
index 0000000..20e26b2
--- /dev/null
@@ -0,0 +1,10 @@
+
+PASS e.style['overflow'] = "visible" should set the property value 
+PASS e.style['overflow'] = "hidden" should set the property value 
+PASS e.style['overflow'] = "scroll" should set the property value 
+PASS e.style['overflow'] = "auto" should set the property value 
+PASS e.style['overflow-x'] = "visible" should set the property value 
+PASS e.style['overflow-x'] = "hidden" should set the property value 
+PASS e.style['overflow-x'] = "scroll" should set the property value 
+PASS e.style['overflow-y'] = "auto" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid.html
new file mode 100644 (file)
index 0000000..1bfeec2
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing overflow with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-overflow">
+<meta name="assert" content="overflow supports the full grammar '[ visible | hidden | scroll | auto | no-display | no-content ]{1,2}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("overflow", "visible");
+test_valid_value("overflow", "hidden");
+test_valid_value("overflow", "scroll");
+test_valid_value("overflow", "auto");
+
+test_valid_value("overflow-x", "visible");
+test_valid_value("overflow-x", "hidden");
+test_valid_value("overflow-x", "scroll");
+test_valid_value("overflow-y", "auto");
+
+// The following are not yet supported by browsers:
+// test_valid_value("overflow", "no-display");
+// test_valid_value("overflow", "no-content");
+// test_valid_value("overflow", "visible hidden");
+// test_valid_value("overflow", "auto scroll");
+// test_valid_value("overflow", "no-display no-content");
+// test_valid_value("overflow-y", "no-display");
+// test_valid_value("overflow-y", "no-content");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed-expected.txt
new file mode 100644 (file)
index 0000000..a6ff4d9
--- /dev/null
@@ -0,0 +1,15 @@
+
+PASS Property padding value '10px' computes to '10px' 
+PASS Property padding value '10px 20px 30px 40px' computes to '10px 20px 30px 40px' 
+PASS Property padding-top value '10px' computes to '10px' 
+PASS Property padding-right value '20px' computes to '20px' 
+PASS Property padding-bottom value '30px' computes to '30px' 
+PASS Property padding-left value '40px' computes to '40px' 
+FAIL Property padding value '20%' computes to '40px' assert_equals: expected "40px" but got "160px"
+FAIL Property padding value '10px 20% 30% 40px' computes to '10px 40px 60px' assert_equals: expected "10px 40px 60px" but got "10px 160px 240px 40px"
+FAIL Property padding-right value '20%' computes to '40px' assert_equals: expected "40px" but got "160px"
+FAIL Property padding-top value 'calc(10% - 40px)' computes to '0px' assert_equals: expected "0px" but got "40px"
+FAIL Property padding-right value 'calc(10% + 40px)' computes to '60px' assert_equals: expected "60px" but got "120px"
+PASS Property padding-bottom value 'calc(10px - 0.5em)' computes to '0px' 
+PASS Property padding-left value 'calc(10px + 0.5em)' computes to '30px' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed.html
new file mode 100644 (file)
index 0000000..f1186c4
--- /dev/null
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: getComputedStyle().padding</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-padding">
+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values">
+<meta name="assert" content="padding resolved value is an absolute length.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+  #container {
+    will-change: transform; /* containing block for #target */
+    width: 200px;
+  }
+  #parent {
+    width: 0px;
+  }
+  #target {
+    position: absolute;
+    font-size: 40px;
+  }
+</style>
+</head>
+<body>
+<div id="container">
+  <div id="parent">
+    <div id="target"></div>
+  </div>
+</div>
+<script>
+test_computed_value("padding", "10px");
+test_computed_value("padding", "10px 20px 30px 40px");
+
+test_computed_value("padding-top", "10px");
+test_computed_value("padding-right", "20px");
+test_computed_value("padding-bottom", "30px");
+test_computed_value("padding-left", "40px");
+
+test_computed_value("padding", "20%", "40px");
+test_computed_value("padding", "10px 20% 30% 40px", "10px 40px 60px");
+test_computed_value("padding-right", "20%", "40px");
+
+test_computed_value('padding-top', 'calc(10% - 40px)', '0px');
+test_computed_value('padding-right', 'calc(10% + 40px)', '60px');
+test_computed_value('padding-bottom', 'calc(10px - 0.5em)', '0px');
+test_computed_value('padding-left', 'calc(10px + 0.5em)', '30px');
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid-expected.txt
new file mode 100644 (file)
index 0000000..6afa024
--- /dev/null
@@ -0,0 +1,12 @@
+
+PASS e.style['padding'] = "auto" should not set the property value 
+PASS e.style['padding'] = "available" should not set the property value 
+PASS e.style['padding'] = "10px border-box" should not set the property value 
+PASS e.style['padding'] = "calc(2em + 3ex) auto" should not set the property value 
+PASS e.style['padding'] = "10px 20px 30px 40px 50px" should not set the property value 
+PASS e.style['padding-top'] = "auto" should not set the property value 
+PASS e.style['padding-bottom'] = "10px 20px calc(2em + 3ex) auto" should not set the property value 
+PASS e.style['padding-bottom-left'] = "10px 20px" should not set the property value 
+PASS e.style['padding-top'] = "-10px" should not set the property value 
+PASS e.style['padding-right'] = "-20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid.html
new file mode 100644 (file)
index 0000000..3e3a560
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing padding with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-padding">
+<meta name="assert" content="padding supports only the grammar '<length-percentage>{1,4}'.">
+<meta name="assert" content="Negative values are invalid.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("padding", "auto");
+test_invalid_value("padding", "available");
+test_invalid_value("padding", "10px border-box");
+test_invalid_value("padding", "calc(2em + 3ex) auto");
+test_invalid_value("padding", "10px 20px 30px 40px 50px");
+
+test_invalid_value("padding-top", "auto");
+test_invalid_value("padding-bottom", "10px 20px calc(2em + 3ex) auto");
+test_invalid_value("padding-bottom-left", "10px 20px");
+
+test_invalid_value("padding-top", "-10px");
+test_invalid_value("padding-right", "-20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand-expected.txt
new file mode 100644 (file)
index 0000000..a8dd198
--- /dev/null
@@ -0,0 +1,22 @@
+
+PASS e.style['padding'] = "1px 2px 3px 4px" should set padding-bottom 
+PASS e.style['padding'] = "1px 2px 3px 4px" should set padding-left 
+PASS e.style['padding'] = "1px 2px 3px 4px" should set padding-right 
+PASS e.style['padding'] = "1px 2px 3px 4px" should set padding-top 
+PASS e.style['padding'] = "1px 2px 3px 4px" should not set unrelated longhands 
+PASS e.style['padding'] = "1px 2px 3px" should set padding-bottom 
+PASS e.style['padding'] = "1px 2px 3px" should set padding-left 
+PASS e.style['padding'] = "1px 2px 3px" should set padding-right 
+PASS e.style['padding'] = "1px 2px 3px" should set padding-top 
+PASS e.style['padding'] = "1px 2px 3px" should not set unrelated longhands 
+PASS e.style['padding'] = "1px 2px" should set padding-bottom 
+PASS e.style['padding'] = "1px 2px" should set padding-left 
+PASS e.style['padding'] = "1px 2px" should set padding-right 
+PASS e.style['padding'] = "1px 2px" should set padding-top 
+PASS e.style['padding'] = "1px 2px" should not set unrelated longhands 
+PASS e.style['padding'] = "1px" should set padding-bottom 
+PASS e.style['padding'] = "1px" should set padding-left 
+PASS e.style['padding'] = "1px" should set padding-right 
+PASS e.style['padding'] = "1px" should set padding-top 
+PASS e.style['padding'] = "1px" should not set unrelated longhands 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand.html
new file mode 100644 (file)
index 0000000..dc0139d
--- /dev/null
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: padding sets longhands</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-padding">
+<meta name="assert" content="padding supports the full grammar '<length-percentage>{1,4}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/shorthand-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_shorthand_value('padding', '1px 2px 3px 4px', {
+  'padding-top': '1px',
+  'padding-right': '2px',
+  'padding-bottom': '3px',
+  'padding-left': '4px'
+});
+
+test_shorthand_value('padding', '1px 2px 3px', {
+  'padding-top': '1px',
+  'padding-right': '2px',
+  'padding-bottom': '3px',
+  'padding-left': '2px'
+});
+
+test_shorthand_value('padding', '1px 2px', {
+  'padding-top': '1px',
+  'padding-right': '2px',
+  'padding-bottom': '1px',
+  'padding-left': '2px'
+});
+
+test_shorthand_value('padding', '1px', {
+  'padding-top': '1px',
+  'padding-right': '1px',
+  'padding-bottom': '1px',
+  'padding-left': '1px'
+});
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid-expected.txt
new file mode 100644 (file)
index 0000000..ad63d2e
--- /dev/null
@@ -0,0 +1,13 @@
+
+PASS e.style['padding'] = "10px" should set the property value 
+PASS e.style['padding'] = "10px 20px 30px 40px" should set the property value 
+PASS e.style['padding'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['padding-top'] = "10px" should set the property value 
+PASS e.style['padding-right'] = "20px" should set the property value 
+PASS e.style['padding-bottom'] = "30px" should set the property value 
+PASS e.style['padding-left'] = "40px" should set the property value 
+PASS e.style['padding'] = "20%" should set the property value 
+PASS e.style['padding'] = "10px 20% 30% 40px" should set the property value 
+PASS e.style['padding-right'] = "20%" should set the property value 
+PASS e.style['padding-right'] = "calc(2em + 3%)" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid.html
new file mode 100644 (file)
index 0000000..0d3d51e
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing padding with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-padding">
+<meta name="assert" content="padding supports the full grammar '<length-percentage>{1,4}'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("padding", "10px");
+test_valid_value("padding", "10px 20px 30px 40px");
+test_valid_value("padding", "calc(2em + 3ex)");
+
+test_valid_value("padding-top", "10px");
+test_valid_value("padding-right", "20px");
+test_valid_value("padding-bottom", "30px");
+test_valid_value("padding-left", "40px");
+
+test_valid_value("padding", "20%");
+test_valid_value("padding", "10px 20% 30% 40px");
+test_valid_value("padding-right", "20%");
+test_valid_value("padding-right", "calc(2em + 3%)");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed-expected.txt
new file mode 100644 (file)
index 0000000..13e80b1
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS Property visibility value 'visible' computes to 'visible' 
+PASS Property visibility value 'hidden' computes to 'hidden' 
+PASS Property visibility value 'collapse' computes to 'collapse' 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed.html
new file mode 100644 (file)
index 0000000..f6d4c3f
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: getComputedStyle().visibility</title>
+<link rel="help" href="https://www.w3.org/TR/CSS2/visufx.html#visibility">
+<meta name="assert" content="visibility computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("visibility", "visible");
+test_computed_value("visibility", "hidden");
+test_computed_value("visibility", "collapse");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid-expected.txt
new file mode 100644 (file)
index 0000000..7640cff
--- /dev/null
@@ -0,0 +1,4 @@
+
+PASS e.style['visibility'] = "auto" should not set the property value 
+PASS e.style['visibility'] = "hidden collapse" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid.html
new file mode 100644 (file)
index 0000000..73e611b
--- /dev/null
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing visibility with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-visibility">
+<meta name="assert" content="visibility supports only the grammar 'visible | hidden | collapse'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("visibility", "auto");
+test_invalid_value("visibility", "hidden collapse");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid-expected.txt
new file mode 100644 (file)
index 0000000..fed1d7b
--- /dev/null
@@ -0,0 +1,5 @@
+
+PASS e.style['visibility'] = "visible" should set the property value 
+PASS e.style['visibility'] = "hidden" should set the property value 
+PASS e.style['visibility'] = "collapse" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid.html
new file mode 100644 (file)
index 0000000..2ab2f49
--- /dev/null
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing visibility with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-visibility">
+<meta name="assert" content="visibility supports the full grammar 'visible | hidden | collapse'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("visibility", "visible");
+test_valid_value("visibility", "hidden");
+test_valid_value("visibility", "collapse");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/w3c-import.log
new file mode 100644 (file)
index 0000000..70fe8b9
--- /dev/null
@@ -0,0 +1,47 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/clear-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/float-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/height-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-shorthand.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/margin-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-height-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/max-width-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-height-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/min-width-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/overflow-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-shorthand.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/padding-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-computed.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/visibility-valid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid.html
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid-expected.txt
new file mode 100644 (file)
index 0000000..1df0eef
--- /dev/null
@@ -0,0 +1,13 @@
+
+PASS e.style['width'] = "complex" should not set the property value 
+PASS e.style['width'] = "none" should not set the property value 
+PASS e.style['width'] = "min-content available" should not set the property value 
+PASS e.style['width'] = "max-content 10px" should not set the property value 
+PASS e.style['width'] = "20% available" should not set the property value 
+PASS e.style['width'] = "-10px" should not set the property value 
+PASS e.style['width'] = "-20%" should not set the property value 
+PASS e.style['width'] = "60" should not set the property value 
+PASS e.style['width'] = "10px 20%" should not set the property value 
+PASS e.style['width'] = "10px border-box" should not set the property value 
+PASS e.style['width'] = "content-box 20%" should not set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-invalid.html
new file mode 100644 (file)
index 0000000..5a0145f
--- /dev/null
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing width with invalid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-width">
+<meta name="assert" content="width supports only the grammar '[<length> | <percentage>] | available | min-content | max-content | fit-content | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("width", "complex");
+test_invalid_value("width", "none");
+
+test_invalid_value("width", "min-content available");
+test_invalid_value("width", "max-content 10px");
+test_invalid_value("width", "20% available");
+
+test_invalid_value("width", "-10px");
+test_invalid_value("width", "-20%");
+test_invalid_value("width", "60");
+test_invalid_value("width", "10px 20%");
+
+test_invalid_value("width", "10px border-box");
+test_invalid_value("width", "content-box 20%");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid-expected.txt
new file mode 100644 (file)
index 0000000..22a303f
--- /dev/null
@@ -0,0 +1,9 @@
+
+PASS e.style['width'] = "auto" should set the property value 
+PASS e.style['width'] = "10px" should set the property value 
+PASS e.style['width'] = "20%" should set the property value 
+PASS e.style['width'] = "calc(2em + 3ex)" should set the property value 
+PASS e.style['width'] = "min-content" should set the property value 
+PASS e.style['width'] = "max-content" should set the property value 
+PASS e.style['width'] = "fit-content" should set the property value 
+
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid.html b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/parsing/width-valid.html
new file mode 100644 (file)
index 0000000..93059bd
--- /dev/null
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: parsing width with valid values</title>
+<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-width">
+<meta name="assert" content="width supports the full grammar '[<length> | <percentage>] | available | min-content | max-content | fit-content | auto'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("width", "auto");
+
+test_valid_value("width", "10px");
+test_valid_value("width", "20%");
+test_valid_value("width", "calc(2em + 3ex)");
+
+test_valid_value("width", "min-content");
+test_valid_value("width", "max-content");
+test_valid_value("width", "fit-content");
+
+// The following is not yet supported by browsers:
+// test_valid_value("width", "available");
+</script>
+</body>
+</html>
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-box/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/css/css-box/w3c-import.log
new file mode 100644 (file)
index 0000000..6388a1f
--- /dev/null
@@ -0,0 +1,19 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+       https://github.com/web-platform-tests/wpt
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/META.yml
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/box-chrome-crash-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-box/inheritance.html