Chromium Code Reviews| Index: LayoutTests/fast/events/touch/gesture/gesture-tap-frame-scrollbar.html |
| diff --git a/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-scrollbar.html b/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-scrollbar.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c21b5a4bf19a5ba6d7985b2f0d5c9cd117d296d6 |
| --- /dev/null |
| +++ b/LayoutTests/fast/events/touch/gesture/gesture-tap-frame-scrollbar.html |
| @@ -0,0 +1,77 @@ |
| +<!DOCTYPE HTML> |
| +<script src="../../../../resources/js-test.js"></script> |
| +<style> |
| +#target { |
| + width: 50px; |
| + height: 50px; |
| +} |
| +</style> |
| +<iframe id="target" src="resources/event-delegator.html"></iframe> |
| +<div id=console></div> |
| +<script> |
| +var scrollbarEventType; |
| + |
| +function onEventInFrame(e) { |
| + debug("Received " + e.type + " in child frame"); |
| + if (e.type == scrollbarEventType) { |
| + debug('Adding scrollbars to iframe'); |
| + target.contentDocument.body.style.height = "500px"; |
| + } |
| +} |
| + |
| +function eventLogger(e) { |
| + debug("Received " + e.type + " in main frame"); |
| +} |
| + |
| +document.addEventListener('mousemove', eventLogger); |
| +document.addEventListener('mousedown', eventLogger); |
| +document.addEventListener('mouseup', eventLogger); |
| +document.addEventListener('click', eventLogger); |
| + |
| +description("Taps at a point that becomes a scrollbar (i.e. hit test with innerNode=null) during the tap and verifies we don't crash."); |
| + |
| +// Tap at the right edge of the frame, where it's scrollbar would live. |
|
Zeeshan Qureshi
2014/08/15 18:33:17
typo: s/it's/its
Rick Byers
2014/08/15 20:17:14
Thanks, done.
|
| +var rect = target.getBoundingClientRect(); |
| +var point = { |
| + x: rect.right - 4, |
| + y: rect.top + rect.height / 2 |
| +}; |
| + |
| +function doTap(type) |
| +{ |
| + return new Promise(function(resolve, reject) { |
| + if (type) { |
| + debug('Test case: Add scrollbars during ' + type); |
| + scrollbarEventType = type; |
| + target.contentDocument.body.style.height = "0"; |
| + } else { |
| + debug('Test case: Tap on consistent scrollbar'); |
| + } |
| + |
| + eventSender.gestureTapDown(point.x, point.y); |
| + eventSender.gestureShowPress(point.x, point.y); |
| + debug("Sending GestureTap"); |
| + eventSender.gestureTap(point.x, point.y); |
| + |
| + setTimeout(function() { |
| + debug(''); |
| + resolve(); |
| + }, 0); |
| + }); |
| +} |
| + |
| +if (window.eventSender) { |
| + jsTestIsAsync = true; |
| + target.onload = function() { |
| + doTap() |
| + .then(function() { return doTap('mousemove'); }) |
| + .then(function() { return doTap('mousedown'); }) |
| + .then(function() { return doTap('mouseup'); }) |
| + .catch(function(err) { |
| + testFailed("Promise rejected: " + err.message); |
| + }).then(finishJSTest); |
| + } |
| +} else { |
| + debug("This test requires eventSender"); |
| +} |
| +</script> |