blob: df515436c057d81b221f0f7c08b195f432fd75a0 [file] [log] [blame]
<!doctype html>
<title>Release capture on pointerup</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>
<h1>Pointer Events Capture Test - release capture on pointerup</h1>
Test Description: This test checks if setCapture/releaseCapture functions works properly. Complete the following actions:
<li> Press and hold left mouse button over "Set Capture" button
<li> Release left mouse button anywhere over the document. "lostpointercapture" should be logged inside of the black rectangle immediately after "pointerup"
Test passes if the proper behavior of the events is observed.
<div id="target0" style="background:black; color:white"></div>
<input type="button" id="btnCapture" value="Set Capture">
<script type='text/javascript'>
var isPointerCapture = false;
var pointerupGot = false;
var count=0;
var detected_pointertypes = {};
var target0 = document.getElementById('target0');
var captureButton = document.getElementById('btnCapture');
setup({ explicit_done: true });
window.onload = function() {
on_event(captureButton, 'pointerdown', function(e) {
detected_pointertypes[e.pointerType] = true;
if(isPointerCapture == false) {
isPointerCapture = true;
pointerupGot = false;
on_event(target0, 'gotpointercapture', function(e) {
log("gotpointercapture", document.getElementById('target0'));
// If the setPointerCapture method has been invoked on the pointer specified by pointerId,
// and the releasePointerCapture method has not been invoked,a lostpointercapture event must be
// dispatched to the element on which the setPointerCapture method was invoked. Furthermore,
// subsequent events for the specified pointer must follow normal hit testing mechanisms for
// determining the event target.
// TA: 3.7
on_event(target0, 'lostpointercapture', function(e) {
test(function() {
assert_true(pointerupGot, "pointerup was received before lostpointercapture")
}, "pointerup was received before lostpointercapture");
log("lostpointercapture", document.getElementById('target0'));
isPointerCapture = false;
on_event(target0, 'pointerup', function(e) {
log("pointerup", target0);
pointerupGot = true;
<h1>Pointer Events Capture Test</h1>
<div id="complete-notice">
<p>Test complete: Scroll to Summary to view Pass/Fail Results.</p>
<p>The following pointer types were detected: <span id="pointertype-log"></span>.</p>
<div id="log"></div>