|
42 | 42 |
|
43 | 43 | }); |
44 | 44 |
|
45 | | - suite('constructor', function() { |
| 45 | + suite('type checking & constructor', function() { |
| 46 | + |
| 47 | + test('Polymer.isInstance for non-instance', function() { |
| 48 | + var el = document.createElement('div'); |
| 49 | + assert.isTrue(Polymer.instanceof(el, HTMLElement)); |
| 50 | + assert.isTrue(Polymer.instanceof(el, HTMLDivElement)); |
| 51 | + assert.isFalse(Polymer.isInstance(el)); |
| 52 | + }); |
| 53 | + |
| 54 | + test('document.createElement', function() { |
| 55 | + var MyElement = Polymer({is: 'my-basic'}); |
| 56 | + var el = document.createElement('my-basic'); |
| 57 | + assert.isTrue(Polymer.instanceof(el, HTMLElement)); |
| 58 | + assert.isTrue(Polymer.instanceof(el, MyElement)); |
| 59 | + assert.isTrue(Polymer.isInstance(el)); |
| 60 | + }); |
46 | 61 |
|
47 | 62 | test('normal constructor', function() { |
48 | 63 | var MyElement = Polymer({is: 'my-element'}); |
|
53 | 68 | assert.instanceOf(el, MyElement, 'Instance of MyElement'); |
54 | 69 | } |
55 | 70 | assert.instanceOf(el, HTMLElement, 'Instance of HTMLElement'); |
| 71 | + assert.isTrue(Polymer.instanceof(el, HTMLElement)); |
| 72 | + assert.isTrue(Polymer.instanceof(el, MyElement)); |
| 73 | + assert.isTrue(Polymer.isInstance(el)); |
56 | 74 | }); |
57 | 75 |
|
58 | 76 | test('type-extension constructor', function() { |
|
62 | 80 | if (Object.__proto__) { |
63 | 81 | // instanceof Constructor only supported where proto swizzling is possible |
64 | 82 | assert.instanceOf(el, MyInput, 'Instance of MyInput'); |
| 83 | + assert.instanceOf(el, HTMLElement, 'Instance of HTMLInputElement'); |
65 | 84 | } |
66 | | - assert.instanceOf(el, HTMLElement, 'Instance of HTMLInputElement'); |
| 85 | + assert.isTrue(Polymer.instanceof(el, HTMLInputElement)); |
| 86 | + assert.isTrue(Polymer.instanceof(el, HTMLElement)); |
| 87 | + assert.isTrue(Polymer.instanceof(el, MyInput)); |
| 88 | + assert.isTrue(Polymer.isInstance(el)); |
67 | 89 | }); |
68 | 90 |
|
69 | 91 | test('custom constructor', function() { |
|
81 | 103 | assert.instanceOf(el, HTMLElement, 'Instance of HTMLElement'); |
82 | 104 | } |
83 | 105 | assert.equal(el.title, 'my title', 'Argument passed to constructor'); |
| 106 | + assert.isTrue(Polymer.instanceof(el, HTMLElement)); |
| 107 | + assert.isTrue(Polymer.instanceof(el, MyElement2)); |
| 108 | + assert.isTrue(Polymer.isInstance(el)); |
84 | 109 | }); |
85 | 110 |
|
86 | 111 | }); |
|
0 commit comments