| Index: LayoutTests/svg/css/parse-length.html
 | 
| diff --git a/LayoutTests/svg/css/parse-length.html b/LayoutTests/svg/css/parse-length.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..9ddcb96908f76ea2994fc64beb04f58732f6df40
 | 
| --- /dev/null
 | 
| +++ b/LayoutTests/svg/css/parse-length.html
 | 
| @@ -0,0 +1,87 @@
 | 
| +<!DOCTYPE html>
 | 
| +<html>
 | 
| +<style>
 | 
| +* { font-size: 16px; }
 | 
| +svg, rect { font-family: 'Ahem'; }
 | 
| +div { font-size: 8px; } 
 | 
| +</style>
 | 
| +<html>
 | 
| +<svg id="svg" width="0" height="0"></svg>
 | 
| +<script src="../../resources/js-test.js"></script>
 | 
| +<script>
 | 
| +description("Test that 'length' presentation attribute values are parsed with CSS presentation rules.");
 | 
| +
 | 
| +function computedStyle(property, value) {
 | 
| +    var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
 | 
| +    document.getElementById('svg').appendChild(rect);
 | 
| +    rect.setAttribute(property, value);
 | 
| +    var computedValue = getComputedStyle(rect).getPropertyValue(property);
 | 
| +    document.getElementById('svg').removeChild(rect);
 | 
| +    return computedValue;
 | 
| +}
 | 
| +
 | 
| +function testComputed(property, value, expected) {
 | 
| +    shouldBeEqualToString('computedStyle("' + property + '", "' + value + '")', expected);
 | 
| +}
 | 
| +
 | 
| +function negativeTest(property, value) {
 | 
| +    testComputed(property, value, "auto");
 | 
| +}
 | 
| +
 | 
| +function negativeTestZero(property, value) {
 | 
| +    testComputed(property, value, "0px");
 | 
| +}
 | 
| +
 | 
| +// Test 'width'.
 | 
| +//testComputed("width", "auto", "auto");
 | 
| +//testComputed("width", "  100", "100px");
 | 
| +//testComputed("width", "100   ", "100px");
 | 
| +//testComputed("width", "100px", "100px");
 | 
| +//testComputed("width", "1em", "16px");
 | 
| +//testComputed("width", "1ex", "12.8000001907349px");
 | 
| +//testComputed("width", "20%", "20%");
 | 
| +// FIXME: Vieport units not implemented for SVG at the moment.
 | 
| +// testComputed("width", "1vh", "7.869999885559082px");
 | 
| +// testComputed("width", "1vw", "14.029999732971191px");
 | 
| +
 | 
| +// Test 'x'.
 | 
| +testComputed("x", "  100", "100px");
 | 
| +testComputed("x", "100   ", "100px");
 | 
| +testComputed("x", "100px", "100px");
 | 
| +testComputed("x", "1em", "16px");
 | 
| +// testComputed("x", "1ex", "12.8000001907349px"); // enable this again once http://crbug.com/441840 is fixed
 | 
| +testComputed("x", "20%", "20%");
 | 
| +testComputed("x", "-200px", "-200px");
 | 
| +
 | 
| +// Test 'y'.
 | 
| +testComputed("y", "  100", "100px");
 | 
| +testComputed("y", "100   ", "100px");
 | 
| +testComputed("y", "100px", "100px");
 | 
| +testComputed("y", "1em", "16px");
 | 
| +// testComputed("y", "1ex", "12.8000001907349px"); // enable this again once http://crbug.com/441840 is fixed
 | 
| +testComputed("y", "20%", "20%");
 | 
| +testComputed("y", "-200px", "-200px");
 | 
| +
 | 
| +// Negative tests for 'width'.
 | 
| +//negativeTest("width", "100   px");
 | 
| +//negativeTest("width", "100px;");
 | 
| +//negativeTest("width", "100px !important");
 | 
| +//negativeTest("width", "{ 100px }");
 | 
| +//negativeTest("width", "-100px");
 | 
| +
 | 
| +// Negative tests for 'x'.
 | 
| +negativeTestZero("x", "auto", "auto");
 | 
| +negativeTestZero("x", "100   px");
 | 
| +negativeTestZero("x", "100px;");
 | 
| +negativeTestZero("x", "100px !important");
 | 
| +negativeTestZero("x", "{ 100px }");
 | 
| +
 | 
| +// Negative tests for 'y'.
 | 
| +negativeTestZero("y", "auto");
 | 
| +negativeTestZero("y", "100   px");
 | 
| +negativeTestZero("y", "100px;");
 | 
| +negativeTestZero("y", "100px !important");
 | 
| +negativeTestZero("y", "{ 100px }");
 | 
| +</script>
 | 
| +</body>
 | 
| +</html>
 | 
| 
 |