dom/events/test/test_dom_mouse_event.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 <head>
     4   <title>Test for DOM MouseEvent</title>
     5   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
     7 </head>
     8 <body>
     9 <p id="display"></p>
    10 <div id="content" style="display: none">
    12 </div>
    13 <pre id="test">
    14 <script type="application/javascript">
    16 SimpleTest.waitForExplicitFinish();
    17 SimpleTest.waitForFocus(runTests, window);
    19 function testInitializingUntrustedEvent()
    20 {
    21   const kTests = [
    22     { createEventArg: "MouseEvent",
    23       type: "mousedown", bubbles: true, cancelable: true, view: null, detail: 1,
    24       screenX: 0, screenY: 0, clientX: 0, clientY: 0,
    25       ctrlKey: false, altKey: false, shiftKey: false, metaKey: false,
    26       button: 6, relatedTarget: null },
    28     { createEventArg: "mouseevent",
    29       type: "mouseup", bubbles: false, cancelable: true, view: window, detail: 2,
    30       screenX: 0, screenY: 0, clientX: 0, clientY: 400,
    31       ctrlKey: true, altKey: false, shiftKey: false, metaKey: false,
    32       button: 1, relatedTarget: document.getElementById("content") },
    34     { createEventArg: "Mouseevent",
    35       type: "click", bubbles: true, cancelable: false, view: null, detail: -5,
    36       screenX: 0, screenY: 0, clientX: 300, clientY: 0,
    37       ctrlKey: false, altKey: true, shiftKey: false, metaKey: false,
    38       button: 2, relatedTarget: document.getElementById("test") },
    40     { createEventArg: "mouseEvent",
    41       type: "dblclick", bubbles: false, cancelable: false, view: window, detail: -1,
    42       screenX: 0, screenY: 200, clientX: 0, clientY: 0,
    43       ctrlKey: false, altKey: false, shiftKey: true, metaKey: false,
    44       button: 12, relatedTarget: document.getElementById("content") },
    46     { createEventArg: "MouseEvents",
    47       type: "mouseenter", bubbles: true, cancelable: true, view: null, detail: 111000,
    48       screenX: 100, screenY: 0, clientX: 0, clientY: 0,
    49       ctrlKey: false, altKey: false, shiftKey: false, metaKey: true,
    50       button: 2, relatedTarget: document.getElementById("test") },
    52     { createEventArg: "mouseevents",
    53       type: "mouseleave", bubbles: false, cancelable: true, view: window, detail: 500,
    54       screenX: 100, screenY: 500, clientX: 0, clientY: 0,
    55       ctrlKey: true, altKey: true, shiftKey: false, metaKey: false,
    56       button: 8, relatedTarget: document.getElementById("content") },
    58     { createEventArg: "Mouseevents",
    59       type: "mouseover", bubbles: true, cancelable: false, view: null, detail: 3,
    60       screenX: 0, screenY: 0, clientX: 200, clientY: 300,
    61       ctrlKey: false, altKey: true, shiftKey: false, metaKey: true,
    62       button: 7, relatedTarget: document.getElementById("test") },
    64     { createEventArg: "mouseEvents",
    65       type: "mouseout", bubbles: false, cancelable: false, view: window, detail: 5,
    66       screenX: -100, screenY: 300, clientX: 600, clientY: -500,
    67       ctrlKey: true, altKey: false, shiftKey: true, metaKey: false,
    68       button: 8, relatedTarget: document.getElementById("content") },
    70     { createEventArg: "MouseEvent",
    71       type: "mousemove", bubbles: false, cancelable: false, view: window, detail: 30,
    72       screenX: 500, screenY: -100, clientX: -8888, clientY: -5000,
    73       ctrlKey: true, altKey: false, shiftKey: true, metaKey: true,
    74       button: 8, relatedTarget: document.getElementById("test") },
    76     { createEventArg: "MouseEvent",
    77       type: "foo", bubbles: false, cancelable: false, view: window, detail: 100,
    78       screenX: 2000, screenY: 6000, clientX: 5000, clientY: 3000,
    79       ctrlKey: true, altKey: true, shiftKey: true, metaKey: true,
    80       button: 8, relatedTarget: document.getElementById("test") },
    81   ];
    83   const kOtherModifierName = [
    84     "CapsLock", "NumLock", "ScrollLock", "SymbolLock", "Fn", "OS", "AltGraph"
    85   ];
    87   const kInvalidModifierName = [
    88     "shift", "control", "alt", "meta", "capslock", "numlock", "scrolllock",
    89     "symbollock", "fn", "os", "altgraph", "Invalid", "Shift Control",
    90     "Win", "Scroll"
    91   ];
    93   for (var i = 0; i < kTests.length; i++) {
    94     var description = "testInitializingUntrustedEvent, Index: " + i + ", ";
    95     const kTest = kTests[i];
    96     var e = document.createEvent(kTest.createEventArg);
    97     e.initMouseEvent(kTest.type, kTest.bubbles, kTest.cancelable, kTest.view,
    98                      kTest.detail, kTest.screenX, kTest.screenY, kTest.clientX, kTest.clientY,
    99                      kTest.ctrlKey, kTest.altKey, kTest.shiftKey, kTest.metaKey,
   100                      kTest.button, kTest.relatedTarget);
   102     for (var attr in kTest) {
   103       if (attr == "createEventArg") {
   104         continue;
   105       }
   106       is(e[attr], kTest[attr], description + attr + " returns wrong value");
   107     }
   108     is(e.isTrusted, false, description + "isTrusted returns wrong value");
   109     is(e.buttons, 0, description + "buttons returns wrong value");
   111     // getModifierState() tests
   112     is(e.getModifierState("Shift"), kTest.shiftKey,
   113        description + "getModifierState(\"Shift\") returns wrong value");
   114     is(e.getModifierState("Control"), kTest.ctrlKey,
   115        description + "getModifierState(\"Control\") returns wrong value");
   116     is(e.getModifierState("Alt"), kTest.altKey,
   117        description + "getModifierState(\"Alt\") returns wrong value");
   118     is(e.getModifierState("Meta"), kTest.metaKey,
   119        description + "getModifierState(\"Meta\") returns wrong value");
   121     for (var j = 0; j < kOtherModifierName.length; j++) {
   122       ok(!e.getModifierState(kOtherModifierName[j]),
   123          description + "getModifierState(\"" + kOtherModifierName[j] + "\") returns wrong value");
   124     }
   125     for (var k = 0; k < kInvalidModifierName.length; k++) {
   126       ok(!e.getModifierState(kInvalidModifierName[k]),
   127          description + "getModifierState(\"" + kInvalidModifierName[k] + "\") returns wrong value");
   128     }
   129   }
   130 }
   132 function runTests()
   133 {
   134   testInitializingUntrustedEvent();
   135   SimpleTest.finish();
   136 }
   138 </script>
   139 </pre>
   140 </body>
   141 </html>

mercurial