Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html

Issue 2376103007: Import wpt@09907a9c4bcee14986431d53e4381384c7c69107 (Closed)
Patch Set: update platform expectations Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!doctype html> 1 <!doctype html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>Pointer Event: releasePointerCapture() - subsequent events follow normal hitting testing mechanisms</title> 4 <title>Pointer Event: releasePointerCapture() - subsequent events follow normal hitting testing mechanisms</title>
5 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/> 5 <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
6 <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/> 6 <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
7 <meta name="assert" content="After invoking the releasePointerCapture me thod on an element, subsequent events for the specified pointer must follow norm al hit testing mechanisms for determining the event target"/> 7 <meta name="assert" content="After invoking the releasePointerCapture me thod on an element, subsequent events for the specified pointer must follow norm al hit testing mechanisms for determining the event target"/>
8 <link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> 8 <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
9 <script src="/resources/testharness.js"></script> 9 <script src="/resources/testharness.js"></script>
10 <script src="/resources/testharnessreport.js"></script> 10 <script src="/resources/testharnessreport.js"></script>
11 <!-- Additional helper script for common checks across event types --> 11 <!-- Additional helper script for common checks across event types -->
12 <script type="text/javascript" src="pointerevent_support.js"></script> 12 <script type="text/javascript" src="pointerevent_support.js"></script>
13 <script type="text/javascript"> 13 <script type="text/javascript">
14 var detected_pointertypes = {}; 14 var detected_pointertypes = {};
15 var test_pointerEvent = async_test("lostpointercapture: subsequent e vents to target."); // set up test harness 15 var test_pointerEvent = async_test("lostpointercapture: subsequent e vents to target."); // set up test harness
16 var suppressedEventsFail = false;
17 // showPointerTypes is defined in pointerevent_support.js 16 // showPointerTypes is defined in pointerevent_support.js
18 // Requirements: the callback function will reference the test_point erEvent object and 17 // Requirements: the callback function will reference the test_point erEvent object and
19 // will fail unless the async_test is created with the var name "tes t_pointerEvent". 18 // will fail unless the async_test is created with the var name "tes t_pointerEvent".
20 add_completion_callback(showPointerTypes); 19 add_completion_callback(showPointerTypes);
21 20
22 var captured_event; 21 var captured_event;
22 var test_done = false;
23 var overEnterEventsFail = false;
24 var outLeaveEventsFail = false;
23 var f_gotPointerCapture = false; 25 var f_gotPointerCapture = false;
24 var f_lostPointerCapture = false; 26 var f_lostPointerCapture = false;
25 27
26 function listenerEventHandler(event) { 28 function listenerEventHandler(event) {
29 if (test_done)
30 return;
27 detected_pointertypes[event.pointerType] = true; 31 detected_pointertypes[event.pointerType] = true;
28 if (event.type == "gotpointercapture") { 32 if (event.type == "gotpointercapture") {
29 f_gotPointerCapture = true; 33 f_gotPointerCapture = true;
30 check_PointerEvent(event); 34 check_PointerEvent(event);
31 } 35 }
32 else if (event.type == "lostpointercapture") { 36 else if (event.type == "lostpointercapture") {
33 f_lostPointerCapture = true; 37 f_lostPointerCapture = true;
34 f_gotPointerCapture = false; 38 f_gotPointerCapture = false;
35 check_PointerEvent(event); 39 check_PointerEvent(event);
36 } 40 }
37 else if(event.type == "pointerover" || event.type == "pointerent er" || event.type == "pointerout" || event.type == "pointerleave") { 41 else if(event.type == "pointerover" || event.type == "pointerent er") {
38 if(!suppressedEventsFail) { 42 if(!overEnterEventsFail) {
39 test(function() { 43 test(function() {
40 assert_true(false, "Suppressed events were received" ); 44 assert_true(f_gotPointerCapture, "pointerover/enter should not be received when the target doesn't have capture and pointer is not o ver it.");
41 }, "Suppressed events were received"); 45 }, "pointerover/enter should not be received when the ta rget doesn't have capture and pointer is not over it.");
42 suppressedEventsFail = true; 46 overEnterEventsFail = true;
47 }
48 }
49 else if(event.type == "pointerout" || event.type == "pointerleav e") {
50 if(!outLeaveEventsFail) {
51 test(function() {
52 assert_true(f_lostPointerCapture, "pointerout/leave should not be received unless the target just lost the capture.");
53 }, "pointerout/leave should not be received unless the t arget just lost the capture.");
54 outLeaveEventsFail = true;
43 } 55 }
44 } 56 }
45 else if (event.pointerId == captured_event.pointerId) { 57 else if (event.pointerId == captured_event.pointerId) {
46 if (f_gotPointerCapture && event.type == "pointermove") { 58 if (f_gotPointerCapture && event.type == "pointermove") {
47 // on first event received for capture, release capture 59 // on first event received for capture, release capture
48 listener.releasePointerCapture(event.pointerId); 60 listener.releasePointerCapture(event.pointerId);
49 } 61 }
50 else { 62 else {
51 // if any other events are received after releaseCapture , then the test fails 63 // if any other events are received after releaseCapture , then the test fails
52 test_pointerEvent.step(function () { 64 test(function () {
53 assert_true(false, event.target.id + "-" + event.typ e + " should be handled by target element handler"); 65 assert_unreached(event.target.id + "-" + event.type + " should be handled by target element handler");
54 }); 66 }, "No other events should be recieved by capturing node after release");
55 } 67 }
56 } 68 }
57 } 69 }
58 70
59 function targetEventHandler(event) { 71 function targetEventHandler(event) {
72 if (test_done)
73 return;
60 if (f_gotPointerCapture) { 74 if (f_gotPointerCapture) {
61 if(event.type != "pointerout" && event.type != "pointerleave ") { 75 if(event.type != "pointerout" && event.type != "pointerleave ") {
62 test_pointerEvent.step(function () { 76 test(function () {
63 assert_true(false, "The Target element should not ha ve received any events while capture is active. Event recieved:" + event.type + ". "); 77 assert_unreached("The Target element should not have received any events while capture is active. Event recieved:" + event.type + ". ");
64 }); 78 }, "The target element should not receive any events whi le capture is active");
65 } 79 }
66 } 80 }
67 81
68 if (event.type == "pointerdown") { 82 if (event.type == "pointerdown") {
69 // pointerdown event received will be used to capture events . 83 // pointerdown event received will be used to capture events .
70 listener.setPointerCapture(event.pointerId); 84 listener.setPointerCapture(event.pointerId);
71 captured_event = event; 85 captured_event = event;
72 } 86 }
73 87
74 if (f_lostPointerCapture) { 88 if (f_lostPointerCapture) {
75 test_pointerEvent.step(function () { 89 test_pointerEvent.step(function () {
76 assert_equals(event.pointerId, captured_event.pointerId, "pointerID is same for event captured and after release"); 90 assert_equals(event.pointerId, captured_event.pointerId, "pointerID is same for event captured and after release");
77 }); 91 });
78 if (event.type == "pointerup") { 92 if (event.type == "pointerup") {
79 test_pointerEvent.done(); // complete test 93 test_pointerEvent.done(); // complete test
94 test_done = true;
80 } 95 }
81 } 96 }
82 } 97 }
83 98
84 function run() { 99 function run() {
85 var listener = document.getElementById("listener"); 100 var listener = document.getElementById("listener");
86 var target0 = document.getElementById("target0"); 101 var target0 = document.getElementById("target0");
87 target0.style["touchAction"] = "none"; 102 target0.style["touchAction"] = "none";
88 103
89 // target0 and listener - handle all events 104 // target0 and listener - handle all events
(...skipping 16 matching lines...) Expand all
106 <div id="target0"> 121 <div id="target0">
107 Use mouse, touch or pen to contact here and move around. 122 Use mouse, touch or pen to contact here and move around.
108 </div> 123 </div>
109 <div id="complete-notice"> 124 <div id="complete-notice">
110 <p>Test complete: Scroll to Summary to view Pass/Fail Results.</p> 125 <p>Test complete: Scroll to Summary to view Pass/Fail Results.</p>
111 <p>The following pointer types were detected: <span id="pointertype- log"></span>.</p> 126 <p>The following pointer types were detected: <span id="pointertype- log"></span>.</p>
112 <p>Refresh the page to run the tests again with a different pointer type.</p> 127 <p>Refresh the page to run the tests again with a different pointer type.</p>
113 </div> 128 </div>
114 <div id="log"></div> 129 <div id="log"></div>
115 </body> 130 </body>
116 </html> 131 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698