3 <style type="text/css">
7 border: solid 3px #cc0000;
13 var x, y, middleTermScrollOffset;
14 var iframe, iframeDocument, draggable;
18 document.getElementById('console').appendChild(document.createTextNode(msg + '\n'));
23 if (!window.eventSender) {
24 log('Please run within DumpRenderTree');
28 window.jsTestIsAsync = true;
29 setTimeout(testIt, 0);
34 eventSender.dragMode = false;
36 iframe = document.getElementById('scrollable');
37 iframeDocument = iframe.contentDocument;
38 draggable = iframeDocument.getElementById('draggable');
40 iframeDocument.addEventListener("scroll", recordScroll);
43 x = iframe.offsetLeft + draggable.offsetLeft + 7;
44 y = iframe.offsetTop + draggable.offsetTop + 7;
46 eventSender.mouseMoveTo(x, y);
47 eventSender.mouseDown();
49 // Move mouse to the bottom autoscroll border belt.
50 y = iframe.offsetTop + iframe.offsetHeight - 10;
51 eventSender.mouseMoveTo(x, y);
54 function recordScroll(e)
56 autoscrollTestPart1();
57 iframeDocument.removeEventListener("scroll", recordScroll);
60 function recordScroll2(e)
62 autoscrollTestPart2();
63 iframeDocument.removeEventListener("scroll", recordScroll);
66 function autoscrollTestPart1()
68 if (iframe.contentDocument.body.scrollTop == 0) {
69 testFailed("Autoscroll should have scrolled the iframe downwards, but did not");
74 testPassed("Autoscroll should have scrolled the iframe downwards, and did.");
76 middleTermScrollOffset = iframe.contentDocument.body.scrollTop;
77 iframeDocument.addEventListener("scroll", recordScroll2);
79 // Move mouse to the upper autoscroll border belt.
80 y = iframe.offsetTop + 10;
81 eventSender.mouseMoveTo(x, y);
84 function autoscrollTestPart2()
86 shouldBeTrue("iframe.contentDocument.body.scrollTop < middleTermScrollOffset")
92 eventSender.mouseUp();
96 var successfullyParsed = true;
100 For manual testing, drag and drop "Drop Me" downwards and then upwards.
101 <iframe id="scrollable" src="data:text/html,
102 <p id='draggable' draggable='true' style='cursor: hand;'>
105 Try to drag and drop the text above in the input element at the bottom of this iframe. It should scroll. Then, try the way back.
106 <br><br>more<br>more<br>more<br>more<br>more<br>more<br>more<br>more<br>more<br>more<br>more<br>more<br><input>
109 <div id="console"></div>
110 <script src="../../resources/js-test.js"></script>
112 description('Check autoscroll within an inner frame by drag-and-drop');