| <!DOCTYPE html> |
| <title>Test that XMLSerializer quotes the attribute characters specified in 'https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#dfn-concept-serialize-xml-attributes', the W3C spec</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| setup({single_test: true}); |
| |
| var attrValue = '< > & " \' \xA0'; |
| |
| // HTML case. |
| // DOM parsing and serialization defers to the HTML specification: http://www.w3.org/html/wg/drafts/html/master/syntax.html#attribute's-serialized-name |
| // Steps 1-3 under the "Escaping a string" heading are relevant to attributes. |
| window.htmlElement = document.createElement('div'); |
| htmlElement.setAttribute('quoteme', attrValue); |
| assert_equals(htmlElement.outerHTML, "<div quoteme=\"< > & " ' \"></div>"); |
| |
| // XML case. |
| // DOM parsing and serialization: https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#dfn-concept-serialize-xml-attributes |
| // Step 2 substep 4 is relevant to attributes. |
| var xmlDocument = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null); |
| window.xmlElement = xmlDocument.createElement('div'); |
| xmlElement.setAttribute('quoteme', attrValue); |
| assert_equals((new XMLSerializer()).serializeToString(xmlElement), "<div xmlns=\"http://www.w3.org/1999/xhtml\" quoteme=\"< > & " ' \xA0\"></div>"); |
| done(); |
| </script> |