| Index: example/todomvc/test/todomvc_markdone_test.html
|
| diff --git a/example/todomvc/test/todomvc_markdone_test.html b/example/todomvc/test/todomvc_markdone_test.html
|
| index c24b79d655f61fd35bb0930a021aee4e5bde653e..7e65a9b1b0c2119136b1c2688ce8a140da391ff3 100644
|
| --- a/example/todomvc/test/todomvc_markdone_test.html
|
| +++ b/example/todomvc/test/todomvc_markdone_test.html
|
| @@ -29,8 +29,11 @@ import '../web/model.dart';
|
|
|
| Node findWithText(Node node, String text) {
|
| if (node.text == text) return node;
|
| - if (node is Element && node.shadowRoot != null) {
|
| - var r = findWithText(node.shadowRoot, text);
|
| + if (node is Element && (node as Element).localName == 'polymer-element') {
|
| + return null;
|
| + }
|
| + if (node is Element && (node as Element).shadowRoot != null) {
|
| + var r = findWithText((node as Element).shadowRoot, text);
|
| if (r != null) return r;
|
| }
|
| for (var n in node.nodes) {
|
| @@ -42,7 +45,7 @@ Node findWithText(Node node, String text) {
|
|
|
| Node findShadowHost(Node node, ShadowRoot root) {
|
| if (node is Element) {
|
| - var shadowRoot = node.shadowRoot;
|
| + var shadowRoot = (node as Element).shadowRoot;
|
| if (shadowRoot == root) return node;
|
| if (shadowRoot != null) {
|
| var r = findShadowHost(shadowRoot, root);
|
| @@ -65,23 +68,27 @@ main() {
|
| appModel.todos.add(new Todo('three (checked)')..done = true);
|
| appModel.todos.add(new Todo('four (checked)'));
|
| deliverChangeRecords();
|
| + // TODO(sigmund): investigate why is not enough to do Timer.run
|
| + new Timer(new Duration(milliseconds: 200), () {
|
| + // Note: use query because "document" is unwrapped in ShadowDOM polyfill.
|
| + var body = query('body');
|
|
|
| - // Note: use query because "document" is unwrapped in ShadowDOM polyfill.
|
| - var body = query('body');
|
| -
|
| - var label = findWithText(body, 'four (checked)');
|
| - expect(label is LabelElement, isTrue, reason: 'text is in a label');
|
| + var label = findWithText(body, 'four (checked)');
|
| + expect(label is LabelElement, isTrue, reason: 'text is in a label');
|
|
|
| - var host = findShadowHost(body, label.parentNode);
|
| - var node = host.parent.query('input');
|
| - expect(node is InputElement, isTrue, reason: 'node is a checkbox');
|
| - expect(node.type, 'checkbox', reason: 'node type is checkbox');
|
| - expect(node.checked, isFalse, reason: 'element is unchecked');
|
| + var host = findShadowHost(body, label.parentNode);
|
| + var node = host.parent.query('input');
|
| + expect(node is InputElement, isTrue, reason: 'node is a checkbox');
|
| + expect(node.type, 'checkbox', reason: 'node type is checkbox');
|
| + expect(node.checked, isFalse, reason: 'element is unchecked');
|
|
|
| - node.dispatchEvent(new MouseEvent('click', detail: 1));
|
| - expect(node.checked, isTrue, reason: 'element is checked');
|
| + node.dispatchEvent(new MouseEvent('click', detail: 1));
|
| + expect(node.checked, isTrue, reason: 'element is checked');
|
|
|
| - window.postMessage('done', '*');
|
| + Timer.run(() {
|
| + window.postMessage('done', '*');
|
| + });
|
| + });
|
| });
|
| }
|
| </script>
|
|
|