Chromium Code Reviews| 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 '../../pkg/unittest/lib/unittest.dart'; | 6 import '../../pkg/unittest/lib/unittest.dart'; |
| 7 import '../../pkg/unittest/lib/html_individual_config.dart'; | 7 import '../../pkg/unittest/lib/html_individual_config.dart'; |
| 8 import 'dart:html'; | 8 import 'dart:html'; |
| 9 | 9 |
| 10 class CustomMixin { | 10 class CustomMixin { |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 83 }); | 83 }); |
| 84 }); | 84 }); |
| 85 | 85 |
| 86 group('preregister', () { | 86 group('preregister', () { |
| 87 // TODO(vsm): Modify this test once we agree on the proper semantics. | 87 // TODO(vsm): Modify this test once we agree on the proper semantics. |
| 88 test('pre-registration construction', () { | 88 test('pre-registration construction', () { |
| 89 var tag = nextTag; | 89 var tag = nextTag; |
| 90 var dom = new Element.html('<div><$tag></$tag></div>'); | 90 var dom = new Element.html('<div><$tag></$tag></div>'); |
| 91 var preElement = dom.children[0]; | 91 var preElement = dom.children[0]; |
| 92 expect(preElement, isNotNull); | 92 expect(preElement, isNotNull); |
| 93 expect(preElement is UnknownElement, isTrue); | 93 expect(preElement is HtmlElement, isTrue); |
| 94 expect(preElement is CustomType, isFalse); | |
| 94 var firedOnPre = false; | 95 var firedOnPre = false; |
| 95 preElement.onFocus.listen((_) { | 96 preElement.onFocus.listen((_) { |
| 96 firedOnPre = true; | 97 firedOnPre = true; |
| 97 }); | 98 }); |
| 98 | 99 |
| 99 document.register(tag, CustomType); | 100 document.register(tag, CustomType); |
| 100 | 101 |
| 101 var postElement = dom.children[0]; | 102 var postElement = dom.children[0]; |
| 102 expect(postElement, isNotNull); | 103 expect(postElement, isNotNull); |
| 103 expect(postElement is CustomType, isTrue); | 104 expect(postElement is CustomType, isTrue); |
| 104 expect(postElement.onCreatedCalled, isTrue); | 105 expect(postElement.onCreatedCalled, isTrue); |
| 105 | 106 |
| 106 // Element from first query remains an UnknownElement. | 107 // Element from first query remains an UnknownElement. |
| 107 expect(preElement is UnknownElement, isTrue); | 108 expect(preElement is HtmlElement, isTrue); |
| 108 expect(preElement.parent, isNull); | 109 expect(preElement.parent, dom); |
| 109 expect(dom.children.length, 1); | 110 expect(dom.children.length, 1); |
| 110 | 111 |
| 111 var firedOnPost = false; | 112 var firedOnPost = false; |
| 112 postElement.onFocus.listen((_) { | 113 postElement.onFocus.listen((_) { |
| 113 firedOnPost = true; | 114 firedOnPost = true; |
| 114 }); | 115 }); |
| 115 // Event handlers should not persist to new element. | 116 // Event handlers should not persist to new element. |
| 116 postElement.dispatchEvent(new Event('focus')); | 117 postElement.dispatchEvent(new Event('focus')); |
| 117 expect(firedOnPre, isFalse); | 118 expect(firedOnPre, isTrue); |
|
vsm
2013/08/16 18:28:51
This doesn't match the comment on line #116.
blois
2013/08/16 19:45:48
Done.
| |
| 118 expect(firedOnPost, isTrue); | 119 expect(firedOnPost, isTrue); |
| 119 }); | 120 }); |
| 120 }); | 121 }); |
| 121 | 122 |
| 122 group('innerHtml', () { | 123 group('innerHtml', () { |
| 123 test('query', () { | 124 test('query', () { |
| 124 var tag = nextTag; | 125 var tag = nextTag; |
| 125 document.register(tag, CustomType); | 126 document.register(tag, CustomType); |
| 126 var element = new DivElement(); | 127 var element = new DivElement(); |
| 127 element.innerHtml = '<$tag></$tag>'; | 128 element.innerHtml = '<$tag></$tag>'; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 163 test('can invoke mixin methods', () { | 164 test('can invoke mixin methods', () { |
| 164 var tag = nextTag; | 165 var tag = nextTag; |
| 165 document.register(tag, CustomType); | 166 document.register(tag, CustomType); |
| 166 | 167 |
| 167 var element = new Element.tag(tag); | 168 var element = new Element.tag(tag); |
| 168 element.invokeMixinMethod(); | 169 element.invokeMixinMethod(); |
| 169 expect(element.mixinMethodCalled, isTrue); | 170 expect(element.mixinMethodCalled, isTrue); |
| 170 }); | 171 }); |
| 171 }); | 172 }); |
| 172 } | 173 } |
| OLD | NEW |