tor-browser

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

delete-to-join-blocks.tentative.html (3386B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4 <meta charset="utf-8">
      5 <meta name="flags" content="may">
      6 <title>Testing normalizing white-space sequence after joining blocks</title>
      7 <script src="/resources/testharness.js"></script>
      8 <script src="/resources/testharnessreport.js"></script>
      9 <script src="../../include/editor-test-utils.js"></script>
     10 <script>
     11 "use strict";
     12 
     13 addEventListener("DOMContentLoaded", () => {
     14  // README:
     15  // These tests based on the behavior of Chrome 134.  This test does NOT define
     16  // nor suggest any standard behavior (actually, some expected results might
     17  // look odd), but this test must help you to understand how other browsers
     18  // use different logic to normalize white-space sequence.
     19 
     20  const editingHost = document.querySelector("div[contenteditable]");
     21  const utils = new EditorTestUtils(editingHost);
     22 
     23  async function addPromiseTest(aInitHTML, aExpectedHTML) {
     24    promise_test(async () => {
     25      utils.setupEditingHost(aInitHTML);
     26      document.execCommand("delete");
     27      assert_equals(editingHost.innerHTML, aExpectedHTML);
     28    }, `document.execCommand("delete") when "${aInitHTML}"`);
     29  }
     30 
     31  // Join sibling blocks.
     32  addPromiseTest(
     33    `<div>&nbsp;&nbsp;&nbsp;</div><div>{}<br></div>`,
     34    `<div>&nbsp; &nbsp;</div>`
     35  );
     36  addPromiseTest(
     37    `<div>a&nbsp;&nbsp;&nbsp;</div><div>{}<br></div>`,
     38    `<div>a&nbsp; &nbsp;</div>`
     39  );
     40  addPromiseTest(
     41    `<div><br></div><div>[]&nbsp;&nbsp;&nbsp;</div>`,
     42    `<div>&nbsp; &nbsp;</div>`
     43  );
     44  addPromiseTest(
     45    `<div><br></div><div>[]&nbsp;&nbsp;&nbsp;b</div>`,
     46    `<div>&nbsp; &nbsp;b</div>`
     47  );
     48  addPromiseTest(
     49    `<div>a</div><div>[]&nbsp;&nbsp;&nbsp;b</div>`,
     50    `<div>a&nbsp; &nbsp;b</div>`
     51  );
     52  addPromiseTest(
     53    `<div>a&nbsp;&nbsp;&nbsp;</div><div>[]&nbsp;&nbsp;&nbsp;b</div>`,
     54    `<div>a&nbsp; &nbsp; &nbsp; b</div>`
     55  );
     56 
     57  // Join child block with its parent block.
     58  addPromiseTest(
     59    `<div>&nbsp;&nbsp;&nbsp;<div>{}<br></div></div>`,
     60    `<div>&nbsp; &nbsp;</div>`
     61  );
     62  addPromiseTest(
     63    `<div>a&nbsp;&nbsp;&nbsp;<div>{}<br></div></div>`,
     64    `<div>a&nbsp; &nbsp;</div>`
     65  );
     66  addPromiseTest(
     67    `<div><br><div>[]&nbsp;&nbsp;&nbsp;</div></div>`,
     68    `<div><div>&nbsp; &nbsp;</div></div>`
     69  );
     70  addPromiseTest(
     71    `<div><br><div>[]&nbsp;&nbsp;&nbsp;b</div></div>`,
     72    `<div><div>&nbsp; &nbsp;b</div></div>`
     73  );
     74  addPromiseTest(
     75    `<div>a<div>[]&nbsp;&nbsp;&nbsp;b</div></div>`,
     76    `a&nbsp; &nbsp;b`
     77  );
     78  addPromiseTest(
     79    `<div>a&nbsp;&nbsp;&nbsp;<div>[]&nbsp;&nbsp;&nbsp;b</div></div>`,
     80    `a&nbsp; &nbsp; &nbsp; b`
     81  );
     82 
     83  // Join parent block with a child block.
     84  addPromiseTest(
     85    `<div><div>&nbsp;&nbsp;&nbsp;</div>{}<br></div>`,
     86    `<div><div>&nbsp; &nbsp;</div></div>`
     87  );
     88  addPromiseTest(
     89    `<div><div>a&nbsp;&nbsp;&nbsp;</div>{}<br></div>`,
     90    `<div><div>a&nbsp; &nbsp;</div></div>`
     91  );
     92  addPromiseTest(
     93    `<div><div><br></div>[]&nbsp;&nbsp;&nbsp;</div>`,
     94    `<div>&nbsp; &nbsp;</div>`
     95  );
     96  addPromiseTest(
     97    `<div><div><br></div>[]&nbsp;&nbsp;&nbsp;b</div>`,
     98    `<div>&nbsp; &nbsp;b</div>`
     99  );
    100  addPromiseTest(
    101    `<div><div>a</div>[]&nbsp;&nbsp;&nbsp;b</div>`,
    102    `<div>a&nbsp; &nbsp;b</div>`
    103  );
    104  addPromiseTest(
    105    `<div><div>a&nbsp;&nbsp;&nbsp;</div>[]&nbsp;&nbsp;&nbsp;b</div>`,
    106    `<div>a&nbsp; &nbsp; &nbsp; b</div>`
    107  );
    108 }, {once: true});
    109 </script>
    110 </head>
    111 <body>
    112  <div contenteditable></div>
    113 </body>
    114 </html>