bug1080360_inner.html (3132B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1080360 5 --> 6 <head> 7 <meta charset="utf-8"> 8 <title>Test for Bug 1080360</title> 9 <meta name="author" content="Maksim Lebedev" /> 10 <script src="/tests/SimpleTest/SimpleTest.js"></script> 11 <script src="/tests/SimpleTest/EventUtils.js"></script> 12 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 13 <style> 14 #target, #listener { background: yellow; padding: 10px; } 15 </style> 16 <script type="application/javascript"> 17 var target = undefined; 18 var listener = undefined; 19 var test_target = false; 20 var test_listener_got = false; 21 var test_listener_lost = false; 22 var test_document = false; 23 24 function TargetHandler(event) { 25 logger("Target receive event: " + event.type); 26 listener.setPointerCapture(event.pointerId); 27 test_target = true; 28 } 29 function ListenerHandler(event) { 30 logger("Listener receive event: " + event.type); 31 if(event.type == "gotpointercapture") { 32 test_listener_got = true; 33 listener.remove(); 34 } 35 if(event.type == "lostpointercapture") 36 test_listener_lost = true; 37 } 38 function DocumentHandler(event) { 39 logger("Document receive event: " + event.type); 40 if(event.type == "lostpointercapture") 41 test_document = true; 42 } 43 function logger(message) { 44 console.log(message); 45 var log = document.getElementById('log'); 46 log.innerHTML = message + "<br>" + log.innerHTML; 47 } 48 49 function prepareTest() { 50 SimpleTest.executeSoon(executeTest); 51 } 52 function executeTest() 53 { 54 logger("executeTest"); 55 target = document.getElementById("target"); 56 listener = document.getElementById("listener"); 57 target.addEventListener("pointerdown", TargetHandler); 58 listener.addEventListener("gotpointercapture", ListenerHandler); 59 listener.addEventListener("lostpointercapture", ListenerHandler); 60 document.addEventListener("lostpointercapture", DocumentHandler); 61 var rect = target.getBoundingClientRect(); 62 synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousedown"}); 63 synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousemove"}); 64 synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mouseup"}); 65 finishTest(); 66 } 67 function finishTest() { 68 parent.is(test_target, true, "pointerdown event should be received by target"); 69 parent.is(test_listener_got, true, "gotpointercapture event should be received by listener"); 70 parent.is(test_listener_lost, false, "listener should not receive lostpointercapture event"); 71 parent.is(test_document, true, "document should receive lostpointercapture event"); 72 logger("finishTest"); 73 parent.finishTest(); 74 } 75 </script> 76 </head> 77 <body onload="prepareTest()"> 78 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1080360">Mozilla Bug 1080360</a> 79 <div id="target">div id=target</div> 80 <div id="listener">div id=listener</div> 81 <pre id="log"></pre> 82 </body> 83 </html>