summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/css/css-scroll-snap/parsing
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:22:09 +0000
commit43a97878ce14b72f0981164f87f2e35e14151312 (patch)
tree620249daf56c0258faa40cbdcf9cfba06de2a846 /testing/web-platform/tests/css/css-scroll-snap/parsing
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 110.0.1.upstream/110.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/css/css-scroll-snap/parsing')
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-computed.html42
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-invalid.html46
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-shorthand.html35
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-valid.html36
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-computed.html42
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-invalid.html44
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-shorthand.html43
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-valid.html44
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-computed.html70
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-invalid.html54
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-shorthand.html35
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-valid.html58
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-computed.html71
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-invalid.html52
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-shorthand.html43
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-valid.html60
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-computed.html26
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-invalid.html21
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-valid.html25
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed.html20
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-invalid.html19
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html18
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-computed.html27
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html30
-rw-r--r--testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-valid.html29
25 files changed, 990 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-computed.html
new file mode 100644
index 0000000000..3bb0e740ac
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-computed.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollMarginBlock / scrollMarginInline</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#margin-longhands-logical">
+<meta name="assert" content="scroll-margin-block, scroll-margin-inline computed value is absolute length.">
+<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>
+<style>
+ #target {
+ font-size: 40px;
+ }
+</style>
+<script>
+test_computed_value("scroll-margin-block-start", "10px");
+test_computed_value("scroll-margin-block-start", "calc(10px - 0.5em)", "-10px");
+
+test_computed_value("scroll-margin-block-end", "10px");
+test_computed_value("scroll-margin-block-end", "calc(10px - 0.5em)", "-10px");
+
+test_computed_value("scroll-margin-inline-start", "10px");
+test_computed_value("scroll-margin-inline-start", "calc(10px - 0.5em)", "-10px");
+
+test_computed_value("scroll-margin-inline-end", "10px");
+test_computed_value("scroll-margin-inline-end", "calc(10px - 0.5em)", "-10px");
+
+
+test_computed_value("scroll-margin-block", "10px");
+test_computed_value("scroll-margin-block", "calc(10px - 0.5em)", "-10px");
+test_computed_value("scroll-margin-block", "1px 2px");
+
+test_computed_value("scroll-margin-inline", "10px");
+test_computed_value("scroll-margin-inline", "calc(10px - 0.5em)", "-10px");
+test_computed_value("scroll-margin-inline", "1px 2px");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-invalid.html
new file mode 100644
index 0000000000..b8a70b0d48
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-invalid.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-margin-block, scroll-margin-inline with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#margin-longhands-logical">
+<meta name="assert" content="scroll-margin-block, scroll-margin-inline support only the grammar '<length>{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("scroll-margin-block-start", "auto");
+test_invalid_value("scroll-margin-block-start", "20%");
+test_invalid_value("scroll-margin-block-start", "-30%");
+test_invalid_value("scroll-margin-block-start", "1px 2px");
+
+test_invalid_value("scroll-margin-block-end", "auto");
+test_invalid_value("scroll-margin-block-end", "20%");
+test_invalid_value("scroll-margin-block-end", "-30%");
+test_invalid_value("scroll-margin-block-end", "1px 2px");
+
+test_invalid_value("scroll-margin-inline-start", "auto");
+test_invalid_value("scroll-margin-inline-start", "20%");
+test_invalid_value("scroll-margin-inline-start", "-30%");
+test_invalid_value("scroll-margin-inline-start", "1px 2px");
+
+test_invalid_value("scroll-margin-inline-end", "auto");
+test_invalid_value("scroll-margin-inline-end", "20%");
+test_invalid_value("scroll-margin-inline-end", "-30%");
+test_invalid_value("scroll-margin-inline-end", "1px 2px");
+
+
+test_invalid_value("scroll-margin-block", "auto");
+test_invalid_value("scroll-margin-block", "20%");
+test_invalid_value("scroll-margin-block", "-30%");
+test_invalid_value("scroll-margin-block", "1px 2px 3px");
+
+test_invalid_value("scroll-margin-inline", "auto");
+test_invalid_value("scroll-margin-inline", "20%");
+test_invalid_value("scroll-margin-inline", "-30%");
+test_invalid_value("scroll-margin-inline", "1px 2px 3px");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-shorthand.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-shorthand.html
new file mode 100644
index 0000000000..04e1d42864
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-shorthand.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-margin-block, scroll-margin-inline set longhands</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#margin-longhands-logical">
+<meta name="assert" content="scroll-margin-block, scroll-margin-inline support the full grammar '<length>{1,2}'.">
+<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('scroll-margin-block', '10px 20px', {
+ 'scroll-margin-block-start': '10px',
+ 'scroll-margin-block-end': '20px'
+});
+
+test_shorthand_value('scroll-margin-block', '30px', {
+ 'scroll-margin-block-start': '30px',
+ 'scroll-margin-block-end': '30px'
+});
+
+test_shorthand_value('scroll-margin-inline', '50px 60px', {
+ 'scroll-margin-inline-start': '50px',
+ 'scroll-margin-inline-end': '60px'
+});
+
+test_shorthand_value('scroll-margin-inline', '-40px', {
+ 'scroll-margin-inline-start': '-40px',
+ 'scroll-margin-inline-end': '-40px'
+});
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-valid.html
new file mode 100644
index 0000000000..e675eeb427
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-block-inline-valid.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-margin-block, scroll-margin-inline with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#margin-longhands-logical">
+<meta name="assert" content="scroll-margin-block, scroll-margin-inline support the full grammar '<length>{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("scroll-margin-block-start", "-10px");
+test_valid_value("scroll-margin-block-start", "calc(2em + 3ex)");
+
+test_valid_value("scroll-margin-block-end", "-10px");
+test_valid_value("scroll-margin-block-end", "calc(2em + 3ex)");
+
+test_valid_value("scroll-margin-inline-start", "-10px");
+test_valid_value("scroll-margin-inline-start", "calc(2em + 3ex)");
+
+test_valid_value("scroll-margin-inline-end", "-10px");
+test_valid_value("scroll-margin-inline-end", "calc(2em + 3ex)");
+
+
+test_valid_value("scroll-margin-block", "-10px");
+test_valid_value("scroll-margin-block", "calc(2em + 3ex)");
+test_valid_value("scroll-margin-block", "1px 2px");
+
+test_valid_value("scroll-margin-inline", "-10px");
+test_valid_value("scroll-margin-inline", "calc(2em + 3ex)");
+test_valid_value("scroll-margin-inline", "1px 2px");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-computed.html
new file mode 100644
index 0000000000..ae7b6de5dd
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-computed.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollMargin</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin">
+<meta name="assert" content="scroll-margin computed value is absolute length.">
+<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>
+<style>
+ #target {
+ font-size: 40px;
+ }
+</style>
+<script>
+test_computed_value("scroll-margin-top", "10px");
+test_computed_value("scroll-margin-top", "calc(10px - 0.5em)", "-10px");
+
+
+test_computed_value("scroll-margin-right", "10px");
+test_computed_value("scroll-margin-right", "calc(10px - 0.5em)", "-10px");
+
+
+test_computed_value("scroll-margin-bottom", "10px");
+test_computed_value("scroll-margin-bottom", "calc(10px - 0.5em)", "-10px");
+
+
+test_computed_value("scroll-margin-left", "10px");
+test_computed_value("scroll-margin-left", "calc(10px - 0.5em)", "-10px");
+
+
+test_computed_value("scroll-margin", "10px");
+test_computed_value("scroll-margin", "calc(10px - 0.5em)", "-10px");
+
+test_computed_value("scroll-margin", "1px 2px");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-invalid.html
new file mode 100644
index 0000000000..97beb0d295
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-invalid.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-margin with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin">
+<meta name="assert" content="scroll-margin supports only the grammar '<length>{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("scroll-margin-top", "auto");
+test_invalid_value("scroll-margin-top", "20%");
+test_invalid_value("scroll-margin-top", "-30%");
+test_invalid_value("scroll-margin-top", "1px 2px");
+
+
+test_invalid_value("scroll-margin-right", "auto");
+test_invalid_value("scroll-margin-right", "20%");
+test_invalid_value("scroll-margin-right", "-30%");
+test_invalid_value("scroll-margin-right", "1px 2px");
+
+
+test_invalid_value("scroll-margin-bottom", "auto");
+test_invalid_value("scroll-margin-bottom", "20%");
+test_invalid_value("scroll-margin-bottom", "-30%");
+test_invalid_value("scroll-margin-bottom", "1px 2px");
+
+
+test_invalid_value("scroll-margin-left", "auto");
+test_invalid_value("scroll-margin-left", "20%");
+test_invalid_value("scroll-margin-left", "-30%");
+test_invalid_value("scroll-margin-left", "1px 2px");
+
+
+test_invalid_value("scroll-margin", "auto");
+test_invalid_value("scroll-margin", "20%");
+test_invalid_value("scroll-margin", "-30%");
+test_invalid_value("scroll-margin", "1px 2px 3px 4px 5px");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-shorthand.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-shorthand.html
new file mode 100644
index 0000000000..96a4595226
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-shorthand.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-margin sets longhands</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin">
+<meta name="assert" content="scroll-margin supports the full grammar '<length>{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('scroll-margin', '10px', {
+ 'scroll-margin-top': '10px',
+ 'scroll-margin-right': '10px',
+ 'scroll-margin-bottom': '10px',
+ 'scroll-margin-left': '10px'
+});
+
+test_shorthand_value('scroll-margin', '30px 20px', {
+ 'scroll-margin-top': '30px',
+ 'scroll-margin-right': '20px',
+ 'scroll-margin-bottom': '30px',
+ 'scroll-margin-left': '20px'
+});
+
+test_shorthand_value('scroll-margin', '1px 2px 3px', {
+ 'scroll-margin-top': '1px',
+ 'scroll-margin-right': '2px',
+ 'scroll-margin-bottom': '3px',
+ 'scroll-margin-left': '2px'
+});
+
+test_shorthand_value('scroll-margin', '-1px 2px 3px 0', {
+ 'scroll-margin-top': '-1px',
+ 'scroll-margin-right': '2px',
+ 'scroll-margin-bottom': '3px',
+ 'scroll-margin-left': '0px'
+});
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-valid.html
new file mode 100644
index 0000000000..be34998691
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-margin-valid.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-margin with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin">
+<meta name="assert" content="scroll-margin supports the full grammar '<length>{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("scroll-margin-top", "0", "0px");
+test_valid_value("scroll-margin-top", "-10px");
+test_valid_value("scroll-margin-top", "calc(2em + 3ex)");
+
+
+test_valid_value("scroll-margin-right", "0", "0px");
+test_valid_value("scroll-margin-right", "-10px");
+test_valid_value("scroll-margin-right", "calc(2em + 3ex)");
+
+
+test_valid_value("scroll-margin-bottom", "0", "0px");
+test_valid_value("scroll-margin-bottom", "-10px");
+test_valid_value("scroll-margin-bottom", "calc(2em + 3ex)");
+
+
+test_valid_value("scroll-margin-left", "0", "0px");
+test_valid_value("scroll-margin-left", "-10px");
+test_valid_value("scroll-margin-left", "calc(2em + 3ex)");
+
+
+test_valid_value("scroll-margin", "0", "0px");
+test_valid_value("scroll-margin", "-10px");
+test_valid_value("scroll-margin", "calc(2em + 3ex)");
+
+test_valid_value("scroll-margin", "1px 2px");
+test_valid_value("scroll-margin", "1px 2px 3px");
+test_valid_value("scroll-margin", "1px 2px 3px 4px");
+test_valid_value("scroll-margin", "0 0 0 0", "0px");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-computed.html
new file mode 100644
index 0000000000..6a66110cda
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-computed.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollPaddingBlock / scrollPaddingInline</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#padding-longhands-logical">
+<meta name="assert" content="scroll-padding-block, scroll-padding-inline computed value is per side, either the keyword auto or a computed <length-percentage> value.">
+<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>
+<style>
+ #target {
+ font-size: 40px;
+ }
+</style>
+<script>
+test_computed_value("scroll-padding-block-start", "auto");
+test_computed_value("scroll-padding-block-start", "10px");
+test_computed_value("scroll-padding-block-start", "20%");
+test_computed_value("scroll-padding-block-start", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-block-start", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-block-start", "calc(50% + 60px)");
+
+test_computed_value("scroll-padding-block-end", "auto");
+test_computed_value("scroll-padding-block-end", "10px");
+test_computed_value("scroll-padding-block-end", "20%");
+test_computed_value("scroll-padding-block-end", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-block-end", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-block-end", "calc(50% + 60px)");
+
+test_computed_value("scroll-padding-inline-start", "auto");
+test_computed_value("scroll-padding-inline-start", "10px");
+test_computed_value("scroll-padding-inline-start", "20%");
+test_computed_value("scroll-padding-inline-start", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-inline-start", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-inline-start", "calc(50% + 60px)");
+
+test_computed_value("scroll-padding-inline-end", "auto");
+test_computed_value("scroll-padding-inline-end", "10px");
+test_computed_value("scroll-padding-inline-end", "20%");
+test_computed_value("scroll-padding-inline-end", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-inline-end", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-inline-end", "calc(50% + 60px)");
+
+
+test_computed_value("scroll-padding-block", "auto");
+test_computed_value("scroll-padding-block", "10px");
+test_computed_value("scroll-padding-block", "20%");
+test_computed_value("scroll-padding-block", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-block", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-block", "calc(50% + 60px)");
+test_computed_value("scroll-padding-block", "1px 2px");
+test_computed_value("scroll-padding-block", "1px auto");
+test_computed_value("scroll-padding-block", "auto auto", "auto");
+
+test_computed_value("scroll-padding-inline", "auto");
+test_computed_value("scroll-padding-inline", "10px");
+test_computed_value("scroll-padding-inline", "20%");
+test_computed_value("scroll-padding-inline", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-inline", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-inline", "calc(50% + 60px)");
+test_computed_value("scroll-padding-inline", "1px 2px");
+test_computed_value("scroll-padding-inline", "1px auto");
+test_computed_value("scroll-padding-inline", "auto auto", "auto");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-invalid.html
new file mode 100644
index 0000000000..da995cfcc0
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-invalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-padding-block, scroll-padding-inline with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#padding-longhands-logical">
+<meta name="assert" content="scroll-padding-block, scroll-padding-inline supports only the grammar '[ auto | <length-percentage> ]{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("scroll-padding-block-start", "none");
+test_invalid_value("scroll-padding-block-start", "-10px");
+test_invalid_value("scroll-padding-block-start", "10px 20%");
+test_invalid_value("scroll-padding-block-start", "fit-content");
+
+test_invalid_value("scroll-padding-block-end", "none");
+test_invalid_value("scroll-padding-block-end", "-10px");
+test_invalid_value("scroll-padding-block-end", "10px 20%");
+test_invalid_value("scroll-padding-block-end", "max-content");
+
+test_invalid_value("scroll-padding-inline-start", "none");
+test_invalid_value("scroll-padding-inline-start", "-10px");
+test_invalid_value("scroll-padding-inline-start", "10px 20%");
+test_invalid_value("scroll-padding-inline-start", "min-content");
+
+test_invalid_value("scroll-padding-inline-end", "none");
+test_invalid_value("scroll-padding-inline-end", "-10px");
+test_invalid_value("scroll-padding-inline-end", "10px 20%");
+test_invalid_value("scroll-padding-inline-end", "max-content");
+
+
+test_invalid_value("scroll-padding-block", "none");
+test_invalid_value("scroll-padding-block", "-10px");
+test_invalid_value("scroll-padding-block", "-20%");
+test_invalid_value("scroll-padding-block", "calc(auto)");
+test_invalid_value("scroll-padding-block", "10px 20px 30px 40px 50px");
+test_invalid_value("scroll-padding-block", "fit-content");
+test_invalid_value("scroll-padding-block", "max-content");
+test_invalid_value("scroll-padding-block", "min-content");
+
+test_invalid_value("scroll-padding-inline", "none");
+test_invalid_value("scroll-padding-inline", "-10px");
+test_invalid_value("scroll-padding-inline", "-20%");
+test_invalid_value("scroll-padding-inline", "calc(auto)");
+test_invalid_value("scroll-padding-inline", "10px 20px 30px 40px 50px");
+test_invalid_value("scroll-padding-inline", "fit-content");
+test_invalid_value("scroll-padding-inline", "max-content");
+test_invalid_value("scroll-padding-inline", "min-content");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-shorthand.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-shorthand.html
new file mode 100644
index 0000000000..491cfa9e96
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-shorthand.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-padding-block, scroll-padding-inline set longhands</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#padding-longhands-logical">
+<meta name="assert" content="scroll-padding-block, scroll-padding-inline support the full grammar '[ auto | <length-percentage> ]{1,2}'.">
+<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('scroll-padding-block', 'auto 10px', {
+ 'scroll-padding-block-start': 'auto',
+ 'scroll-padding-block-end': '10px'
+});
+
+test_shorthand_value('scroll-padding-block', '20%', {
+ 'scroll-padding-block-start': '20%',
+ 'scroll-padding-block-end': '20%'
+});
+
+test_shorthand_value('scroll-padding-inline', '10px auto', {
+ 'scroll-padding-inline-start': '10px',
+ 'scroll-padding-inline-end': 'auto'
+});
+
+test_shorthand_value('scroll-padding-inline', '0%', {
+ 'scroll-padding-inline-start': '0%',
+ 'scroll-padding-inline-end': '0%'
+});
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-valid.html
new file mode 100644
index 0000000000..a932bb6393
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-block-inline-valid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-padding-block, scroll-padding-inline with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#padding-longhands-logical">
+<meta name="assert" content="scroll-padding-block, scroll-padding-inline supports the full grammar '[ auto | <length-percentage> ]{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("scroll-padding-block-start", "auto");
+test_valid_value("scroll-padding-block-start", "10px");
+test_valid_value("scroll-padding-block-start", "20%");
+test_valid_value("scroll-padding-block-start", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-block-start", "calc(50% + 60px)");
+
+test_valid_value("scroll-padding-block-end", "auto");
+test_valid_value("scroll-padding-block-end", "10px");
+test_valid_value("scroll-padding-block-end", "20%");
+test_valid_value("scroll-padding-block-end", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-block-end", "calc(50% + 60px)");
+
+test_valid_value("scroll-padding-inline-start", "auto");
+test_valid_value("scroll-padding-inline-start", "10px");
+test_valid_value("scroll-padding-inline-start", "20%");
+test_valid_value("scroll-padding-inline-start", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-inline-start", "calc(50% + 60px)");
+
+test_valid_value("scroll-padding-inline-end", "auto");
+test_valid_value("scroll-padding-inline-end", "10px");
+test_valid_value("scroll-padding-inline-end", "20%");
+test_valid_value("scroll-padding-inline-end", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-inline-end", "calc(50% + 60px)");
+
+
+test_valid_value("scroll-padding-block", "auto");
+test_valid_value("scroll-padding-block", "10px");
+test_valid_value("scroll-padding-block", "20%");
+test_valid_value("scroll-padding-block", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-block", "calc(50% + 60px)");
+test_valid_value("scroll-padding-block", "1px 2px");
+test_valid_value("scroll-padding-block", "1px auto");
+test_valid_value("scroll-padding-block", "auto auto", "auto");
+
+test_valid_value("scroll-padding-inline", "auto");
+test_valid_value("scroll-padding-inline", "10px");
+test_valid_value("scroll-padding-inline", "20%");
+test_valid_value("scroll-padding-inline", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-inline", "calc(50% + 60px)");
+test_valid_value("scroll-padding-inline", "1px 2px");
+test_valid_value("scroll-padding-inline", "1px auto");
+test_valid_value("scroll-padding-inline", "auto auto", "auto");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-computed.html
new file mode 100644
index 0000000000..f638138a7f
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-computed.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollPadding</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding">
+<meta name="assert" content="scroll-padding computed value is per side, either the keyword auto or a computed <length-percentage> value.">
+<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>
+<style>
+ #target {
+ font-size: 40px;
+ }
+</style>
+<script>
+test_computed_value("scroll-padding-top", "auto");
+test_computed_value("scroll-padding-top", "0", "0px");
+test_computed_value("scroll-padding-top", "10px");
+test_computed_value("scroll-padding-top", "20%");
+test_computed_value("scroll-padding-top", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-top", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-top", "calc(50% + 60px)");
+
+
+test_computed_value("scroll-padding-right", "auto");
+test_computed_value("scroll-padding-right", "0", "0px");
+test_computed_value("scroll-padding-right", "10px");
+test_computed_value("scroll-padding-right", "20%");
+test_computed_value("scroll-padding-right", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-right", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-right", "calc(50% + 60px)");
+
+
+test_computed_value("scroll-padding-bottom", "auto");
+test_computed_value("scroll-padding-bottom", "0", "0px");
+test_computed_value("scroll-padding-bottom", "10px");
+test_computed_value("scroll-padding-bottom", "20%");
+test_computed_value("scroll-padding-bottom", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-bottom", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-bottom", "calc(50% + 60px)");
+
+
+test_computed_value("scroll-padding-left", "auto");
+test_computed_value("scroll-padding-left", "0", "0px");
+test_computed_value("scroll-padding-left", "10px");
+test_computed_value("scroll-padding-left", "20%");
+test_computed_value("scroll-padding-left", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding-left", "calc(10px - 0.5em)", "0px");
+test_computed_value("scroll-padding-left", "calc(50% + 60px)");
+
+
+test_computed_value("scroll-padding", "auto");
+test_computed_value("scroll-padding", "10px");
+test_computed_value("scroll-padding", "0", "0px");
+test_computed_value("scroll-padding", "20%");
+test_computed_value("scroll-padding", "calc(10px + 0.5em)", "30px");
+test_computed_value("scroll-padding", "calc(10px - 0.5em)", "0px");
+
+test_computed_value("scroll-padding", "1px 2px");
+test_computed_value("scroll-padding", "1px 2px 3%");
+test_computed_value("scroll-padding", "1px 2px 3% 4px");
+test_computed_value("scroll-padding", "1px auto");
+test_computed_value("scroll-padding", "0 0 0 0", "0px");
+test_computed_value("scroll-padding", "auto auto auto auto", "auto");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-invalid.html
new file mode 100644
index 0000000000..c805ee2e55
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-invalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-padding with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding">
+<meta name="assert" content="scroll-padding 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("scroll-padding-top", "20");
+test_invalid_value("scroll-padding-top", "-20px");
+test_invalid_value("scroll-padding-top", "none");
+test_invalid_value("scroll-padding-top", "10px 20%");
+test_invalid_value("scroll-padding-top", "fit-content");
+
+
+test_invalid_value("scroll-padding-right", "20");
+test_invalid_value("scroll-padding-right", "-20px");
+test_invalid_value("scroll-padding-right", "none");
+test_invalid_value("scroll-padding-right", "10px 20%");
+test_invalid_value("scroll-padding-right", "max-content");
+
+
+test_invalid_value("scroll-padding-bottom", "20");
+test_invalid_value("scroll-padding-bottom", "-20px");
+test_invalid_value("scroll-padding-bottom", "none");
+test_invalid_value("scroll-padding-bottom", "10px 20%");
+test_invalid_value("scroll-padding-bottom", "min-content");
+
+
+test_invalid_value("scroll-padding-left", "20");
+test_invalid_value("scroll-padding-left", "-20px");
+test_invalid_value("scroll-padding-left", "none");
+test_invalid_value("scroll-padding-left", "10px 20%");
+test_invalid_value("scroll-padding-left", "fit-content");
+
+
+test_invalid_value("scroll-padding", "20");
+test_invalid_value("scroll-padding", "-20px");
+test_invalid_value("scroll-padding", "none");
+test_invalid_value("scroll-padding", "calc(auto)");
+test_invalid_value("scroll-padding", "10px 20px 30px 40px 50px");
+test_invalid_value("scroll-padding", "fit-content");
+test_invalid_value("scroll-padding", "max-content");
+test_invalid_value("scroll-padding", "min-content");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-shorthand.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-shorthand.html
new file mode 100644
index 0000000000..2162c7f10d
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-shorthand.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-padding sets longhands</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding">
+<meta name="assert" content="scroll-padding 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/shorthand-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_shorthand_value('scroll-padding', '10px', {
+ 'scroll-padding-top': '10px',
+ 'scroll-padding-right': '10px',
+ 'scroll-padding-bottom': '10px',
+ 'scroll-padding-left': '10px'
+});
+
+test_shorthand_value('scroll-padding', 'auto 20px', {
+ 'scroll-padding-top': 'auto',
+ 'scroll-padding-right': '20px',
+ 'scroll-padding-bottom': 'auto',
+ 'scroll-padding-left': '20px'
+});
+
+test_shorthand_value('scroll-padding', '1px 2px 3px', {
+ 'scroll-padding-top': '1px',
+ 'scroll-padding-right': '2px',
+ 'scroll-padding-bottom': '3px',
+ 'scroll-padding-left': '2px'
+});
+
+test_shorthand_value('scroll-padding', '1% 2px 3px 0', {
+ 'scroll-padding-top': '1%',
+ 'scroll-padding-right': '2px',
+ 'scroll-padding-bottom': '3px',
+ 'scroll-padding-left': '0px'
+});
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-valid.html
new file mode 100644
index 0000000000..0e7c86b12b
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-padding-valid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-padding with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding">
+<meta name="assert" content="scroll-padding 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("scroll-padding-top", "auto");
+test_valid_value("scroll-padding-top", "0", "0px");
+test_valid_value("scroll-padding-top", "10px");
+test_valid_value("scroll-padding-top", "20%");
+test_valid_value("scroll-padding-top", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-top", "calc(50% + 60px)");
+
+
+test_valid_value("scroll-padding-right", "auto");
+test_valid_value("scroll-padding-right", "0", "0px");
+test_valid_value("scroll-padding-right", "10px");
+test_valid_value("scroll-padding-right", "20%");
+test_valid_value("scroll-padding-right", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-right", "calc(50% + 60px)");
+
+
+test_valid_value("scroll-padding-bottom", "auto");
+test_valid_value("scroll-padding-bottom", "0", "0px");
+test_valid_value("scroll-padding-bottom", "10px");
+test_valid_value("scroll-padding-bottom", "20%");
+test_valid_value("scroll-padding-bottom", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-bottom", "calc(50% + 60px)");
+
+
+test_valid_value("scroll-padding-left", "auto");
+test_valid_value("scroll-padding-left", "0", "0px");
+test_valid_value("scroll-padding-left", "10px");
+test_valid_value("scroll-padding-left", "20%");
+test_valid_value("scroll-padding-left", "calc(2em + 3ex)");
+test_valid_value("scroll-padding-left", "calc(50% + 60px)");
+
+
+test_valid_value("scroll-padding", "auto");
+test_valid_value("scroll-padding", "10px");
+test_valid_value("scroll-padding", "0", "0px");
+test_valid_value("scroll-padding", "20%");
+test_valid_value("scroll-padding", "calc(2em + 3ex)");
+
+test_valid_value("scroll-padding", "1px 2px");
+test_valid_value("scroll-padding", "1px 2px 3%");
+test_valid_value("scroll-padding", "1px 2px 3% 4px");
+test_valid_value("scroll-padding", "1px auto");
+test_valid_value("scroll-padding", "0 0 0 0", "0px");
+test_valid_value("scroll-padding", "auto auto auto auto", "auto");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-computed.html
new file mode 100644
index 0000000000..daed998ef2
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-computed.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollSnapAlign</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-align">
+<meta name="assert" content="scroll-snap-align 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("scroll-snap-align", "none");
+test_computed_value("scroll-snap-align", "start");
+test_computed_value("scroll-snap-align", "end");
+test_computed_value("scroll-snap-align", "center");
+
+test_computed_value("scroll-snap-align", "start none");
+test_computed_value("scroll-snap-align", "center end");
+test_computed_value("scroll-snap-align", "start start", "start");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-invalid.html
new file mode 100644
index 0000000000..9a1eeb77bb
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-snap-align with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-align">
+<meta name="assert" content="scroll-snap-align supports only the grammar '[ none | start | end | center ]{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("scroll-snap-align", "auto");
+
+test_invalid_value("scroll-snap-align", "start invalid");
+
+test_invalid_value("scroll-snap-align", "start end center");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-valid.html
new file mode 100644
index 0000000000..0201448825
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-align-valid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-snap-align with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-align">
+<meta name="assert" content="scroll-snap-align supports the full grammar '[ none | start | end | center ]{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("scroll-snap-align", "none");
+test_valid_value("scroll-snap-align", "start");
+test_valid_value("scroll-snap-align", "end");
+test_valid_value("scroll-snap-align", "center");
+
+test_valid_value("scroll-snap-align", "start none");
+test_valid_value("scroll-snap-align", "center end");
+test_valid_value("scroll-snap-align", "start start", "start");
+
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed.html
new file mode 100644
index 0000000000..49b369a0fe
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-computed.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollSnapStop</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-stop">
+<meta name="assert" content="scroll-snap-stop 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("scroll-snap-stop", "normal");
+test_computed_value("scroll-snap-stop", "always");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-invalid.html
new file mode 100644
index 0000000000..67feda0ca7
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-snap-stop with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-stop">
+<meta name="assert" content="scroll-snap-stop supports only the grammar 'normal | always'.">
+<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("scroll-snap-stop", "auto");
+
+test_invalid_value("scroll-snap-stop", "normal always");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html
new file mode 100644
index 0000000000..a59caff396
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-stop-valid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-snap-stop with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-stop">
+<meta name="assert" content="scroll-snap-stop supports the full grammar 'normal | always'.">
+<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("scroll-snap-stop", "normal");
+test_valid_value("scroll-snap-stop", "always");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-computed.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-computed.html
new file mode 100644
index 0000000000..660a1fee06
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-computed.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap: getComputedStyle().scrollSnapType</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-type">
+<meta name="assert" content="scroll-snap-type 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("scroll-snap-type", "none");
+
+test_computed_value("scroll-snap-type", "x");
+test_computed_value("scroll-snap-type", "y");
+test_computed_value("scroll-snap-type", "block");
+test_computed_value("scroll-snap-type", "inline");
+test_computed_value("scroll-snap-type", "both");
+
+test_computed_value("scroll-snap-type", "y mandatory");
+test_computed_value("scroll-snap-type", "inline proximity", "inline");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html
new file mode 100644
index 0000000000..6177ff3baf
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-invalid.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-snap-type with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-type">
+<meta name="assert" content="scroll-snap-type supports only the grammar 'none | [ x | y | block | inline | both ] [ mandatory | proximity ]?'.">
+<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("scroll-snap-type", "auto");
+
+test_invalid_value("scroll-snap-type", "x y");
+test_invalid_value("scroll-snap-type", "block mandatory inline");
+
+test_invalid_value("scroll-snap-type", "both none");
+test_invalid_value("scroll-snap-type", "mandatory");
+test_invalid_value("scroll-snap-type", "proximity");
+test_invalid_value("scroll-snap-type", "mandatory inline");
+test_invalid_value("scroll-snap-type", "proximity both");
+test_invalid_value("scroll-snap-type", "mandatory x");
+test_invalid_value("scroll-snap-type", "proximity y");
+test_invalid_value("scroll-snap-type", "mandatory block");
+test_invalid_value("scroll-snap-type", "proximity mandatory");
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-valid.html b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-valid.html
new file mode 100644
index 0000000000..ca995770f4
--- /dev/null
+++ b/testing/web-platform/tests/css/css-scroll-snap/parsing/scroll-snap-type-valid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Scroll Snap Test: scroll-snap-type with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-snap-type">
+<meta name="assert" content="scroll-snap-type supports the full grammar 'none | [ x | y | block | inline | both ] [ mandatory | proximity ]?'.">
+<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("scroll-snap-type", "none");
+
+test_valid_value("scroll-snap-type", "x");
+test_valid_value("scroll-snap-type", "y");
+test_valid_value("scroll-snap-type", "block");
+test_valid_value("scroll-snap-type", "inline");
+test_valid_value("scroll-snap-type", "both");
+
+test_valid_value("scroll-snap-type", "y mandatory");
+test_valid_value("scroll-snap-type", "block mandatory");
+test_valid_value("scroll-snap-type", "both mandatory");
+test_valid_value("scroll-snap-type", "inline proximity", "inline"); // The shortest serialization is preferable
+test_valid_value("scroll-snap-type", "x proximity", "x");
+</script>
+</body>
+</html>