Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/events/pointerevents/mouse-pointer-haspointercapture.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/events/pointerevents/mouse-pointer-haspointercapture.html b/third_party/WebKit/LayoutTests/fast/events/pointerevents/mouse-pointer-haspointercapture.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..807fa0429f74e24d05860854d4c02c9471b0d2f3 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/fast/events/pointerevents/mouse-pointer-haspointercapture.html |
| @@ -0,0 +1,95 @@ |
| +<!DOCTYPE HTML> |
|
Navid Zolghadr
2016/08/08 15:06:05
General question here. Do you think it would be be
|
| +<script src="../../../resources/testharness.js"></script> |
| +<script src="../../../resources/testharnessreport.js"></script> |
| + |
| +<style> |
| +#target { |
| + margin: 10px; |
| + padding: 50px; |
| +} |
| +</style> |
| +<h1>PointerEvent: Verifies that hasPointerCapture API works</h1> |
| + |
| +<div id="target" style="background-color:red"></div> |
| + |
| +<div id="log"></div> |
| + |
| +<script> |
| +var changeCaptureInEH = false; |
| +var mousePointerId = 1; |
| + |
| +var targetDiv = document.getElementById("target"); |
| + |
| +function testCaptureAtTarget(expected, testLabel) { |
| + test(function() { |
| + assert_equals(targetDiv.hasPointerCapture(mousePointerId), expected); |
| + }, testLabel); |
| +} |
| + |
| +function init() { |
| + targetDiv.addEventListener("pointerdown", function(event) { |
| + var testState = (changeCaptureInEH? "w" : "w/o") + " change within handler"; |
| + |
| + testCaptureAtTarget(false, "pointerdown: entered " + testState); |
| + if (changeCaptureInEH) |
| + targetDiv.setPointerCapture(mousePointerId); |
| + testCaptureAtTarget(changeCaptureInEH, "pointerdown: exiting " + testState); |
| + }); |
| + |
| + targetDiv.addEventListener("pointerup", function(event) { |
| + var testState = (changeCaptureInEH? "w" : "w/o") + " change within handler"; |
| + |
| + testCaptureAtTarget(changeCaptureInEH, "pointerup: entered " + testState); |
| + if (changeCaptureInEH) |
| + targetDiv.releasePointerCapture(mousePointerId); |
| + testCaptureAtTarget(false, "pointerup: exiting " + testState); |
| + }); |
| +} |
| + |
| +function runTests() { |
| + testCaptureAtTarget(false, "Initial"); |
| + |
| + var rect = targetDiv.getBoundingClientRect(); |
| + eventSender.mouseMoveTo(rect.left + 5, rect.top + 5); |
| + |
| + targetDiv.setPointerCapture(mousePointerId); |
| + testCaptureAtTarget(false, "After set#1 w/o button"); |
| + targetDiv.releasePointerCapture(mousePointerId); |
| + testCaptureAtTarget(false, "After release#1 w/o button"); |
| + |
| + changeCaptureInEH = false; |
| + eventSender.mouseDown(0); |
| + |
| + targetDiv.setPointerCapture(mousePointerId); |
| + testCaptureAtTarget(true, "After set#1 w button"); |
| + targetDiv.releasePointerCapture(mousePointerId); |
| + testCaptureAtTarget(false, "After release#1 w button"); |
| + |
| + targetDiv.setPointerCapture(mousePointerId); |
| + testCaptureAtTarget(true, "After set#2 w button"); |
| + targetDiv.setPointerCapture(mousePointerId); |
| + testCaptureAtTarget(true, "After set#3 w button"); |
| + targetDiv.releasePointerCapture(mousePointerId); |
| + testCaptureAtTarget(false, "After release#2 w button"); |
| + targetDiv.releasePointerCapture(mousePointerId); |
| + testCaptureAtTarget(false, "After release#3 w button"); |
| + eventSender.mouseUp(0); |
| + |
| + changeCaptureInEH = true; |
| + eventSender.mouseDown(0); |
| + eventSender.mouseUp(0); |
| +} |
| + |
| +test(function() { |
| + if (!window.eventSender) |
| + assert_true(true, "No eventSender, skipped tests"); |
| + else if (!window.PointerEvent) |
| + assert_true(true, "No PointerEvent, skipped tests"); |
| + else { |
| + init(); |
| + runTests(); |
| + } |
| + |
| + done(); |
| +}, "PointerEvent: Verifies that hasPointerCapture API works"); |
| +</script> |