| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <style> |
| div { width:100px; height:100px;} |
| div#outsideDiv:before { content:"> "; } |
| div#outsideDiv:hover:before { display: block; content:"< "; } |
| </style> |
| <p> |
| Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=56401">https://bugs.webkit.org/show_bug.cgi?id=56401</a> |
| Hover the mouse over the "Block" text. The test passes if the "Block" text is not moved above ">". This test ensures |
| that the "before" element after hover is inserted in the same position. |
| </p> |
| </head> |
| <body> |
| <div id="console"></div> |
| <div id="outsideDiv" onmouseover="checkTestResult()"><span id="span">Inline</span><div id="insideDiv">Block</p></div> |
| <script> |
| function getElementTop(elementId) |
| { |
| var elem = document.getElementById(elementId); |
| return elem.getBoundingClientRect().top; |
| } |
| |
| function simulateMouseMove() |
| { |
| var outsideDivTop = getElementTop("outsideDiv"); |
| if (window.eventSender) |
| eventSender.mouseMoveTo(50, outsideDivTop); |
| } |
| |
| function checkTestResult() |
| { |
| var outsideDivTop = getElementTop("outsideDiv"); |
| var insideDivTop = getElementTop("insideDiv"); |
| document.getElementById("console").innerText = (insideDivOriginalTop != insideDivTop) ? "FAIL" : "PASS"; |
| if (window.testRunner) |
| document.getElementById("outsideDiv").style.visibility = 'hidden'; |
| } |
| |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| document.body.offsetTop; |
| // Capture the initial values for inside div top |
| var insideDivOriginalTop = getElementTop("insideDiv"); |
| |
| // Remove the span so that the "before" element is the only remaining child of the anonymous block |
| // that initially contained "before" and span. |
| var span = document.getElementById("span"); |
| var outsideDiv = document.getElementById("outsideDiv"); |
| outsideDiv.removeChild(span); |
| |
| if (window.testRunner) { |
| simulateMouseMove(); |
| checkTestResult(); |
| } |
| </script> |
| </body> |
| </html> |