Index: third_party/WebKit/LayoutTests/dom/xhtml/level1/core/selfxhtml.js |
diff --git a/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/selfxhtml.js b/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/selfxhtml.js |
deleted file mode 100644 |
index a68a77ff11f1131dfda2c439f15ad3763c50e4cd..0000000000000000000000000000000000000000 |
--- a/third_party/WebKit/LayoutTests/dom/xhtml/level1/core/selfxhtml.js |
+++ /dev/null |
@@ -1,716 +0,0 @@ |
-/* |
-Copyright (c) 2001-2005 World Wide Web Consortium, |
-(Massachusetts Institute of Technology, European Research Consortium |
-for Informatics and Mathematics, Keio University). All |
-Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the |
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even |
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
- |
-[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 |
-*/ |
- |
- function assertSize(descr, expected, actual) { |
- var actualSize; |
- assertNotNull(descr, actual); |
- actualSize = actual.length; |
- assertEquals(descr, expected, actualSize); |
- } |
- |
- function assertEqualsAutoCase(context, descr, expected, actual) { |
- if (builder.contentType == "text/html") { |
- if(context == "attribute") { |
- assertEquals(descr, expected.toLowerCase(), actual.toLowerCase()); |
- } else { |
- assertEquals(descr, expected.toUpperCase(), actual); |
- } |
- } else { |
- assertEquals(descr, expected, actual); |
- } |
- } |
- |
- function assertEqualsCollectionAutoCase(context, descr, expected, actual) { |
- // |
- // if they aren't the same size, they aren't equal |
- assertEquals(descr, expected.length, actual.length); |
- |
- // |
- // if there length is the same, then every entry in the expected list |
- // must appear once and only once in the actual list |
- var expectedLen = expected.length; |
- var expectedValue; |
- var actualLen = actual.length; |
- var i; |
- var j; |
- var matches; |
- for(i = 0; i < expectedLen; i++) { |
- matches = 0; |
- expectedValue = expected[i]; |
- for(j = 0; j < actualLen; j++) { |
- if (builder.contentType == "text/html") { |
- if (context == "attribute") { |
- if (expectedValue.toLowerCase() == actual[j].toLowerCase()) { |
- matches++; |
- } |
- } else { |
- if (expectedValue.toUpperCase() == actual[j]) { |
- matches++; |
- } |
- } |
- } else { |
- if(expectedValue == actual[j]) { |
- matches++; |
- } |
- } |
- } |
- if(matches == 0) { |
- assert(descr + ": No match found for " + expectedValue,false); |
- } |
- if(matches > 1) { |
- assert(descr + ": Multiple matches found for " + expectedValue, false); |
- } |
- } |
- } |
- |
- function assertEqualsCollection(descr, expected, actual) { |
- // |
- // if they aren't the same size, they aren't equal |
- assertEquals(descr, expected.length, actual.length); |
- // |
- // if there length is the same, then every entry in the expected list |
- // must appear once and only once in the actual list |
- var expectedLen = expected.length; |
- var expectedValue; |
- var actualLen = actual.length; |
- var i; |
- var j; |
- var matches; |
- for(i = 0; i < expectedLen; i++) { |
- matches = 0; |
- expectedValue = expected[i]; |
- for(j = 0; j < actualLen; j++) { |
- if(expectedValue == actual[j]) { |
- matches++; |
- } |
- } |
- if(matches == 0) { |
- assert(descr + ": No match found for " + expectedValue,false); |
- } |
- if(matches > 1) { |
- assert(descr + ": Multiple matches found for " + expectedValue, false); |
- } |
- } |
- } |
- |
- function assertEqualsListAutoCase(context, descr, expected, actual) { |
- var minLength = expected.length; |
- if (actual.length < minLength) { |
- minLength = actual.length; |
- } |
- // |
- for(var i = 0; i < minLength; i++) { |
- assertEqualsAutoCase(context, descr, expected[i], actual[i]); |
- } |
- // |
- // if they aren't the same size, they aren't equal |
- assertEquals(descr, expected.length, actual.length); |
- } |
- |
- function assertEqualsList(descr, expected, actual) { |
- var minLength = expected.length; |
- if (actual.length < minLength) { |
- minLength = actual.length; |
- } |
- // |
- for(var i = 0; i < minLength; i++) { |
- if(expected[i] != actual[i]) { |
- assertEquals(descr, expected[i], actual[i]); |
- } |
- } |
- // |
- // if they aren't the same size, they aren't equal |
- assertEquals(descr, expected.length, actual.length); |
- } |
- |
- function assertInstanceOf(descr, type, obj) { |
- if(type == "Attr") { |
- assertEquals(descr,2,obj.nodeType); |
- var specd = obj.specified; |
- } |
- } |
- |
- function assertSame(descr, expected, actual) { |
- if(expected != actual) { |
- assertEquals(descr, expected.nodeType, actual.nodeType); |
- assertEquals(descr, expected.nodeValue, actual.nodeValue); |
- } |
- } |
- |
- function assertURIEquals(assertID, scheme, path, host, file, name, query, fragment, isAbsolute, actual) { |
- // |
- // URI must be non-null |
- assertNotNull(assertID, actual); |
- |
- var uri = actual; |
- |
- var lastPound = actual.lastIndexOf("#"); |
- var actualFragment = ""; |
- if(lastPound != -1) { |
- // |
- // substring before pound |
- // |
- uri = actual.substring(0,lastPound); |
- actualFragment = actual.substring(lastPound+1); |
- } |
- if(fragment != null) assertEquals(assertID,fragment, actualFragment); |
- |
- var lastQuestion = uri.lastIndexOf("?"); |
- var actualQuery = ""; |
- if(lastQuestion != -1) { |
- // |
- // substring before pound |
- // |
- uri = actual.substring(0,lastQuestion); |
- actualQuery = actual.substring(lastQuestion+1); |
- } |
- if(query != null) assertEquals(assertID, query, actualQuery); |
- |
- var firstColon = uri.indexOf(":"); |
- var firstSlash = uri.indexOf("/"); |
- var actualPath = uri; |
- var actualScheme = ""; |
- if(firstColon != -1 && firstColon < firstSlash) { |
- actualScheme = uri.substring(0,firstColon); |
- actualPath = uri.substring(firstColon + 1); |
- } |
- |
- if(scheme != null) { |
- assertEquals(assertID, scheme, actualScheme); |
- } |
- |
- if(path != null) { |
- assertEquals(assertID, path, actualPath); |
- } |
- |
- if(host != null) { |
- var actualHost = ""; |
- if(actualPath.substring(0,2) == "//") { |
- var termSlash = actualPath.substring(2).indexOf("/") + 2; |
- actualHost = actualPath.substring(0,termSlash); |
- } |
- assertEquals(assertID, host, actualHost); |
- } |
- |
- if(file != null || name != null) { |
- var actualFile = actualPath; |
- var finalSlash = actualPath.lastIndexOf("/"); |
- if(finalSlash != -1) { |
- actualFile = actualPath.substring(finalSlash+1); |
- } |
- if (file != null) { |
- assertEquals(assertID, file, actualFile); |
- } |
- if (name != null) { |
- var actualName = actualFile; |
- var finalDot = actualFile.lastIndexOf("."); |
- if (finalDot != -1) { |
- actualName = actualName.substring(0, finalDot); |
- } |
- assertEquals(assertID, name, actualName); |
- } |
- } |
- |
- if(isAbsolute != null) { |
- assertEquals(assertID, isAbsolute, actualPath.substring(0,1) == "/"); |
- } |
- } |
- |
-// size() used by assertSize element |
-function size(collection) |
-{ |
- return collection.length; |
-} |
- |
-function same(expected, actual) |
-{ |
- return expected === actual; |
-} |
- |
-function equalsAutoCase(context, expected, actual) { |
- if (builder.contentType == "text/html") { |
- if (context == "attribute") { |
- return expected.toLowerCase() == actual; |
- } |
- return expected.toUpperCase() == actual; |
- } |
- return expected == actual; |
-} |
- |
-function toLowerArray(src) { |
- var newArray = new Array(); |
- var i; |
- for (i = 0; i < src.length; i++) { |
- newArray[i] = src[i].toLowerCase(); |
- } |
- return newArray; |
-} |
- |
-function createTempURI(scheme) { |
- if (scheme == "http") { |
- return "http://localhost:8080/webdav/tmp" + Math.floor(Math.random() * 100000) + ".xml"; |
- } |
- return "file:///tmp/domts" + Math.floor(Math.random() * 100000) + ".xml"; |
-} |
- |
-function EventMonitor() { |
- this.atEvents = new Array(); |
- this.bubbledEvents = new Array(); |
- this.capturedEvents = new Array(); |
- this.allEvents = new Array(); |
-} |
- |
-EventMonitor.prototype.handleEvent = function(evt) { |
- switch(evt.eventPhase) { |
- case 1: |
- monitor.capturedEvents[monitor.capturedEvents.length] = evt; |
- break; |
- |
- case 2: |
- monitor.atEvents[monitor.atEvents.length] = evt; |
- break; |
- |
- case 3: |
- monitor.bubbledEvents[monitor.bubbledEvents.length] = evt; |
- break; |
- } |
- monitor.allEvents[monitor.allEvents.length] = evt; |
-} |
- |
-function DOMErrorImpl(err) { |
- this.severity = err.severity; |
- this.message = err.message; |
- this.type = err.type; |
- this.relatedException = err.relatedException; |
- this.relatedData = err.relatedData; |
- this.location = err.location; |
-} |
- |
-function DOMErrorMonitor() { |
- this.allErrors = new Array(); |
-} |
- |
-DOMErrorMonitor.prototype.handleError = function(err) { |
- errorMonitor.allErrors[errorMonitor.allErrors.length] = new DOMErrorImpl(err); |
-} |
- |
-DOMErrorMonitor.prototype.assertLowerSeverity = function(id, severity) { |
- var i; |
- for (i = 0; i < this.allErrors.length; i++) { |
- if (this.allErrors[i].severity >= severity) { |
- assertEquals(id, severity - 1, this.allErrors[i].severity); |
- } |
- } |
-} |
- |
-function UserDataNotification(operation, key, data, src, dst) { |
- this.operation = operation; |
- this.key = key; |
- this.data = data; |
- this.src = src; |
- this.dst = dst; |
-} |
- |
-function UserDataMonitor() { |
- this.allNotifications = new Array(); |
-} |
- |
-UserDataMonitor.prototype.handle = function(operation, key, data, src, dst) { |
- userDataMonitor.allNotifications[userDataMonitor.allNotifications.length] = |
- new UserDataNotification(operation, key, data, src, dst); |
-} |
- |
-function HTMLBuilder() { |
- this.contentType = "application/xhtml+xml"; |
- this.supportedContentTypes = [ "application/xhtml+xml" ]; |
- |
- this.supportsAsyncChange = false; |
- this.async = false; |
- this.fixedAttributeNames = [ |
- "validating", "expandEntityReferences", "coalescing", |
- "signed", "hasNullString", "ignoringElementContentWhitespace", "namespaceAware", "ignoringComments", "schemaValidating"]; |
- |
- this.fixedAttributeValues = [false, true, false, true, true , false, true, false, false ]; |
- this.configurableAttributeNames = [ ]; |
- this.configurableAttributeValues = [ ]; |
- this.initializationError = null; |
- this.initializationFatalError = null; |
- this.skipIncompatibleTests = true; |
- this.documentURLs = new Array(); |
- this.documentVarnames = new Array(); |
-} |
- |
-HTMLBuilder.prototype.hasFeature = function(feature, version) { |
- return document.implementation.hasFeature(feature, version); |
-} |
- |
-HTMLBuilder.prototype.getImplementation = function() { |
- return document.implementation; |
-} |
- |
-HTMLBuilder.prototype.preload = function(frame, varname, url) { |
- var i; |
- this.documentVarnames[this.documentVarnames.length] = varname; |
- this.documentURLs[this.documentURLs.length] = url; |
- if (this.documentURLs.length > 1) { |
- // |
- // if all the urls are not the same |
- // |
- for (i = 1; i < this.documentURLs.length; i++) { |
- if (this.documentURLs[i] != this.documentURLs[0]) { |
- throw "Tests with multiple loads of different documents are not currently supported"; |
- } |
- } |
- } |
- return 1; |
-} |
- |
-HTMLBuilder.prototype.cloneNode = function(srcNode, doc) { |
- var clone = null; |
- switch(srcNode.nodeType) { |
- // |
- // element |
- case 1: |
- clone = doc.createElementNS(srcNode.namespaceURI, srcNode.nodeName); |
- var attrs = srcNode.attributes; |
- for(var i = 0; i < attrs.length; i++) { |
- var srcAttr = attrs.item(i); |
- clone.setAttributeNS(srcAttr.namespaceURI, srcAttr.nodeName, srcAttr.nodeValue); |
- } |
- var srcChild = srcNode.firstChild; |
- while(srcChild != null) { |
- var cloneChild = this.cloneNode(srcChild, doc); |
- if (cloneChild != null) { |
- clone.appendChild(cloneChild); |
- } |
- srcChild = srcChild.nextSibling; |
- } |
- break; |
- |
- case 3: |
- clone = doc.createTextNode(srcNode.nodeValue); |
- break; |
- |
- case 4: |
- clone = doc.createCDATASection(srcNode.nodeValue); |
- break; |
- |
- case 5: |
- clone = doc.createEntityReference(srcNode.nodeName); |
- break; |
- |
- case 7: |
- clone = doc.createProcessingInstruction(srcNode.target, srcNode.data); |
- break; |
- |
- case 8: |
- clone = doc.createComment(srcNode.nodeValue); |
- break; |
- } |
- return clone; |
- |
-} |
- |
-HTMLBuilder.prototype.load = function(frame, varname, url) { |
- if (this.documentVarnames[0] == varname) { |
- return document; |
- } |
- // |
- // |
- // not a perfect way to do this |
- // Document.cloneNode is implementation dependent but exists in L1 |
- // and implemented in IE. The alternative brute force copy |
- // only works in L2 or higher implementations and can't copy |
- // entity and notation definitions, etc. |
- var clone = null; |
- try { |
- clone = document.cloneNode(true); |
- } catch(ex) { |
- } |
- if (clone == null) { |
- clone = document.implementation.createDocument( |
- document.documentElement.namespaceURI, |
- document.documentElement.nodeName, |
- null); |
- // |
- // Work-around since |
- // Safari does not create document element |
- // create document. |
- if (clone.documentElement == null) { |
- clone.appendChild(clone.createElementNS( |
- document.documentElement.namespaceURI, |
- document.documentElement.nodeName)); |
- } |
- var attrs = document.documentElement.attributes; |
- for(var i = 0; i < attrs.length; i++) { |
- var srcAttr = attrs.item(i); |
- clone.documentElement.setAttributeNS( |
- srcAttr.namespaceURI, srcAttr.nodeName, srcAttr.nodeValue); |
- } |
- |
- var srcNode = document.firstChild; |
- while(srcNode != null && srcNode.nodeType != 1) { |
- if (srcNode.nodeType != 10) { |
- var cloneNode = this.cloneNode(srcNode, clone); |
- clone.insertBefore(cloneNode, clone.documentElement); |
- } |
- srcNode = srcNode.nextSibling; |
- } |
- srcNode = document.documentElement.nextSibling; |
- while(srcNode != null) { |
- var cloneNode = this.cloneNode(srcNode, clone); |
- clone.appendChild(cloneNode); |
- srcNode = srcNode.nextSibling; |
- } |
- srcNode = document.documentElement.firstChild; |
- while(srcNode != null) { |
- var cloneNode = this.cloneNode(srcNode, clone); |
- if (cloneNode != null) { |
- clone.documentElement.appendChild(cloneNode); |
- } |
- srcNode = srcNode.nextSibling; |
- } |
- } |
- return clone; |
-} |
- |
-HTMLBuilder.prototype.getImplementationAttribute = function(attr) { |
- for (var i = 0; i < this.fixedAttributeNames.length; i++) { |
- if (this.fixedAttributeNames[i] == attr) { |
- return this.fixedAttributeValues[i]; |
- } |
- } |
- throw "Unrecognized implementation attribute: " + attr; |
-} |
- |
-HTMLBuilder.prototype.setImplementationAttribute = function(attribute, value) { |
- var supported = this.getImplementationAttribute(attribute); |
- if (supported != value) { |
- this.initializationError = "HTML loader does not support " + attribute + "=" + value; |
- } |
-} |
- |
-HTMLBuilder.prototype.canSetImplementationAttribute = function(attribute, value) { |
- var supported = this.getImplementationAttribute(attribute); |
- return (supported == value); |
-} |
- |
-function createConfiguredBuilder() { |
- return new HTMLBuilder(); |
-} |
- |
-function catchInitializationError(buildr, ex) { |
- buildr.initializationError = ex; |
- buildr.initializationFatalError = ex; |
-} |
- |
-function checkFeature(feature, version) |
-{ |
- if (!builder.hasFeature(feature, version)) |
- { |
- // |
- // don't throw exception so that users can select to ignore the precondition |
- // |
- builder.initializationError = "builder does not support feature " + feature + " version " + version; |
- } |
-} |
- |
-function setResult(resultType, message) { |
- var testName = getTargetURI(); |
- document.title = testName + ":" + resultType; |
- var xhtmlNS = "http://www.w3.org/1999/xhtml"; |
- var newBody = document.createElementNS(xhtmlNS, "body"); |
- var newTable = document.createElementNS(xhtmlNS, "table"); |
- newTable.width = "100%"; |
- newTable.border = "1"; |
- newBody.appendChild(newTable); |
- var testRow = newTable.insertRow(-1); |
- var testDiv1 = testRow.insertCell(-1); |
- testDiv1.appendChild(document.createTextNode("Test")); |
- var testDiv2 = testRow.insertCell(-1); |
- testDiv2.appendChild(document.createTextNode(testName)); |
- var statusRow = newTable.insertRow(-1); |
- var statusDiv1 = statusRow.insertCell(-1); |
- statusDiv1.appendChild(document.createTextNode("Status")); |
- var statusDiv2 = statusRow.insertCell(-1); |
- var style = "color:green"; |
- if (resultType == null) { |
- statusDiv2.appendChild(document.createTextNode("Success")); |
- } else { |
- statusDiv2.appendChild(document.createTextNode(resultType)); |
- if (resultType == "skip") { |
- style = "color:blue"; |
- } else { |
- style = "color:red"; |
- } |
- } |
- newTable.setAttributeNS(null, "style", style); |
- if (message != null) { |
- var messageRow = newTable.insertRow(-1); |
- var messageDiv1 = messageRow.insertCell(-1); |
- messageDiv1.appendChild(document.createTextNode("Message")); |
- var messageDiv2 = messageRow.insertCell(-1); |
- messageDiv2.appendChild(document.createTextNode(message)); |
- } |
- var oldBody = document.getElementsByTagName("body")[0]; |
- oldBody.parentNode.replaceChild(newBody, oldBody); |
- if (parent != window && typeof(parent.setResult) != 'undefined') { |
- parent.setResult(testName, resultType, message); |
- } |
-} |
- |
-function checkInitialization(buildr, testname) { |
- return buildr.initializationError; |
-} |
- |
-function preload(docRef, varname, href) { |
- return builder.preload(docRef, varname, href); |
-} |
- |
-function load(docRef, varname, href) { |
- return builder.load(docRef, varname, href); |
-} |
- |
-function getImplementationAttribute(attr) { |
- return builder.getImplementationAttribute(attr); |
-} |
- |
-function setImplementationAttribute(attribute, value) { |
- builder.setImplementationAttribute(attribute, value); |
-} |
- |
-function createXPathEvaluator(doc) { |
- try { |
- return doc.getFeature("XPath", null); |
- } |
- catch(ex) { |
- } |
- return doc; |
-} |
- |
-function getImplementation() { |
- return builder.getImplementation(); |
-} |
- |
-function assertEquals(id, expected, actual) { |
- var myActual; |
- if (expected != actual) { |
- myActual = actual; |
- if (actual == null) { |
- myActual = "null"; |
- } |
- throw "failure:" + id + ": assertEquals failed, actual " + myActual + ", expected " + expected + "."; |
- } |
-} |
- |
-function assertNull(id, actual) { |
- if (actual != null) { |
- throw "failure:" + id + ": assertNull failed, actual " + actual; |
- } |
-} |
- |
-function assertTrue(id, actual) { |
- if (!actual) { |
- throw "failure:" + id + ": assertTrue failed"; |
- } |
-} |
- |
-function assertFalse(id, actual) { |
- if (actual) { |
- throw "failure:" + id + ": assertTrue failed"; |
- } |
-} |
- |
-function assertNotNull(id, actual) { |
- if (actual == null) { |
- throw "failure:" + id + ": assertNotNull failed"; |
- } |
-} |
- |
-function fail(id) { |
- throw "failure:" + id + ": fail"; |
-} |
- |
-function getSuffix(contentType) { |
- switch(contentType) { |
- case "text/html": |
- return ".html"; |
- |
- case "text/xml": |
- return ".xml"; |
- |
- case "image/svg+xml": |
- return ".svg"; |
- |
- case "text/mathml": |
- return ".mml"; |
- } |
- return ".xhtml"; |
-} |
- |
-function getResourceURI(name, scheme, contentType) { |
- var base = document.documentURI; |
- if (base == null) { |
- base = ""; |
- } else { |
- base = base.substring(0, base.lastIndexOf('/') + 1) + "files/"; |
- } |
- return base + name + getSuffix(contentType); |
-} |
- |
-function startTest() { |
- |
-// |
-// WebKit modification: 18-August-2005 |
-// |
-// Inform the test controller that this test has a text-format result and so should |
-// be dumped as text, and also that the dump should not occur automatically. |
-// |
-if (window.testRunner) { |
- testRunner.dumpAsText(); |
- testRunner.waitUntilDone(); |
-} |
-// |
-// End WebKit modification |
-// |
- |
- // |
- // invoke test setup |
- // |
- setUpPage(); |
- try { |
- runTest(); |
- if (builder.initializationError == null) { |
- setResult(null, null); |
- } else { |
- setResult("skip", builder.initializationError); |
- } |
- } catch(ex) { |
- if (typeof(ex.substring) != 'undefined' && ex.substring(0, 8) == "failure:") { |
- setResult("failure", ex.substring(8)); |
- } else { |
- setResult("error", ex); |
- } |
- } |
- |
-// |
-// WebKit modification: 18-August-2005 |
-// |
-// Inform the test controller that this test is complete, so it's time to dump. |
-// |
- if (window.testRunner) { |
- testRunner.notifyDone(); |
- } |
-// |
-// End WebKit modification |
-// |
- |
-} |