| function test(value, inlineValue, computedValue) |
| { |
| if (value !== null) |
| e.style.textDecorationLine = value; |
| shouldBeEqualToString("e.style.textDecorationLine", inlineValue); |
| computedStyle = window.getComputedStyle(e, null); |
| shouldBeEqualToString("computedStyle.textDecorationLine", computedValue); |
| debug(""); |
| } |
| |
| 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>'; |
| e = document.getElementById('test'); |
| debug("Initial value:"); |
| test(null, "", "none"); |
| |
| debug("Initial value (explicit):"); |
| test("initial", "initial", "none"); |
| |
| debug("Value 'none':"); |
| test("none", "none", "none"); |
| |
| debug("Value 'underline':"); |
| test("underline", "underline", "underline"); |
| |
| debug("Value 'overline':"); |
| test("overline", "overline", "overline"); |
| |
| debug("Value 'line-through':"); |
| test("line-through", "line-through", "line-through"); |
| |
| debug("Value 'blink' (valid, but ignored on computed style):"); |
| test("blink", "blink", "none"); |
| |
| debug("Value 'underline overline line-through blink':"); |
| test("underline overline line-through blink", "underline overline line-through blink", "underline overline line-through"); |
| |
| debug("Value '':"); |
| 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'); |
| test(null, "underline", "underline"); |
| |
| debug("Ancestor should explicitly inherit value from parent when 'inherit' value is used:"); |
| e = document.getElementById('test-ancestor'); |
| test(null, "inherit", "underline"); |
| |
| debug("Ancestor should not implicitly inherit value from parent (i.e. when value is void):"); |
| test("", "", "none"); |
| |
| document.body.removeChild(testContainer); |