| <html> |
| <head> |
| <title> webkit.org/b/29447: Replaced elements squeezed when width is specified as percentage inside a table with Auto layout</title> |
| <script src="../../resources/js-test-pre.js"></script> |
| <script> |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| testRunner.dumpAsText(); |
| } |
| |
| function getComputedStyleForElement(element, cssPropertyName) |
| { |
| if (!element) { |
| return null; |
| } |
| if (window.getComputedStyle) { |
| return window.getComputedStyle(element, '').getPropertyValue(cssPropertyName.replace(/([A-Z])/g, "-$1").toLowerCase()); |
| } |
| if (element.currentStyle) { |
| return element.currentStyle[cssPropertyName]; |
| } |
| return null; |
| } |
| |
| function getWidth(id) |
| { |
| return Math.round(parsePixelValue(getComputedStyleForElement(document.getElementById(id), 'width'))) + "px"; |
| } |
| |
| function getHeight(id) |
| { |
| return getComputedStyleForElement(document.getElementById(id), 'height'); |
| } |
| |
| function parsePixelValue(str) |
| { |
| if (typeof str != "string" || str.length < 3 || str.substr(str.length - 2) != "px") { |
| testFailed(str + " is unparsable."); |
| return -1; |
| } |
| return parseFloat(str); |
| } |
| |
| function test() |
| { |
| description("This test checks that a replaced element with percentage width (and no height specified) within a table cell is squeezed to the dimensions of the table cell.<br>See bug #29447."); |
| |
| shouldBe("getWidth('img-1')", "'105px'"); |
| shouldBe("getHeight('img-1')", "'105px'"); |
| shouldBe("getWidth('img-2')", "'98px'"); |
| shouldBe("getHeight('img-2')", "'98px'"); |
| shouldBe("getWidth('img-3')", "'40px'"); |
| shouldBe("getHeight('img-3')", "'40px'"); |
| shouldBe("getWidth('img-4')", "'36px'"); |
| shouldBe("getHeight('img-4')", "'36px'"); |
| shouldBe("getWidth('img-5')", "'40px'"); |
| shouldBe("getHeight('img-5')", "'36px'"); |
| |
| isSuccessfullyParsed(); |
| |
| if (window.testRunner) { |
| testRunner.notifyDone(); |
| } |
| } |
| </script> |
| </head> |
| <body onload="test()"> |
| <table> |
| <tr> |
| <td> |
| <img id="img-1" src="resources/square-blue-100x100.png" width="100%" align="LEFT" border="1"> |
| </td> |
| </tr> |
| </table> |
| |
| <table> |
| <tr> |
| <td> |
| <img id="img-2" src="resources/square-blue-100x100.png" height="100%" align="LEFT" border="1"> |
| </td> |
| </tr> |
| </table> |
| |
| <table height="50" width="50" border="1"> |
| <tr> |
| <td> |
| <img id="img-3" src="resources/square-blue-100x100.png" width="100%" align="LEFT" border="1"> |
| </td> |
| </tr> |
| </table> |
| |
| <table height="50" width="50" border="1"> |
| <tr> |
| <td> |
| <img id="img-4" src="resources/square-blue-100x100.png" height="100%" align="LEFT" border="1"> |
| </td> |
| </tr> |
| </table> |
| |
| <table height="50" width="50" border="1"> |
| <tr> |
| <td> |
| <img id="img-5" src="resources/square-blue-100x100.png" width="100%" height="100%" align="LEFT" border="1"> |
| </td> |
| </tr> |
| </table> |
| |
| <p id="description"></p> |
| <div id="console"></div> |
| </body> |
| </html> |