editor/libeditor/html/tests/test_keypress_untrusted_event.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=622245
     5 -->
     6 <head>
     7   <title>Test for untrusted keypress events</title>
     8   <script type="application/javascript" src="/MochiKit/packed.js"></script>
     9   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.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=622245">Mozilla Bug 622245</a>
    14 <p id="display"></p>
    15 <div id="content">
    16 <input id="i"><br>
    17 <textarea id="t"></textarea><br>
    18 <div id="d" contenteditable style="min-height: 1em;"></div>
    19 </div>
    20 <pre id="test">
    21 <script type="application/javascript">
    23 /** Test for Bug 674770 **/
    24 SimpleTest.waitForExplicitFinish();
    26 var input = document.getElementById("i");
    27 var textarea = document.getElementById("t");
    28 var div = document.getElementById("d");
    30 addLoadEvent(function() {
    31   input.focus();
    33   SimpleTest.executeSoon(function() {
    34     input.addEventListener("keypress",
    35       function(aEvent) {
    36         input.removeEventListener("keypress", arguments.callee, false);
    37         is(aEvent.target, input,
    38            "The keypress event target isn't the input element");
    40         SimpleTest.executeSoon(function() {
    41           is(input.value, "",
    42              "Did keypress event cause modifying the input element?");
    43           textarea.focus();
    44           SimpleTest.executeSoon(runTextareaTest);
    45         });
    46       }, false);
    47     var keypress = document.createEvent("KeyboardEvent");
    48     keypress.initKeyEvent("keypress", true, true, document.defaultView,
    49                           false, false, false, false, 0, "a".charCodeAt(0));
    50     input.dispatchEvent(keypress);
    51   });
    52 });
    54 function runTextareaTest()
    55 {
    56   textarea.addEventListener("keypress",
    57     function(aEvent) {
    58       textarea.removeEventListener("keypress", arguments.callee, false);
    59       is(aEvent.target, textarea,
    60          "The keypress event target isn't the textarea element");
    62       SimpleTest.executeSoon(function() {
    63         is(textarea.value, "",
    64            "Did keypress event cause modifying the textarea element?");
    65         div.focus();
    66         SimpleTest.executeSoon(runContentediableTest);
    67       });
    68     }, false);
    69   var keypress = document.createEvent("KeyboardEvent");
    70   keypress.initKeyEvent("keypress", true, true, document.defaultView,
    71                         false, false, false, false, 0, "b".charCodeAt(0));
    72   textarea.dispatchEvent(keypress);
    73 }
    75 function runContentediableTest()
    76 {
    77   div.addEventListener("keypress",
    78     function(aEvent) {
    79       div.removeEventListener("keypress", arguments.callee, false);
    80       is(aEvent.target, div,
    81          "The keypress event target isn't the div element");
    83       SimpleTest.executeSoon(function() {
    84         is(div.innerHTML, "",
    85            "Did keypress event cause modifying the div element?");
    87         SimpleTest.finish();
    88       });
    89     }, false);
    90   var keypress = document.createEvent("KeyboardEvent");
    91   keypress.initKeyEvent("keypress", true, true, document.defaultView,
    92                         false, false, false, false, 0, "c".charCodeAt(0));
    93   div.dispatchEvent(keypress);
    94 }
    96 </script>
    97 </pre>
    98 </body>
    99 </html>

mercurial