diff options
Diffstat (limited to '')
-rw-r--r-- | testing/web-platform/tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/xhtml-mathml-dtd-entity.htm | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/xhtml-mathml-dtd-entity.htm b/testing/web-platform/tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/xhtml-mathml-dtd-entity.htm new file mode 100644 index 0000000000..af3fe90284 --- /dev/null +++ b/testing/web-platform/tests/html/the-xhtml-syntax/parsing-xhtml-documents/support/xhtml-mathml-dtd-entity.htm @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<script> + var parser = new DOMParser(); + var parse = parser.parseFromString.bind(parser); + + function generateTestFunction(entitystring, expectedString, publicId, systemId, mimeType, friendlyMime) { + return function () { + var doctypeString = '<!DOCTYPE html'; + if (publicId != null) + doctypeString += ' PUBLIC "' + publicId + '" "' + systemId + '">'; + else if (systemId != null) + doctypeString += ' SYSTEM "' + systemId + '">'; + else // both are null + doctypeString += '>'; + var doc = parse(doctypeString + "<html><head></head><body id='test'>"+entitystring+"</body></html>", mimeType); + var root = doc.getElementById('test'); + parent.assert_not_equals(root, null, friendlyMime + " parsing the entity reference caused a parse error;"); + parent.assert_true(!!root.firstChild); + // Next line because some browsers include the partial parsed result in the parser error returned document. + parent.assert_equals(root.firstChild.nodeType, 3/*Text*/, friendlyMime + " parsing the entity reference caused a parse error;"); + var text = root.firstChild.data; + for (var i = 0, len = expectedString.length; i < len; i++) { + parent.assert_equals(text.charCodeAt(i),expectedString.charCodeAt(i)); + } + } + } + + function setupTests(jsonEntities, publicId, systemId, mimeType, friendlyMime) { + for (entityName in jsonEntities) { + if ((mimeType == "text/html") || /;$/.test(entityName)) { + parent.test(generateTestFunction(entityName, jsonEntities[entityName].characters, publicId, systemId, mimeType, friendlyMime), friendlyMime + " parsing " + entityName); + } + } + } + + parent.setup(function() {}, {explicit_done: true}); + + function run(row) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", "entities.json"); + xhr.onload = function () { + var entitiesJSON = JSON.parse(xhr.response); + setupTests(entitiesJSON, row[1], row[2], row[0], row[3]); + parent.done(); + } + xhr.send(); + } +</script> |