Index: packages/polymer/test/event_controller_test.dart |
diff --git a/packages/polymer/test/event_controller_test.dart b/packages/polymer/test/event_controller_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2ecda2d4874368729bc2bbe0e63014cd95f62e51 |
--- /dev/null |
+++ b/packages/polymer/test/event_controller_test.dart |
@@ -0,0 +1,74 @@ |
+// Copyright (c) 2013, 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 polymer.test.event_controller_test; |
+ |
+import 'dart:async'; |
+import 'dart:js'; |
+import 'dart:html'; |
+import 'package:polymer/polymer.dart'; |
+import 'package:unittest/unittest.dart'; |
+import 'package:unittest/html_config.dart'; |
+ |
+var clickButtonCount = 0; |
+var clickXDartCount = 0; |
+var clickXJsCount = 0; |
+ |
+@CustomTag('x-dart') |
+class XDart extends PolymerElement { |
+ XDart.created() : super.created(); |
+} |
+ |
+@CustomTag('x-controller') |
+class XController extends PolymerElement { |
+ XController.created() : super.created(); |
+ clickButton() { |
+ ++clickButtonCount; |
+ } |
+ clickXDart() { |
+ ++clickXDartCount; |
+ } |
+ clickXJs() { |
+ ++clickXJsCount; |
+ } |
+} |
+ |
+main() => initPolymer().then((zone) => zone.run(() { |
+ useHtmlConfiguration(); |
+ |
+ setUp(() => Polymer.onReady); |
+ |
+ test('native element eventController is used properly', () { |
+ var controller = querySelector('x-controller'); |
+ var button = controller.shadowRoot.querySelector('button'); |
+ new JsObject.fromBrowserObject(button)['eventController'] = controller; |
+ button.remove(); |
+ querySelector('body').append(button); |
+ |
+ button.click(); |
+ expect(clickButtonCount, 1); |
+ }); |
+ |
+ test('dart polymer element eventController is used properly', () { |
+ var controller = querySelector('x-controller'); |
+ XDart xDart = controller.shadowRoot.querySelector('x-dart'); |
+ xDart.eventController = controller; |
+ xDart.remove(); |
+ querySelector('body').append(xDart); |
+ |
+ xDart.click(); |
+ expect(clickXDartCount, 1); |
+ }); |
+ |
+ test('js polymer elements eventController is used properly', () { |
+ var controller = querySelector('x-controller'); |
+ var xJs = controller.shadowRoot.querySelector('x-js'); |
+ new JsObject.fromBrowserObject(xJs)['eventController'] = controller; |
+ xJs.remove(); |
+ querySelector('body').append(xJs); |
+ |
+ xJs.click(); |
+ expect(clickXJsCount, 1); |
+ }); |
+})); |