| OLD | NEW | 
|    1 <!DOCTYPE html> |    1 <!DOCTYPE html> | 
|    2 <html> |    2 <html> | 
|    3 <head> |    3 <head> | 
|    4 <script src="../../../resources/js-test.js"></script> |    4 <script src="../../../resources/js-test.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.registerElement() type extension behaviours throug
     h createElement().'); | 
|   11  |   11  | 
|   12 function isFormControl(element) |   12 function isFormControl(element) | 
|   13 { |   13 { | 
|   14     testForm.appendChild(element); |   14     testForm.appendChild(element); | 
|   15     return element.form == testForm; |   15     return element.form == testForm; | 
|   16 } |   16 } | 
|   17  |   17  | 
|   18 if (window.testRunner) |   18 if (window.testRunner) | 
|   19     testRunner.dumpAsText(); |   19     testRunner.dumpAsText(); | 
|   20  |   20  | 
|   21 // |   21 // | 
|   22 // Inheritance here is shaped like this: |   22 // Inheritance here is shaped like this: | 
|   23 // |   23 // | 
|   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.registerElement('x-foo', { prototype: Object.create(HT
     MLElement.prototype) }); | 
|   29 barConstructor = document.register('x-bar', { extends: 'input', prototype: Objec
     t.create(HTMLInputElement.prototype) }); |   29 barConstructor = document.registerElement('x-bar', { extends: 'input', prototype
     : Object.create(HTMLInputElement.prototype) }); | 
|   30 bazConstructor = document.register('x-baz', { prototype: Object.create(fooConstr
     uctor.prototype) }); |   30 bazConstructor = document.registerElement('x-baz', { prototype: Object.create(fo
     oConstructor.prototype) }); | 
|   31 quxConstructor = document.register('x-qux', { extends: 'input', prototype: Objec
     t.create(barConstructor.prototype) }); |   31 quxConstructor = document.registerElement('x-qux', { extends: 'input', prototype
     : Object.create(barConstructor.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) })', '"InvalidStateError: Failed to execute \'register\' on \'Docum
     ent\': Registration failed for type \'x-foo\'. A type with that name is already 
     registered."'); |   34 shouldThrow('document.registerElement("x-foo", { prototype: Object.create(HTMLDi
     vElement.prototype) })', '"InvalidStateError: Failed to execute \'registerElemen
     t\' on \'Document\': Registration failed for type \'x-foo\'. A type with that na
     me is already registered."'); | 
|   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 shouldBeEqualToString('fooNewed.outerHTML', fooOuterHTML); |   42 shouldBeEqualToString('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 118 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  163 shouldBeFalse('namedBarParsed instanceof HTMLUnknownElement'); |  163 shouldBeFalse('namedBarParsed instanceof HTMLUnknownElement'); | 
|  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 </body> |  171 </body> | 
|  172 </html> |  172 </html> | 
| OLD | NEW |