tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_bug1053048.html (2549B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 https://bugzilla.mozilla.org/show_bug.cgi?id=1053048
      5 -->
      6 <head>
      7  <meta charset="utf-8">
      8  <title>Test for Bug 1053048</title>
      9  <script src="/tests/SimpleTest/SimpleTest.js"></script>
     10  <script src="/tests/SimpleTest/EventUtils.js"></script>
     11  <link rel="stylesheet" href="/tests/SimpleTest/test.css">
     12  <script type="application/javascript">
     13 
     14  /** Test for Bug 1053048 */
     15  SimpleTest.waitForExplicitFinish();
     16  SimpleTest.waitForFocus(runTests);
     17 
     18  const nsISelectionListener = SpecialPowers.Ci.nsISelectionListener;
     19 
     20  async function runTests() {
     21    var textarea = SpecialPowers.wrap(document.getElementById("textarea"));
     22    textarea.focus();
     23 
     24    var editor = textarea.editor;
     25    var selectionPrivate = editor.selection;
     26 
     27    // Move caret to the end of the textarea
     28    synthesizeMouse(textarea, 290, 10, {});
     29    is(textarea.selectionStart, 3, "selectionStart should be 3 (after \"foo\")");
     30    is(textarea.selectionEnd, 3, "selectionEnd should be 3 (after \"foo\")");
     31 
     32    // This test **was** trying to check whether a selection listener which
     33    // runs while an editor handles an edit action does not stop handling it.
     34    // However, this selection listener caught previous selection change
     35    // notification immediately before synthesizing the `Enter` key press
     36    // unexpectedly.  And now, selection listener may not run immediately after
     37    // synthesizing the key press.  So, we don't need to check whether a
     38    // notification actually comes here.
     39    let selectionListener = {
     40      notifySelectionChanged() {
     41        ok(true, "selectionStart: " + textarea.selectionStart);
     42        ok(true, "selectionEnd: " + textarea.selectionEnd);
     43      },
     44    };
     45    selectionPrivate.addSelectionListener(selectionListener);
     46    synthesizeKey("KEY_Enter");
     47    is(textarea.selectionStart, 4, "selectionStart should be 4");
     48    is(textarea.selectionEnd, 4, "selectionEnd should be 4");
     49    is(textarea.value, "foo\n", "The line break should be appended");
     50    selectionPrivate.removeSelectionListener(selectionListener);
     51 
     52    SimpleTest.finish();
     53  }
     54  </script>
     55 </head>
     56 <body>
     57 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1053048">Mozilla Bug 1053048</a>
     58 <p id="display"></p>
     59 <div id="content" style="display: none">
     60 
     61 </div>
     62 
     63 <textarea id="textarea"
     64          style="height: 100px; width: 300px; -moz-appearance: none"
     65          spellcheck="false"
     66          onkeydown="this.style.display='block'; this.style.height='200px';">foo</textarea>
     67 
     68 <pre id="test">
     69 </pre>
     70 </body>
     71 </html>