Chromium Code Reviews| Index: LayoutTests/fast/dom/DOMImplementation/script-tests/createDocumentType-err.js |
| diff --git a/LayoutTests/fast/dom/DOMImplementation/script-tests/createDocumentType-err.js b/LayoutTests/fast/dom/DOMImplementation/script-tests/createDocumentType-err.js |
| index 9fed0def1c3a0b33fc03621a727a27d69cdc3b78..60dba1ac255e148f343ad9fe9372e82fd00df081 100644 |
| --- a/LayoutTests/fast/dom/DOMImplementation/script-tests/createDocumentType-err.js |
| +++ b/LayoutTests/fast/dom/DOMImplementation/script-tests/createDocumentType-err.js |
| @@ -1,98 +1,24 @@ |
| description("createDocument tests modeled after mozilla's testing"); |
| -function stringForExceptionCode(c) |
| -{ |
| - var exceptionName; |
| - switch(c) { |
| - case DOMException.INVALID_CHARACTER_ERR: |
| - exceptionName = "INVALID_CHARACTER_ERR"; |
| - break; |
| - case DOMException.NAMESPACE_ERR: |
| - exceptionName = "NAMESPACE_ERR"; |
| - } |
| - if (exceptionName) |
| - return exceptionName; // + "(" + c + ")"; |
| - return c; |
| -} |
| +shouldThrow("document.implementation.createDocumentType('foo')", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType('foo', null)", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType(undefined, undefined)", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType(null, undefined)", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType(undefined, null)", "'TypeError: Not enough arguments'"); |
| +shouldNotThrow("document.implementation.createDocumentType(undefined, undefined, null)"); |
| +shouldThrow("document.implementation.createDocumentType(null, null)", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType(null, '')", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType('', null)", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType('', '')", "'TypeError: Not enough arguments'"); |
| +shouldThrow("document.implementation.createDocumentType('a:', null, null)", "'NamespaceError: An attempt was made to create or change an object in a way which is incorrect with regard to namespaces.'"); |
| +shouldThrow("document.implementation.createDocumentType(':foo', null, null)", "'NamespaceError: An attempt was made to create or change an object in a way which is incorrect with regard to namespaces.'"); |
| +shouldThrow("document.implementation.createDocumentType(':', null, null)", "'NamespaceError: An attempt was made to create or change an object in a way which is incorrect with regard to namespaces.'"); |
| +shouldNotThrow("document.implementation.createDocumentType('foo', null, null)"); |
| +shouldNotThrow("document.implementation.createDocumentType('foo:bar', null, null)"); |
| +shouldThrow("document.implementation.createDocumentType('foo::bar', null, null)", "'NamespaceError: An attempt was made to create or change an object in a way which is incorrect with regard to namespaces.'"); |
| +shouldThrow("document.implementation.createDocumentType('\t:bar', null, null)", "'InvalidCharacterError: The string contains invalid characters.'"); |
| +shouldThrow("document.implementation.createDocumentType('foo:\t', null, null)", "'InvalidCharacterError: The string contains invalid characters.'"); |
| +shouldThrow("document.implementation.createDocumentType('foo :bar', null, null)", "'InvalidCharacterError: The string contains invalid characters.'"); |
| +shouldThrow("document.implementation.createDocumentType('foo: bar', null, null)", "'InvalidCharacterError: The string contains invalid characters.'"); |
| +shouldThrow("document.implementation.createDocumentType('a:b:c', null, null)", "'NamespaceError: An attempt was made to create or change an object in a way which is incorrect with regard to namespaces.'"); |
| -function assertEquals(actual, expect, m) |
| -{ |
| - if (actual !== expect) { |
| - m += "; expected " + stringForExceptionCode(expect) + ", threw " + stringForExceptionCode(actual); |
| - testFailed(m); |
| - } else { |
| - m += "; threw " + stringForExceptionCode(actual);; |
| - testPassed(m); |
| - } |
| -} |
| - |
| -var allTests = [ |
| - { args: [undefined, undefined], code: 5 }, |
| - { args: [null, undefined], code: 5 }, |
| - { args: [undefined, null], code: 5 }, |
| - { args: [undefined, undefined, null], code: 5 }, |
| - { args: [null, null], code: 5 }, |
| - { args: [null, null, null], code: 5 }, |
| - { args: [null, ""], code: 5 }, |
| - { args: ["", null], code: 5 }, |
| - { args: ["", ""], code: 5 }, |
| - { args: ["a:", null, null], code: 14 }, |
| - { args: [":foo", null, null], code: 14 }, |
| - { args: [":", null, null], code: 14 }, |
| - { args: ["foo", null, null] }, |
| - { args: ["foo:bar", null, null] }, |
| - { args: ["foo::bar", null, null], code: 14 }, |
| - { args: ["\t:bar", null, null], code: 5 }, |
| - { args: ["foo:\t", null, null], code: 5 }, |
| - { args: ["foo :bar", null, null], code: 5 }, |
| - { args: ["foo: bar", null, null], code: 5 }, |
| - { args: ["a:b:c", null, null], code: 14, message: "valid XML name, invalid QName" }, |
| -]; |
| - |
| -function sourceify(v) |
| -{ |
| - switch (typeof v) { |
| - case "undefined": |
| - return v; |
| - case "string": |
| - return '"' + v.replace('"', '\\"') + '"'; |
| - default: |
| - return String(v); |
| - } |
| -} |
| - |
| -function sourceifyArgs(args) |
| -{ |
| - var copy = new Array(args.length); |
| - for (var i = 0, sz = args.length; i < sz; i++) |
| - copy[i] = sourceify(args[i]); |
| - |
| - return copy.join(", "); |
| -} |
| - |
| -function runTests(tests, createFunctionName) |
| -{ |
| - for (var i = 0, sz = tests.length; i < sz; i++) { |
| - var test = tests[i]; |
| - |
| - var code = -1; |
| - var argStr = sourceifyArgs(test.args); |
| - var msg = createFunctionName + "(" + argStr + ")"; |
| - if ("message" in test) |
| - msg += "; " + test.message; |
| - try { |
| - document.implementation[createFunctionName].apply(document.implementation, test.args); |
| - if ('code' in test) |
| - testFailed(msg + " expected exception: " + test.code); |
| - else |
| - testPassed(msg); |
| - } catch (e) { |
| - assertEquals(e.code, test.code || "expected no exception", msg); |
| - } |
| - } |
| -} |
| - |
| -// Moz throws a "Not enough arguments" exception in these, we don't: |
|
haraken
2013/08/14 15:05:40
As far as I see this test and ^^^ this comment, it
|
| -shouldBeEqualToString("document.implementation.createDocumentType('foo').toString()", "[object DocumentType]"); |
| -shouldBeEqualToString("document.implementation.createDocumentType('foo', null).toString()", "[object DocumentType]"); |
| -runTests(allTests, "createDocumentType"); |