| <head> |
| <style type="text/css"> |
| .overflow-hidden { |
| width: 100px; |
| height: 100px; |
| background: #000; |
| overflow: hidden; |
| } |
| input { |
| font-size: 10px; |
| height: 20px; |
| } |
| button { |
| position: relative; |
| left: 100px; |
| top: 100px; |
| } |
| </style> |
| <script> |
| function runTest() { |
| if (!window.testRunner) |
| return; |
| if (!window.eventSender) |
| return; |
| |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| setTimeout(startTest, 0); |
| } |
| |
| function startTest() |
| { |
| var input = document.getElementById("input"); |
| var x = input.offsetLeft + input.offsetWidth / 2; |
| var y = input.offsetTop + input.offsetHeight / 2; |
| |
| eventSender.dragMode = false; |
| eventSender.mouseMoveTo(x, y); |
| eventSender.mouseDown(); |
| |
| // We do the dragging/selection in two steps here, because if we move |
| // the mouse beyond the input boundary right way, it won't start the autoscroll |
| // timer. See early return in AutoscrollController::startAutoscrollForSelection |
| // after calling RenderBox::findAutoscrollable. |
| eventSender.mouseMoveTo(x + 48, y); |
| eventSender.mouseMoveTo(x + 55, y); |
| setTimeout(finishTest, 100); |
| } |
| |
| function finishTest() |
| { |
| eventSender.mouseUp(); |
| var div = document.getElementById("div"); |
| if (div.scrollTop == 0 && div.scrollLeft == 0) |
| document.getElementById("result").innerText = "Test succeeded!"; |
| else |
| document.getElementById("result").innerText = "Test failed!"; |
| |
| testRunner.notifyDone(); |
| } |
| |
| </script> |
| |
| <body onload="runTest()"> |
| </head> |
| <div id="div" class="overflow-hidden"> |
| <input id="input" type="text" value="any text here!"/> |
| <button/> |
| </div> |
| <p id="result">If the test has completed this sentence should be replaced by a success message.</p> |
| </body> |