tor-browser

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

merge-span-with-style-after-pressing-enter-followed-by-backspace-in-contenteditable-div.html (1693B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4 <meta charset="utf-8">
      5 <title>Merge Span with style after pressing enter followed by backspace in contenteditable</title>
      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 </head>
     12 <body>
     13 <div contenteditable><h1><span style="background-color:red;">Backspace</span></h1></div>
     14 <script>
     15 "use strict";
     16 
     17 const kBackspaceKey = "\uE003";
     18 const kEnterKey = "\uE007";
     19 
     20 function sendBackspaceKey() {
     21  return new test_driver.Actions()
     22    .keyDown(kBackspaceKey)
     23    .keyUp(kBackspaceKey)
     24    .send();
     25 }
     26 
     27 function sendEnterKey() {
     28  return new test_driver.Actions()
     29    .keyDown(kEnterKey)
     30    .keyUp(kEnterKey)
     31    .send();
     32 }
     33 
     34 promise_test(async () => {
     35  const editableDiv = document.querySelector("div[contenteditable]");
     36  const spaceSpan = editableDiv.querySelector('span');
     37  await new test_driver.click(document.querySelector('span'));
     38  const range = document.createRange();
     39  const selection = window.getSelection();
     40  const textNode = spaceSpan.firstChild;
     41  range.setStart(textNode, 4);
     42  range.setEnd(textNode, 4);
     43  selection.removeAllRanges();
     44  selection.addRange(range);
     45  await sendEnterKey();
     46  await sendBackspaceKey();
     47  assert_equals(
     48    editableDiv.innerHTML,
     49    "<h1><span style=\"background-color:red;\">Back</span><span style=\"background-color: red;\">space</span></h1>",
     50    "Style is not preserved for the span after pressing backspace in contenteditable"
     51  );
     52 }, "waiting for command to execute");
     53 </script>
     54 </body>
     55 </html>