| <!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-pre.js"></script> |
| <script> |
| description("Test that 'width' presentation attribute is 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 'cx'. |
| testComputed("cx", " 100", "100px"); |
| testComputed("cx", "100 ", "100px"); |
| testComputed("cx", "100px", "100px"); |
| testComputed("cx", "1em", "16px"); |
| testComputed("cx", "1ex", "12.8px"); |
| testComputed("cx", "20%", "20%"); |
| testComputed("cx", "-200px", "-200px"); |
| |
| // Test 'cx'. |
| testComputed("cy", " 100", "100px"); |
| testComputed("cy", "100 ", "100px"); |
| testComputed("cy", "100px", "100px"); |
| testComputed("cy", "1em", "16px"); |
| testComputed("cy", "1ex", "12.8px"); |
| testComputed("cy", "20%", "20%"); |
| testComputed("cy", "-200px", "-200px"); |
| |
| // Test 'r'. |
| testComputed("r", " 100", "100px"); |
| testComputed("r", "100 ", "100px"); |
| testComputed("r", "100px", "100px"); |
| testComputed("r", "1em", "16px"); |
| testComputed("r", "1ex", "12.8px"); |
| testComputed("r", "20%", "20%"); |
| testComputed("r", "-200px", "0px"); |
| |
| // Test 'rx'. |
| testComputed("rx", " 100", "100px"); |
| testComputed("rx", "100 ", "100px"); |
| testComputed("rx", "100px", "100px"); |
| testComputed("rx", "1em", "16px"); |
| testComputed("rx", "1ex", "12.8px"); |
| testComputed("rx", "20%", "20%"); |
| testComputed("rx", "-200px", "auto"); |
| |
| // Test 'ry'. |
| testComputed("ry", " 100", "100px"); |
| testComputed("ry", "100 ", "100px"); |
| testComputed("ry", "100px", "100px"); |
| testComputed("ry", "1em", "16px"); |
| testComputed("ry", "1ex", "12.8px"); |
| testComputed("ry", "20%", "20%"); |
| testComputed("ry", "-200px", "auto"); |
| |
| // 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.8px"); |
| 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.8px"); |
| 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.8px"); |
| testComputed("y", "20%", "20%"); |
| testComputed("y", "-200px", "-200px"); |
| |
| // Negative tests for 'cx'. |
| negativeTestZero("cx", "auto", "auto"); |
| negativeTestZero("cx", "100 px"); |
| negativeTestZero("cx", "100px;"); |
| negativeTestZero("cx", "100px !important"); |
| negativeTestZero("cx", "{ 100px }"); |
| |
| // Negative tests for 'cy'. |
| negativeTestZero("cy", "auto"); |
| negativeTestZero("cy", "100 px"); |
| negativeTestZero("cy", "100px;"); |
| negativeTestZero("cy", "100px !important"); |
| negativeTestZero("cy", "{ 100px }"); |
| |
| // Negative tests for 'r'. |
| negativeTestZero("r", "auto", "auto"); |
| negativeTestZero("r", "100 px"); |
| negativeTestZero("r", "100px;"); |
| negativeTestZero("r", "100px !important"); |
| negativeTestZero("r", "{ 100px }"); |
| |
| // Negative tests for 'rx'. |
| negativeTest("rx", "auto", "auto"); |
| negativeTest("rx", "100 px", "auto"); |
| negativeTest("rx", "100px;", "auto"); |
| negativeTest("rx", "100px !important", "auto"); |
| negativeTest("rx", "{ 100px }", "auto"); |
| |
| // Negative tests for 'ry'. |
| negativeTest("ry", "auto", "auto"); |
| negativeTest("ry", "100 px", "auto"); |
| negativeTest("ry", "100px;", "auto"); |
| negativeTest("ry", "100px !important", "auto"); |
| negativeTest("ry", "{ 100px }", "auto"); |
| |
| // 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> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |