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>