| scillali | 114c5e3 | 2015-06-10 02:05:43 | [diff] [blame] | 1 | <!DOCTYPE HTML> |
| 2 | <meta charset=utf-8> |
| 3 | <html> |
| 4 | <head> |
| 5 | <title>domparsing Test: XMLSerializer.serializeToString</title> |
| 6 | <script src="/resources/testharness.js"></script> |
| 7 | <script src="/resources/testharnessreport.js"></script> |
| 8 | </head> |
| 9 | <body> |
| 10 | <h1>domparsing_XMLSerializer_serializeToString</h1> |
| 11 | <script> |
| tkent@chromium.org | d39b05b | 2017-06-19 07:57:48 | [diff] [blame] | 12 | function createXmlDoc(){ |
| 13 | var input = '<?xml version="1.0" encoding="UTF-8"?><root><child1>value1</child1></root>'; |
| 14 | var parser = new DOMParser(); |
| 15 | return parser.parseFromString(input, 'text/xml'); |
| 16 | } |
| 17 | |
| 18 | test(function() { |
| 19 | var serializer = new XMLSerializer(); |
| 20 | var root = createXmlDoc().documentElement; |
| 21 | var xmlString = serializer.serializeToString(root); |
| 22 | assert_equals(xmlString, '<root><child1>value1</child1></root>'); |
| 23 | }, 'check XMLSerializer.serializeToString method could parsing xmldoc to string'); |
| 24 | |
| 25 | test(function() { |
| 26 | var serializer = new XMLSerializer(); |
| 27 | var root = createXmlDoc().documentElement; |
| 28 | var element = root.ownerDocument.createElementNS('urn:foo', 'another'); |
| 29 | var child1 = root.firstChild; |
| 30 | root.replaceChild(element, child1); |
| 31 | element.appendChild(child1); |
| 32 | var xmlString = serializer.serializeToString(root); |
| 33 | assert_equals(xmlString, '<root><another xmlns="urn:foo"><child1 xmlns="">value1</child1></another></root>'); |
| 34 | }, 'Check if the default namespace is correctly reset.'); |
| Kent Tamura | 58a36b6 | 2017-10-06 06:27:56 | [diff] [blame] | 35 | |
| 36 | test(function() { |
| 37 | var input = '<root xmlns="urn:bar"><outer xmlns=""><inner>value1</inner></outer></root>'; |
| 38 | var root = (new DOMParser()).parseFromString(input, 'text/xml').documentElement; |
| 39 | var xmlString = (new XMLSerializer()).serializeToString(root); |
| 40 | assert_equals(xmlString, '<root xmlns="urn:bar"><outer xmlns=""><inner>value1</inner></outer></root>'); |
| 41 | }, 'Check if there is no redundant empty namespace declaration.'); |
| Ashish Kulkarni | 0c89ee8 | 2018-02-09 18:19:37 | [diff] [blame] | 42 | |
| 43 | test(function() { |
| 44 | var serializer = new XMLSerializer(); |
| Ashish Kulkarni | ed6ed6b | 2018-02-17 04:07:33 | [diff] [blame] | 45 | var parser = new DOMParser(); |
| 46 | var root = parser.parseFromString('<root />', 'text/xml').documentElement; |
| 47 | root.setAttribute('attr', '\t'); |
| 48 | assert_in_array(serializer.serializeToString(root), [ |
| 49 | '<root attr="	"/>', '<root attr="	"/>']); |
| 50 | root.setAttribute('attr', '\n'); |
| 51 | assert_in_array(serializer.serializeToString(root), [ |
| 52 | '<root attr="
"/>', '<root attr=" "/>']); |
| 53 | root.setAttribute('attr', '\r'); |
| 54 | assert_in_array(serializer.serializeToString(root), [ |
| 55 | '<root attr="
"/>', '<root attr=" "/>']); |
| Ashish Kulkarni | 0c89ee8 | 2018-02-09 18:19:37 | [diff] [blame] | 56 | }, 'check XMLSerializer.serializeToString escapes attribute values for roundtripping'); |
| 57 | |
| Kent Tamura | 58a36b6 | 2017-10-06 06:27:56 | [diff] [blame] | 58 | </script> |
| scillali | 114c5e3 | 2015-06-10 02:05:43 | [diff] [blame] | 59 | </body> |
| 60 | </html> |