Index: third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_capture_suppressing_mouse-manual.html |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_capture_suppressing_mouse-manual.html b/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_capture_suppressing_mouse-manual.html |
index 81c5881dfab81443a824a375ffff056ee4c9d376..763e17916e9fd2d7f200679658cf65120f1d72c9 100644 |
--- a/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_capture_suppressing_mouse-manual.html |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_capture_suppressing_mouse-manual.html |
@@ -18,11 +18,10 @@ |
<li> Move your mouse out of the black rectangle. pointerout and pointerleave should be logged inside of it</li> |
<li> Put your mouse over the purple rectangle. pointerover and pointerenter should be logged inside of it.</li> |
<li> Move your mouse out of the purple rectangle. pointerout and pointerleave should be logged inside of it</li> |
- <li> Press and hold left mouse button over "Set Capture" button. "gotpointercapture" should be logged in the black rectangle</li> |
+ <li> Press and hold left mouse button over "Set Capture" button and move mouse a litte inside the button. "gotpointercapture", "pointerover", and "pointerenter" should be logged in the black rectangle</li> |
<li> Put your mouse over the purple rectangle and then move it out. Nothing should happen</li> |
- <li> Put your mouse over the black rectangle. pointerover and pointerenter should be logged inside of it.</li> |
- <li> Move your mouse out of the black rectangle. pointerout and pointerleave should be logged inside of it</li> |
- <li> Release left mouse button. "lostpointercapture" should be logged in the black rectangle</li> |
+ <li> Put your mouse over the black rectangle and then move it out. Nothing should happen.</li> |
+ <li> Put your mouse over the purple rectangle and then release left mouse button. "lostpointercapture" should be logged in the black rectangle. Move your mouse in the purple rectangle a little. "pointerout" and "pointerleave" should be logged in the black rectangle. Also "pointerover" and "pointerenter" should be logged in the purple rectangle"</li> |
</ol> |
</h4> |
Test passes if the proper behaviour of the events is observed. |
@@ -35,6 +34,7 @@ |
var isPointerCapture = false; |
var isRelatedTargetValueTested = false; |
var isTargetAuthenticityTested = false; |
+ var lostPointerCaptureReceived = false; |
var count = 0; |
var detected_pointertypes = {}; |
@@ -51,13 +51,13 @@ |
var test_pointerover_capture = async_test("pointerover event with capture received"); |
var test_pointerout_no_capture = async_test("pointerout event without capture received"); |
- var test_pointerout_capture = async_test("pointerout event with capture received"); |
+ var test_pointerout_after_capture = async_test("pointerout event after lostpointercapture received"); |
var test_pointerenter_no_capture = async_test("pointerenter event without capture received"); |
var test_pointerenter_capture = async_test("pointerenter event with capture received"); |
var test_pointerleave_no_capture = async_test("pointerleave event without capture received"); |
- var test_pointerleave_capture = async_test("pointerleave event with capture received"); |
+ var test_pointerleave_after_capture = async_test("pointerleave event after lostpointercapture received"); |
window.onload = function() { |
on_event(captureButton, 'pointerdown', function(e) { |
@@ -74,6 +74,7 @@ |
on_event(target0, 'lostpointercapture', function(e) { |
isPointerCapture = false; |
+ lostPointerCaptureReceived = true; |
test_lostpointercapture.done(); |
log("lostpointercapture", target0); |
}); |
@@ -89,15 +90,15 @@ |
test_pointerover_capture.done(); |
if (!isRelatedTargetValueTested) { |
test(function() { |
- assert_true(event.relatedTarget==null, "relatedTarget is null when the capture is set") |
- }, "relatedTarget is null when the capture is set. relatedTarget is " + event.relatedTarget); |
+ assert_not_equals(event.relatedTarget, null, "relatedTarget should behave the same as when the capture is not set") |
+ }, "relatedTarget is not null for boundary events even when the capture is set."); |
isRelatedTargetValueTested = true; |
} |
var hitTest = document.elementFromPoint(event.clientX, event.clientY); |
if(event.target !== hitTest && !isTargetAuthenticityTested) { |
test(function () { |
- assert_unreached("pointerover for this target shouldn't trigger events on capture target"); |
- }, "pointerover should only trigger over the black rectangle"); |
+ assert_not_equals(event.target, hitTest, "pointerover should be fired on capture target even if the pointer it not over the capture target"); |
+ }, "pointerover should trigger the black rectangle even when pointer is not over black rectangle."); |
isTargetAuthenticityTested = true; |
} |
} |
@@ -109,10 +110,16 @@ |
on_event(target0, "pointerout", function (event) { |
log("pointerout", target0); |
if(isPointerCapture) { |
- test_pointerout_capture.done(); |
+ test(function() { |
+ assert_unreached("pointerout shouldn't be sent to captured node as all the events are targeted at the capturing node"); |
+ }, "pointerout shouldn't be sent to captured node as all the events are targeted at the capturing node."); |
} |
else { |
- test_pointerout_no_capture.done(); |
+ if (lostPointerCaptureReceived) { |
+ test_pointerout_after_capture.done(); |
+ } else { |
+ test_pointerout_no_capture.done(); |
+ } |
} |
}); |
@@ -129,10 +136,16 @@ |
on_event(target0, "pointerleave", function (event) { |
log("pointerleave", target0); |
if(isPointerCapture) { |
- test_pointerleave_capture.done(); |
+ test(function() { |
+ assert_unreached("pointerleave shouldn't be sent to captured node as all the events are targeted at the capturing node"); |
+ }, "pointerleave shouldn't be sent to captured node as all the events are targeted at the capturing node."); |
} |
else { |
- test_pointerleave_no_capture.done(); |
+ if (lostPointerCaptureReceived) { |
+ test_pointerleave_after_capture.done(); |
+ } else { |
+ test_pointerleave_no_capture.done(); |
+ } |
} |
}); |
@@ -180,4 +193,4 @@ |
</div> |
<div id="log"></div> |
</body> |
-</html> |
+</html> |