OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <meta charset=utf-8> | |
3 <title>Document.createElement</title> | |
4 <link rel=help href="https://dom.spec.whatwg.org/#dom-document-createelement"> | |
5 <link rel=help href="https://dom.spec.whatwg.org/#dom-element-localname"> | |
6 <link rel=help href="https://dom.spec.whatwg.org/#dom-element-tagname"> | |
7 <link rel=help href="https://dom.spec.whatwg.org/#dom-element-prefix"> | |
8 <link rel=help href="https://dom.spec.whatwg.org/#dom-element-namespaceuri"> | |
9 <script src="../../../../resources/testharness.js"></script> | |
10 <script src="../../../../resources/testharnessreport.js"></script> | |
11 <div id="log"></div> | |
12 <script> | |
13 function toASCIIUppercase(str) { | |
14 var diff = "a".charCodeAt(0) - "A".charCodeAt(0); | |
15 var res = ""; | |
16 for (var i = 0; i < str.length; ++i) { | |
17 if ("a" <= str[i] && str[i] <= "z") { | |
18 res += String.fromCharCode(str.charCodeAt(i) - diff); | |
19 } else { | |
20 res += str[i]; | |
21 } | |
22 } | |
23 return res; | |
24 } | |
25 test(function() { | |
26 var HTMLNS = "http://www.w3.org/1999/xhtml", | |
27 valid = [ | |
28 //[input, localName], | |
29 [undefined, "undefined"], | |
30 [null, "null"], | |
31 ["foo", "foo"], | |
32 ["f1oo", "f1oo"], | |
33 ["foo1", "foo1"], | |
34 ["f\u0300oo", "f\u0300oo"], | |
35 ["foo\u0300", "foo\u0300"], | |
36 [":foo", ":foo"], | |
37 ["f:oo", "f:oo"], | |
38 ["foo:", "foo:"], | |
39 ["xml", "xml"], | |
40 ["xmlns", "xmlns"], | |
41 ["xmlfoo", "xmlfoo"], | |
42 ["xml:foo", "xml:foo"], | |
43 ["xmlns:foo", "xmlns:foo"], | |
44 ["xmlfoo:bar", "xmlfoo:bar"], | |
45 ["svg", "svg"], | |
46 ["math", "math"], | |
47 ["FOO", "foo"], | |
48 ["mar\u212a", "mar\u212a"], | |
49 ["\u0130nput", "\u0130nput"], | |
50 ["\u0131nput", "\u0131nput"] | |
51 ], | |
52 invalid = [ | |
53 "", | |
54 "1foo", | |
55 "\u0300foo", | |
56 "}foo", | |
57 "f}oo", | |
58 "foo}", | |
59 "\ufffffoo", | |
60 "f\uffffoo", | |
61 "foo\uffff", | |
62 "<foo", | |
63 "foo>", | |
64 "<foo>", | |
65 "f<oo" | |
66 ] | |
67 | |
68 valid.forEach(function(t) { | |
69 test(function() { | |
70 var elt = document.createElement(t[0]) | |
71 assert_true(elt instanceof Element) | |
72 assert_true(elt instanceof Node) | |
73 assert_equals(elt.localName, t[1]) | |
74 assert_equals(elt.tagName, toASCIIUppercase(t[1])) | |
75 assert_equals(elt.prefix, null) | |
76 assert_equals(elt.namespaceURI, HTMLNS) | |
77 }, "createElement(" + format_value(t[0]) + ")"); | |
78 }); | |
79 invalid.forEach(function(arg) { | |
80 test(function() { | |
81 assert_throws("INVALID_CHARACTER_ERR", function() { document.createElement
(arg) }) | |
82 }, "createElement(" + format_value(arg) + ")"); | |
83 }); | |
84 }) | |
85 </script> | |
OLD | NEW |