Index: third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html b/third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d8dbeaae172dfd6314341c55ef1fa3b9945f60fc |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html |
@@ -0,0 +1,93 @@ |
+<!doctype html> |
+<html> |
+ <head> |
+ <title>Pointer Events pointer lock 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 lock_change_count = 0; |
+ var capture_count = 0; |
+ var mouse_move_count = 0; |
+ |
+ function resetTestState() { |
+ } |
+ |
+ function run() { |
+ var test_pointerEvent = setup_pointerevent_test("no pointercapture while pointerlock", ['mouse']); |
+ var div1 = document.getElementById("div1"); |
+ var div2 = document.getElementById("div2"); |
+ |
+ on_event(div1, 'pointerdown', function(event) { |
+ div2.setPointerCapture(event.pointerId); |
+ div1.requestPointerLock(); |
+ }); |
+ on_event(div1, 'pointermove', function(event) { |
+ if (lock_change_count == 1) { |
+ mouse_move_count++; |
+ if (mouse_move_count == 2) { |
+ try { |
+ div2.setPointerCapture(event.pointerId); |
+ test_pointerEvent.step(function () { |
+ assert_unreached("DOMException: InvalidStateError should have been thrown."); |
+ }); |
+ } catch (e) { |
+ test_pointerEvent.step(function () { |
+ assert_equals(e.name, "InvalidStateError", "DOMException should be InvalidStateError"); |
+ }); |
+ } |
+ } else if (mouse_move_count == 3) { |
+ document.exitPointerLock(); |
+ mouse_move_count = 0; |
+ } |
+ |
+ } else if (lock_change_count == 2) { |
+ mouse_move_count++; |
+ if (mouse_move_count == 2) { |
+ test_pointerEvent.step(function() { |
+ assert_equals(capture_count, 0, "There shouldn't be any capture events fired."); |
+ }); |
+ test_pointerEvent.done(); |
+ } |
+ } |
+ }); |
+ on_event(div2, 'gotpointercapture', function(event) { |
+ capture_count++; |
+ }); |
+ on_event(div2, 'lostpointercapture', function(event) { |
+ capture_count++; |
+ }); |
+ on_event(document, 'pointerlockchange', function(event) { |
+ lock_change_count++; |
+ test_pointerEvent.step(function() { |
+ if (lock_change_count == 1) |
+ assert_equals(document.pointerLockElement, div1, "document.pointerLockElement should be div1."); |
+ else if (lock_change_count == 2) |
+ assert_equals(document.pointerLockElement, null, "document.pointerLockElement should be null."); |
+ }); |
+ }); |
+ } |
+ </script> |
+ </head> |
+ <body onload="run()"> |
+ <h1>Pointer Events pointer lock test</h1> |
+ <h2 id="pointerTypeDescription"></h2> |
+ <h4> |
+ Test Description: This test checks that we do not set the pointer capture when any element in the page gets a pointer lock. |
+ <ol> |
+ <li>Press left button down on the green rectangle and hold it.</li> |
+ <li>Move the mouse inside the green rectangle.</li> |
+ </ol> |
+ |
+ Test passes if the pointer capture is not set when the green rectangle gets the pointer lock. |
+ </h4> |
+ <div id="testContainer"> |
+ <div id="div1" style="width:800px;height:250px;background:green"></div> |
+ <div id="div2" style="width:800px;height:250px;background:yellow"></div> |
+ </div> |
+ <div class="spacer"></div> |
+ </body> |
+</html> |