Bug 1523562 [wpt PR 14962] - [css-text] Parsing of CSS Text properties, a=testonly
authorEric Willigers <ewilligers@users.noreply.github.com>
Thu, 31 Jan 2019 18:59:29 +0000
changeset 458091 c526d603949517cf692f0008ccc2d5b514cd9c1e
parent 458090 0c4f530017184bea5255ba74bab19db634e3e0ea
child 458092 d7664197ba6a534c1681e155311e488e106c2cc8
push id35518
push useropoprus@mozilla.com
push dateFri, 08 Feb 2019 09:55:14 +0000
treeherdermozilla-central@3a3e393396f4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstestonly
bugs1523562, 14962
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1523562 [wpt PR 14962] - [css-text] Parsing of CSS Text properties, a=testonly Automatic update from web-platform-tests [css-text] Parsing of CSS Text properties (#14962) Test that CSS Text 3 properties accept the grammar from the specification https://www.w3.org/TR/css-text-3/#property-index -- wpt-commits: ad7a8f60ff24f1acf7e4a7e3acdf9fd1ebe70b2d wpt-pr: 14962
testing/web-platform/tests/css/css-text/parsing/hanging-punctuation-invalid.html
testing/web-platform/tests/css/css-text/parsing/hanging-punctuation-valid.html
testing/web-platform/tests/css/css-text/parsing/hyphens-invalid.html
testing/web-platform/tests/css/css-text/parsing/hyphens-valid.html
testing/web-platform/tests/css/css-text/parsing/letter-spacing-invalid.html
testing/web-platform/tests/css/css-text/parsing/letter-spacing-valid.html
testing/web-platform/tests/css/css-text/parsing/line-break-invalid.html
testing/web-platform/tests/css/css-text/parsing/line-break-valid.html
testing/web-platform/tests/css/css-text/parsing/overflow-wrap-invalid.html
testing/web-platform/tests/css/css-text/parsing/overflow-wrap-valid.html
testing/web-platform/tests/css/css-text/parsing/tab-size-invalid.html
testing/web-platform/tests/css/css-text/parsing/tab-size-valid.html
testing/web-platform/tests/css/css-text/parsing/text-align-all-invalid.html
testing/web-platform/tests/css/css-text/parsing/text-align-all-valid.html
testing/web-platform/tests/css/css-text/parsing/text-align-invalid.html
testing/web-platform/tests/css/css-text/parsing/text-align-last-invalid.html
testing/web-platform/tests/css/css-text/parsing/text-align-last-valid.html
testing/web-platform/tests/css/css-text/parsing/text-align-valid.html
testing/web-platform/tests/css/css-text/parsing/text-indent-invalid.html
testing/web-platform/tests/css/css-text/parsing/text-indent-valid.html
testing/web-platform/tests/css/css-text/parsing/text-justify-invalid.html
testing/web-platform/tests/css/css-text/parsing/text-justify-valid.html
testing/web-platform/tests/css/css-text/parsing/text-transform-invalid.html
testing/web-platform/tests/css/css-text/parsing/text-transform-valid.html
testing/web-platform/tests/css/css-text/parsing/white-space-invalid.html
testing/web-platform/tests/css/css-text/parsing/white-space-valid.html
testing/web-platform/tests/css/css-text/parsing/word-break-invalid.html
testing/web-platform/tests/css/css-text/parsing/word-break-valid.html
testing/web-platform/tests/css/css-text/parsing/word-spacing-invalid.html
testing/web-platform/tests/css/css-text/parsing/word-spacing-valid.html
testing/web-platform/tests/css/css-text/parsing/word-wrap-invalid.html
testing/web-platform/tests/css/css-text/parsing/word-wrap-valid.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/hanging-punctuation-invalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hanging-punctuation with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hanging-punctuation">
+<meta name="assert" content="hanging-punctuation supports only the grammar 'none | [ first || [ force-end | allow-end ] || last ]'.">
+<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("hanging-punctuation", "none first");
+test_invalid_value("hanging-punctuation", "last none");
+test_invalid_value("hanging-punctuation", "first first");
+test_invalid_value("hanging-punctuation", "force-end allow-end");
+test_invalid_value("hanging-punctuation", "allow-end last force-end");
+test_invalid_value("hanging-punctuation", "first allow-end last allow-end");
+test_invalid_value("hanging-punctuation", "last force-end last");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/hanging-punctuation-valid.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hanging-punctuation with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hanging-punctuation">
+<meta name="assert" content="hanging-punctuation supports the full grammar 'none | [ first || [ force-end | allow-end ] || last ]'.">
+<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("hanging-punctuation", "none");
+
+test_valid_value("hanging-punctuation", "first");
+test_valid_value("hanging-punctuation", "force-end");
+test_valid_value("hanging-punctuation", "allow-end");
+test_valid_value("hanging-punctuation", "last");
+
+test_valid_value("hanging-punctuation", "first force-end");
+test_valid_value("hanging-punctuation", "first last");
+test_valid_value("hanging-punctuation", "allow-end first");
+test_valid_value("hanging-punctuation", "force-end last");
+test_valid_value("hanging-punctuation", "last first");
+test_valid_value("hanging-punctuation", "last allow-end");
+
+test_valid_value("hanging-punctuation", "first allow-end last");
+test_valid_value("hanging-punctuation", "first last force-end");
+test_valid_value("hanging-punctuation", "force-end first last");
+test_valid_value("hanging-punctuation", "allow-end last first");
+test_valid_value("hanging-punctuation", "last first force-end");
+test_valid_value("hanging-punctuation", "last allow-end first");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/hyphens-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hyphens with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hyphens">
+<meta name="assert" content="hyphens supports only the grammar 'none | manual | 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("hyphens", "normal");
+test_invalid_value("hyphens", "none manual");
+test_invalid_value("hyphens", "auto auto");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/hyphens-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing hyphens with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-hyphens">
+<meta name="assert" content="hyphens supports the full grammar 'none | manual | 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("hyphens", "none");
+test_valid_value("hyphens", "manual");
+test_valid_value("hyphens", "auto");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/letter-spacing-invalid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing letter-spacing with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing">
+<meta name="assert" content="letter-spacing supports only the grammar 'normal | <length>'.">
+<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("letter-spacing", "auto");
+test_invalid_value("letter-spacing", "20");
+test_invalid_value("letter-spacing", "30%");
+test_invalid_value("letter-spacing", "calc(40% + 50px)");
+
+test_invalid_value("letter-spacing", "normal 10px");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/letter-spacing-valid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing letter-spacing with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-letter-spacing">
+<meta name="assert" content="letter-spacing supports the full grammar 'normal | <length>'.">
+<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("letter-spacing", "normal");
+
+test_valid_value("letter-spacing", "0", "0px");
+test_valid_value("letter-spacing", "-10px");
+test_valid_value("letter-spacing", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/line-break-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing line-break with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-line-break">
+<meta name="assert" content="line-break supports only the grammar 'auto | loose | normal | strict | anywhere'.">
+<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("line-break", "none");
+test_invalid_value("line-break", "auto loose");
+test_invalid_value("line-break", "strict normal");
+test_invalid_value("line-break", "anywhere anywhere");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/line-break-valid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing line-break with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-line-break">
+<meta name="assert" content="line-break supports the full grammar 'auto | loose | normal | strict | anywhere'.">
+<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("line-break", "auto");
+test_valid_value("line-break", "loose");
+test_valid_value("line-break", "normal");
+test_valid_value("line-break", "strict");
+test_valid_value("line-break", "anywhere");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/overflow-wrap-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing overflow-wrap with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-overflow-wrap">
+<meta name="assert" content="overflow-wrap supports only the grammar 'normal | break-word | anywhere'.">
+<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-wrap", "auto");
+test_invalid_value("overflow-wrap", "normal break-word");
+test_invalid_value("overflow-wrap", "anywhere anywhere");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/overflow-wrap-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing overflow-wrap with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-overflow-wrap">
+<meta name="assert" content="overflow-wrap supports the full grammar 'normal | break-word | anywhere'.">
+<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-wrap", "normal");
+test_valid_value("overflow-wrap", "break-word");
+test_valid_value("overflow-wrap", "anywhere");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/tab-size-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing tab-size with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-tab-size">
+<meta name="assert" content="tab-size supports only the grammar '<number> | <length>'.">
+<meta name="assert" content="Negative tab-size values are not allowed.">
+<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("tab-size", "-10px");
+test_invalid_value("tab-size", "-20");
+test_invalid_value("tab-size", "30%");
+test_invalid_value("tab-size", "calc(40% + 50px)");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/tab-size-valid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing tab-size with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-tab-size">
+<meta name="assert" content="tab-size supports the full grammar '<number> | <length>'.">
+<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("tab-size", "0");
+test_valid_value("tab-size", "2.5");
+
+test_valid_value("tab-size", "0px");
+test_valid_value("tab-size", "10px");
+test_valid_value("tab-size", "calc(2em + 3ex)");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-align-all-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-all with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-all">
+<meta name="assert" content="text-align-all supports only the grammar 'start | end | left | right | center | justify | match-parent'.">
+<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("text-align-all", "auto");
+test_invalid_value("text-align-all", "start end");
+test_invalid_value("text-align-all", "left right");
+test_invalid_value("text-align-all", "center justify");
+test_invalid_value("text-align-all", "match-parent match-parent");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-align-all-valid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-all with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-all">
+<meta name="assert" content="text-align-all supports the full grammar 'start | end | left | right | center | justify | match-parent'.">
+<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("text-align-all", "start");
+test_valid_value("text-align-all", "end");
+test_valid_value("text-align-all", "left");
+test_valid_value("text-align-all", "right");
+test_valid_value("text-align-all", "center");
+test_valid_value("text-align-all", "justify");
+test_valid_value("text-align-all", "match-parent");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-align-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align">
+<meta name="assert" content="text-align supports only the grammar 'start | end | left | right | center | justify | match-parent | justify-all'.">
+<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("text-align", "auto");
+test_invalid_value("text-align", "start end");
+test_invalid_value("text-align", "left right");
+test_invalid_value("text-align", "center justify");
+test_invalid_value("text-align", "justify-all match-parent");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-align-last-invalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-last with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-last">
+<meta name="assert" content="text-align-last supports only the grammar 'auto | start | end | left | right | center | justify | match-parent'.">
+<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("text-align-last", "none");
+test_invalid_value("text-align-last", "auto start");
+test_invalid_value("text-align-last", "end left");
+test_invalid_value("text-align-last", "right center");
+test_invalid_value("text-align-last", "justify match-parent");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-align-last-valid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align-last with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align-last">
+<meta name="assert" content="text-align-last supports the full grammar 'auto | start | end | left | right | center | justify | match-parent'.">
+<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("text-align-last", "auto");
+test_valid_value("text-align-last", "start");
+test_valid_value("text-align-last", "end");
+test_valid_value("text-align-last", "left");
+test_valid_value("text-align-last", "right");
+test_valid_value("text-align-last", "center");
+test_valid_value("text-align-last", "justify");
+test_valid_value("text-align-last", "match-parent");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-align-valid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-align with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align">
+<meta name="assert" content="text-align supports the full grammar 'start | end | left | right | center | justify | match-parent | justify-all'.">
+<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("text-align", "start");
+test_valid_value("text-align", "end");
+test_valid_value("text-align", "left");
+test_valid_value("text-align", "right");
+test_valid_value("text-align", "center");
+test_valid_value("text-align", "justify");
+test_valid_value("text-align", "match-parent");
+test_valid_value("text-align", "justify-all");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-indent-invalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-indent with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-indent">
+<meta name="assert" content="text-indent supports only the grammar '[ <length-percentage> ] && hanging? && each-line?'.">
+<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("text-indent", "auto");
+test_invalid_value("text-indent", "hanging");
+test_invalid_value("text-indent", "each-line");
+test_invalid_value("text-indent", "10");
+
+test_invalid_value("text-indent", "10px hanging 20px");
+test_invalid_value("text-indent", "hanging 20% hanging");
+test_invalid_value("text-indent", "each-line each-line");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-indent-valid.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-indent with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-indent">
+<meta name="assert" content="text-indent supports the full grammar '[ <length-percentage> ] && hanging? && each-line?'.">
+<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("text-indent", "10px");
+test_valid_value("text-indent", "20%");
+test_valid_value("text-indent", "calc(2em + 3ex)");
+test_valid_value("text-indent", "calc(50% + 60px)");
+test_valid_value("text-indent", "-30px");
+test_valid_value("text-indent", "-40%");
+
+test_valid_value("text-indent", "10px hanging");
+test_valid_value("text-indent", "20% each-line");
+test_valid_value("text-indent", "calc(2em + 3ex) hanging each-line");
+
+test_valid_value("text-indent", "hanging calc(50% + 60px)", "calc(50% + 60px) hanging");
+test_valid_value("text-indent", "each-line 10px", "10px each-line");
+test_valid_value("text-indent", "hanging 20% each-line", "20% hanging each-line");
+test_valid_value("text-indent", "each-line hanging calc(2em + 3ex)", "calc(2em + 3ex) hanging each-line");
+test_valid_value("text-indent", "calc(50% + 60px) each-line hanging", "calc(50% + 60px) hanging each-line");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-justify-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-justify with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-justify">
+<meta name="assert" content="text-justify supports only the grammar 'auto | none | inter-word | inter-character'.">
+<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("text-justify", "normal");
+test_invalid_value("text-justify", "auto none");
+test_invalid_value("text-justify", "inter-character inter-word");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-justify-valid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-justify with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-justify">
+<meta name="assert" content="text-justify supports the full grammar 'auto | none | inter-word | inter-character'.">
+<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("text-justify", "auto");
+test_valid_value("text-justify", "none");
+test_valid_value("text-justify", "inter-word");
+test_valid_value("text-justify", "inter-character");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-transform-invalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-transform with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-transform">
+<meta name="assert" content="text-transform supports only the grammar 'none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana'.">
+<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("text-transform", "none full-width");
+test_invalid_value("text-transform", "capitalize none");
+
+test_invalid_value("text-transform", "capitalize full-width lowercase");
+test_invalid_value("text-transform", "uppercase full-size-kana uppercase");
+test_invalid_value("text-transform", "full-width full-size-kana full-width");
+test_invalid_value("text-transform", "full-size-kana capitalize full-size-kana");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/text-transform-valid.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing text-transform with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-transform">
+<meta name="assert" content="text-transform supports the full grammar 'none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana'.">
+<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("text-transform", "none");
+
+test_valid_value("text-transform", "capitalize");
+test_valid_value("text-transform", "uppercase");
+test_valid_value("text-transform", "lowercase");
+test_valid_value("text-transform", "full-width");
+test_valid_value("text-transform", "full-size-kana");
+
+test_valid_value("text-transform", "capitalize full-width");
+test_valid_value("text-transform", "uppercase full-size-kana");
+test_valid_value("text-transform", "full-width full-size-kana");
+test_valid_value("text-transform", "full-width lowercase");
+test_valid_value("text-transform", "full-size-kana capitalize");
+test_valid_value("text-transform", "full-size-kana full-width");
+
+test_valid_value("text-transform", "capitalize full-width full-size-kana");
+test_valid_value("text-transform", "full-width full-size-kana uppercase");
+test_valid_value("text-transform", "full-size-kana lowercase full-width");
+test_valid_value("text-transform", "lowercase full-size-kana full-width");
+test_valid_value("text-transform", "full-width uppercase full-size-kana");
+test_valid_value("text-transform", "full-size-kana full-width capitalize");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/white-space-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing white-space with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-white-space">
+<meta name="assert" content="white-space supports only the grammar 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line'.">
+<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("white-space", "auto");
+test_invalid_value("white-space", "normal pre");
+test_invalid_value("white-space", "nowrap pre-wrap");
+test_invalid_value("white-space", "pre-line break-spaces");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/white-space-valid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing white-space with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-white-space">
+<meta name="assert" content="white-space supports the full grammar 'normal | pre | nowrap | pre-wrap | break-spaces | pre-line'.">
+<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("white-space", "normal");
+test_valid_value("white-space", "pre");
+test_valid_value("white-space", "nowrap");
+test_valid_value("white-space", "pre-wrap");
+test_valid_value("white-space", "break-spaces");
+test_valid_value("white-space", "pre-line");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/word-break-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-break with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-break">
+<meta name="assert" content="word-break supports only the grammar 'normal | keep-all | break-all'.">
+<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("word-break", "auto");
+test_invalid_value("word-break", "normal keep-all");
+test_invalid_value("word-break", "break-all break-all");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/word-break-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-break with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-break">
+<meta name="assert" content="word-break supports the full grammar 'normal | keep-all | break-all'.">
+<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("word-break", "normal");
+test_valid_value("word-break", "keep-all");
+test_valid_value("word-break", "break-all");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/word-spacing-invalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-spacing with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-spacing">
+<meta name="assert" content="word-spacing supports only the grammar 'normal | <length>'.">
+<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("word-spacing", "auto");
+test_invalid_value("word-spacing", "20%");
+
+test_invalid_value("word-spacing", "normal 10px");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/word-spacing-valid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-spacing with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-spacing">
+<meta name="assert" content="word-spacing supports the full grammar 'normal | <length>'.">
+<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("word-spacing", "normal");
+
+test_valid_value("word-spacing", "10px");
+test_valid_value("word-spacing", "-20px");
+test_valid_value("word-spacing", "calc(2em + 3ex)");
+test_valid_value("word-spacing", "0", "0px");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/word-wrap-invalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-wrap with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-wrap">
+<meta name="assert" content="word-wrap supports only the grammar 'normal | break-word | anywhere'.">
+<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("word-wrap", "auto");
+test_invalid_value("word-wrap", "normal break-word");
+test_invalid_value("word-wrap", "anywhere anywhere");
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-text/parsing/word-wrap-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Module Test: parsing word-wrap with valid values</title>
+<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-word-wrap">
+<meta name="assert" content="word-wrap supports the full grammar 'normal | break-word | anywhere'.">
+<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("word-wrap", "normal");
+test_valid_value("word-wrap", "break-word");
+test_valid_value("word-wrap", "anywhere");
+</script>
+</body>
+</html>