blob: e5a89cde3e02765f1131c3d305c789bd3a0acfdf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<script>
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>.');
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);
shouldBe('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);
shouldBe('(new XMLSerializer()).serializeToString(xmlElement)', '"<div xmlns=\\"http://www.w3.org/1999/xhtml\\" quoteme=\\"< > & " \' \\xA0\\"><' + '/div>"');
</script>
|