blob: 9807509c89e61f791a97b8644aa8be4b5e5f2777 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../../resources/js-test-pre.js"></script>
</head>
<body>
<div id="test" style="font: 10px Ahem;"></div>
<script>
function testElementStyle(propertyJS, propertyCSS, value)
{
shouldBe("e.style." + propertyJS, "'" + value + "'");
shouldBe("e.style.getPropertyValue('" + propertyCSS + "')", "'" + value + "'");
}
function testComputedStyle(propertyJS, propertyCSS, value)
{
computedStyle = window.getComputedStyle(e, null);
shouldBe("computedStyle." + propertyJS, "'" + value + "'");
shouldBe("computedStyle.getPropertyValue('" + propertyCSS + "')", "'" + value + "'");
}
function valueSettingTest(value, expectedValue, computedValue)
{
debug("Value '" + value + "':");
e.style.textIndent = value;
testElementStyle("textIndent", "text-indent", expectedValue);
testComputedStyle("textIndent", "text-indent", computedValue);
debug('');
}
function invalidValueSettingTest(value, defaultValue)
{
debug("Invalid value test - '" + value + "':");
e.style.textIndent = value;
testElementStyle("textIndent", "text-indent", defaultValue);
testComputedStyle("textIndent", "text-indent", defaultValue);
debug('');
}
description("This test checks that text-indent parses properly the properties from CSS3 Text.");
e = document.getElementById('test');
debug("Test the initial value:");
testComputedStyle("textIndent", "text-indent", '0px');
debug('');
valueSettingTest('10em', '10em', '100px');
valueSettingTest('20ex', '20ex', '200px');
valueSettingTest('50%', '50%', '50%');
valueSettingTest('calc(10px + 20px)', 'calc(30px)', '30px');
valueSettingTest('10em -webkit-each-line', '10em -webkit-each-line', '100px -webkit-each-line');
valueSettingTest('-webkit-each-line 10em', '-webkit-each-line 10em', '100px -webkit-each-line');
valueSettingTest('20ex -webkit-each-line', '20ex -webkit-each-line', '200px -webkit-each-line');
valueSettingTest('-webkit-each-line 20ex', '-webkit-each-line 20ex', '200px -webkit-each-line');
valueSettingTest('30% -webkit-each-line', '30% -webkit-each-line', '30% -webkit-each-line');
valueSettingTest('-webkit-each-line 30%', '-webkit-each-line 30%', '30% -webkit-each-line');
valueSettingTest('calc(10px + 20px) -webkit-each-line', 'calc(30px) -webkit-each-line', '30px -webkit-each-line');
valueSettingTest('-webkit-each-line calc(10px + 20px)', '-webkit-each-line calc(30px)', '30px -webkit-each-line');
valueSettingTest('10em -webkit-hanging', '10em -webkit-hanging', '100px -webkit-hanging');
valueSettingTest('-webkit-hanging 10em', '-webkit-hanging 10em', '100px -webkit-hanging');
valueSettingTest('20ex -webkit-hanging', '20ex -webkit-hanging', '200px -webkit-hanging');
valueSettingTest('-webkit-hanging 20ex', '-webkit-hanging 20ex', '200px -webkit-hanging');
valueSettingTest('30% -webkit-hanging', '30% -webkit-hanging', '30% -webkit-hanging');
valueSettingTest('-webkit-hanging 30%', '-webkit-hanging 30%', '30% -webkit-hanging');
valueSettingTest('calc(10px + 20px) -webkit-hanging', 'calc(30px) -webkit-hanging', '30px -webkit-hanging');
valueSettingTest('-webkit-hanging calc(10px + 20px)', '-webkit-hanging calc(30px)', '30px -webkit-hanging');
valueSettingTest('10em -webkit-each-line -webkit-hanging', '10em -webkit-each-line -webkit-hanging', '100px -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-each-line 10em -webkit-hanging', '-webkit-each-line 10em -webkit-hanging', '100px -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-each-line -webkit-hanging 10em', '-webkit-each-line -webkit-hanging 10em', '100px -webkit-each-line -webkit-hanging');
valueSettingTest('10em -webkit-hanging -webkit-each-line', '10em -webkit-hanging -webkit-each-line', '100px -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-hanging 10em -webkit-each-line', '-webkit-hanging 10em -webkit-each-line', '100px -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-hanging -webkit-each-line 10em', '-webkit-hanging -webkit-each-line 10em', '100px -webkit-each-line -webkit-hanging');
valueSettingTest('30% -webkit-each-line -webkit-hanging', '30% -webkit-each-line -webkit-hanging', '30% -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-each-line 30% -webkit-hanging', '-webkit-each-line 30% -webkit-hanging', '30% -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-each-line -webkit-hanging 30%', '-webkit-each-line -webkit-hanging 30%', '30% -webkit-each-line -webkit-hanging');
valueSettingTest('30% -webkit-hanging -webkit-each-line', '30% -webkit-hanging -webkit-each-line', '30% -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-hanging 30% -webkit-each-line', '-webkit-hanging 30% -webkit-each-line', '30% -webkit-each-line -webkit-hanging');
valueSettingTest('-webkit-hanging -webkit-each-line 30%', '-webkit-hanging -webkit-each-line 30%', '30% -webkit-each-line -webkit-hanging');
debug('');
defaultValue = '0px'
e.style.textIndent = defaultValue;
invalidValueSettingTest('10m', defaultValue);
invalidValueSettingTest('10em 10em', defaultValue);
invalidValueSettingTest('10em -webkit-line', defaultValue);
invalidValueSettingTest('10em -webkit-hang', defaultValue);
invalidValueSettingTest('10m -webkit-each-line', defaultValue);
invalidValueSettingTest('-webkit-each-line 10m', defaultValue);
invalidValueSettingTest('10m -webkit-hangning', defaultValue);
invalidValueSettingTest('-webkit-hanging 10m', defaultValue);
invalidValueSettingTest('10m -webkit-each-line -webkit-hanging', defaultValue);
invalidValueSettingTest('-webkit-each-line', defaultValue);
invalidValueSettingTest('-webkit-hanging', defaultValue);
invalidValueSettingTest('webkit-each-line -webkit-hanging', defaultValue);
invalidValueSettingTest('10em -webkit-each-line 10em', defaultValue);
invalidValueSettingTest('10em -webkit-hanging 10em', defaultValue);
invalidValueSettingTest('-webkit-each-line 10em -webkit-each-line', defaultValue);
invalidValueSettingTest('-webkit-hanging 10em -webkit-hanging', defaultValue);
invalidValueSettingTest('10em -webkit-line -webkit-hanging', defaultValue);
invalidValueSettingTest('10em -webkit-each-line -webkit-hang', defaultValue);
</script>
<script src="../../../../resources/js-test-post.js"></script>
</body>
</html>