| Index: LayoutTests/fast/dom/implementation-api-args.html | 
| diff --git a/LayoutTests/fast/dom/implementation-api-args.html b/LayoutTests/fast/dom/implementation-api-args.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..5bb21673cd73730639c6c339179c2fd69010d91b | 
| --- /dev/null | 
| +++ b/LayoutTests/fast/dom/implementation-api-args.html | 
| @@ -0,0 +1,74 @@ | 
| +<!DOCTYPE html> | 
| +<html> | 
| +<head> | 
| +<link rel="help" href="http://www.w3.org/TR/2012/WD-dom-20121206/#interface-domimplementation"> | 
| +<script src="../js/resources/js-test-pre.js"></script> | 
| +</head> | 
| +<body> | 
| +<script> | 
| +description("Checks that the DOMImplementation api arguments are correctly validated") | 
| + | 
| +var testDocument, testPrototype, testNamespace, testQualifiedName, testDocType; | 
| +function validateDocument(document, prototype, namespace, qualifiedName, docType) | 
| +{ | 
| +    testDocument = document; | 
| +    testPrototype = prototype; | 
| +    testNamespace = namespace; | 
| +    testQualifiedName = qualifiedName; | 
| +    testDocType = docType; | 
| + | 
| +    shouldBe('testDocument.__proto__', 'window["' + prototype + '"].prototype'); | 
| +    if (!testQualifiedName || testQualifiedName == "") { | 
| +        shouldBeNull('testDocument.documentElement'); | 
| +    } else { | 
| +        shouldBeEqualToString('testDocument.documentElement.tagName', '' + qualifiedName); | 
| +        if (namespace) | 
| +            shouldBeEqualToString('testDocument.documentElement.namespaceURI', '' + namespace); | 
| +        else | 
| +            shouldBeNull('testDocument.documentElement.namespaceURI'); | 
| +    } | 
| + | 
| +    if (docType) | 
| +        shouldBe('testDocument.doctype', 'testDocType'); | 
| +    else | 
| +        shouldBeNull('testDocument.doctype'); | 
| +} | 
| + | 
| +debug('\nDocumentType createDocumentType(DOMString qualifiedName, DOMString publicId, DOMString systemId);'); | 
| +shouldThrow('document.implementation.createDocumentType()', "'TypeError: Not enough arguments'"); | 
| +shouldThrow('document.implementation.createDocumentType("qualifiedName")', "'TypeError: Not enough arguments'"); | 
| +shouldThrow('document.implementation.createDocumentType("qualifiedName", "publicId")', "'TypeError: Not enough arguments'"); | 
| +var docType; | 
| +shouldNotThrow('docType = document.implementation.createDocumentType("qualifiedName", "publicId", "systemId")'); | 
| +shouldBe('docType.__proto__', 'DocumentType.prototype'); | 
| +shouldBeEqualToString('docType.name', 'qualifiedName'); | 
| +shouldBeEqualToString('docType.publicId', 'publicId'); | 
| +shouldBeEqualToString('docType.systemId', 'systemId'); | 
| + | 
| +debug('\nXMLDocument createDocument(DOMString? namespace, [TreatNullAs=EmptyString] DOMString qualifiedName, DocumentType? doctype);'); | 
| +shouldThrow('document.implementation.createDocument()', "'TypeError: Not enough arguments'"); | 
| +shouldThrow('document.implementation.createDocument("namespace")', "'TypeError: Not enough arguments'"); | 
| +shouldNotThrow('document.implementation.createDocument("namespace", "qualifiedName")'); | 
| +var doc; | 
| +shouldNotThrow('doc = document.implementation.createDocument("namespace", "qualifiedName", null)'); | 
| +validateDocument(doc, 'XMLDocument', 'namespace', 'qualifiedName', null); | 
| +shouldNotThrow('doc = document.implementation.createDocument(null, "qualifiedName", null)'); | 
| +validateDocument(doc, 'XMLDocument', null, 'qualifiedName', null); | 
| +shouldNotThrow('doc = document.implementation.createDocument("", null, null)') | 
| +validateDocument(doc, 'XMLDocument', "", null, null); | 
| +shouldNotThrow('doc = document.implementation.createDocument("", "", null)') | 
| +validateDocument(doc, 'XMLDocument', "", "", null); | 
| +shouldNotThrow('doc = document.implementation.createDocument("namespace", "qualifiedName")'); | 
| +validateDocument(doc, 'XMLDocument', "namespace", "qualifiedName", null); | 
| +shouldNotThrow('doc = document.implementation.createDocument("namespace", "qualifiedName", docType)'); | 
| +validateDocument(doc, 'XMLDocument', "namespace", "qualifiedName", docType); | 
| + | 
| +debug('\nDocument createHTMLDocument(optional DOMString title);'); | 
| +shouldNotThrow('doc = document.implementation.createHTMLDocument()'); | 
| +validateDocument(doc, 'HTMLDocument', "http://www.w3.org/1999/xhtml", "HTML", doc.doctype); | 
| +shouldNotThrow('doc = document.implementation.createHTMLDocument("title")'); | 
| +validateDocument(doc, 'HTMLDocument', "http://www.w3.org/1999/xhtml", "HTML", doc.doctype); | 
| +</script> | 
| +<script src="../js/resources/js-test-post.js"></script> | 
| +</body> | 
| +</html> | 
|  |