tor-browser

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

typing-around-link-element-after-joining-paragraphs.html (10041B)


      1 <!doctype html>
      2 <html>
      3 <head>
      4 <meta charset="utf-8">
      5 <meta name="timeout" content="long">
      6 <meta name="variant" content="?action=Backspace">
      7 <meta name="variant" content="?action=Delete">
      8 <title>Typing after joining paragraph shouldn't be inserted into the link</title>
      9 <script src="/resources/testharness.js"></script>
     10 <script src="/resources/testharnessreport.js"></script>
     11 <script src="/resources/testdriver.js"></script>
     12 <script src="/resources/testdriver-vendor.js"></script>
     13 <script src="/resources/testdriver-actions.js"></script>
     14 <script src="../include/editor-test-utils.js"></script>
     15 </head>
     16 <body>
     17 <div contenteditable></div>
     18 <script>
     19 "use strict";
     20 
     21 const params = new URLSearchParams(location.search.substring(1));
     22 const backspace = params.get("action") == "Backspace";
     23 const bracketsForBackspace = backspace ? "[]" : "";
     24 const bracketsForDelete = backspace ? "" : "[]";
     25 
     26 const editingHost = document.querySelector("div[contenteditable]");
     27 const utils = new EditorTestUtils(editingHost);
     28 
     29 function addPromiseTest(aTest) {
     30  promise_test(async () => {
     31    editingHost.focus();
     32    utils.setupEditingHost(aTest.innerHTML);
     33    await (backspace ? utils.sendBackspaceKey() : utils.sendDeleteKey());
     34    await utils.sendKey("X", utils.kShiftKey);
     35    await utils.sendKey("Y", utils.kShiftKey);
     36    utils.normalizeStyleAttributeValues();
     37    if (Array.isArray(aTest.expectedResult)) {
     38      assert_in_array(editingHost.innerHTML, aTest.expectedResult);
     39    } else {
     40      assert_equals(editingHost.innerHTML, aTest.expectedResult);
     41    }
     42  }, `${backspace ? "Backspace" : "Delete"} in "${aTest.innerHTML}"`);
     43 }
     44 
     45 addPromiseTest({
     46  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     47    bracketsForDelete
     48  }</a></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
     49  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span></p>`
     50 });
     51 addPromiseTest({
     52  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     53    bracketsForDelete
     54  }</a><br></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
     55  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span></p>`
     56 });
     57 addPromiseTest({
     58  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     59    bracketsForDelete
     60  }<br></a></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
     61  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span></p>`
     62 });
     63 addPromiseTest({
     64  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     65    bracketsForDelete
     66  }</a></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
     67  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span></p>`
     68 });
     69 addPromiseTest({
     70  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     71    bracketsForDelete
     72  }</a><br></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
     73  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span></p>`
     74 });
     75 addPromiseTest({
     76  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     77    bracketsForDelete
     78  }<br></a></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
     79  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span></p>`
     80 });
     81 addPromiseTest({
     82  innerHTML: `<a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     83    bracketsForDelete
     84  }</a><br><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
     85  expectedResult: `<a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span>`,
     86 });
     87 addPromiseTest({
     88  innerHTML: `<a href="about:blank" style="color:rgb(0, 0, 255)">foo${
     89    bracketsForDelete
     90  }<br></a><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
     91  expectedResult: `<a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY<span style="color:rgb(255, 0, 0)">bar</span>`,
     92 });
     93 
     94 // Should clear only the link style.
     95 addPromiseTest({
     96  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
     97    bracketsForDelete
     98  }</b></a></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
     99  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    100 });
    101 addPromiseTest({
    102  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    103    bracketsForDelete
    104  }</b></a><br></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    105  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    106 });
    107 addPromiseTest({
    108  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    109    bracketsForDelete
    110  }</b><br></a></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    111  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    112 });
    113 addPromiseTest({
    114  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    115    bracketsForDelete
    116  }</b></a></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
    117  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    118 });
    119 addPromiseTest({
    120  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    121    bracketsForDelete
    122  }</b></a><br></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
    123  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    124 });
    125 addPromiseTest({
    126  innerHTML: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    127    bracketsForDelete
    128  }</b><br></a></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
    129  expectedResult: `<p><a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    130 });
    131 addPromiseTest({
    132  innerHTML: `<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    133    bracketsForDelete
    134  }</b></a><br><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    135  expectedResult: `<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span>`,
    136 });
    137 addPromiseTest({
    138  innerHTML: `<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo${
    139    bracketsForDelete
    140  }</b><br></a><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    141  expectedResult: `<a href="about:blank" style="color:rgb(0, 0, 255)"><b>foo</b></a><b>XY</b><span style="color:rgb(255, 0, 0)">bar</span>`,
    142 });
    143 
    144 addPromiseTest({
    145  innerHTML: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    146    bracketsForDelete
    147  }</a></b></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    148  expectedResult: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    149 });
    150 addPromiseTest({
    151  innerHTML: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    152    bracketsForDelete
    153  }</a></b><br></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    154  expectedResult: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    155 });
    156 addPromiseTest({
    157  innerHTML: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    158    bracketsForDelete
    159  }<br></a></b></p><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    160  expectedResult: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    161 });
    162 addPromiseTest({
    163  innerHTML: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    164    bracketsForDelete
    165  }</a></b></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
    166  expectedResult: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    167 });
    168 addPromiseTest({
    169  innerHTML: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    170    bracketsForDelete
    171  }</a></b><br></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
    172  expectedResult: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    173 });
    174 addPromiseTest({
    175  innerHTML: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    176    bracketsForDelete
    177  }<br></a></b></p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span>`,
    178  expectedResult: `<p><b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span></p>`,
    179 });
    180 addPromiseTest({
    181  innerHTML: `<b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    182    bracketsForDelete
    183  }</a></b><br><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    184  expectedResult: `<b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span>`,
    185 });
    186 addPromiseTest({
    187  innerHTML: `<b><a href="about:blank" style="color:rgb(0, 0, 255)">foo${
    188    bracketsForDelete
    189  }<br></a></b><p><span style="color:rgb(255, 0, 0)">${bracketsForBackspace}bar</span></p>`,
    190  expectedResult: `<b><a href="about:blank" style="color:rgb(0, 0, 255)">foo</a>XY</b><span style="color:rgb(255, 0, 0)">bar</span>`,
    191 });
    192 </script>
    193 </body>
    194 </html>