CharacterData-surrogates.html (2463B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <title>Splitting and joining surrogate pairs in CharacterData methods</title> 4 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-substringdata"> 5 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-replacedata"> 6 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-insertdata"> 7 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-deletedata"> 8 <link rel=help href="https://dom.spec.whatwg.org/#dom-characterdata-data"> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 <div id="log"></div> 12 <script> 13 function testNode(create, type) { 14 test(function() { 15 var node = create() 16 assert_equals(node.data, "test") 17 18 node.data = "🌠test 🌠TEST" 19 20 assert_equals(node.substringData(1, 8), "\uDF20 test \uD83C") 21 }, type + ".substringData() splitting surrogate pairs") 22 23 test(function() { 24 var node = create() 25 assert_equals(node.data, "test") 26 27 node.data = "🌠test 🌠TEST" 28 29 node.replaceData(1, 4, "--"); 30 assert_equals(node.data, "\uD83C--st 🌠TEST"); 31 32 node.replaceData(1, 2, "\uDF1F "); 33 assert_equals(node.data, "🌟 st 🌠TEST"); 34 35 node.replaceData(5, 2, "---"); 36 assert_equals(node.data, "🌟 st---\uDF20 TEST"); 37 38 node.replaceData(6, 2, " \uD83D"); 39 assert_equals(node.data, "🌟 st- 🜠TEST"); 40 }, type + ".replaceData() splitting and creating surrogate pairs") 41 42 test(function() { 43 var node = create() 44 assert_equals(node.data, "test") 45 46 node.data = "🌠test 🌠TEST" 47 48 node.deleteData(1, 4); 49 assert_equals(node.data, "\uD83Cst 🌠TEST"); 50 51 node.deleteData(1, 4); 52 assert_equals(node.data, "🌠TEST"); 53 }, type + ".deleteData() splitting and creating surrogate pairs") 54 55 test(function() { 56 var node = create() 57 assert_equals(node.data, "test") 58 59 node.data = "🌠test 🌠TEST" 60 61 node.insertData(1, "--"); 62 assert_equals(node.data, "\uD83C--\uDF20 test 🌠TEST"); 63 64 node.insertData(1, "\uDF1F "); 65 assert_equals(node.data, "🌟 --\uDF20 test 🌠TEST"); 66 67 node.insertData(5, " \uD83D"); 68 assert_equals(node.data, "🌟 -- 🜠test 🌠TEST"); 69 }, type + ".insertData() splitting and creating surrogate pairs") 70 } 71 72 testNode(function() { return document.createTextNode("test") }, "Text") 73 testNode(function() { return document.createComment("test") }, "Comment") 74 </script>