| Index: samples/third_party/todomvc/test/markdone_test.dart
|
| diff --git a/samples/third_party/todomvc/test/markdone_test.dart b/samples/third_party/todomvc/test/markdone_test.dart
|
| index 1622a438557bc7d84a44afa9f00663920e922f8e..e1318bd3b9b3754836c302e2b8cf2a73b1a9f8a2 100644
|
| --- a/samples/third_party/todomvc/test/markdone_test.dart
|
| +++ b/samples/third_party/todomvc/test/markdone_test.dart
|
| @@ -9,8 +9,7 @@ import 'dart:html';
|
| import 'package:polymer/polymer.dart';
|
| import 'package:unittest/unittest.dart';
|
| import 'package:unittest/html_config.dart';
|
| -import '../web/elements/td_model.dart';
|
| -import 'utils.dart';
|
| +import '../web/model.dart';
|
|
|
| Node findWithText(Node node, String text) {
|
| if (node.text == text) return node;
|
| @@ -28,6 +27,22 @@ Node findWithText(Node node, String text) {
|
| return null;
|
| }
|
|
|
| +Node findShadowHost(Node node, ShadowRoot root) {
|
| + if (node is Element) {
|
| + var shadowRoot = (node as Element).shadowRoot;
|
| + if (shadowRoot == root) return node;
|
| + if (shadowRoot != null) {
|
| + var r = findShadowHost(shadowRoot, root);
|
| + if (r != null) return r;
|
| + }
|
| + }
|
| + for (var n in node.nodes) {
|
| + var r = findShadowHost(n, root);
|
| + if (r != null) return r;
|
| + }
|
| + return null;
|
| +}
|
| +
|
| /**
|
| * This test runs the TodoMVC app, adds a few todos, marks some as done
|
| * programatically, and clicks on a checkbox to mark others via the UI.
|
| @@ -36,19 +51,13 @@ main() {
|
| initPolymer();
|
| useHtmlConfiguration();
|
|
|
| - TodoModel model;
|
| -
|
| - setUp(() => Polymer.onReady.then((_) {
|
| - model = querySelector('td-model');
|
| - return onPropertyInit(model, 'items');
|
| - }));
|
| + setUp(() => Polymer.onReady);
|
|
|
| test('mark done', () {
|
| - model.items
|
| - ..add(new Todo('one (unchecked)'))
|
| - ..add(new Todo('two (unchecked)'))
|
| - ..add(new Todo('three (checked)')..completed = true)
|
| - ..add(new Todo('four (checked)'));
|
| + appModel.todos.add(new Todo('one (unchecked)'));
|
| + appModel.todos.add(new Todo('two (unchecked)'));
|
| + appModel.todos.add(new Todo('three (checked)')..done = true);
|
| + appModel.todos.add(new Todo('four (checked)'));
|
|
|
| return new Future(() {
|
| var body = querySelector('body');
|
| @@ -56,8 +65,8 @@ main() {
|
| var label = findWithText(body, 'four (checked)');
|
| expect(label is LabelElement, true, reason: 'text is in a label: $label');
|
|
|
| - ShadowRoot host = label.parentNode.parentNode;
|
| - var node = host.querySelector('input');
|
| + var host = findShadowHost(body, label.parentNode);
|
| + var node = host.parent.querySelector('input');
|
| expect(node is InputElement, true, reason: 'node is a checkbox');
|
| expect(node.type, 'checkbox', reason: 'node type is checkbox');
|
| expect(node.checked, isFalse, reason: 'element is unchecked');
|
|
|