editor/libeditor/tests/test_bug567213.html
author Markus Stange <mstange@themasta.com>
Mon, 15 Jun 2015 19:20:59 -0400
changeset 249905 3f025568ad349d7b4a4da45feef6812c4e4d4101
parent 199760 f05a36b5b90df34e0d5973641d160fdd7787df68
child 404362 50d6fe2d0bca50837dd34eb4a79957885c55bffc
permissions -rw-r--r--
Bug 1165185 - Try to avoid invalidations when scrolling transformed elements. r=roc

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=567213
-->

<head>
  <title>Test for Bug 567213</title>
  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
  <script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
</head>

<body>
  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=567213">Mozilla Bug 567213</a>
  <p id="display"></p>
  <div id="content">
    <div id="target" contenteditable="true">test</div>
    <button id="thief">theif</button>
  </div>

  <pre id="test">
    <script type="application/javascript">

      /** Test for Bug 567213 **/

      SimpleTest.waitForExplicitFinish();

      addLoadEvent(function() {
        var target = document.getElementById("target");
        var thief = document.getElementById("thief");
        var sel = window.getSelection();

        // select the contents of the editable area
        sel.removeAllRanges();
        sel.selectAllChildren(target);
        target.focus();

        // press some key
        synthesizeKey("X", {});
        is(target.textContent, "X", "Text input should work (sanity check)");

        // select the contents of the editable area again
        sel.removeAllRanges();
        sel.selectAllChildren(target);
        thief.focus();

        // press some key with the thief having focus
        synthesizeKey("Y", {});
        is(target.textContent, "X", "Text entry should not work with another element focused");

        SimpleTest.finish();
      });

   </script>
  </pre>
</body>
</html>