chromium/third_party/blink/web_tests/fast/css3-text/css3-text-decoration/getComputedStyle/script-tests/getComputedStyle-text-underline-position.js

function test(value, inlineValue, computedValue)
{
    if (value !== null)
        e.style.textUnderlinePosition = value;
    shouldBeEqualToString("e.style.textUnderlinePosition", inlineValue);
    computedStyle = window.getComputedStyle(e, null);
    shouldBeEqualToString("computedStyle.textUnderlinePosition", computedValue);
    debug('');
}

description("Test to make sure text-underline-position is computed properly.")

// FIXME: This test tests property values 'auto' and 'under'. We don't fully match
// the specification as we don't support [ left | right ] and this is left for another implementation
// as the rendering will need to be added.

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');
test(null, "", "auto");

debug("Value '':");
test("", "", "auto");

debug("Initial value (explicit):");
test("initial", "initial", "auto");

debug("Value 'auto':");
test("auto", "auto", "auto");

debug("Value 'under':");
test("under", "under", "under");

debug("Value 'left':");
test("left", "left", "left");

debug("Value 'right':");
test("right", "right", "right");

debug("Value 'under left':");
test("under left", "under left", "under left");

debug("Value 'right under':");
test("right under", "under right", "under right");

testContainer.innerHTML = '<div id="test-parent" style="text-underline-position: under;">hello <span id="test-ancestor">world</span></div>';
debug("Ancestor inherits values from parent:");
e = document.getElementById('test-ancestor');
test(null, "", "under");

debug("Value 'auto under':");
test("auto under", "", "under");

debug("Value 'auto left':");
test("auto left", "", "under");

debug("Value 'right auto':");
test("right auto", "", "under");

debug("Value 'under under':");
test("under under", "", "under");

debug("Value 'left right':");
test("left right", "", "under");

debug("Value 'auto alphabetic under':");
test("auto alphabetic under", "", "under");

document.body.removeChild(testContainer);