tor-browser

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

test_nested_editor.html (1997B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4  <title> Test for nested contenteditable elements </title>
      5  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      6  <script src="/tests/SimpleTest/EventUtils.js"></script>
      7  <link rel="stylesheet" href="/tests/SimpleTest/test.css">
      8 </head>
      9 <body>
     10  <template id="focus-iframe-contenteditable-in-div">
     11    <div contenteditable>
     12      <iframe srcdoc="<div id='focusme' contenteditable></div>"></iframe>
     13    </div>
     14  </template>
     15 
     16  <template id="focus-contenteditable-parent-along-with-iframe">
     17    <div id='focusme' contenteditable></div>
     18    <iframe srcdoc="<div contenteditable></div>"></iframe>
     19  </template>
     20 
     21  <template id="focus-iframe-textarea-in-div">
     22    <div contenteditable>
     23      <iframe srcdoc="<textarea id='focusme'></textarea>"></iframe>
     24    </div>
     25  </template>
     26 
     27  <template id="focus-textarea-parent-along-with-iframe">
     28    <textarea id='focusme' contenteditable></textarea>
     29    <iframe srcdoc="<div contenteditable></div>"></iframe>
     30  </template>
     31 <script>
     32 "use strict";
     33 
     34 async function runTest() {
     35  function findFocusme() {
     36    return new Promise(r => {
     37      let focusInParent = document.getElementById("focusme");
     38      if (focusInParent) {
     39        r(focusInParent);
     40        return;
     41      }
     42      document.querySelector("iframe").addEventListener("load", function() {
     43        return r(document.querySelector("iframe").contentDocument.getElementById("focusme"));
     44      });
     45    });
     46  }
     47 
     48  const focusme = await findFocusme();
     49 
     50  focusme.focus();
     51  synthesizeKey("abc");
     52 
     53  if (focusme.nodeName === "TEXTAREA") {
     54    is(focusme.value, "abc");
     55  } else {
     56    is(focusme.innerHTML, "abc");
     57  }
     58 }
     59 
     60 SimpleTest.waitForExplicitFinish();
     61 
     62 SimpleTest.waitForFocus(async () => {
     63  for (const template of document.querySelectorAll("template")) {
     64    const content = template.content.cloneNode(true);
     65    document.body.appendChild(content);
     66 
     67    await runTest();
     68 
     69    document.body.innerHTML = "";
     70  }
     71 
     72  SimpleTest.finish();
     73 });
     74 
     75 </script>
     76 </body>
     77 </html>