diff options
Diffstat (limited to 'testing/web-platform/tests/css/motion/parsing')
18 files changed, 534 insertions, 0 deletions
diff --git a/testing/web-platform/tests/css/motion/parsing/offset-anchor-computed.html b/testing/web-platform/tests/css/motion/parsing/offset-anchor-computed.html new file mode 100644 index 0000000000..fc9ddb3d0c --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-anchor-computed.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: getComputedStyle().offsetAnchor</title> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-anchor-property"> +<meta name="assert" content="offset-anchor is 'auto' or a computed position."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<style> + #target { + font-size: 40px; + } +</style> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("offset-anchor", "auto"); + +test_computed_value("offset-anchor", "left bottom", "0% 100%"); +test_computed_value("offset-anchor", "center center", "50% 50%"); +test_computed_value("offset-anchor", "right center", "100% 50%"); +test_computed_value("offset-anchor", "center top", "50% 0%"); +test_computed_value("offset-anchor", "center bottom", "50% 100%"); +test_computed_value("offset-anchor", "calc(20% - 5em) center", "calc(20% - 200px) 50%"); +test_computed_value("offset-anchor", "right 4em", "100% 160px"); +test_computed_value("offset-anchor", "10px 20%"); +test_computed_value("offset-anchor", "left -10px top -20%", "-10px -20%"); +test_computed_value("offset-anchor", "right 10% bottom 20em", "90% calc(100% - 800px)"); +test_computed_value("offset-anchor", "top 10px right -20%", "120% 10px"); +test_computed_value("offset-anchor", "left 10% bottom 20em", "10% calc(100% - 800px)"); +test_computed_value('offset-anchor', 'calc(10px - 0.5em) calc(10px + 0.5em)', '-10px 30px'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-anchor-parsing-invalid.html b/testing/web-platform/tests/css/motion/parsing/offset-anchor-parsing-invalid.html new file mode 100644 index 0000000000..af32ae2c5a --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-anchor-parsing-invalid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-anchor with invalid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-anchor-property"> +<meta name="assert" content="offset-anchor supports only the grammar 'auto | <position>'."> +<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("offset-anchor", "none"); +test_invalid_value("offset-anchor", "30deg"); +test_invalid_value("offset-anchor", "left 10% top"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-anchor-parsing-valid.html b/testing/web-platform/tests/css/motion/parsing/offset-anchor-parsing-valid.html new file mode 100644 index 0000000000..6cb4d44117 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-anchor-parsing-valid.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-anchor with valid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-anchor-property"> +<meta name="assert" content="offset-anchor supports the full grammar 'auto | <position>'."> +<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("offset-anchor", "auto"); + +test_valid_value("offset-anchor", "left bottom"); +test_valid_value("offset-anchor", "center center"); +test_valid_value("offset-anchor", "right center"); +test_valid_value("offset-anchor", "center top"); +test_valid_value("offset-anchor", "center bottom"); +test_valid_value("offset-anchor", "calc(20% + 10px) center"); +test_valid_value("offset-anchor", "right 30em"); +test_valid_value("offset-anchor", "10px 20%"); +test_valid_value("offset-anchor", "left -10px top -20%"); +test_valid_value("offset-anchor", "right 10% bottom 20em"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-distance-computed.html b/testing/web-platform/tests/css/motion/parsing/offset-distance-computed.html new file mode 100644 index 0000000000..e9de1ef255 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-distance-computed.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: getComputedStyle().offsetDistance</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-distance-property"> +<meta name="assert" content="offset-distance is a computed '<length-percentage>'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<style> + #target { + font-size: 40px; + } +</style> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("offset-distance", "10px"); +test_computed_value("offset-distance", "20%"); +test_computed_value("offset-distance", "calc(40% - 30px)"); +test_computed_value("offset-distance", "0", "0px"); +test_computed_value('offset-distance', 'calc(10px - 0.5em)', '-10px'); +test_computed_value('offset-distance', 'calc(10px + 0.5em)', '30px'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-distance-parsing-invalid.html b/testing/web-platform/tests/css/motion/parsing/offset-distance-parsing-invalid.html new file mode 100644 index 0000000000..2d0be83e03 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-distance-parsing-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-distance with invalid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-distance-property"> +<meta name="assert" content="offset-distance supports only the grammar '<length-percentage>'."> +<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("offset-distance", "none"); +test_invalid_value("offset-distance", "30deg"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-distance-parsing-valid.html b/testing/web-platform/tests/css/motion/parsing/offset-distance-parsing-valid.html new file mode 100644 index 0000000000..fa5fdd04e5 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-distance-parsing-valid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-distance with valid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-distance-property"> +<meta name="assert" content="offset-distance supports the full grammar '<length-percentage>'."> +<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("offset-distance", "10px"); +test_valid_value("offset-distance", "20%"); +test_valid_value("offset-distance", "calc(40% + 30px)"); +test_valid_value("offset-distance", "0", "0px"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-parsing-invalid.html b/testing/web-platform/tests/css/motion/parsing/offset-parsing-invalid.html new file mode 100644 index 0000000000..cc2eb500eb --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-parsing-invalid.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset with invalid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-shorthand"> +<meta name="assert" content="offset supports only the grammar from the spec."> +<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("offset", "100px 0deg path('m 0 0 h 100')"); +test_invalid_value("offset", "30deg path('M 20 30 A 60 70 80')"); +test_invalid_value("offset", "30deg"); +test_invalid_value("offset", "auto 30deg 90px"); +test_invalid_value("offset", "none / 10px 20px 30deg"); +test_invalid_value("offset", "none /"); +test_invalid_value("offset", "path('M 20 30 A 60 70 80') bottom"); +test_invalid_value("offset", "path('m 0 0 h 100') 100px 0"); +test_invalid_value("offset", "path('m 0 0 h 100') 100px 200px"); +test_invalid_value("offset", "path('m 0 0 h 100') 200% auto 100px"); +test_invalid_value("offset", "path('m 0 0 h 100') auto reverse"); +test_invalid_value("offset", "path('m 0 0 h 100') reverse 100px 30deg"); +test_invalid_value("offset", "ray(sides 0) 50% 90deg auto"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-parsing-valid.html b/testing/web-platform/tests/css/motion/parsing/offset-parsing-valid.html new file mode 100644 index 0000000000..7f8a0fd34c --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-parsing-valid.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset with valid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-shorthand"> +<meta name="assert" content="offset supports the full grammar from the spec."> +<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("offset", "100px none auto 90deg", "100px center none auto 90deg"); +test_valid_value("offset", "100px", "100px center"); +test_valid_value("offset", "auto none reverse"); +test_valid_value("offset", "auto"); +test_valid_value("offset", "center bottom path(\"M 1 2 V 3 Z\")"); +test_valid_value("offset", "center center path(\"M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z\") 100% 90deg / left bottom"); +test_valid_value("offset", "left bottom ray(0rad closest-side) 10px auto 30deg / right bottom"); +test_valid_value("offset", "left top"); +test_valid_value("offset", "none 30deg reverse", "none reverse 30deg"); +test_valid_value("offset", "none 50px reverse 30deg"); +test_valid_value("offset", "none calc(10px + 20%) auto", "none calc(20% + 10px)"); +test_valid_value("offset", "none reverse"); +test_valid_value("offset", "path(\"M 0 0 H 1\") -200% auto", "path(\"M 0 0 H 1\") -200%"); +test_valid_value("offset", "path(\"M 0 0 H 1\") -200%"); +test_valid_value("offset", "path('M 0 0 H 1') 50px", "path(\"M 0 0 H 1\") 50px"); +test_valid_value("offset", "path(\"M 0 0 H 1\") auto", "path(\"M 0 0 H 1\")"); +test_valid_value("offset", "path(\"M 0 0 H 1\") auto 0deg", "path(\"M 0 0 H 1\")"); +test_valid_value("offset", "path(\"M 0 0 H 1\") auto 0rad", "path(\"M 0 0 H 1\")"); +test_valid_value("offset", "path(\"M 0 0 H 1\") auto 0.5turn", "path(\"M 0 0 H 1\") auto 0.5turn"); +test_valid_value("offset", "path('M 0 0 H 1') reverse 30deg 50px", "path(\"M 0 0 H 1\") 50px reverse 30deg"); +test_valid_value("offset", "path(\"M 0 0 H 1\")"); +test_valid_value("offset", "path('m 20 0 h 100') -7rad 8px / auto", "path(\"m 20 0 h 100\") 8px -7rad"); +test_valid_value("offset", "path('m 0 30 v 100') -7rad 8px / left top", "path(\"m 0 30 v 100\") 8px -7rad / left top"); +test_valid_value("offset", "path('m 0 0 h 100') -7rad 8px", "path(\"m 0 0 h 100\") 8px -7rad"); +test_valid_value("offset", "path(\"M 0 0 H 100\") 100px 0deg"); +test_valid_value("offset", "path( 'm 1 2 v 3.00 z')", "path(\"m 1 2 v 3 Z\")"); +test_valid_value("offset", "ray(farthest-corner 90deg) 1%", "ray(90deg farthest-corner) 1%"); +test_valid_value("offset", "ray(sides 0deg) 50% 90deg auto", "ray(0deg sides) 50% auto 90deg"); +test_valid_value("offset", "right bottom / left top"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-path-computed.html b/testing/web-platform/tests/css/motion/parsing/offset-path-computed.html new file mode 100644 index 0000000000..79d6022cc9 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-path-computed.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: getComputedStyle().offsetPath</title> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-path-property"> +<meta name="assert" content="offset-path has absolute path commands."> +<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("offset-path", "none"); + +test_computed_value("offset-path", "ray(0rad closest-side)", "ray(0deg closest-side)"); +test_computed_value("offset-path", "ray(0.25turn closest-corner contain)", "ray(90deg closest-corner contain)"); +test_computed_value("offset-path", "ray(200grad farthest-side)", "ray(180deg farthest-side)"); +test_computed_value("offset-path", "ray(270deg farthest-corner contain)"); +test_computed_value("offset-path", "ray(-720deg sides)"); +test_computed_value("offset-path", "ray(calc(180deg - 45deg) farthest-side)", "ray(135deg farthest-side)"); + +test_computed_value("offset-path", 'path("m 20 0 h -100")', 'path("M 20 0 H -80")'); +test_computed_value("offset-path", 'path("M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z")'); +test_computed_value("offset-path", 'path("m 10 20 q 30 60 40 50 q 100 70 90 80")', 'path("M 10 20 Q 40 80 50 70 Q 150 140 140 150")'); +test_computed_value("offset-path", 'path("M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z")', 'path("M 0 0 L 100 100 M 100 200 L 200 200 Z L 260 220 Z")'); +test_computed_value("offset-path", 'path("m 10 20 l 20 30 Z l 50 60 Z m 70 80 l 90 60 Z t 70 120")', 'path("M 10 20 L 30 50 Z L 60 80 Z M 80 100 L 170 160 Z T 150 220")'); +test_computed_value("offset-path", 'path("m 10 170 h 90 v 30 m 0 0 s 1 2 3 4 z c 9 8 7 6 5 4")', 'path("M 10 170 H 100 V 200 M 100 200 S 101 202 103 204 Z C 109 208 107 206 105 204")'); +test_computed_value("offset-path", 'path("m 10 20 a 10 20 30 1 0 40 50 a 110 120 30 1 1 140 50")', 'path("M 10 20 A 10 20 30 1 0 50 70 A 110 120 30 1 1 190 120")'); + +// url, shape and geometry-box paths are not yet supported by implementations. +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-path-parsing-invalid.html b/testing/web-platform/tests/css/motion/parsing/offset-path-parsing-invalid.html new file mode 100644 index 0000000000..c69f7c81a9 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-path-parsing-invalid.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-path with invalid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-path-property"> +<meta name="assert" content="offset-path supports only the grammar from the spec."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +// arc path segments must have at least 7 arguments. +// https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands +test_invalid_value("offset-path", 'path("M 20 30 A 60 70 80")'); + +test_invalid_value("offset-path", "ray(0 sides)"); +test_invalid_value("offset-path", "ray(0deg)"); +test_invalid_value("offset-path", "ray(closest-side)"); +test_invalid_value("offset-path", "ray(closest-side 0deg closest-side)"); +test_invalid_value("offset-path", "ray(0deg closest-side 0deg)"); +test_invalid_value("offset-path", "ray(contain 0deg closest-side contain)"); + +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-path-parsing-valid.html b/testing/web-platform/tests/css/motion/parsing/offset-path-parsing-valid.html new file mode 100644 index 0000000000..fce99f572e --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-path-parsing-valid.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-path with valid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-path-property"> +<meta name="assert" content="offset-path supports the full grammar from the spec."> +<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("offset-path", "none"); + +test_valid_value("offset-path", "ray(0rad closest-side)"); +test_valid_value("offset-path", "ray(0.25turn closest-corner contain)"); +test_valid_value("offset-path", "ray(200grad farthest-side)"); +test_valid_value("offset-path", "ray(270deg farthest-corner contain)"); +test_valid_value("offset-path", "ray(-720deg sides)"); +test_valid_value("offset-path", "ray(calc(180deg - 45deg) farthest-side)", "ray(calc(135deg) farthest-side)"); + +test_valid_value("offset-path", 'path("m 20 0 h -100")'); +test_valid_value("offset-path", 'path("M 0 0 L 100 100 M 100 200 L 200 200 Z L 300 300 Z")'); +test_valid_value("offset-path", 'path("m 10 20 q 30 60 40 50 q 100 70 90 80")'); +test_valid_value("offset-path", 'path("M 0 0 L 100 100 m 0 100 l 100 0 Z l 160 20 Z")'); +test_valid_value("offset-path", 'path("m 10 20 l 20 30 Z l 50 60 Z m 70 80 l 90 60 Z t 70 120")'); +test_valid_value("offset-path", 'path("m 10 170 h 90 v 30 m 0 0 s 1 2 3 4 z c 9 8 7 6 5 4")', 'path("m 10 170 h 90 v 30 m 0 0 s 1 2 3 4 Z c 9 8 7 6 5 4")'); +test_valid_value("offset-path", 'path("m 10 20 a 10 20 30 1 0 40 50 a 110 120 30 1 1 140 50")'); +// See https://github.com/w3c/fxtf-drafts/issues/392. If empty path string, +// Blink serializes it as none, but Gecko serializes as path(""). +test_valid_value("offset-path", 'path("")', ['none', 'path("")']); +test_valid_value("offset-path", 'path(" ")', ['none', 'path("")']); + +test_valid_value("offset-path", 'url("http://www.example.com/index.html#polyline1")'); + +test_valid_value("offset-path", "circle(100px)"); +test_valid_value("offset-path", "margin-box"); +test_valid_value("offset-path", "inset(10% 20% 30% 40%) border-box"); +test_valid_value("offset-path", "fill-box ellipse(50% 60%)", "ellipse(50% 60%) fill-box"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-position-computed.html b/testing/web-platform/tests/css/motion/parsing/offset-position-computed.html new file mode 100644 index 0000000000..1cbdbdb0fe --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-position-computed.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: getComputedStyle().offsetPosition</title> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-position-property"> +<meta name="assert" content="offset-position is 'auto' or a computed position."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<style> + #target { + font-size: 40px; + } +</style> +</head> +<body> +<div id="target"></div> +<script> +test_computed_value("offset-position", "auto"); + +test_computed_value("offset-position", "left bottom", "0% 100%"); +test_computed_value("offset-position", "center center", "50% 50%"); +test_computed_value("offset-position", "right center", "100% 50%"); +test_computed_value("offset-position", "center top", "50% 0%"); +test_computed_value("offset-position", "center bottom", "50% 100%"); +test_computed_value("offset-position", "calc(5em + 20%) center", "calc(20% + 200px) 50%"); +test_computed_value("offset-position", "right 3em", "100% 120px"); +test_computed_value("offset-position", "10px 20%"); +test_computed_value("offset-position", "left -10px top -20%", "-10px -20%"); +test_computed_value("offset-position", "right 10% bottom 5em", "90% calc(100% - 200px)"); +test_computed_value("offset-position", "top 10px right -20%", "120% 10px"); +test_computed_value("offset-position", "left 10% bottom 2em", "10% calc(100% - 80px)"); +test_computed_value('offset-position', 'calc(10px - 0.5em) calc(10px + 0.5em)', '-10px 30px'); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-position-parsing-invalid.html b/testing/web-platform/tests/css/motion/parsing/offset-position-parsing-invalid.html new file mode 100644 index 0000000000..5e749e5b4e --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-position-parsing-invalid.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-position with invalid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-position-property"> +<meta name="assert" content="offset-position supports only the grammar 'auto | <position>'."> +<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("offset-position", "none"); +test_invalid_value("offset-position", "30deg"); +test_invalid_value("offset-position", "left 10% top"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-position-parsing-valid.html b/testing/web-platform/tests/css/motion/parsing/offset-position-parsing-valid.html new file mode 100644 index 0000000000..d40f70e8c0 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-position-parsing-valid.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-position with valid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-position-property"> +<meta name="assert" content="offset-position supports the full grammar 'auto | <position>'."> +<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("offset-position", "auto"); + +test_valid_value("offset-position", "left bottom"); +test_valid_value("offset-position", "center center"); +test_valid_value("offset-position", "right center"); +test_valid_value("offset-position", "center top"); +test_valid_value("offset-position", "center bottom"); +test_valid_value("offset-position", "calc(10px + 20%) center"); +test_valid_value("offset-position", "right 30em"); +test_valid_value("offset-position", "10px 20%"); +test_valid_value("offset-position", "left -10px top -20%"); +test_valid_value("offset-position", "right 10% bottom 20em"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-rotate-computed.html b/testing/web-platform/tests/css/motion/parsing/offset-rotate-computed.html new file mode 100644 index 0000000000..fd1b71966a --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-rotate-computed.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: getComputedStyle().offsetRotate</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-rotate-property"> +<meta name="assert" content="offset-rotate reverse is auto 180deg."> +<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> +// https://github.com/w3c/fxtf-drafts/issues/340 +test_computed_value("offset-rotate", "auto", ["auto 0deg", "auto"]); +test_computed_value("offset-rotate", "reverse", "auto 180deg"); +test_computed_value("offset-rotate", "calc(90deg - 0.5turn - 300grad + 0rad)", "-360deg"); +test_computed_value("offset-rotate", "auto 5turn", "auto 1800deg"); +test_computed_value("offset-rotate", "reverse -50grad", "auto 135deg"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-rotate-parsing-invalid.html b/testing/web-platform/tests/css/motion/parsing/offset-rotate-parsing-invalid.html new file mode 100644 index 0000000000..4e5a9229a0 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-rotate-parsing-invalid.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-rotate with invalid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-rotate-property"> +<meta name="assert" content="offset-rotate supports only the grammar '[ auto | reverse ] || <angle>'."> +<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("offset-rotate", "none"); +test_invalid_value("offset-rotate", "0"); +test_invalid_value("offset-rotate", "auto reverse"); +test_invalid_value("offset-rotate", "reverse 30deg auto"); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-rotate-parsing-valid.html b/testing/web-platform/tests/css/motion/parsing/offset-rotate-parsing-valid.html new file mode 100644 index 0000000000..048c246f16 --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-rotate-parsing-valid.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: parsing offset-rotate with valid values</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-rotate-property"> +<meta name="assert" content="offset-rotate supports the full grammar '[ auto | reverse ] || <angle>'."> +<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("offset-rotate", "auto"); +test_valid_value("offset-rotate", "reverse"); +test_valid_value("offset-rotate", "-400deg"); +test_valid_value("offset-rotate", "auto 5turn"); +// https://github.com/w3c/fxtf-drafts/issues/340 +test_valid_value("offset-rotate", "reverse 0rad", ["reverse 0rad", "reverse"]); +test_valid_value("offset-rotate", "5turn auto", "auto 5turn"); +// https://github.com/w3c/fxtf-drafts/issues/340 +test_valid_value("offset-rotate", "0rad reverse", ["reverse 0rad", "reverse"]); +</script> +</body> +</html> diff --git a/testing/web-platform/tests/css/motion/parsing/offset-shorthand.html b/testing/web-platform/tests/css/motion/parsing/offset-shorthand.html new file mode 100644 index 0000000000..611a394b8b --- /dev/null +++ b/testing/web-platform/tests/css/motion/parsing/offset-shorthand.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Motion Path Module Level 1: offset sets longhands</title> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-shorthand"> +<meta name="assert" content="offset supports the full grammar from the spec."> +<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('offset', 'left bottom ray(0rad closest-side) 10px auto 30deg / right bottom', { + 'offset-position': 'left bottom', + 'offset-path': 'ray(0rad closest-side)', + 'offset-distance': '10px', + 'offset-rotate': 'auto 30deg', + 'offset-anchor': 'right bottom', +}); + +test_shorthand_value('offset', 'top right / top left', { + 'offset-position': 'right top', + 'offset-path': 'none', + 'offset-distance': '0px', + 'offset-rotate': 'auto', + 'offset-anchor': 'left top', +}); + +test_shorthand_value('offset', 'path("M 0 0 H 2") reverse 50%', { + 'offset-position': 'auto', + 'offset-path': 'path("M 0 0 H 2")', + 'offset-distance': '50%', + 'offset-rotate': 'reverse', + 'offset-anchor': 'auto', +}); +</script> +</body> +</html> |