dom/events/test/test_bug534833.html

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=534833
     5 -->
     6 <head>
     7   <title>Test for Bug 534833</title>
     8   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     9   <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
    10   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    11 </head>
    12 <body>
    13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=534833">Mozilla Bug 534833</a>
    14 <p id="display"></p>
    15 <div id="content" style="display: none">
    17 </div>
    18 <pre id="test">
    19 <script type="application/javascript">
    21 /** Test for Bug 534833 **/
    22 SimpleTest.waitForExplicitFinish();
    23 addLoadEvent(runTests);
    25 var input1GotClick = 0;
    26 var input2GotClick = 0;
    27 var textarea1GotClick = 0;
    28 var textarea2GotClick = 0;
    29 var div1GotClick = 0;
    30 var div2GotClick = 0;
    32 var tests = [ { element: "text",  clickText: true  },
    33               { element: "text2", clickText: false },
    34               { element: "area",  clickText: true  },
    35               { element: "area2", clickText: false  },
    36               { element: "d",     clickText: true  },
    37               { element: "d",     clickText: false },
    38               { element: "d2",    clickText: true  },
    39               { element: "d2",    clickText: false }
    40              ];
    42 function nextTest_() {
    43   if (!tests.length) {
    44     finishTests();
    45     return;
    46   }
    48   var test = tests.shift();
    49   var el = document.getElementById(test.element);
    50   el.scrollIntoView(true);
    51   if (test.clickText) {
    52     synthesizeMouse(el, 5, 5, {type : "mousedown" });
    53     synthesizeMouse(el, 5, 5, {type : "mouseup" });
    54   } else {
    55     synthesizeMouse(el, el.getBoundingClientRect().width - 5, 5, {type : "mousedown" });
    56     synthesizeMouse(el, el.getBoundingClientRect().width - 5, 5, {type : "mouseup" });
    57   }
    58   nextTest();
    59 }
    61 function nextTest() {
    62   var el = document.getElementById("initialfocus");
    64   el.addEventListener("focus", function() {
    65     el.removeEventListener("focus", arguments.callee, false);
    66     setTimeout(nextTest_, 0);
    67   }, false);
    68   el.focus();
    69 }
    71 function runTests() {
    72   var t = document.getElementById("text");
    73   var t2 = document.getElementById("text2");
    74   var a = document.getElementById("area");
    75   var a2 = document.getElementById("area2");
    76   var d = document.getElementById("d");
    77   var d2 = document.getElementById("d2");
    79   // input 1
    80   t.onfocus = function(e) {
    81     t.value = "";
    82   }
    83   t.onclick = function(e) {
    84     ++input1GotClick;
    85   }
    87   // input 2
    88   t2.onfocus = function(e) {
    89     t2.value = "";
    90   }
    91   t2.onclick = function(e) {
    92     ++input2GotClick;
    93   }
    95   // textarea 1
    96   a.onfocus = function(e) {
    97     a.value = "";
    98   }
    99   a.onclick = function(e) {
   100     ++textarea1GotClick;
   101   }
   103   // textarea 2
   104   a2.onfocus = function(e) {
   105     a2.value = "";
   106   }
   107   a2.onclick = function(e) {
   108     ++textarea2GotClick;
   109   }
   111   // div 1
   112   var c = 0;
   113   d.onmousedown = function(e) {
   114     d.textContent = (++c) + " / click before or after |";
   115   }
   116   d.onclick = function(e) {
   117     ++div1GotClick;
   118   }
   120   // div 2
   121   var c2 = 0;
   122   d2.onmousedown = function(e) {
   123     d2.firstChild.data = (++c2) + " / click before or after |";
   124   }
   125   d2.onclick = function(e) {
   126     ++div2GotClick;
   127   }
   128   nextTest();
   129 }
   131 function finishTests() {
   132   is(input1GotClick, 1, "input element should have got a click!");
   133   is(input2GotClick, 1, "input element should have got a click! (2)");
   134   is(textarea1GotClick, 1, "textarea element should have got a click!");
   135   is(textarea2GotClick, 1, "textarea element should have got a click! (2)");
   136   is(div1GotClick, 2, "div element's content text was replaced, it should have got 2 click!");
   137   is(div2GotClick, 2, "div element's content text was modified, it should have got 2 clicks!");
   138   SimpleTest.finish();
   139 }
   141 </script>
   142 </pre>
   143 <input type="text" id="initialfocus"><br>
   144 <input type="text" id="text" value="click before |" style="width: 95%;"><br>
   145 <input type="text" id="text2" value="click after |" style="width: 95%;">
   146 <br>
   147 <textarea id="area" rows="2" style="width: 95%;">
   148  click before
   149             |
   150 </textarea><br>
   151 <textarea id="area2" rows="2" style="width: 95%;">
   152  click after |
   153 </textarea>
   154 <div id="d" style="border: 1px solid black;">click before or after |</div>
   155 <div id="d2" style="border: 1px solid black;">click before or after |</div>
   156 </body>
   157 </html>

mercurial