| <!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> |