| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library custom_elements_test; | 5 library custom_elements_test; |
| 6 import 'dart:async'; | 6 import 'dart:async'; |
| 7 import 'dart:html'; | 7 import 'dart:html'; |
| 8 import 'package:unittest/html_individual_config.dart'; | 8 import 'package:unittest/html_individual_config.dart'; |
| 9 import 'package:unittest/unittest.dart'; | 9 import 'package:unittest/unittest.dart'; |
| 10 import 'utils.dart'; | 10 import 'utils.dart'; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 var preElement = dom.children[0]; | 111 var preElement = dom.children[0]; |
| 112 expect(preElement, isNotNull); | 112 expect(preElement, isNotNull); |
| 113 expect(preElement is HtmlElement, isTrue); | 113 expect(preElement is HtmlElement, isTrue); |
| 114 expect(preElement is CustomType, isFalse); | 114 expect(preElement is CustomType, isFalse); |
| 115 var firedOnPre = false; | 115 var firedOnPre = false; |
| 116 preElement.onFocus.listen((_) { | 116 preElement.onFocus.listen((_) { |
| 117 firedOnPre = true; | 117 firedOnPre = true; |
| 118 }); | 118 }); |
| 119 | 119 |
| 120 document.register(tag, CustomType); | 120 document.register(tag, CustomType); |
| 121 Platform.upgradeCustomElements(dom); | 121 upgradeCustomElements(dom); |
| 122 | 122 |
| 123 var postElement = dom.children[0]; | 123 var postElement = dom.children[0]; |
| 124 expect(postElement, isNotNull); | 124 expect(postElement, isNotNull); |
| 125 expect(postElement is CustomType, isTrue); | 125 expect(postElement is CustomType, isTrue); |
| 126 expect(postElement.createdCalled, isTrue); | 126 expect(postElement.createdCalled, isTrue); |
| 127 | 127 |
| 128 // Element from first query remains an UnknownElement. | 128 // Element from first query remains an UnknownElement. |
| 129 expect(preElement is HtmlElement, isTrue); | 129 expect(preElement is HtmlElement, isTrue); |
| 130 expect(preElement.parent, dom); | 130 expect(preElement.parent, dom); |
| 131 expect(dom.children.length, 1); | 131 expect(dom.children.length, 1); |
| 132 | 132 |
| 133 var firedOnPost = false; | 133 var firedOnPost = false; |
| 134 postElement.onFocus.listen((_) { | 134 postElement.onFocus.listen((_) { |
| 135 firedOnPost = true; | 135 firedOnPost = true; |
| 136 }); | 136 }); |
| 137 // Event handlers persist on old and new element. | 137 // Event handlers persist on old and new element. |
| 138 postElement.dispatchEvent(new Event('focus')); | 138 postElement.dispatchEvent(new Event('focus')); |
| 139 expect(firedOnPre, isTrue); | 139 expect(firedOnPre, isTrue); |
| 140 expect(firedOnPost, isTrue); | 140 expect(firedOnPost, isTrue); |
| 141 }); | 141 }); |
| 142 });*/ | 142 });*/ |
| 143 | 143 |
| 144 group('innerHtml', () { | 144 group('innerHtml', () { |
| 145 test('query', () { | 145 test('query', () { |
| 146 var tag = nextTag; | 146 var tag = nextTag; |
| 147 document.register(tag, CustomType); | 147 document.register(tag, CustomType); |
| 148 var element = new DivElement(); | 148 var element = new DivElement(); |
| 149 element.setInnerHtml('<$tag></$tag>', | 149 element.setInnerHtml('<$tag></$tag>', |
| 150 treeSanitizer: new NullTreeSanitizer()); | 150 treeSanitizer: new NullTreeSanitizer()); |
| 151 » Platform.upgradeCustomElements(element); | 151 » upgradeCustomElements(element); |
| 152 document.body.nodes.add(element); | 152 document.body.nodes.add(element); |
| 153 var queried = query(tag); | 153 var queried = query(tag); |
| 154 | 154 |
| 155 expect(queried, isNotNull); | 155 expect(queried, isNotNull); |
| 156 expect(queried is CustomType, isTrue); | 156 expect(queried is CustomType, isTrue); |
| 157 expect(queried.createdCalled, isTrue); | 157 expect(queried.createdCalled, isTrue); |
| 158 }); | 158 }); |
| 159 | 159 |
| 160 test('query id', () { | 160 test('query id', () { |
| 161 var tag = nextTag; | 161 var tag = nextTag; |
| 162 document.register(tag, CustomType); | 162 document.register(tag, CustomType); |
| 163 var element = new DivElement(); | 163 var element = new DivElement(); |
| 164 element.setInnerHtml('<$tag id="someid"></$tag>', | 164 element.setInnerHtml('<$tag id="someid"></$tag>', |
| 165 treeSanitizer: new NullTreeSanitizer()); | 165 treeSanitizer: new NullTreeSanitizer()); |
| 166 » Platform.upgradeCustomElements(element); | 166 » upgradeCustomElements(element); |
| 167 document.body.nodes.add(element); | 167 document.body.nodes.add(element); |
| 168 var queried = query('#someid'); | 168 var queried = query('#someid'); |
| 169 | 169 |
| 170 expect(queried, isNotNull); | 170 expect(queried, isNotNull); |
| 171 expect(queried is CustomType, isTrue); | 171 expect(queried is CustomType, isTrue); |
| 172 expect(queried.id, "someid"); | 172 expect(queried.id, "someid"); |
| 173 }); | 173 }); |
| 174 }); | 174 }); |
| 175 | 175 |
| 176 group('lifecycle', () { | 176 group('lifecycle', () { |
| 177 test('created', () { | 177 test('created', () { |
| 178 int oldCount = customCreatedCount; | 178 int oldCount = customCreatedCount; |
| 179 var tag = nextTag; | 179 var tag = nextTag; |
| 180 document.register(tag, CustomType); | 180 document.register(tag, CustomType); |
| 181 var element = new DivElement(); | 181 var element = new DivElement(); |
| 182 element.setInnerHtml('<$tag></$tag>', | 182 element.setInnerHtml('<$tag></$tag>', |
| 183 treeSanitizer: new NullTreeSanitizer()); | 183 treeSanitizer: new NullTreeSanitizer()); |
| 184 Platform.upgradeCustomElements(element); | 184 upgradeCustomElements(element); |
| 185 document.body.nodes.add(element); | 185 document.body.nodes.add(element); |
| 186 expect(customCreatedCount, oldCount + 1); | 186 expect(customCreatedCount, oldCount + 1); |
| 187 }); | 187 }); |
| 188 }); | 188 }); |
| 189 | 189 |
| 190 group('mixins', () { | 190 group('mixins', () { |
| 191 test('can invoke mixin methods', () { | 191 test('can invoke mixin methods', () { |
| 192 var tag = nextTag; | 192 var tag = nextTag; |
| 193 document.register(tag, CustomType); | 193 document.register(tag, CustomType); |
| 194 | 194 |
| 195 var element = new Element.tag(tag); | 195 var element = new Element.tag(tag); |
| 196 element.invokeMixinMethod(); | 196 element.invokeMixinMethod(); |
| 197 expect(element.mixinMethodCalled, isTrue); | 197 expect(element.mixinMethodCalled, isTrue); |
| 198 }); | 198 }); |
| 199 }); | 199 }); |
| 200 } | 200 } |
| OLD | NEW |