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);