| Index: packages/polymer/test/property_change_test.dart
|
| diff --git a/packages/polymer/test/property_change_test.dart b/packages/polymer/test/property_change_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4bb656422e1b8e484e2080b066df678ddb47ac18
|
| --- /dev/null
|
| +++ b/packages/polymer/test/property_change_test.dart
|
| @@ -0,0 +1,57 @@
|
| +// 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.property_change_test;
|
| +
|
| +import 'dart:async';
|
| +import 'package:polymer/polymer.dart';
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:unittest/html_config.dart';
|
| +
|
| +// Dart note: this is a tad different from the JS code. We don't support putting
|
| +// expandos on Dart objects and then observing them. On the other hand, we want
|
| +// to make sure that superclass observers are correctly detected.
|
| +
|
| +final _zonk = new Completer();
|
| +final _bar = new Completer();
|
| +
|
| +@reflectable
|
| +class XBase extends PolymerElement {
|
| + @observable String zonk = '';
|
| +
|
| + XBase.created() : super.created();
|
| +
|
| + zonkChanged() {
|
| + expect(zonk, 'zonk', reason: 'change calls *Changed on superclass');
|
| + _zonk.complete();
|
| + }
|
| +}
|
| +
|
| +@CustomTag('x-test')
|
| +class XTest extends XBase {
|
| + @observable String bar = '';
|
| +
|
| + XTest.created() : super.created();
|
| +
|
| + ready() {
|
| + bar = 'bar';
|
| + new Future(() {
|
| + zonk = 'zonk';
|
| + });
|
| + }
|
| +
|
| + barChanged() {
|
| + expect(bar, 'bar', reason: 'change in ready calls *Changed');
|
| + _bar.complete();
|
| + }
|
| +}
|
| +
|
| +main() => initPolymer().then((zone) => zone.run(() {
|
| + useHtmlConfiguration();
|
| +
|
| + setUp(() => Polymer.onReady);
|
| +
|
| + test('bar change detected', () => _bar.future);
|
| + test('zonk change detected', () => _zonk.future);
|
| +}));
|
|
|