| // 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.web.events_test; |
| |
| import 'dart:html'; |
| import 'package:polymer/polymer.dart'; |
| import 'package:unittest/html_config.dart'; |
| import 'package:unittest/unittest.dart'; |
| |
| @CustomTag("test-b") |
| class TestB extends PolymerElement { |
| TestB.created() : super.created(); |
| |
| List clicks = []; |
| void clickHandler(event, detail, target) { |
| clicks.add('local click under $localName (id $id) on ${target.id}'); |
| } |
| } |
| |
| @CustomTag("test-a") |
| class TestA extends PolymerElement { |
| TestA.created() : super.created(); |
| |
| List clicks = []; |
| void clickHandler() { |
| clicks.add('host click on: $localName (id $id)'); |
| } |
| } |
| |
| @reflectable |
| class TestBase extends PolymerElement { |
| TestBase.created() : super.created(); |
| |
| List clicks = []; |
| void clickHandler(e) { |
| clicks.add('local click under $localName (id $id) on ${e.target.id}'); |
| } |
| } |
| |
| @CustomTag("test-c") |
| class TestC extends TestBase { |
| TestC.created() : super.created(); |
| } |
| |
| main() { |
| initPolymer(); |
| useHtmlConfiguration(); |
| |
| setUp(() => Polymer.onReady); |
| |
| test('host event', () { |
| // Note: this test is currently the only event in |
| // polymer/test/js/events.js at commit #7936ff8 |
| var testA = query('#a'); |
| expect(testA.clicks, isEmpty); |
| testA.click(); |
| expect(testA.clicks, ['host click on: test-a (id a)']); |
| }); |
| |
| test('local event', () { |
| var testB = query('#b'); |
| expect(testB.clicks, isEmpty); |
| testB.click(); |
| expect(testB.clicks, []); |
| var b1 = testB.shadowRoot.query('#b-1'); |
| b1.click(); |
| expect(testB.clicks, []); |
| var b2 = testB.shadowRoot.query('#b-2'); |
| b2.click(); |
| expect(testB.clicks, ['local click under test-b (id b) on b-2']); |
| }); |
| |
| test('event on superclass', () { |
| var testC = query('#c'); |
| expect(testC.clicks, isEmpty); |
| testC.click(); |
| expect(testC.clicks, []); |
| var c1 = testC.shadowRoot.query('#c-1'); |
| c1.click(); |
| expect(testC.clicks, []); |
| var c2 = testC.shadowRoot.query('#c-2'); |
| c2.click(); |
| expect(testC.clicks, ['local click under test-c (id c) on c-2']); |
| }); |
| } |