Index: test/custom_element_proxy_test.dart |
diff --git a/test/custom_element_proxy_test.dart b/test/custom_element_proxy_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4e3c188dcb4ad699f3e1be4d32b3b64afc1c74ea |
--- /dev/null |
+++ b/test/custom_element_proxy_test.dart |
@@ -0,0 +1,63 @@ |
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+library custom_element_proxy_test; |
+ |
+import 'dart:html'; |
+import 'dart:js'; |
+import 'package:initialize/initialize.dart' as init; |
+import 'package:unittest/html_config.dart'; |
+import 'package:unittest/unittest.dart'; |
+import 'package:web_components/custom_element_proxy.dart'; |
+ |
+@CustomElementProxy('basic-element') |
+class BasicElement extends HtmlElement { |
+ BasicElement.created() : super.created(); |
+ |
+ factory BasicElement() => document.createElement('basic-element'); |
+ |
+ bool get isBasicElement => |
+ new JsObject.fromBrowserObject(this)['isBasicElement']; |
+} |
+ |
+@CustomElementProxy('extended-element', extendsTag: 'input') |
+class ExtendedElement extends InputElement { |
+ ExtendedElement.created() : super.created(); |
+ |
+ factory ExtendedElement() => |
+ document.createElement('input', 'extended-element'); |
+ |
+ bool get isExtendedElement => |
+ new JsObject.fromBrowserObject(this)['isExtendedElement']; |
+} |
+ |
+main() { |
+ useHtmlConfiguration(); |
+ init.run(); |
+ |
+ var container = querySelector('#container') as DivElement; |
+ |
+ tearDown(() { |
+ container.children.clear(); |
+ }); |
+ |
+ test('basic custom element', () { |
+ container.append(new BasicElement()); |
+ container.appendHtml('<basic-element></basic_element>'); |
+ var elements = container.querySelectorAll('basic-element'); |
+ for (var element in elements) { |
+ expect(element.runtimeType, BasicElement); |
+ expect(element.isBasicElement, isTrue); |
+ } |
+ }); |
+ |
+ test('extends custom element', () { |
+ container.append(new ExtendedElement()); |
+ container.appendHtml('<input is="extended-element" />'); |
+ var elements = container.querySelectorAll('extended-element'); |
+ for (var element in elements) { |
+ expect(element.runtimeType, ExtendedElement); |
+ expect(element.isExtendedElement, isTrue); |
+ } |
+ }); |
+} |