blob: b563814516a79a91a594554cb24f79245e615da1 [file] [log] [blame]
// 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().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 == 2) completer.complete();
});
return completer.future;
});
});