summaryrefslogtreecommitdiffstats
path: root/layout/style/test/test_text_decoration_shorthands.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/test/test_text_decoration_shorthands.html')
-rw-r--r--layout/style/test/test_text_decoration_shorthands.html136
1 files changed, 136 insertions, 0 deletions
diff --git a/layout/style/test/test_text_decoration_shorthands.html b/layout/style/test/test_text_decoration_shorthands.html
new file mode 100644
index 0000000000..d2cfed6667
--- /dev/null
+++ b/layout/style/test/test_text_decoration_shorthands.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test parsing of text-decoration shorthands</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <link rel='stylesheet' href='/resources/testharness.css'>
+</head>
+<body>
+
+<script>
+
+var initial_values = {
+ textDecorationColor: "rgb(255, 0, 255)",
+ textDecorationLine: "none",
+ textDecorationStyle: "solid",
+ textDecorationThickness: "auto",
+};
+
+// For various specified values of the text-decoration shorthand,
+// test the computed values of the corresponding longhands.
+var text_decoration_test_cases = [
+ {
+ specified: "none",
+ },
+ {
+ specified: "red",
+ textDecorationColor: "rgb(255, 0, 0)",
+ },
+ {
+ specified: "line-through",
+ textDecorationLine: "line-through",
+ },
+ {
+ specified: "dotted",
+ textDecorationStyle: "dotted",
+ },
+ {
+ specified: "20px",
+ textDecorationThickness: "20px",
+ },
+ {
+ specified: "auto",
+ textDecorationThickness: "auto",
+ },
+ {
+ specified: "from-font",
+ textDecorationThickness: "from-font",
+ },
+ {
+ specified: "#00ff00 underline",
+ textDecorationColor: "rgb(0, 255, 0)",
+ textDecorationLine: "underline",
+ },
+ {
+ specified: "#ffff00 wavy",
+ textDecorationColor: "rgb(255, 255, 0)",
+ textDecorationStyle: "wavy",
+ },
+ {
+ specified: "overline double",
+ textDecorationLine: "overline",
+ textDecorationStyle: "double",
+ },
+ {
+ specified: "red underline solid",
+ textDecorationColor: "rgb(255, 0, 0)",
+ textDecorationLine: "underline",
+ textDecorationStyle: "solid",
+ },
+ {
+ specified: "double overline blue",
+ textDecorationColor: "rgb(0, 0, 255)",
+ textDecorationLine: "overline",
+ textDecorationStyle: "double",
+ },
+ {
+ specified: "solid underline 10px",
+ textDecorationStyle: "solid",
+ textDecorationLine: "underline",
+ textDecorationThickness: "10px",
+ },
+ {
+ specified: "line-through blue 200px",
+ textDecorationLine: "line-through",
+ textDecorationColor: "rgb(0, 0, 255)",
+ textDecorationThickness: "200px",
+ },
+ {
+ specified: "underline wavy red 0",
+ textDecorationLine: "underline",
+ textDecorationStyle: "wavy",
+ textDecorationColor: "rgb(255, 0, 0)",
+ textDecorationThickness: "0px",
+ },
+ {
+ specified: "overline -30px",
+ textDecorationLine: "overline",
+ textDecorationThickness: "-30px",
+ },
+ {
+ specified: "underline red from-font",
+ textDecorationLine: "underline",
+ textDecorationColor: "rgb(255, 0, 0)",
+ textDecorationThickness: "from-font",
+ },
+];
+
+function run_tests(test_cases, shorthand, subproperties) {
+ test_cases.forEach(function(test_case) {
+ test(function() {
+ var element = document.createElement('div');
+ document.body.appendChild(element);
+ // Set text color to test initial value of text-decoration-color
+ // (currentColor).
+ element.style.color = "#ff00ff";
+ element.style[shorthand] = test_case.specified;
+ var computed = window.getComputedStyle(element);
+ subproperties.forEach(function(longhand) {
+ assert_equals(
+ computed[longhand],
+ test_case[longhand] || initial_values[longhand],
+ longhand
+ );
+ });
+ }, "test parsing of 'text-decoration: " + test_case.specified + "'");
+ });
+}
+
+run_tests(text_decoration_test_cases, "textDecoration", [
+ "textDecorationColor", "textDecorationLine", "textDecorationStyle", "textDecorationThickness"]);
+
+</script>
+</body>
+</html>