Index: third_party/WebKit/LayoutTests/imported/web-platform-tests/html/syntax/parsing/test.js |
diff --git a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/syntax/parsing/test.js b/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/syntax/parsing/test.js |
deleted file mode 100644 |
index 362272a2f1881595a4a4e383a3f4b32369971865..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/LayoutTests/imported/web-platform-tests/html/syntax/parsing/test.js |
+++ /dev/null |
@@ -1,331 +0,0 @@ |
-var namespaces = { |
- "html":"http://www.w3.org/1999/xhtml", |
- "mathml":"http://www.w3.org/1998/Math/MathML", |
- "svg":"http://www.w3.org/2000/svg", |
- "xlink":"http://www.w3.org/1999/xlink", |
- "xml":"http://www.w3.org/XML/1998/namespace", |
- "xmlns":"http://www.w3.org/2000/xmlns/" |
-}; |
- |
-var prefixes = {}; |
-for (var prefix in namespaces) { |
- if (namespaces.hasOwnProperty(prefix)) { |
- prefixes[namespaces[prefix]] = prefix; |
- } |
-} |
-prefixes[namespaces["mathml"]] = "math"; |
- |
-function format(format_string) { |
- var insertions = Array.prototype.slice.call(arguments, 1); |
- var regexp = /%s/g; |
- var match_count = 0; |
- var rv = format_string.replace(regexp, function(match) { |
- var rv = insertions[match_count]; |
- match_count++; |
- return rv; |
- }); |
- return rv; |
-} |
- |
-function test_serializer(element) { |
- element.normalize(); |
- var lines = []; |
- function serialize_element(element, indent) { |
- var indent_spaces = (new Array(indent)).join(" "); |
- switch(element.nodeType) { |
- case Node.DOCUMENT_TYPE_NODE: |
- if (element.name) { |
- if (element.publicId || element.systemId) { |
- var publicId = element.publicId ? element.publicId : ""; |
- var systemId = element.systemId ? element.systemId : ""; |
- lines.push(format("|%s<!DOCTYPE %s \"%s\" \"%s\">", indent_spaces, |
- element.name, publicId, systemId)); |
- } else { |
- lines.push(format("|%s<!DOCTYPE %s>", indent_spaces, |
- element.name)); |
- } |
- } else { |
- lines.push(format("|%s<!DOCTYPE >", indent_spaces)); |
- } |
- break; |
- case Node.DOCUMENT_NODE: |
- lines.push("#document"); |
- break; |
- case Node.DOCUMENT_FRAGMENT_NODE: |
- lines.push("#document-fragment"); |
- break; |
- case Node.COMMENT_NODE: |
- lines.push(format("|%s<!-- %s -->", indent_spaces, element.nodeValue)); |
- break; |
- case Node.TEXT_NODE: |
- lines.push(format("|%s\"%s\"", indent_spaces, element.nodeValue)); |
- break; |
- case Node.ELEMENT_NODE: |
- if (element.getAttribute("data-skip") !== null) { |
- return; |
- } |
- if (element.namespaceURI !== null && element.namespaceURI !== namespaces.html) { |
- var name = format("%s %s", prefixes[element.namespaceURI], |
- element.localName); |
- } else { |
- var name = element.localName; |
- } |
- lines.push(format("|%s<%s>", indent_spaces, name)); |
- |
- var attributes = Array.prototype.map.call( |
- element.attributes, |
- function(attr) { |
- var name = (attr.namespaceURI ? prefixes[attr.namespaceURI] + " " : "") + |
- attr.localName; |
- return [name, attr.value]; |
- }); |
- attributes.sort(function (a, b) { |
- var x = a[0]; |
- var y = b[0]; |
- if (x === y) { |
- return 0; |
- } |
- return x > y ? 1 : -1; |
- }); |
- |
- attributes.forEach( |
- function(attr) { |
- var indent_spaces = (new Array(indent + 2)).join(" "); |
- lines.push(format("|%s%s=\"%s\"", indent_spaces, attr[0], attr[1])); |
- } |
- ); |
- break; |
- } |
- indent += 2; |
- Array.prototype.forEach.call(element.childNodes, |
- function(node) { |
- serialize_element(node, indent); |
- }); |
- } |
- serialize_element(element, 0); |
- return lines.join("\n"); |
-} |
- |
-function parse_query() { |
- var query = location.search.slice(1); |
- var vars = query.split("&"); |
- var fields = vars.map(function (x) { |
- var split = x.split("="); |
- return [split[0], split.slice(1).join("=")]; |
- }); |
- return fields; |
-} |
- |
-function get_type() { |
- var run_type = "uri"; |
- var fields = parse_query(); |
- fields.forEach(function(x) { |
- if(x[0] == "run_type") { |
- run_type = x[1]; |
- } |
- }); |
- return run_type; |
-}; |
- |
-var test_in_blob_uri = get_test_func(function (iframe, uri_encoded_input, t) { |
- var b = new Blob([decodeURIComponent(uri_encoded_input)], { type: "text/html" }); |
- var blobURL = URL.createObjectURL(b); |
- iframe.src = blobURL; |
- t.add_cleanup(function() { |
- URL.revokeObjectURL(blobURL); |
- }); |
- }); |
- |
-var test_document_write = get_test_func(function(iframe, uri_encoded_input, t) { |
- iframe.contentDocument.open(); |
- var input = decodeURIComponent(uri_encoded_input); |
- iframe.contentDocument.write(input); |
- iframe.contentDocument.close(); |
- }); |
- |
-var test_document_write_single = get_test_func(function(iframe, uri_encoded_input, t) { |
- iframe.contentDocument.open(); |
- var input = decodeURIComponent(uri_encoded_input); |
- for (var i=0; i< input.length; i++) { |
- iframe.contentDocument.write(input[i]); |
- } |
- iframe.contentDocument.close(); |
- }); |
- |
-function get_test_func(inject_func) { |
- function test_func(iframe, t, test_id, uri_encoded_input, escaped_expected) { |
- var expected = decodeURIComponent(escaped_expected); |
- current_tests[iframe.id] = {test_id:test_id, |
- uri_encoded_input:uri_encoded_input, |
- expected:expected, |
- actual:null |
- }; |
- |
- iframe.onload = function() { |
- t.step(function() { |
- iframe.onload = null; |
- var serialized_dom = test_serializer(iframe.contentDocument); |
- current_tests[iframe.id].actual = serialized_dom; |
- assert_equals(serialized_dom, expected); |
- t.done(); |
- } |
- ); |
- }; |
- inject_func(iframe, uri_encoded_input, t); |
- } |
- return test_func; |
-} |
- |
-function test_fragment(iframe, t, test_id, uri_encoded_input, escaped_expected, container) { |
- var input_string = decodeURIComponent(uri_encoded_input); |
- var expected = decodeURIComponent(escaped_expected); |
- current_tests[iframe.id] = { |
- test_id:test_id, |
- input:uri_encoded_input, |
- expected:expected, |
- actual:null, |
- container:container |
- }; |
- |
- var components = container.split(" "); |
- var container_elem = null; |
- if (components.length > 1) { |
- var namespace = namespaces[components[0]]; |
- container_elem = document.createElementNS(namespace, |
- components[0] + ":" + |
- components[1]); |
- } else { |
- container_elem = document.createElement(container); |
- } |
- container_elem.innerHTML = input_string; |
- var serialized_dom = test_serializer(container_elem); |
- current_tests[iframe.id].actual = serialized_dom; |
- serialized_dom = convert_innerHTML(serialized_dom); |
- assert_equals(serialized_dom, expected); |
- t.done(); |
-} |
- |
-function convert_innerHTML(serialized_dom) { |
- var lines = serialized_dom.split("\n"); |
- lines[0] = "#document"; |
- return lines.join("\n"); |
-} |
- |
-function print_diffs(test_id, uri_encoded_input, expected, actual, container) { |
- container = container ? container : null; |
- if (actual) { |
- var diffs = mark_diffs(expected, actual); |
- var expected_text = diffs[0]; |
- var actual_text = diffs[1]; |
- } else { |
- var expected_text = expected; |
- var actual_text = ""; |
- } |
- |
- var tmpl = ["div", {"id":"${test_id}"}, |
- ["h2", {}, "${test_id}"], |
- function(vars) { |
- if (vars.container !== null) { |
- return ["div", {"class":"container"}, |
- ["h3", {}, "innerHTML Container"], |
- ["pre", {}, vars.container]]; |
- } else { |
- return null; |
- } |
- }, |
- ["div", {"id":"input_${test_id}"}, ["h3", {}, "Input"], ["pre", {}, |
- ["code", {}, decodeURIComponent(uri_encoded_input)]]], |
- ["div", {"id":"expected_${test_id}"}, ["h3", {}, "Expected"], |
- ["pre", {}, ["code", {}, expected_text]]], |
- ["div", {"id":"actual_${test_id}"}, ["h3", {}, "Actual"], |
- ["pre", {}, ["code", {}, actual_text]]] |
- ]; |
- |
- var diff_dom = template.render(tmpl, {test_id:test_id, container:container}); |
- document.body.appendChild(diff_dom); |
-} |
- |
-var current_tests = {}; |
-var iframe_map = {}; |
- |
-function init_tests(test_type) { |
- var test_func = null; |
- var test_funcs = { |
- "write":test_document_write, |
- "write_single":test_document_write_single, |
- "uri":test_in_blob_uri, |
- "innerHTML":test_fragment |
- }; |
- var tests_started = 0; |
- var tests_complete = 0; |
- |
- setup(function() { |
- test_func = test_funcs[test_type]; |
- |
- var fails = []; |
- |
- add_result_callback(function(test) { |
- tests_complete++; |
- var iframe = document.getElementById(iframe_map[test.name]); |
- if (test.status !== test.PASS) { |
- fails.push(current_tests[iframe.id]); |
- var new_iframe = document.createElement("iframe"); |
- new_iframe.style.display = "none"; |
- new_iframe.id = iframe.id; |
- document.body.replaceChild(new_iframe, iframe); |
- iframe = new_iframe; |
- } |
- if (tests_complete === order.length) { |
- done(); |
- } else if (tests_started < order.length) { |
- test_next(iframe); |
- } |
- }); |
- |
- add_completion_callback(function() { |
- fails.forEach(function(t) { |
- print_diffs(t.test_id, t.uri_encoded_input, |
- t.expected, t.actual); |
- }); |
- }); |
- |
- //Create the iframes we will use to test |
- //in the innerHTML case these are not actually used |
- //but it is convenient to reuse the same code |
- for (var i=0; i<num_iframes; i++) { |
- var iframe = document.createElement("iframe"); |
- iframe.id = "iframe_" + i; |
- iframe.style.display = "none"; |
- document.body.appendChild(iframe); |
- } |
- }, |
- {explicit_done:true}); |
- |
- function test_next(iframe) { |
- var test_id = order[tests_started]; |
- tests_started++; |
- var x = tests[test_id]; |
- var t = x[0]; |
- iframe_map[t.name] = iframe.id; |
- setTimeout(function() { |
- t.step(function() { |
- var string_uri_encoded_input = x[1]; |
- var string_escaped_expected = x[2]; |
- if (test_type === "innerHTML") { |
- var container = x[3]; |
- } |
- test_func(iframe, t, test_id, string_uri_encoded_input, string_escaped_expected, |
- container); |
- }); |
- }, 0); |
- } |
- |
- onload = function() { |
- Array.prototype.forEach.call(document.getElementsByTagName("iframe"), |
- function(iframe) { |
- if (tests_started<order.length) { |
- test_next(iframe); |
- } |
- }); |
- }; |
-} |