Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / fast / dom / XMLSerializer-attribute-entities.html
blobe5a89cde3e02765f1131c3d305c789bd3a0acfdf
1 <!DOCTYPE html>
2 <script src="../../resources/js-test.js"></script>
4 <script>
5 description('Test that XMLSerializer quotes the attribute characters specified in <a href="https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#dfn-concept-serialize-xml-attributes">the W3C spec</a>.');
7 var attrValue = '< > & " \' \xA0';
9 // HTML case.
10 // DOM parsing and serialization defers to the HTML specification: http://www.w3.org/html/wg/drafts/html/master/syntax.html#attribute's-serialized-name
11 // Steps 1-3 under the "Escaping a string" heading are relevant to attributes.
12 window.htmlElement = document.createElement('div');
13 htmlElement.setAttribute('quoteme', attrValue);
14 shouldBe('htmlElement.outerHTML', '"<div quoteme=\\"< > &amp; &quot; \' &nbsp;\\"><' + '/div>"');
16 // XML case.
17 // DOM parsing and serialization: https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#dfn-concept-serialize-xml-attributes
18 // Step 2 substep 4 is relevant to attributes.
19 var xmlDocument = document.implementation.createDocument('http://www.w3.org/1999/xhtml', 'html', null);
20 window.xmlElement = xmlDocument.createElement('div');
21 xmlElement.setAttribute('quoteme', attrValue);
22 shouldBe('(new XMLSerializer()).serializeToString(xmlElement)', '"<div xmlns=\\"http://www.w3.org/1999/xhtml\\" quoteme=\\"&lt; &gt; &amp; &quot; \' \\xA0\\"><' + '/div>"');
23 </script>