tor-browser

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

CharacterData-deleteData.html (2940B)


      1 <!DOCTYPE html>
      2 <meta charset=utf-8>
      3 <title>CharacterData.deleteData</title>
      4 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-deletedata">
      5 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-data">
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <div id="log"></div>
      9 <script>
     10 function testNode(create, type) {
     11  test(function() {
     12    var node = create()
     13    assert_equals(node.data, "test")
     14 
     15    assert_throws_dom("INDEX_SIZE_ERR", function() { node.deleteData(5, 10) })
     16    assert_throws_dom("INDEX_SIZE_ERR", function() { node.deleteData(5, 0) })
     17    assert_throws_dom("INDEX_SIZE_ERR", function() { node.deleteData(-1, 10) })
     18    assert_throws_dom("INDEX_SIZE_ERR", function() { node.deleteData(-1, 0) })
     19  }, type + ".deleteData() out of bounds")
     20 
     21  test(function() {
     22    var node = create()
     23    assert_equals(node.data, "test")
     24 
     25    node.deleteData(0, 2)
     26    assert_equals(node.data, "st")
     27  }, type + ".deleteData() at the start")
     28 
     29  test(function() {
     30    var node = create()
     31    assert_equals(node.data, "test")
     32 
     33    node.deleteData(2, 10)
     34    assert_equals(node.data, "te")
     35  }, type + ".deleteData() at the end")
     36 
     37  test(function() {
     38    var node = create()
     39    assert_equals(node.data, "test")
     40 
     41    node.deleteData(1, 1)
     42    assert_equals(node.data, "tst")
     43  }, type + ".deleteData() in the middle")
     44 
     45  test(function() {
     46    var node = create()
     47    assert_equals(node.data, "test")
     48 
     49    node.deleteData(2, 0)
     50    assert_equals(node.data, "test")
     51 
     52    node.deleteData(0, 0)
     53    assert_equals(node.data, "test")
     54  }, type + ".deleteData() with zero count")
     55 
     56  test(function() {
     57    var node = create()
     58    assert_equals(node.data, "test")
     59 
     60    node.deleteData(2, -1)
     61    assert_equals(node.data, "te")
     62  }, type + ".deleteData() with small negative count")
     63 
     64  test(function() {
     65    var node = create()
     66    assert_equals(node.data, "test")
     67 
     68    node.deleteData(1, -0x100000000 + 2)
     69    assert_equals(node.data, "tt")
     70  }, type + ".deleteData() with large negative count")
     71 
     72  test(function() {
     73    var node = create()
     74    node.data = "This is the character data test, append more 資料,更多測試資料";
     75 
     76    node.deleteData(40, 5);
     77    assert_equals(node.data, "This is the character data test, append 資料,更多測試資料");
     78    node.deleteData(45, 2);
     79    assert_equals(node.data, "This is the character data test, append 資料,更多資料");
     80  }, type + ".deleteData() with non-ascii data")
     81 
     82  test(function() {
     83    var node = create()
     84    assert_equals(node.data, "test")
     85 
     86    node.data = "🌠 test 🌠 TEST"
     87 
     88    node.deleteData(5, 8);  // Counting UTF-16 code units
     89    assert_equals(node.data, "🌠 teST");
     90  }, type + ".deleteData() with non-BMP data")
     91 }
     92 
     93 testNode(function() { return document.createTextNode("test") }, "Text")
     94 testNode(function() { return document.createComment("test") }, "Comment")
     95 </script>