| Index: packages/polymer/test/auto_binding_test.dart
|
| diff --git a/packages/polymer/test/auto_binding_test.dart b/packages/polymer/test/auto_binding_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0669933bd9c762e742a76a34ef891698778aca10
|
| --- /dev/null
|
| +++ b/packages/polymer/test/auto_binding_test.dart
|
| @@ -0,0 +1,60 @@
|
| +// Copyright (c) 2014, 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.
|
| +
|
| +import 'dart:async';
|
| +import 'dart:html';
|
| +import 'package:polymer/auto_binding.dart';
|
| +import 'package:polymer/polymer.dart';
|
| +import 'package:unittest/unittest.dart';
|
| +import 'package:unittest/html_config.dart';
|
| +
|
| +class TestModel {
|
| + var greeting = 'Hi';
|
| + eventAction(e) {
|
| + e.detail.add('handled');
|
| + }
|
| +}
|
| +
|
| +main() => initPolymer().then((zone) => zone.run(() {
|
| + useHtmlConfiguration();
|
| +
|
| + setUp(() => Polymer.onReady);
|
| +
|
| + test('elements upgraded', () {
|
| + AutoBindingElement template = document.getElementById('one');
|
| + template.model = new TestModel();
|
| +
|
| + var completer = new Completer();
|
| + var events = 0;
|
| + window.addEventListener('template-bound', (e) {
|
| + events++;
|
| + if (e.target.id == 'one') {
|
| + expect(e.target, template);
|
| +
|
| + var t = template;
|
| + var h = t.$['h'];
|
| + expect(h.text, t.model.greeting, reason: 'binding applied');
|
| + var ce = t.fire('tap', onNode: h, detail: []);
|
| + expect(ce.detail, ['handled'], reason: 'element event handler fired');
|
| + }
|
| +
|
| + if (events == 3) completer.complete();
|
| + });
|
| +
|
| + /// test dynamic creation
|
| + new Future(() {
|
| + var d = new DivElement();
|
| + d.setInnerHtml('<template is="auto-binding">Dynamical'
|
| + ' <input value="{{value}}"><div>{{value}}</div></template>',
|
| + treeSanitizer: new _NullSanitizer());
|
| + document.body.append(d);
|
| + });
|
| +
|
| + return completer.future;
|
| + });
|
| +}));
|
| +
|
| +class _NullSanitizer implements NodeTreeSanitizer {
|
| + sanitizeTree(Node node) {}
|
| +}
|
|
|