Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1300)

Unified Diff: third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/resources/text-decoration-shorthand.js

Issue 2494963003: Serialize the text-decoration shorthand (Closed)
Patch Set: Removed spurious newline Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/resources/text-decoration-shorthand.js
diff --git a/third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/resources/text-decoration-shorthand.js b/third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/resources/text-decoration-shorthand.js
new file mode 100644
index 0000000000000000000000000000000000000000..2496d85dd87469d02fa816d6cf50c467d685efe5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/css3-text/css3-text-decoration/resources/text-decoration-shorthand.js
@@ -0,0 +1,106 @@
+var shorthandWriteExpectations = [
+ { writeTextDecoration: '',
+ readLine: 'none', readStyle: 'solid', readColor: 'rgb(0, 0, 0)' },
+ { writeTextDecoration: 'underline',
+ readLine: 'underline', readStyle: 'solid', readColor: 'rgb(0, 0, 0)' },
+ { writeTextDecoration: 'underline overline',
+ readLine: 'underline overline', readStyle: 'solid',
+ readColor: 'rgb(0, 0, 0)' },
+ { writeTextDecoration: 'underline double',
+ readLine: 'underline', readStyle: 'double', readColor: 'rgb(0, 0, 0)' },
+ { writeTextDecoration: 'underline double red',
+ readLine: 'underline', readStyle: 'double',
+ readColor: 'rgb(255, 0, 0)' },
+ { writeTextDecoration: 'red underline double',
+ readLine: 'underline', readStyle: 'double',
+ readColor: 'rgb(255, 0, 0)' },
+ { writeTextDecoration: 'double',
+ readLine: 'none', readStyle: 'double', readColor: 'rgb(0, 0, 0)' },
+ { writeTextDecoration: 'red',
+ readLine: 'none', readStyle: 'solid', readColor: 'rgb(255, 0, 0)' },
+ { writeTextDecoration: 'double red',
+ readLine: 'none', readStyle: 'double', readColor: 'rgb(255, 0, 0)' },
+];
+
+var shorthandReadExpectations = [
+ { writeLine: '', writeStyle: '', writeColor: '',
+ readTextDecoration: 'none solid rgb(0, 0, 0)' },
+ { writeLine: 'underline', writeStyle: '', writeColor: '',
+ readTextDecoration: 'underline solid rgb(0, 0, 0)' },
+ { writeLine: 'underline overline line-through', writeStyle: '',
+ writeColor: '',
+ readTextDecoration: 'underline overline line-through solid rgb(0, 0, 0)' },
+ { writeLine: '', writeStyle: 'dashed', writeColor: '',
+ readTextDecoration: 'none dashed rgb(0, 0, 0)' },
+ { writeLine: '', writeStyle: '', writeColor: 'red',
+ readTextDecoration: 'none solid rgb(255, 0, 0)' },
+ { writeLine: '', writeStyle: '', writeColor: '#666666',
+ readTextDecoration: 'none solid rgb(102, 102, 102)' },
+ { writeLine: '', writeStyle: '', writeColor: 'rgba(1,1,1,0.4)',
+ readTextDecoration: 'none solid rgba(1, 1, 1, 0.4)' },
+ { writeLine: 'overline', writeStyle: 'double', writeColor: 'green',
+ readTextDecoration: 'overline double rgb(0, 128, 0)' },
+];
+
+var writeInvalidExpectations = {
+ 'text-decoration': [ 'underlineTYPO',
+ 'underlineTYPO red',
+ 'more than three values',
+ 'underline 2px',
+ '100%'],
+ 'text-decoration-line': [ 'solid', 'typo', 'two values' ],
+ 'text-decoration-style': [ 'blue', 'typo', 'two values' ],
+ 'text-decoration-color': [ 'solid', 'typo', 'two values' ]
+};
+
+setup({ explicit_done: true });
+
+function writeTextDecorationTests() {
+ for (testParameters of shorthandWriteExpectations) {
+ testElement.style.textDecoration = testParameters.writeTextDecoration;
+ test(function() {
+ assert_equals(getComputedStyle(testElement).textDecorationLine,
+ testParameters.readLine,
+ "computedStyle's textDecorationLine mismatch:");
+ assert_equals(getComputedStyle(testElement).textDecorationStyle,
+ testParameters.readStyle,
+ "computedStyle's textDecorationStyle mismatch:");
+ assert_equals(getComputedStyle(testElement).textDecorationColor,
+ testParameters.readColor,
+ "computedStyle's textDecorationColor mismatch:");
+ }, "Sub properties set from longhand value: " +
+ testParameters.writeTextDecoration);
+ }
+}
+
+function readTextDecorationTests() {
+ for (testParameters of shorthandReadExpectations) {
+ testElement.style.textDecorationLine = testParameters.writeLine;
+ testElement.style.textDecorationStyle = testParameters.writeStyle;
+ testElement.style.textDecorationColor = testParameters.writeColor;
+ test(function(){
+ assert_equals(getComputedStyle(testElement).textDecoration,
+ testParameters.readTextDecoration,
+ "computedStyle's textDecoration mismatch:");
+ }, "Shorthand from written subproperties: " +
+ getComputedStyle(testElement).textDecoration);
+ }
+}
+
+function invalidWriteTests() {
+ for (key in writeInvalidExpectations) {
+ for (value of writeInvalidExpectations[key]) {
+ test(function(){
+ assert_false(CSS.supports(key, value));
+ }, "Invalid writes: Value " + value +
+ " invalid for property " + key + ".");
+ }
+ }
+}
+
+window.addEventListener("load", function() {
+ writeTextDecorationTests();
+ readTextDecorationTests();
+ invalidWriteTests();
+ done();
+});

Powered by Google App Engine
This is Rietveld 408576698