tor-browser

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

cefalse-boundaries-deletion.html (2811B)


      1 <!DOCTYPE HTML>
      2 <meta charset=utf-8>
      3 <title>Selecting and deleting all from the cE=true element with cE=false element at the beginning</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="../include/editor-test-utils.js"></script>
      7 
      8 <div contenteditable></div>
      9 
     10 <script>
     11    const utils = new EditorTestUtils( document.querySelector( 'div[contenteditable]' ) );
     12 
     13    test( () => {
     14      utils.setupEditingHost( `<div contenteditable="false" id="cefalse-beginning">&nbsp;</div>
     15        <p id="paragraph-beginning">Lorem ipsum dolor sit amet.</p>` );
     16 
     17      const cefalse = document.querySelector( '#cefalse-beginning' );
     18      const paragraph = document.querySelector( '#paragraph-beginning' );
     19 
     20      utils.editingHost.focus();
     21      document.execCommand( 'selectAll' );
     22      document.execCommand( 'delete' );
     23 
     24      assert_false( cefalse.isConnected, 'cE=false element should be removed' );
     25      assert_false( paragraph.isConnected, 'paragraph should be removed' );
     26    }, 'cE=false elements can be removed from the beginning of the cE=true elements' );
     27 
     28    test( () => {
     29      utils.setupEditingHost( `<p id="paragraph-end">Lorem ipsum dolor sit amet.</p>
     30        <div contenteditable="false" id="cefalse-end">&nbsp;</div>` );
     31 
     32      const cefalse = document.querySelector( '#cefalse-end' );
     33      const paragraph = document.querySelector( '#paragraph-end' );
     34 
     35      utils.editingHost.focus();
     36      document.execCommand( 'selectAll' );
     37      document.execCommand( 'delete' );
     38 
     39      assert_false( cefalse.isConnected, 'cE=false element should be removed' );
     40      assert_false( paragraph.isConnected, 'paragraph should be removed' );
     41    }, 'cE=false elements can be removed from the end of the cE=true elements' );
     42 
     43    test( () => {
     44      utils.setupEditingHost( `<div contenteditable="false" id="cefalse-boundaries-beginning">&nbsp;</div>
     45        <p id="paragraph-boundaries">Lorem ipsum dolor sit amet.</p>
     46        <div contenteditable="false" id="cefalse-boundaries-end">&nbsp;</div>` );
     47 
     48      const cefalseBeginning = document.querySelector( '#cefalse-boundaries-beginning' );
     49      const cefalseEnd = document.querySelector( '#cefalse-boundaries-end' );
     50      const paragraph = document.querySelector( '#paragraph-boundaries' );
     51 
     52      utils.editingHost.focus();
     53      document.execCommand( 'selectAll' );
     54      document.execCommand( 'delete' );
     55 
     56      assert_false( cefalseBeginning.isConnected, 'cE=false element at the beginning should be removed' );
     57      assert_false( cefalseEnd.isConnected, 'cE=false element at the end should be removed' );
     58      assert_false( paragraph.isConnected, 'paragraph should be removed' );
     59    }, 'cE=false elements can be removed from the boundaries of the cE=true elements' );
     60 </script>