Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!DOCTYPE html> | |
| 2 <head> | |
| 3 <style type="text/css"> | |
| 4 #scrollable { | |
| 5 height: 200px; | |
| 6 overflow: auto; | |
| 7 border: solid 3px #cc0000; | |
| 8 font-size: 80px; | |
| 9 } | |
| 10 </style> | |
| 11 <script> | |
| 12 | |
| 13 function finishTest() | |
| 14 { | |
| 15 eventSender.mouseUp(); | |
| 16 window.testRunner.notifyDone(); | |
| 17 } | |
| 18 | |
| 19 var x, y, middleTermScrollOffset; | |
| 20 var iframe, iframeDocument, draggable; | |
| 21 | |
| 22 function log(msg) | |
| 23 { | |
| 24 document.getElementById('console').appendChild(document.createTextNode(msg + '\n')); | |
| 25 } | |
| 26 | |
| 27 function testIt() | |
| 28 { | |
| 29 if (!window.eventSender) | |
|
Julien - ping for review
2013/09/09 23:13:14
We don't get here if !window.eventSender as setTim
| |
| 30 return; | |
| 31 | |
| 32 eventSender.dragMode = false; | |
| 33 | |
| 34 iframe = document.getElementById('scrollable'); | |
| 35 iframeDocument = iframe.contentDocument; | |
| 36 draggable = iframeDocument.getElementById('draggable'); | |
| 37 | |
| 38 iframeDocument.addEventListener("scroll", recordScroll); | |
| 39 | |
| 40 // Grab draggable. | |
| 41 x = iframe.offsetLeft + draggable.offsetLeft + 7; | |
| 42 y = iframe.offsetTop + draggable.offsetTop + 7; | |
| 43 | |
| 44 eventSender.mouseMoveTo(x, y); | |
| 45 eventSender.mouseDown(); | |
| 46 | |
| 47 // Move mouse to the bottom autoscroll border belt. | |
| 48 y = iframe.offsetTop + iframe.offsetHeight - 10; | |
| 49 eventSender.mouseMoveTo(x, y); | |
| 50 } | |
| 51 | |
| 52 function recordScroll(e) | |
| 53 { | |
| 54 autoscrollTestPart1(); | |
| 55 iframeDocument.removeEventListener("scroll", recordScroll); | |
| 56 } | |
| 57 | |
| 58 function recordScroll2(e) | |
| 59 { | |
| 60 autoscrollTestPart2(); | |
| 61 iframeDocument.removeEventListener("scroll", recordScroll); | |
| 62 } | |
| 63 | |
| 64 function autoscrollTestPart1() | |
| 65 { | |
| 66 if (iframe.contentDocument.body.scrollTop > 0) { | |
|
Julien - ping for review
2013/09/09 23:13:14
Nit: I would flip the logic to do the failing case
| |
| 67 middleTermScrollOffset = iframe.contentDocument.body.scrollTop; | |
| 68 | |
| 69 iframeDocument.addEventListener("scroll", recordScroll2); | |
| 70 | |
| 71 // Move mouse to the upper autoscroll border belt. | |
| 72 y = iframe.offsetTop + 10; | |
| 73 eventSender.mouseMoveTo(x, y); | |
| 74 | |
| 75 log("Passed: Autoscroll should have scrolled the iframe downwards, and d id."); | |
|
yosin_UTC9
2013/09/10 02:09:38
We should use testPassed(), e.g. testPassed('Autos
| |
| 76 return; | |
| 77 } | |
| 78 | |
| 79 log("Failed: Autoscroll should have scrolled the iframe downwards, but did n ot."); | |
|
yosin_UTC9
2013/09/10 02:09:38
We should use testFailed(), e.g. testFailed('Autos
| |
| 80 finishTest(); | |
| 81 } | |
| 82 | |
| 83 function autoscrollTestPart2() | |
| 84 { | |
| 85 if (iframe.contentDocument.body.scrollTop < middleTermScrollOffset) | |
|
yosin_UTC9
2013/09/10 02:09:38
We should use shouldBeTrue(), e.g. shouldBeTrue('i
| |
| 86 log("Passed: Autoscroll should have scrolled the iframe upwards, and did ."); | |
| 87 else | |
| 88 log("Failed: Autoscroll should have scrolled the iframe upwards, but did not."); | |
| 89 | |
| 90 finishTest(); | |
| 91 } | |
| 92 | |
| 93 function setUpTest() | |
| 94 { | |
| 95 if (!window.eventSender) { | |
| 96 console.log('Please run within DumpRenderTree'); | |
| 97 return; | |
| 98 } | |
| 99 | |
| 100 window.jsTestIsAsync = true; | |
| 101 setTimeout(testIt, 0); | |
|
yosin_UTC9
2013/09/10 02:09:38
We should start test window.onload rather than tim
| |
| 102 } | |
| 103 </script> | |
| 104 </head> | |
| 105 <body> | |
| 106 For manual testing, drag and drop "Drop Me" to downwards and then upwards. | |
| 107 <iframe id="scrollable" src="data:text/html, | |
| 108 <p id='draggable' draggable='true' style='cursor: hand;'> | |
| 109 <b>Drag me!</b> | |
| 110 </p> | |
| 111 Try to drag and drop the text above in the input element at the bottom of this i frame. It should scroll. Then, try the way back. | |
| 112 <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> | |
| 113 "></iframe><br> | |
| 114 </div> | |
| 115 <div id="console"></div> | |
| 116 <script src="../js/resources/js-test-pre.js"></script> | |
| 117 <script> | |
| 118 description('Check autoscroll within an inner frame by drag-and-drop'); | |
| 119 setUpTest(); | |
| 120 </script> | |
| 121 <script src="../js/resources/js-test-post.js"></script> | |
| 122 </body> | |
| 123 </html> | |
| OLD | NEW |