| OLD | NEW |
| 1 function testElementStyle(type, value) | 1 function test(value, inlineValue, computedValue) |
| 2 { | 2 { |
| 3 if (type != null) { | 3 if (value !== null) |
| 4 shouldBe("e.style.textDecorationStyle", "'" + value + "'"); | 4 e.style.textDecorationStyle = value; |
| 5 shouldBe("e.style.getPropertyCSSValue('text-decoration-style').toString(
)", "'" + type + "'"); | 5 shouldBeEqualToString("e.style.textDecorationStyle", inlineValue); |
| 6 shouldBe("e.style.getPropertyCSSValue('text-decoration-style').cssText",
"'" + value + "'"); | 6 computedStyle = window.getComputedStyle(e, null); |
| 7 } else | 7 shouldBeEqualToString("computedStyle.textDecorationStyle", computedValue); |
| 8 shouldBeNull("e.style.getPropertyCSSValue('text-decoration-style')"); | 8 debug(""); |
| 9 } | 9 } |
| 10 | 10 |
| 11 function testComputedStyleValue(type, value) | 11 description("Test to make sure text-decoration-style is computed properly.") |
| 12 { | |
| 13 computedStyle = window.getComputedStyle(e, null); | |
| 14 shouldBe("computedStyle.getPropertyCSSValue('text-decoration-style').toStrin
g()", "'" + type + "'"); | |
| 15 shouldBe("computedStyle.getPropertyCSSValue('text-decoration-style').cssText
", "'" + value + "'"); | |
| 16 shouldBe("computedStyle.textDecorationStyle", "'" + value + "'"); | |
| 17 } | |
| 18 | |
| 19 function testValue(value, elementValue, elementStyle, computedValue, computedSty
le) | |
| 20 { | |
| 21 if (value != null) | |
| 22 e.style.textDecorationStyle = value; | |
| 23 testElementStyle(elementStyle, elementValue); | |
| 24 testComputedStyleValue(computedStyle, computedValue); | |
| 25 debug(''); | |
| 26 } | |
| 27 | |
| 28 description("Test to make sure text-decoration-style property returns CSSPrimiti
veValue properly.") | |
| 29 | 12 |
| 30 var testContainer = document.createElement("div"); | 13 var testContainer = document.createElement("div"); |
| 31 testContainer.contentEditable = true; | 14 testContainer.contentEditable = true; |
| 32 document.body.appendChild(testContainer); | 15 document.body.appendChild(testContainer); |
| 33 | 16 |
| 34 testContainer.innerHTML = '<div id="test-parent" style="text-decoration-style: d
ashed !important;">hello <span id="test-ancestor">world</span></div>'; | 17 testContainer.innerHTML = '<div id="test-parent" style="text-decoration-style: d
ashed !important;">hello <span id="test-ancestor">world</span></div>'; |
| 35 debug("Ancestor should not inherit 'dashed' value from parent (fallback to initi
al 'solid' value):") | 18 debug("Ancestor should not inherit 'dashed' value from parent (fallback to initi
al 'solid' value):") |
| 36 e = document.getElementById('test-ancestor'); | 19 e = document.getElementById('test-ancestor'); |
| 37 testValue(null, "", null, "solid", "[object CSSPrimitiveValue]"); | 20 test(null, "", "solid"); |
| 38 | 21 |
| 39 debug("Parent should cointain 'dashed':"); | 22 debug("Parent should cointain 'dashed':"); |
| 40 e = document.getElementById('test-parent'); | 23 e = document.getElementById('test-parent'); |
| 41 testValue(null, "dashed", "[object CSSPrimitiveValue]", "dashed", "[object CSSPr
imitiveValue]"); | 24 test(null, "dashed", "dashed"); |
| 42 | 25 |
| 43 testContainer.innerHTML = '<div id="test-js">test</div>'; | 26 testContainer.innerHTML = '<div id="test-js">test</div>'; |
| 44 debug("JavaScript setter tests for valid, initial, invalid and blank values:"); | 27 debug("JavaScript setter tests for valid, initial, invalid and blank values:"); |
| 45 e = document.getElementById('test-js'); | 28 e = document.getElementById('test-js'); |
| 46 shouldBeNull("e.style.getPropertyCSSValue('text-decoration-style')"); | 29 shouldBeEmptyString("e.style.textDecorationStyle"); |
| 47 | 30 |
| 48 debug("\nValid value 'solid':"); | 31 debug("\nValid value 'solid':"); |
| 49 testValue("solid", "solid", "[object CSSPrimitiveValue]", "solid", "[object CSSP
rimitiveValue]"); | 32 test("solid", "solid", "solid"); |
| 50 | 33 |
| 51 debug("Valid value 'double':"); | 34 debug("Valid value 'double':"); |
| 52 testValue("double", "double", "[object CSSPrimitiveValue]", "double", "[object C
SSPrimitiveValue]"); | 35 test("double", "double", "double"); |
| 53 | 36 |
| 54 debug("Valid value 'dotted':"); | 37 debug("Valid value 'dotted':"); |
| 55 testValue("dotted", "dotted", "[object CSSPrimitiveValue]", "dotted", "[object C
SSPrimitiveValue]"); | 38 test("dotted", "dotted", "dotted"); |
| 56 | 39 |
| 57 debug("Valid value 'dashed':"); | 40 debug("Valid value 'dashed':"); |
| 58 testValue("dashed", "dashed", "[object CSSPrimitiveValue]", "dashed", "[object C
SSPrimitiveValue]"); | 41 test("dashed", "dashed", "dashed"); |
| 59 | 42 |
| 60 debug("Valid value 'wavy':"); | 43 debug("Valid value 'wavy':"); |
| 61 testValue("wavy", "wavy", "[object CSSPrimitiveValue]", "wavy", "[object CSSPrim
itiveValue]"); | 44 test("wavy", "wavy", "wavy"); |
| 62 | 45 |
| 63 debug("Initial value:"); | 46 debug("Initial value:"); |
| 64 testValue("initial", "initial", "[object CSSValue]", "solid", "[object CSSPrimit
iveValue]"); | 47 test("initial", "initial", "solid"); |
| 65 | 48 |
| 66 debug("Invalid value (this property accepts one value at a time only):"); | 49 debug("Invalid value (this property accepts one value at a time only):"); |
| 67 testValue("double dotted", "initial", "[object CSSValue]", "solid", "[object CSS
PrimitiveValue]"); | 50 test("double dotted", "initial", "solid"); |
| 68 | 51 |
| 69 debug("Invalid value (ie. 'unknown'):"); | 52 debug("Invalid value (ie. 'unknown'):"); |
| 70 testValue("unknown", "initial", "[object CSSValue]", "solid", "[object CSSPrimit
iveValue]"); | 53 test("unknown", "initial", "solid"); |
| 71 | 54 |
| 72 debug("Empty value (resets the property):"); | 55 debug("Empty value (resets the property):"); |
| 73 testValue("", "", null, "solid", "[object CSSPrimitiveValue]"); | 56 test("", "", "solid"); |
| 74 | 57 |
| 75 document.body.removeChild(testContainer); | 58 document.body.removeChild(testContainer); |
| OLD | NEW |