| Index: third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_boundary_events_in_capturing-manual.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_boundary_events_in_capturing-manual.html b/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_boundary_events_in_capturing-manual.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0de4d55ed13ed67229cc4a6a0f77635fad815d01
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/pointerevents/pointerevent_boundary_events_in_capturing-manual.html
|
| @@ -0,0 +1,97 @@
|
| +<!doctype html>
|
| +<html>
|
| + <head>
|
| + <title>Pointer Events boundary events in capturing tests</title>
|
| + <meta name="viewport" content="width=device-width">
|
| + <link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
| + <script src="/resources/testharness.js"></script>
|
| + <script src="/resources/testharnessreport.js"></script>
|
| + <!-- Additional helper script for common checks across event types -->
|
| + <script type="text/javascript" src="pointerevent_support.js"></script>
|
| + <script>
|
| + var detected_pointertypes = {};
|
| + var eventList = All_Pointer_Events;
|
| + PhaseEnum = {
|
| + WaitingForDown: "down",
|
| + WaitingForFirstMove: "firstMove",
|
| + WaitingForSecondMove: "secondMove",
|
| + WaitingForUp: "up"
|
| + }
|
| + var phase = PhaseEnum.WaitingForDown;
|
| + var eventsRecieved = [];
|
| +
|
| + function resetTestState() {
|
| + eventsRecieved = [];
|
| + phase = PhaseEnum.WaitingForDown;
|
| + }
|
| + function run() {
|
| + var test_pointerEvent = setup_pointerevent_test("pointerevent boundary events in capturing", ALL_POINTERS);
|
| + var target = document.getElementById("target0");
|
| + var listener = document.getElementById("listener");
|
| +
|
| + eventList.forEach(function(eventName) {
|
| + on_event(target, eventName, function (event) {
|
| + if (phase == PhaseEnum.WaitingForDown) {
|
| + if (eventName == 'pointerdown') {
|
| + listener.setPointerCapture(event.pointerId);
|
| + phase = PhaseEnum.WaitingForFirstMove;
|
| + }
|
| + } else if (phase == PhaseEnum.WaitingForUp) {
|
| + if (event.type == 'pointerup')
|
| + test_pointerEvent.done();
|
| + } else {
|
| + eventsRecieved.push(event.type + '@target');
|
| + if (phase == PhaseEnum.WaitingForSecondMove && event.type == 'pointermove') {
|
| + test(function () {
|
| + checkPointerEventType(event);
|
| + assert_array_equals(eventsRecieved, ['lostpointercapture@listener', 'pointerout@listener', 'pointerleave@listener', 'pointerover@target', 'pointerenter@target', 'pointermove@target'],
|
| + 'lostpointercapture and pointerout/leave should be dispatched to the capturing target and pointerover/enter should be dispatched to the hit-test element before the first pointermove event after releasing pointer capture');
|
| + }, expectedPointerType + " pointer events boundary events when releasing capture");
|
| + phase = PhaseEnum.WaitingForUp;
|
| + }
|
| + }
|
| + });
|
| + on_event(listener, eventName, function (event) {
|
| + if (phase == PhaseEnum.WaitingForDown)
|
| + return;
|
| + eventsRecieved.push(event.type + '@listener');
|
| + if (phase == PhaseEnum.WaitingForFirstMove && eventName == 'pointermove') {
|
| + test(function () {
|
| + checkPointerEventType(event);
|
| + assert_array_equals(eventsRecieved, ['pointerout@target', 'pointerleave@target', 'pointerover@listener', 'pointerenter@listener', 'gotpointercapture@listener', 'pointermove@listener'],
|
| + 'pointerout/leave should be dispatched to the previous target and pointerover/enter and gotpointercapture should be dispatched to the capturing element before the first captured pointermove event');
|
| + }, expectedPointerType + " pointer events boundary events when receiving capture");
|
| + listener.releasePointerCapture(event.pointerId);
|
| + eventsRecieved = [];
|
| + phase = PhaseEnum.WaitingForSecondMove;
|
| + }
|
| + });
|
| + });
|
| + }
|
| + </script>
|
| + </head>
|
| + <body onload="run()">
|
| + <h1>Pointer Events boundary events in capturing</h1>
|
| + <h2 id="pointerTypeDescription"></h2>
|
| + <h4>
|
| + Test Description: This test checks the boundary events of pointer events while the capturing changes. If you are using hoverable pen don't leave the range of digitizer while doing the instructions.
|
| + <ol>
|
| + <li>Move your pointer over the black square</li>
|
| + <li>Press down the pointer (i.e. press left button with mouse or touch the screen with finger or pen).</li>
|
| + <li>Drag the pointer within the black square.</li>
|
| + <li>Release the pointer.</li>
|
| + </ol>
|
| +
|
| + Test passes if the proper behavior of the events is observed.
|
| + </h4>
|
| + <div id="target0" class="touchActionNone">
|
| + </div>
|
| + <div id="listener">Do not hover over or touch this element. </div>
|
| + <div id="complete-notice">
|
| + <p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
|
| + <p>Refresh the page to run the tests again with a different pointer type.</p>
|
| + </div>
|
| + <div id="log"></div>
|
| + </body>
|
| +</html>
|
| +
|
|
|