| Index: third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerevent_click_during_capture-manual.html
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerevent_click_during_capture-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerevent_click_during_capture-manual.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ed0e3e2c1eb7f3970014d899aa3fd5be96628331
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerevent_click_during_capture-manual.html
|
| @@ -0,0 +1,108 @@
|
| +<!doctype html>
|
| +<html>
|
| + <head>
|
| + <title>click event target during capture</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>
|
| + <script src="pointerevent_support.js"></script>
|
| + <style>
|
| + .box {
|
| + margin: 10px;
|
| + }
|
| + #grey {
|
| + background: grey;
|
| + }
|
| + #blue {
|
| + background: blue;
|
| + }
|
| + #green {
|
| + background: green;
|
| + }
|
| + </style>
|
| + <script type="text/javascript">
|
| + PhaseEnum = {
|
| + Phase1: "phase1",
|
| + Phase2: "phase2",
|
| + Phase1WithCapturing: "phase1withcapturing",
|
| + Phase2WithCapturing: "phase2withcapturing",
|
| + }
|
| + var phase;
|
| + var receivedEvents;
|
| +
|
| + function resetTestState() {
|
| + phase = PhaseEnum.Phase1;
|
| + receivedEvents = [];
|
| + }
|
| +
|
| + function run() {
|
| + var test_pointerEvent = setup_pointerevent_test("click target during capture", ['mouse']);
|
| + var grey = document.getElementById('grey');
|
| + var blue = document.getElementById('blue');
|
| + var green = document.getElementById('green');
|
| +
|
| + ['gotpointercapture', 'lostpointercapture', 'pointerdown', 'pointerup', 'click'].forEach(function(eventName) {
|
| + [grey, blue, green].forEach(function(target) {
|
| + target.addEventListener(eventName, function(event) {
|
| + if (event.eventPhase == event.AT_TARGET) {
|
| + receivedEvents.push(event.type + '@' + target.id);
|
| + if (phase == PhaseEnum.Phase1 && target == green && event.type == 'click') {
|
| + test(function() {
|
| + assert_equals(receivedEvents.join(','), 'pointerdown@green,pointerup@green,click@green', 'An element should only receive click when it is the first common ancestor of pointerdown and pointerup targets');
|
| + }, "Click target when pointerup/down targeted at the same element with no capture");
|
| + phase = PhaseEnum.Phase2;
|
| + receivedEvents = [];
|
| + }
|
| + if (phase == PhaseEnum.Phase2 && target == grey && event.type == 'click') {
|
| + test(function() {
|
| + assert_equals(receivedEvents.join(','), 'pointerdown@blue,pointerup@green,click@grey', 'An element should only receive click when it is the first common ancestor of pointerdown and pointerup targets');
|
| + }, "Click target when pointerup/down targeted at different elements with no capture");
|
| + phase = PhaseEnum.Phase1WithCapturing;
|
| + receivedEvents = [];
|
| + }
|
| + if (target == blue && event.type == 'lostpointercapture') {
|
| + if (phase == PhaseEnum.Phase1WithCapturing) {
|
| + test_pointerEvent.step(function() {
|
| + assert_equals(receivedEvents.join(','), 'pointerdown@green,gotpointercapture@blue,pointerup@blue,click@grey,lostpointercapture@blue', 'An element should only receive click when it is the first common ancestor of pointerdown and pointerup targets');
|
| + });
|
| + phase = PhaseEnum.Phase2WithCapturing;
|
| + receivedEvents = [];
|
| + } else if (phase == PhaseEnum.Phase2WithCapturing) {
|
| + test_pointerEvent.step(function() {
|
| + assert_equals(receivedEvents.join(','), 'pointerdown@blue,gotpointercapture@blue,pointerup@blue,click@blue,lostpointercapture@blue', 'An element should only receive click when it is the first common ancestor of pointerdown and pointerup targets');
|
| + });
|
| + test_pointerEvent.done();
|
| + }
|
| + }
|
| + if (event.type == 'pointerdown' && (target == blue || target == green)) {
|
| + if (phase == PhaseEnum.Phase1WithCapturing || phase == PhaseEnum.Phase2WithCapturing)
|
| + blue.setPointerCapture(event.pointerId);
|
| + }
|
| + }
|
| + });
|
| + });
|
| + });
|
| + }
|
| + </script>
|
| + </head>
|
| + <body onload="run()">
|
| + <h1>Pointer Event: click event during capture</h1>
|
| + <h2 id="pointerTypeDescription"></h2>
|
| + <h4>Test Description:
|
| + Click event should be sent to the first common ancestor of the pointerdown and pointerup targets.
|
| + <ol>
|
| + <li>Click on the green box with the left button of mouse.</li>
|
| + <li>Press down the left button on the blue box and drag to the green box and release the button.</li>
|
| + <li>Repeat the two steps above once again.</li>
|
| + </ol>
|
| + </h4>
|
| + <br>
|
| + <div>
|
| + <div id="grey" class="box">
|
| + <div id="green" class="box"></div>
|
| + <div id="blue" class="box"></div>
|
| + </div>
|
| + </div>
|
| + </body>
|
| +</html>
|
|
|