bug977003_inner_3.html (3698B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=977003 5 --> 6 <head> 7 <meta charset="utf-8"> 8 <title>Test for Bug 977003</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, #mediator, #listener { background: yellow; } 15 </style> 16 <script type="application/javascript"> 17 var target = undefined; 18 var mediator = undefined; 19 var listener = undefined; 20 var test_down_got = false; 21 var test_mediator_got = false; 22 var test_mediator_lost = false; 23 var test_listener = false; 24 25 function TargetDownHandler(event) { 26 logger("Target receive event: " + event.type); 27 logger("Send pointerCapture to Mediator"); 28 mediator.setPointerCapture(event.pointerId); 29 logger("setPointerCapture was executed"); 30 test_down_got = true; 31 } 32 function MediatorGotPCHandler(event) { 33 logger("Mediator receive event: " + event.type); 34 logger("Try send setPointerCapture on listener"); 35 listener.setPointerCapture(event.pointerId); 36 logger("Try send releasePointerCapture from listener"); 37 listener.releasePointerCapture(event.pointerId); 38 test_mediator_got = true; 39 } 40 function MediatorLostPCHandler(event) { 41 logger("Mediator receive event: " + event.type); 42 test_mediator_lost = true; 43 } 44 function ListenerHandler(event) { 45 logger("Receive event on Listener: " + event.type); 46 test_listener = true; 47 } 48 function logger(message) { 49 console.log(message); 50 var log = document.getElementById('log'); 51 log.innerHTML = message + "<br>" + log.innerHTML; 52 } 53 54 function prepareTest() { 55 SimpleTest.executeSoon(executeTest); 56 } 57 function executeTest() 58 { 59 logger("executeTest"); 60 target = document.getElementById("target"); 61 mediator = document.getElementById("mediator"); 62 listener = document.getElementById("listener"); 63 target.addEventListener("pointerdown", TargetDownHandler); 64 mediator.addEventListener("gotpointercapture", MediatorGotPCHandler); 65 mediator.addEventListener("lostpointercapture", MediatorLostPCHandler); 66 listener.addEventListener("gotpointercapture", ListenerHandler); 67 listener.addEventListener("lostpointercapture", ListenerHandler); 68 var rect = target.getBoundingClientRect(); 69 synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousedown"}); 70 synthesizeMouse(target, rect.width/3, rect.height/3, {type: "mousemove"}); 71 synthesizeMouse(target, rect.width/4, rect.height/4, {type: "mousemove"}); 72 finishTest(); 73 } 74 function finishTest() { 75 parent.is(test_down_got, true, "Part 3: pointerdown event should be received"); 76 parent.is(test_mediator_got, true, "Part 3: gotpointercapture event should be received by Mediator"); 77 parent.is(test_mediator_lost, true, "Part 3: lostpointercapture event should be received by Mediator"); 78 parent.is(test_listener, false, "Part 3: listener should not receive any events"); 79 logger("finishTest"); 80 parent.finishTest(); 81 } 82 </script> 83 </head> 84 <body onload="prepareTest()"> 85 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=977003">Mozilla Bug 977003 Test 3</a> 86 <p id="display"></p> 87 <div id="content" style="display: none"> 88 </div> 89 <div id="listener">div id=listener</div> 90 <div id="mediator">div id=mediator</div> 91 <div id="target">div id=target</div> 92 <pre id="log"> 93 </pre> 94 </body> 95 </html>