Index: pkg/polymer/test/data/unit/events_test.html |
diff --git a/pkg/polymer/test/data/unit/events_test.html b/pkg/polymer/test/data/unit/events_test.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cbf33d145180f6a5f9b8c9d94b31fd3b5c6d4721 |
--- /dev/null |
+++ b/pkg/polymer/test/data/unit/events_test.html |
@@ -0,0 +1,97 @@ |
+<!doctype html> |
+<!-- |
+ 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. |
+--> |
+<html> |
+ <head> |
+ <title>event path</title> |
+ <script src="packages/polymer/testing/testing.js"></script> |
+ <script src="packages/unittest/test_controller.js"></script> |
+ <!-- |
+ Test ported from: |
+ https://github.com/Polymer/polymer/blob/7936ff8/test/js/events.js |
+ |
+ TODO(sigmund): when we have support for mutation observers, render all of |
+ the test in Dart (like events.js does in JS) |
+ --> |
+ </head> |
+ <body> |
+ |
+ <polymer-element name="test-a" on-click="clickHandler"> |
+ <template></template> |
+ <script type="application/dart"> |
+ import 'package:polymer/polymer.dart'; |
+ |
+ @CustomTag("test-a") |
+ class TestA extends PolymerElement { |
+ List clicks = []; |
+ void clickHandler() { |
+ clicks.add('host click on: $localName (id $id)'); |
+ } |
+ } |
+ </script> |
+ </polymer-element> |
+ |
+ <polymer-element name="test-b"> |
+ <template> |
+ <div> |
+ <span id="b-1">1</span> |
+ <span id="b-2" on-click="clickHandler">2</span> |
+ </div> |
+ </template> |
+ <script type="application/dart"> |
+ import 'package:polymer/polymer.dart'; |
+ |
+ @CustomTag("test-b") |
+ class TestB extends PolymerElement { |
+ List clicks = []; |
+ void clickHandler(event, detail, target) { |
+ clicks.add('local click under $localName (id $id) on ${target.id}'); |
+ } |
+ } |
+ </script> |
+ </polymer-element> |
+ |
+ <test-a id="a"></test-a> |
+ <test-b id="b"></test-b> |
+ |
+ <script type="application/dart"> |
+ import 'dart:html'; |
+ import 'dart:async'; |
+ import 'package:unittest/unittest.dart'; |
+ import 'package:unittest/html_config.dart'; |
+ |
+ main() { |
+ useHtmlConfiguration(); |
+ |
+ test('host event', () { |
+ // Note: this test is currently the only event in |
+ // polymer/test/js/events.js at commit #7936ff8 |
+ Timer.run(expectAsync0(() { |
+ var testA = query('#a'); |
+ expect(testA.xtag.clicks, isEmpty); |
+ testA.click(); |
+ expect(testA.xtag.clicks, ['host click on: test-a (id a)']); |
+ })); |
+ }); |
+ |
+ test('local event', () { |
+ Timer.run(expectAsync0(() { |
+ var testB = query('#b'); |
+ expect(testB.xtag.clicks, isEmpty); |
+ testB.click(); |
+ expect(testB.xtag.clicks, []); |
+ var b1 = testB.shadowRoot.query('#b-1'); |
+ b1.click(); |
+ expect(testB.xtag.clicks, []); |
+ var b2 = testB.shadowRoot.query('#b-2'); |
+ b2.click(); |
+ expect(testB.xtag.clicks, ['local click under test-b (id b) on b-2']); |
+ })); |
+ }); |
+ } |
+ </script> |
+ </body> |
+</html> |