| <!DOCTYPE html> |
| <html> |
| <body> |
| <style> |
| table { |
| background:red; |
| border-spacing:0; |
| border-collapse:collapse; |
| display:none |
| } |
| |
| td { |
| width:148px; |
| background:green; |
| height:18px; |
| } |
| form { |
| width:50px; |
| height:20px; |
| } |
| </style> |
| <script src="../../resources/js-test-pre.js"></script> |
| <div id="testCases"> |
| <div id="case1"> |
| <p> CASE 1 : Form element inside table.</p> |
| <table> |
| <form></form> |
| <tr> |
| <td></td> |
| </tr> |
| </table> |
| </div> |
| <div id="case2"> |
| <p> CASE 2 : Form element inside table section(tbody,thead or tfoot).</p> |
| <table> |
| <tbody> |
| <form></form> |
| <tr> |
| <td></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div id="case3"> |
| <p> CASE 3 : Form element inside table row.</p> |
| <table> |
| <tr> |
| <form></form> |
| <td></td> |
| </tr> |
| </table> |
| </div> |
| </div> |
| <div id="description"></div> |
| <div id="console"></div> |
| <script> |
| description('Testcase for bug <a href="http://webkit.org/b/86746">http://webkit.org/b/86746</a>. A form element whose immediate parent is either a table, \ |
| table section or a table row is considered as a demoted element. <br>Renderer for such an element is not created when its display is to a \ |
| non table type (Eg. BLOCK, INLINE, etc). However when a table containing form element is cloned, <br>the form element is not properly demoted. \ |
| This results in the creation of an unexpected renderer for the form element.'); |
| debug('Expected: The tables should contain only one row of width 150px and one column of height 20px.<br>'); |
| |
| for(var i = 1; i <=3; i++) { |
| var container = document.getElementById('case' + i); |
| clonedTable = container.getElementsByTagName("TABLE")[0].cloneNode(true); |
| clonedTable.style.display = 'table'; |
| container.appendChild(clonedTable); |
| shouldBe('Math.round(clonedTable.getBoundingClientRect().width)', '150'); |
| shouldBe('Math.round(clonedTable.getBoundingClientRect().height)', '20'); |
| } |
| |
| var testCasesContainer = document.getElementById('testCases'); |
| document.body.removeChild(testCasesContainer); |
| </script> |
| <script src="../../resources/js-test-post.js"></script> |
| </body> |
| </html> |