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

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

Issue 2020083002: Import wpt@1b61dad2be6c5100beb565e91c58b8c1084b3c7d (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing tests Created 4 years, 6 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
(Empty)
1 <!doctype html>
2 <html>
3 <head>
4 <title>Set/Release capture</title>
5 <meta name="viewport" content="width=device-width">
6 <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
7 <script src="/resources/testharness.js"></script>
8 <script src="/resources/testharnessreport.js"></script>
9 <!-- Additional helper script for common checks across event types -->
10 <script type="text/javascript" src="pointerevent_support.js"></script>
11 </head>
12 <body>
13 <h1>Pointer Events capture test</h1>
14 <h4>
15 Test Description: This test checks if setCapture/releaseCapture func tions works properly. Complete the following actions:
16 <ol>
17 <li> Move your mouse over the black rectangle. pointermove event should be logged in the black rectangle</li>
18 <li> Move your mouse over the purple rectangle. pointerover even t should be logged in the purple rectangle</li>
19 <li> Press and hold left mouse button over "Set Capture" button. "gotpointercapture" should be logged in the black rectangle</li>
20 <li> Move your mouse anywhere. pointermove should be logged in t he black rectangle</li>
21 <li> Move your mouse over the purple rectangle. Nothig should ha ppen</li>
22 <li> Move your mouse over the black rectangle. pointermove shoul d be logged in the black rectangle</li>
23 <li> Release left mouse button. "lostpointercapture" should be l ogged in the black rectangle</li>
24 </ol>
25 </h4>
26 Test passes if the proper behaviour of the events is observed.
27 <div id="target0"></div>
28 <br>
29 <div id="target1"></div>
30 <br>
31 <input type="button" id="btnCapture" value="Set Capture">
32 <script type='text/javascript'>
33 var isPointerCapture = false;
34 var pointermoveNoCaptureGot0 = false;
35 var pointermoveCaptureGot0 = false;
36 var pointermoveNoCaptureGot1 = false;
37 var ownEventForTheCapturedTargetGot = false;
38 var count=0;
39
40 var detected_pointertypes = {};
41 add_completion_callback(showPointerTypes);
42
43 var target0 = document.getElementById('target0');
44 var target1 = document.getElementById('target1');
45 var captureButton = document.getElementById('btnCapture');
46
47 var test_gotpointercapture = async_test("gotpointercapture event rec eived");
48 var test_lostpointercapture = async_test("lostpointercapture event r eceived");
49
50 window.onload = function() {
51 on_event(captureButton, 'pointerdown', function(e) {
52 if(isPointerCapture == false) {
53 isPointerCapture = true;
54 sPointerCapture(e);
55 }
56 });
57
58 on_event(target0, 'gotpointercapture', function(e) {
59 test_gotpointercapture.done();
60 log("gotpointercapture", target0);
61 });
62
63 on_event(target0, 'lostpointercapture', function(e) {
64 test_lostpointercapture.done();
65 isPointerCapture = false;
66 log("lostpointercapture", target0);
67 });
68
69 run();
70 }
71
72 function run() {
73 var test_pointermove0 = async_test("pointerover event for black rectangle received")
74 var test_pointermove1 = async_test("pointerover event for purple rectangle received")
75
76 on_event(target0, "pointermove", function (event) {
77 detected_pointertypes[ event.pointerType ] = true;
78 if(!pointermoveNoCaptureGot0) {
79 test_pointermove0.done();
80 log("pointermove", document.getElementById('target0'));
81 pointermoveNoCaptureGot0 = true;
82 }
83 if(isPointerCapture) {
84 if(!pointermoveCaptureGot0) {
85 test(function() {
86 assert_true(event.relatedTarget==null, "relatedT arget is null when the capture is set")
87 }, "relatedTarget is null when the capture is set. r elatedTarget is " + event.relatedTarget);
88 test(function() {
89 assert_true((event.clientX < target0.getBounding ClientRect().left)||
90 (event.clientX > target0.getBoundingClientRect() .right)||
91 (event.clientY < target0.getBoundingClientRect() .top)||
92 (event.clientY > target0.getBoundingClientRect() .bottom),
93 "pointermove received for captured element while out of it")
94 }, "pointermove received for captured element while out of it");
95 log("pointermove", document.getElementById('target0' ));
96 pointermoveCaptureGot0 = true;
97 }
98 if((event.clientX > target0.getBoundingClientRect().left )&&
99 (event.clientX < target0.getBoundingClientRect().rig ht)&&
100 (event.clientY > target0.getBoundingClientRect().top )&&
101 (event.clientY < target0.getBoundingClientRect().bot tom)&&
102 !ownEventForTheCapturedTargetGot) {
103 test(function() {
104 assert_true(true, "pointermove received for captured element while inside of it");
105 }, "pointermove received for captured element wh ile inside of it");
106 log("pointermove", document.getElementById('target0' ));
107 ownEventForTheCapturedTargetGot = true;
108 }
109 }
110 });
111
112 on_event(target1, "pointermove", function (event) {
113 if(isPointerCapture == true) {
114 test(function() {
115 assert_unreached("pointermove shouldn't trigger for this target when capture is enabled");
116 }, "pointermove shouldn't trigger for the purple rec tangle while the black rectangle has capture");
117 }
118 if(!pointermoveNoCaptureGot1) {
119 test_pointermove1.done();
120 log("pointermove", document.getElementById('target1'));
121 pointermoveNoCaptureGot1 = true;
122 }
123 });
124 }
125 </script>
126 <h1>Pointer Events Capture Test</h1>
127 <div id="complete-notice">
128 <p>The following pointer types were detected: <span id="pointertype- log"></span>.</p>
129 </div>
130 <div id="log"></div>
131 </body>
132 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698