Index: LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js |
diff --git a/LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js b/LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js |
index 3c6fe90917537b7b6384d3765bc3296039b24664..a2fd7a16af7ba57567f19990c2189fd8cfc5b239 100644 |
--- a/LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js |
+++ b/LayoutTests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-decoration-line.js |
@@ -1,99 +1,58 @@ |
-function testElementStyle(propertyJS, propertyCSS, type, value) |
-{ |
- if (type != null) { |
- shouldBe("e.style." + propertyJS, "'" + value + "'"); |
- shouldBe("e.style.getPropertyCSSValue('" + propertyCSS + "').toString()", "'" + type + "'"); |
- shouldBe("e.style.getPropertyCSSValue('" + propertyCSS + "').cssText", "'" + value + "'"); |
- } else |
- shouldBeNull("e.style.getPropertyCSSValue('" + propertyCSS + "')"); |
-} |
- |
-function testComputedStyle(propertyJS, propertyCSS, type, value) |
+function test(value, inlineValue, computedValue) |
{ |
+ if (value !== null) |
+ e.style.textDecorationLine = value; |
+ shouldBeEqualToString("e.style.textDecorationLine", inlineValue); |
computedStyle = window.getComputedStyle(e, null); |
- shouldBe("computedStyle." + propertyJS, "'" + value + "'"); |
- shouldBe("computedStyle.getPropertyCSSValue('" + propertyCSS + "').toString()", "'" + type + "'"); |
- shouldBe("computedStyle.getPropertyCSSValue('" + propertyCSS + "').cssText", "'" + value + "'"); |
+ shouldBeEqualToString("computedStyle.textDecorationLine", computedValue); |
+ debug(""); |
} |
-description("Test to make sure text-decoration-line property returns values properly.") |
+description("Test to make sure text-decoration-line is computed properly.") |
var testContainer = document.createElement("div"); |
testContainer.contentEditable = true; |
document.body.appendChild(testContainer); |
testContainer.innerHTML = '<div id="test">hello world</div>'; |
-debug("Initial value:"); |
e = document.getElementById('test'); |
-testElementStyle("textDecorationLine", "text-decoration-line", null, ''); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-debug(''); |
+debug("Initial value:"); |
+test(null, "", "none"); |
debug("Initial value (explicit):"); |
-e.style.textDecorationLine = 'initial'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValue]", "initial"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-debug(''); |
+test("initial", "initial", "none"); |
debug("Value 'none':"); |
-e.style.textDecorationLine = 'none'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-debug(''); |
+test("none", "none", "none"); |
debug("Value 'underline':"); |
-e.style.textDecorationLine = 'underline'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline"); |
-debug(''); |
+test("underline", "underline", "underline"); |
debug("Value 'overline':"); |
-e.style.textDecorationLine = 'overline'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "overline"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "overline"); |
-debug(''); |
+test("overline", "overline", "overline"); |
debug("Value 'line-through':"); |
-e.style.textDecorationLine = 'line-through'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "line-through"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "line-through"); |
-debug(''); |
+test("line-through", "line-through", "line-through"); |
debug("Value 'blink' (valid, but ignored on computed style):"); |
-e.style.textDecorationLine = 'blink'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "blink"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-debug(''); |
+test("blink", "blink", "none"); |
debug("Value 'underline overline line-through blink':"); |
-e.style.textDecorationLine = 'underline overline line-through blink'; |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline overline line-through blink"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline overline line-through"); |
-debug(''); |
+test("underline overline line-through blink", "underline overline line-through blink", "underline overline line-through"); |
debug("Value '':"); |
-e.style.textDecorationLine = ''; |
-testElementStyle("textDecorationLine", "text-decoration-line", null, ''); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-debug(''); |
+test("", "", "none"); |
testContainer.innerHTML = '<div id="test-parent" style="text-decoration-line: underline;">hello <span id="test-ancestor" style="text-decoration-line: inherit;">world</span></div>'; |
debug("Parent gets 'underline' value:"); |
e = document.getElementById('test-parent'); |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline"); |
-debug(''); |
+test(null, "underline", "underline"); |
debug("Ancestor should explicitly inherit value from parent when 'inherit' value is used:"); |
e = document.getElementById('test-ancestor'); |
-testElementStyle("textDecorationLine", "text-decoration-line", "[object CSSValue]", "inherit"); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSValueList]", "underline"); |
-debug(''); |
+test(null, "inherit", "underline"); |
debug("Ancestor should not implicitly inherit value from parent (i.e. when value is void):"); |
-e.style.textDecorationLine = ''; |
-testElementStyle("textDecorationLine", "text-decoration-line", null, ''); |
-testComputedStyle("textDecorationLine", "text-decoration-line", "[object CSSPrimitiveValue]", "none"); |
-debug(''); |
+test("", "", "none"); |
document.body.removeChild(testContainer); |