layout/base/tests/bug968148_inner.html

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=968148
     5 -->
     6 <head>
     7   <title>Test for Bug 968148</title>
     8   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     9   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    10   <style>
    11   .test {
    12     width: 20px;
    13     height: 20px;
    14     border: 1px solid black;
    15     -moz-user-select: none;
    16   }
    17   </style>
    18 </head>
    19 <body>
    20 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=968148">Mozilla Bug 968148</a>
    21 <p id="display"></p>
    22 <div id="content" style="display: none">
    23 </div>
    24 <pre id="test">
    25 <script type="application/javascript">
    27 /**
    28  * Test for Bug 968148, test orignally copied from test_bug582771.html.
    29  * Mouse functionality converted to pointer and all steps duplicated in order to run them in parallel for two different pointer Id's
    30 **/
    32 function ok(condition, msg) {
    33   parent.ok(condition, msg);
    34 }
    36 function is(a, b, msg) {
    37   parent.is(a, b, msg);
    38 }
    40 var test1d1;
    41 var test1d2;
    42 var test2d1;
    43 var test2d2;
    44 var test1d1pointermovecount = 0;
    45 var test1d2pointermovecount = 0;
    46 var test2d1pointermovecount = 0;
    47 var test2d2pointermovecount = 0;
    49 var test1d1pointerlostcapture = 0;
    50 var test1d2pointerlostcapture = 0;
    51 var test2d1pointerlostcapture = 0;
    52 var test2d2pointerlostcapture = 0;
    53 var test1d1pointergotcapture = 0;
    54 var test1d2pointergotcapture = 0;
    55 var test2d1pointergotcapture = 0;
    56 var test2d2pointergotcapture = 0;
    57 var test1PointerId = 1;
    58 var test2PointerId = 2;
    60 function sendPointerMove(el, id) {
    61   var rect = el.getBoundingClientRect();
    62   var utils = SpecialPowers.getDOMWindowUtils(window);
    63   utils.sendPointerEvent('pointermove', rect.left + 5, rect.top + 5, 0, 0, 0, false, 0, SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH, id);
    64 }
    66 function sendPointerDown(el, id) {
    67   var rect = el.getBoundingClientRect();
    68   var utils = SpecialPowers.getDOMWindowUtils(window);
    69   utils.sendPointerEvent('pointerdown', rect.left + 5, rect.top + 5, 0, 1, 0, false, 0, SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH, id);
    70 }
    72 function sendPointerUp(el, id) {
    73   var rect = el.getBoundingClientRect();
    74   var utils = SpecialPowers.getDOMWindowUtils(window);
    75   utils.sendPointerEvent('pointerup', rect.left + 5, rect.top + 5, 0, 1, 0, false, 0, SpecialPowers.Ci.nsIDOMMouseEvent.MOZ_SOURCE_TOUCH, id);
    76 }
    78 function log(s) {
    79   document.getElementById("l").textContent += s + "\n";
    80 }
    82 function test1d2Listener(e) {
    83   log(e.type + ", " + e.target.id);
    84   is(e.target, test1d2, "test1d2 should have got pointermove.");
    85   ++test1d2pointermovecount;
    86 }
    88 function test2d2Listener(e) {
    89   log(e.type + ", " + e.target.id);
    90   is(e.target, test2d2, "test2d2 should have got pointermove.");
    91   ++test2d2pointermovecount;
    92 }
    94 function test1d1DownListener(e) {
    95   log(e.type + ", " + e.target.id);
    96   test1d1.setPointerCapture(e.pointerId);
    97 }
    99 function test1d1MoveListener(e) {
   100   log(e.type + ", " + e.target.id);
   101   test1d2.setPointerCapture(e.pointerId);
   102 }
   104 function test2d1DownListener(e) {
   105   log(e.type + ", " + e.target.id);
   106   test2d1.setPointerCapture(e.pointerId);
   107 }
   109 function test2d1MoveListener(e) {
   110   log(e.type + ", " + e.target.id);
   111   test2d2.setPointerCapture(e.pointerId);
   112 }
   114 function test1d1PointerGotCapture(e) {
   115   log(e.type + ", " + e.target.id);
   116   ++test1d1pointergotcapture;
   117 }
   119 function test1d1PointerLostCapture(e) {
   120   log(e.type + ", " + e.target.id);
   121   ++test1d1pointerlostcapture;
   122 }
   124 function test2d1PointerGotCapture(e) {
   125   log(e.type + ", " + e.target.id);
   126   ++test2d1pointergotcapture;
   127 }
   129 function test2d1PointerLostCapture(e) {
   130   log(e.type + ", " + e.target.id);
   131   ++test2d1pointerlostcapture;
   132 }
   134 function test1d2PointerGotCapture(e) {
   135   log(e.type + ", " + e.target.id);
   136   ++test1d2pointergotcapture;
   137 }
   139 function test1d2PointerLostCapture(e) {
   140   log(e.type + ", " + e.target.id);
   141   ++test1d2pointerlostcapture;
   142 }
   144 function test2d2PointerGotCapture(e) {
   145   log(e.type + ", " + e.target.id);
   146   ++test2d2pointergotcapture;
   147 }
   149 function test2d2PointerLostCapture(e) {
   150   log(e.type + ", " + e.target.id);
   151   ++test2d2pointerlostcapture;
   152 }
   154 function test1d1PointerMoveListener(e) {
   155   log(e.type + ", " + e.target.id);
   156   ++test1d1pointermovecount;
   157 }
   159 function test2d1PointerMoveListener(e) {
   160   log(e.type + ", " + e.target.id);
   161   ++test2d1pointermovecount;
   162 }
   164 function runTests() {
   165   test1d1 = document.getElementById("test1d1");
   166   test1d2 = document.getElementById("test1d2");
   167   test2d1 = document.getElementById("test2d1");
   168   test2d2 = document.getElementById("test2d2");
   170   test1d2.addEventListener("pointermove", test1d2Listener, true);
   171   test2d2.addEventListener("pointermove", test2d2Listener, true);
   173   test1d1.addEventListener("gotpointercapture", test1d1PointerGotCapture, true);
   174   test1d1.addEventListener("lostpointercapture", test1d1PointerLostCapture, true);
   176   test2d1.addEventListener("gotpointercapture", test2d1PointerGotCapture, true);
   177   test2d1.addEventListener("lostpointercapture", test2d1PointerLostCapture, true);
   179   test1d2.addEventListener("gotpointercapture", test1d2PointerGotCapture, true);
   180   test1d2.addEventListener("lostpointercapture", test1d2PointerLostCapture, true);
   182   test2d2.addEventListener("gotpointercapture", test2d2PointerGotCapture, true);
   183   test2d2.addEventListener("lostpointercapture", test2d2PointerLostCapture, true);
   185   document.body.offsetLeft;
   186   sendPointerMove(test1d2, test1PointerId);
   187   sendPointerMove(test2d2, test2PointerId);
   188   is(test1d2pointermovecount, 1, "Should have got pointermove");
   189   is(test2d2pointermovecount, 1, "Should have got pointermove");
   191   // This shouldn't enable capturing, since we're not in a right kind of 
   192   // event listener.
   193   sendPointerDown(test1d1, test1PointerId);
   194   sendPointerDown(test2d1, test2PointerId);
   196   sendPointerMove(test1d2, test1PointerId);
   197   sendPointerMove(test2d2, test2PointerId);
   199   sendPointerUp(test1d1, test1PointerId);
   200   sendPointerUp(test2d1, test2PointerId);
   202   is(test1d2pointermovecount, 2, "Should have got pointermove");
   203   is(test2d2pointermovecount, 2, "Should have got pointermove");
   205   test1d1.addEventListener("pointerdown", test1d1DownListener, true);
   206   test1d1.addEventListener("pointermove", test1d1PointerMoveListener, true);
   207   test2d1.addEventListener("pointerdown", test2d1DownListener, true);
   208   test2d1.addEventListener("pointermove", test2d1PointerMoveListener, true);
   210   sendPointerDown(test1d1, test1PointerId);
   211   sendPointerDown(test2d1, test2PointerId);
   212   sendPointerMove(test1d2, test1PointerId);
   213   sendPointerMove(test2d2, test2PointerId);
   214   is(test1d2pointermovecount, 2, "Shouldn't have got pointermove");
   215   is(test1d1pointermovecount, 1, "Should have got pointermove");
   216   is(test1d1pointergotcapture, 1, "Should have got pointergotcapture");
   218   is(test2d2pointermovecount, 2, "Shouldn't have got pointermove");
   219   is(test2d1pointermovecount, 1, "Should have got pointermove");
   220   is(test2d1pointergotcapture, 1, "Should have got pointergotcapture");
   222   sendPointerUp(test1d1, test1PointerId);
   223   sendPointerUp(test2d1, test2PointerId);
   224   test1d1.removeEventListener("pointerdown", test1d1DownListener, true);
   225   test1d1.removeEventListener("pointermove", test1d1PointerMoveListener, true);
   226   test2d1.removeEventListener("pointerdown", test2d1DownListener, true);
   227   test2d1.removeEventListener("pointermove", test2d1PointerMoveListener, true);
   229   // Nothing should be capturing the event.
   230   sendPointerMove(test1d2, test1PointerId);
   231   sendPointerMove(test2d2, test2PointerId);
   233   is(test1d2pointermovecount, 3, "Should have got pointermove");
   234   is(test1d1pointerlostcapture, 1, "Should have got pointerlostcapture");
   235   is(test2d2pointermovecount, 3, "Should have got pointermove");
   236   is(test2d1pointerlostcapture, 1, "Should have got pointerlostcapture");
   238   test1d1.addEventListener("pointermove", test1d1MoveListener, true);
   239   test2d1.addEventListener("pointermove", test2d1MoveListener, true);
   241   sendPointerDown(test1d1, test1PointerId);
   242   sendPointerDown(test2d1, test2PointerId);
   244   sendPointerMove(test1d1, test1PointerId); // This should call setPointerCapture to test1d2!
   245   sendPointerMove(test2d1, test2PointerId); // This should call setPointerCapture to test2d2!
   247   test1d1.removeEventListener("pointermove", test1d1MoveListener, true);
   248   test1d1.addEventListener("pointermove", test1d1PointerMoveListener, true);
   250   test2d1.removeEventListener("pointermove", test2d1MoveListener, true);
   251   test2d1.addEventListener("pointermove", test2d1PointerMoveListener, true);
   253   sendPointerMove(test1d1, test1PointerId); // This should send pointer event to test1d2.
   254   sendPointerMove(test2d1, test2PointerId); // This should send pointer event to test2d2.
   256   is(test1d1pointermovecount, 1, "Shouldn't have got pointermove");
   257   is(test1d2pointermovecount, 4, "Should have got pointermove");
   258   is(test1d2pointergotcapture, 1, "Should have got pointergotcapture");
   260   is(test2d1pointermovecount, 1, "Shouldn't have got pointermove");
   261   is(test2d2pointermovecount, 4, "Should have got pointermove");
   262   is(test2d2pointergotcapture, 1, "Should have got pointergotcapture");
   264   sendPointerUp(test1d1, test1PointerId);
   265   sendPointerUp(test2d1, test2PointerId);
   267   finishTest();
   268 }
   270 function finishTest() {
   271   // Let window.onerror have a chance to fire
   272   setTimeout(function() {
   273     setTimeout(function() {
   274       window.parent.postMessage("SimpleTest.finish();", "*");
   275     }, 0);
   276   }, 0);
   277 }
   279 window.onload = function () {
   280   SpecialPowers.pushPrefEnv({
   281     "set": [
   282       ["dom.w3c_pointer_events.enabled", true],
   283     ]
   284   }, runTests);
   285 }
   287 SimpleTest.waitForExplicitFinish();
   289 </script>
   290 </pre>
   291 <div class="test" id="test1d1">&nbsp;</div><br><div class="test" id="test1d2">&nbsp;</div>
   292 <div class="test" id="test2d1">&nbsp;</div><br><div class="test" id="test2d2">&nbsp;</div>
   293 <pre id="l"></pre>
   294 </body>
   295 </html>

mercurial