bug977003_inner_4.html (3981B)
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_got = false; 24 var test_listener_lost = false; 25 26 function TargetDownHandler(event) { 27 logger("Target receive event: " + event.type); 28 logger("Send pointerCapture to Mediator"); 29 mediator.setPointerCapture(event.pointerId); 30 logger("setPointerCapture was executed"); 31 test_down_got = true; 32 } 33 function MediatorGotPCHandler(event) { 34 logger("Mediator receive event: " + event.type); 35 logger("Try send setPointerCapture on listener"); 36 listener.setPointerCapture(event.pointerId); 37 logger("Try send releasePointerCapture from Mediator"); 38 mediator.releasePointerCapture(event.pointerId); 39 test_mediator_got = true; 40 } 41 function MediatorLostPCHandler(event) { 42 logger("Mediator receive event: " + event.type); 43 test_mediator_lost = true; 44 } 45 function ListenerGotHandler(event) { 46 test_listener_got = true; 47 } 48 function ListenerLostHandler(event) { 49 test_listener_lost = true; 50 } 51 function logger(message) { 52 console.log(message); 53 var log = document.getElementById('log'); 54 log.innerHTML = message + "<br>" + log.innerHTML; 55 } 56 57 function prepareTest() { 58 SimpleTest.executeSoon(executeTest); 59 } 60 function executeTest() 61 { 62 logger("executeTest"); 63 target = document.getElementById("target"); 64 mediator = document.getElementById("mediator"); 65 listener = document.getElementById("listener"); 66 target.addEventListener("pointerdown", TargetDownHandler); 67 mediator.addEventListener("gotpointercapture", MediatorGotPCHandler); 68 mediator.addEventListener("lostpointercapture", MediatorLostPCHandler); 69 listener.addEventListener("gotpointercapture", ListenerGotHandler); 70 listener.addEventListener("lostpointercapture", ListenerLostHandler); 71 var rect = target.getBoundingClientRect(); 72 synthesizeMouse(target, rect.width/2, rect.height/2, {type: "mousedown"}); 73 synthesizeMouse(target, rect.width/3, rect.height/3, {type: "mousemove"}); 74 synthesizeMouse(target, rect.width/4, rect.height/4, {type: "mousemove"}); 75 synthesizeMouse(target, rect.width/4, rect.height/4, {type: "mouseup"}); 76 finishTest(); 77 } 78 function finishTest() { 79 parent.is(test_down_got, true, "Part 4: pointerdown event should be received"); 80 parent.is(test_mediator_got, true, "Part 4: gotpointercapture event should be received by Mediator"); 81 parent.is(test_mediator_lost, true, "Part 4: lostpointercapture event should be received by Mediator"); 82 parent.is(test_listener_got, true, "Part 4: gotpointercapture event should be received by listener"); 83 parent.is(test_listener_lost, true, "Part 4: lostpointercapture event should be received by listener"); 84 logger("finishTest"); 85 parent.finishTest(); 86 } 87 </script> 88 </head> 89 <body onload="prepareTest()"> 90 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=977003">Mozilla Bug 977003 Test 4</a> 91 <p id="display"></p> 92 <div id="content" style="display: none"> 93 </div> 94 <div id="listener">div id=listener</div> 95 <div id="mediator">div id=mediator</div> 96 <div id="target">div id=target</div> 97 <pre id="log"> 98 </pre> 99 </body> 100 </html>