Bug 1880216 - Migrate Fenix docs into Sphinx. r=owlish,geckoview-reviewers,android...
[gecko.git] / dom / html / test / test_bug1089326.html
blobfed0a467cdb3d71e2dcdd9c659da4c60991808c8
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">
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();
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.");
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");
37 var i2 = document.getElementById("interactiveContent2");
38 var s21 = document.getElementById("s21");
40 expectedTarget = i1;
41 synthesizeMouseAtCenter(s11, { type: "mousedown" });
42 synthesizeMouseAtCenter(s12, { type: "mouseup" });
43 is(clickCount, 1, "Should have got a click event.");
45 expectedTarget = container;
46 synthesizeMouseAtCenter(s11, { type: "mousedown" });
47 synthesizeMouseAtCenter(s21, { type: "mouseup" });
48 is(clickCount, 2, "Should not have got a click event.");
50 expectedTarget = container;
51 synthesizeMouseAtCenter(s21, { type: "mousedown" });
52 synthesizeMouseAtCenter(s11, { type: "mouseup" });
53 is(clickCount, 3, "Should not have got a click event.");
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.");
62 button.addEventListener("click", function(event) {
63 is(event.target, expectedTarget, "Got expected click event target.");
64 ++clickCount;
65 }, true);
67 expectedTarget = a;
68 synthesizeMouseAtCenter(a, { type: "mousedown" });
69 synthesizeMouseAtCenter(a, { type: "mouseup" });
70 is(clickCount, 5, "Should have got a click event.");
72 expectedTarget = a;
73 synthesizeMouseAtCenter(b, { type: "mousedown" });
74 synthesizeMouseAtCenter(b, { type: "mouseup" });
75 is(clickCount, 6, "Should have got a click event.");
77 SimpleTest.finish();
80 SimpleTest.waitForExplicitFinish();
81 SimpleTest.waitForFocus(test);
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>
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>
94 <div>
95 <span>
96 <span id="span1">span1</span>
97 </span>
98 </div>
100 <div>
101 <span>
102 <span id="span2">span2</span>
103 </span>
104 </div>
105 </div>
107 </body>
108 </html>