test_bug1089326.html (3663B)
1 <!DOCTYPE HTML> 2 <html> 3 <!-- 4 https://bugzilla.mozilla.org/show_bug.cgi?id=1089326 5 --> 6 <head> 7 <meta charset="utf-8"> 8 <title>Test for Bug 1089326</title> 9 <script src="/tests/SimpleTest/SimpleTest.js"></script> 10 <script src="/tests/SimpleTest/EventUtils.js"></script> 11 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 12 <script type="application/javascript"> 13 14 /** Test for Bug 1089326 */ 15 function test() { 16 var b = document.getElementById("button"); 17 var b_rect = b.getBoundingClientRect(); 18 var a = document.getElementById("anchor"); 19 var a_rect = a.getBoundingClientRect(); 20 21 is(document.elementFromPoint(b_rect.x + 1, b_rect.y + 1), b, 22 "Should find button when doing hit test on top of it."); 23 is(document.elementFromPoint(a_rect.x + 1, a_rect.y + 1), a, 24 "Should find anchor when doing hit test on top of it."); 25 26 var expectedTarget; 27 var clickCount = 0; 28 var container = document.getElementById("interactiveContentContainer"); 29 container.addEventListener("click", function(event) { 30 is(event.target, expectedTarget, "Got expected click event target."); 31 ++clickCount; 32 }, true); 33 var i1 = document.getElementById("interactiveContent1"); 34 var s11 = document.getElementById("s11"); 35 var s12 = document.getElementById("s12"); 36 37 var i2 = document.getElementById("interactiveContent2"); 38 var s21 = document.getElementById("s21"); 39 40 expectedTarget = i1; 41 synthesizeMouseAtCenter(s11, { type: "mousedown" }); 42 synthesizeMouseAtCenter(s12, { type: "mouseup" }); 43 is(clickCount, 1, "Should have got a click event."); 44 45 expectedTarget = container; 46 synthesizeMouseAtCenter(s11, { type: "mousedown" }); 47 synthesizeMouseAtCenter(s21, { type: "mouseup" }); 48 is(clickCount, 2, "Should not have got a click event."); 49 50 expectedTarget = container; 51 synthesizeMouseAtCenter(s21, { type: "mousedown" }); 52 synthesizeMouseAtCenter(s11, { type: "mouseup" }); 53 is(clickCount, 3, "Should not have got a click event."); 54 55 var span1 = document.getElementById("span1"); 56 var span2 = document.getElementById("span2"); 57 expectedTarget = container; 58 synthesizeMouseAtCenter(span1, { type: "mousedown" }); 59 synthesizeMouseAtCenter(span2, { type: "mouseup" }); 60 is(clickCount, 4, "Should not have got a click event."); 61 62 button.addEventListener("click", function(event) { 63 is(event.target, expectedTarget, "Got expected click event target."); 64 ++clickCount; 65 }, true); 66 67 expectedTarget = a; 68 synthesizeMouseAtCenter(a, { type: "mousedown" }); 69 synthesizeMouseAtCenter(a, { type: "mouseup" }); 70 is(clickCount, 5, "Should have got a click event."); 71 72 expectedTarget = a; 73 synthesizeMouseAtCenter(b, { type: "mousedown" }); 74 synthesizeMouseAtCenter(b, { type: "mouseup" }); 75 is(clickCount, 6, "Should have got a click event."); 76 77 SimpleTest.finish(); 78 } 79 80 SimpleTest.waitForExplicitFinish(); 81 SimpleTest.waitForFocus(test); 82 83 </script> 84 </head> 85 <body> 86 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1089326">Mozilla Bug 1089326</a> 87 <p id="display"></p> 88 <button id="button">button <a id="anchor" href="#">anchor</a>button</button> 89 90 <div id="interactiveContentContainer"> 91 <a id="interactiveContent1" href="#">foo <span id="s11">s11</span><span id="s12">s12</span> bar</a> 92 <a id="interactiveContent2" href="#">foo <span id="s21">s21</span><span id="s22">s22</span> bar</a> 93 94 <div> 95 <span> 96 <span id="span1">span1</span> 97 </span> 98 </div> 99 100 <div> 101 <span> 102 <span id="span2">span2</span> 103 </span> 104 </div> 105 </div> 106 107 </body> 108 </html>