| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <!-- |
| Touch tests that involve the ontouchstart, ontouchmove, ontouchend or ontouchcancel callbacks |
| should be written in an asynchronous fashion so they can be run on mobile platforms like Android. |
| This template will generate an asynchronous style test by using the js-test-post-function script. |
| You will need to invoke isSuccessfullyParsed() in your test script when the test completes. |
| --> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script> |
| var targetDiv = document.createElement("div"); |
| targetDiv.id = "targetDiv"; |
| targetDiv.setAttribute('style', "position: absolute; top: 100px; left: 10px; width: 400px; height: 400px; overflow: scroll;"); |
| |
| var innerDiv = document.createElement("div"); |
| innerDiv.setAttribute('style', "width: 800px; height: 800px;"); |
| |
| targetDiv.appendChild(innerDiv); |
| |
| document.body.insertBefore(targetDiv, document.getElementById('console')); |
| |
| description("Tests that touch events cause an overflow:scroll div to scroll."); |
| |
| function verifyScrollOffset(offsetX, offsetY) |
| { |
| shouldBe("targetDiv.scrollLeft", offsetX.toString()); |
| shouldBe("targetDiv.scrollTop", offsetY.toString()); |
| } |
| |
| if (window.eventSender) { |
| verifyScrollOffset(0, 0); |
| |
| // Test vertical up scroll. |
| eventSender.clearTouchPoints(); |
| eventSender.addTouchPoint(20, 220); |
| eventSender.touchStart(); |
| eventSender.updateTouchPoint(0, 20, 120); |
| eventSender.touchMove(); |
| eventSender.touchEnd(); |
| verifyScrollOffset(0, 100); |
| |
| // Test vertical down scroll. |
| eventSender.clearTouchPoints(); |
| eventSender.addTouchPoint(20, 120); |
| eventSender.touchStart(); |
| eventSender.updateTouchPoint(0, 20, 170); |
| eventSender.touchMove(); |
| eventSender.touchEnd(); |
| verifyScrollOffset(0, 50); |
| |
| // Test diagonal scroll |
| eventSender.clearTouchPoints(); |
| eventSender.addTouchPoint(120, 120); |
| eventSender.touchStart(); |
| eventSender.updateTouchPoint(0, 20, 20); |
| eventSender.touchMove(); |
| eventSender.touchEnd(); |
| |
| verifyScrollOffset(100, 150); |
| |
| } else |
| debug('This test requires DRT.'); |
| |
| var successfullyParsed = true; |
| </script> |
| </body> |
| </html> |