Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Side by Side Diff: LayoutTests/fast/dom/custom/document-register-type-extensions.html

Issue 16818023: DOMException toString is not correct (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../../js/resources/js-test-pre.js"></script> 4 <script src="../../js/resources/js-test-pre.js"></script>
5 </head> 5 </head>
6 <body> 6 <body>
7 <div id="container"></div> 7 <div id="container"></div>
8 <form id="testForm"></form> 8 <form id="testForm"></form>
9 <script> 9 <script>
10 description("Testing document.register() type extension behaviours through creat eElement()."); 10 description("Testing document.register() type extension behaviours through creat eElement().");
(...skipping 13 matching lines...) Expand all
24 // HTMLElement <- input <- x-bar <- x-qux 24 // HTMLElement <- input <- x-bar <- x-qux
25 // <- x-foo <- x-baz 25 // <- x-foo <- x-baz
26 // 26 //
27 27
28 fooConstructor = document.register('x-foo', { prototype: Object.create(HTMLEleme nt.prototype) }); 28 fooConstructor = document.register('x-foo', { prototype: Object.create(HTMLEleme nt.prototype) });
29 barConstructor = document.register('x-bar', { prototype: Object.create(HTMLInput Element.prototype) }); 29 barConstructor = document.register('x-bar', { prototype: Object.create(HTMLInput Element.prototype) });
30 bazConstructor = document.register('x-baz', { prototype: Object.create(fooConstr uctor.prototype) }); 30 bazConstructor = document.register('x-baz', { prototype: Object.create(fooConstr uctor.prototype) });
31 quxConstructor = document.register('x-qux', { prototype: Object.create(barConstr uctor.prototype) }); 31 quxConstructor = document.register('x-qux', { prototype: Object.create(barConstr uctor.prototype) });
32 32
33 // Same name, different local name 33 // Same name, different local name
34 shouldThrow("document.register('x-foo', { prototype: Object.create(HTMLDivElemen t.prototype) })", "'Error: InvalidStateError: DOM Exception 11'"); 34 shouldThrow("document.register('x-foo', { prototype: Object.create(HTMLDivElemen t.prototype) })", "'InvalidStateError: An attempt was made to use an object that is not, or is no longer, usable.'");
35 35
36 // 36 //
37 // Generated constructors 37 // Generated constructors
38 // 38 //
39 39
40 fooNewed = new fooConstructor(); 40 fooNewed = new fooConstructor();
41 fooOuterHTML = "'<x-foo></x-foo>'"; 41 fooOuterHTML = "'<x-foo></x-foo>'";
42 shouldBe("fooNewed.outerHTML", fooOuterHTML); 42 shouldBe("fooNewed.outerHTML", fooOuterHTML);
43 shouldBeTrue("fooNewed instanceof fooConstructor && fooNewed instanceof HTMLElem ent"); 43 shouldBeTrue("fooNewed instanceof fooConstructor && fooNewed instanceof HTMLElem ent");
44 shouldBeFalse("fooNewed instanceof HTMLUnknownElement"); 44 shouldBeFalse("fooNewed instanceof HTMLUnknownElement");
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 shouldBeTrue("barFooCreated instanceof HTMLElement"); 116 shouldBeTrue("barFooCreated instanceof HTMLElement");
117 117
118 fooCreatedNull = document.createElement("x-foo", null); 118 fooCreatedNull = document.createElement("x-foo", null);
119 shouldBe("fooCreatedNull.outerHTML", fooOuterHTML); 119 shouldBe("fooCreatedNull.outerHTML", fooOuterHTML);
120 shouldBeTrue("fooCreatedNull instanceof fooConstructor"); 120 shouldBeTrue("fooCreatedNull instanceof fooConstructor");
121 121
122 fooCreatedEmpty = document.createElement("x-foo", ""); 122 fooCreatedEmpty = document.createElement("x-foo", "");
123 shouldBe("fooCreatedEmpty.outerHTML", fooOuterHTML); 123 shouldBe("fooCreatedEmpty.outerHTML", fooOuterHTML);
124 shouldBeTrue("fooCreatedEmpty instanceof fooConstructor"); 124 shouldBeTrue("fooCreatedEmpty instanceof fooConstructor");
125 125
126 shouldThrow("document.createElement('@invalid', 'x-bar')", "'Error: InvalidChara cterError: DOM Exception 5'"); 126 shouldThrow("document.createElement('@invalid', 'x-bar')", "'InvalidCharacterErr or: An invalid or illegal character was specified, such as in an XML name.'");
127 127
128 // 128 //
129 // createElementNS() with type extensions 129 // createElementNS() with type extensions
130 // 130 //
131 131
132 fooCreatedNS = document.createElementNS("http://www.w3.org/1999/xhtml", "x-foo", null); 132 fooCreatedNS = document.createElementNS("http://www.w3.org/1999/xhtml", "x-foo", null);
133 shouldBe("fooCreatedNS.outerHTML", fooOuterHTML); 133 shouldBe("fooCreatedNS.outerHTML", fooOuterHTML);
134 shouldBeTrue("fooCreatedNS instanceof fooConstructor"); 134 shouldBeTrue("fooCreatedNS instanceof fooConstructor");
135 135
136 barCreatedNS = document.createElementNS("http://www.w3.org/1999/xhtml", "input", "x-bar"); 136 barCreatedNS = document.createElementNS("http://www.w3.org/1999/xhtml", "input", "x-bar");
137 shouldBe("barCreatedNS.outerHTML", barOuterHTML); 137 shouldBe("barCreatedNS.outerHTML", barOuterHTML);
138 shouldBeTrue("barCreatedNS instanceof barConstructor"); 138 shouldBeTrue("barCreatedNS instanceof barConstructor");
139 shouldBeTrue("isFormControl(barCreatedNS)"); 139 shouldBeTrue("isFormControl(barCreatedNS)");
140 140
141 shouldThrow("document.createElementNS('http://example.com/2013/no-such-namespace ', 'xml:lang', 'x-bar')", "'Error: NamespaceError: DOM Exception 14'"); 141 shouldThrow("document.createElementNS('http://example.com/2013/no-such-namespace ', 'xml:lang', 'x-bar')", "'NamespaceError: An attempt was made to create or cha nge an object in a way which is incorrect with regard to namespaces.'");
142 142
143 // parser 143 // parser
144 function createElementFromHTML(html) { 144 function createElementFromHTML(html) {
145 var container = document.createElement("div"); 145 var container = document.createElement("div");
146 container.innerHTML = html; 146 container.innerHTML = html;
147 return container.firstChild; 147 return container.firstChild;
148 } 148 }
149 149
150 fooParsed = createElementFromHTML('<x-foo>'); 150 fooParsed = createElementFromHTML('<x-foo>');
151 shouldBeTrue("fooParsed instanceof fooConstructor"); 151 shouldBeTrue("fooParsed instanceof fooConstructor");
(...skipping 12 matching lines...) Expand all
164 shouldBeTrue("namedBarParsed instanceof HTMLElement"); 164 shouldBeTrue("namedBarParsed instanceof HTMLElement");
165 165
166 divBarParsed = createElementFromHTML('<div is=x-bar>') 166 divBarParsed = createElementFromHTML('<div is=x-bar>')
167 shouldBeFalse("divBarParsed instanceof barConstructor"); 167 shouldBeFalse("divBarParsed instanceof barConstructor");
168 shouldBeTrue("divBarParsed instanceof HTMLDivElement"); 168 shouldBeTrue("divBarParsed instanceof HTMLDivElement");
169 169
170 </script> 170 </script>
171 <script src="../../js/resources/js-test-post.js"></script> 171 <script src="../../js/resources/js-test-post.js"></script>
172 </body> 172 </body>
173 </html> 173 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698