| <!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> |