tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>