tor-browser

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

paste-clipboard-change.tentative.html (1886B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title>This Test is for clipboard content changes during the paste event handler</title>
      4 <meta name="variant" content="?id=text">
      5 <meta name="variant" content="?id=contenteditable">
      6 <script src=/resources/testharness.js></script>
      7 <script src=/resources/testharnessreport.js></script>
      8 <script src="/resources/testdriver.js"></script>
      9 <script src="/resources/testdriver-vendor.js"></script>
     10 <script src="/resources/testdriver-actions.js"></script>
     11 <script src="../include/editor-test-utils.js"></script>
     12 <div contenteditable="true" id="contentCopy">Original text</div>
     13 <div id="pasteContainer">
     14 <input type="text" id="text">
     15 <div id="contenteditable" contenteditable="true"></div>
     16 </div>
     17 <script>
     18 "use strict";
     19 
     20 const testingId = new URLSearchParams(document.location.search).get("id");
     21 const testElement = document.getElementById(testingId);
     22 const utils = new EditorTestUtils(testElement);
     23 
     24 promise_test(async () => {
     25  // Copy the content to the clipboard.
     26  const range = document.createRange();
     27  const contentToCopy = document.getElementById("contentCopy");
     28  range.selectNodeContents(contentToCopy);
     29  const selection = window.getSelection();
     30  selection.removeAllRanges();
     31  selection.addRange(range);
     32  await utils.sendCopyShortcutKey();
     33 
     34  // Paste the content to the test element.
     35  testElement.addEventListener("copy", (e) => {
     36    e.preventDefault();
     37    e.clipboardData.setData("text/plain", "New text");
     38  }, { once: true });
     39  testElement.addEventListener("paste", (e) => {
     40    // Overwrite the clipboard content.
     41    document.execCommand("copy");
     42  }, { once: true });
     43  await test_driver.click(testElement);
     44  await utils.sendPasteShortcutKey();
     45 
     46  // Check content.
     47  assert_equals(testElement.isContentEditable ? testElement.textContent : testElement.value, "New text");
     48 }, "clipboard change during paste event handler");
     49 </script>