Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: pkg/template_binding/test/template_element_test.dart

Issue 42433002: port Node.bind to bd0a0591920da9091b326627a46a104a92c7efe7 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/template_binding/test/template_element_test.dart
diff --git a/pkg/template_binding/test/template_element_test.dart b/pkg/template_binding/test/template_element_test.dart
index 005c13773dfce106a74cc3b11c33d44de31593cb..a878090bfacebcad3dc0ce233c9f8d266c2b88bd 100644
--- a/pkg/template_binding/test/template_element_test.dart
+++ b/pkg/template_binding/test/template_element_test.dart
@@ -155,20 +155,20 @@ templateElementTests() {
var model = toObservable({'b': 'B'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.text, 'aBc');
model['b'] = 'b';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'abc');
model['b'] = null;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'ac');
model = null;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
// setting model isn't observable.
expect(div.nodes.last.text, 'ac');
});
@@ -179,20 +179,20 @@ templateElementTests() {
var model = toObservable({ 'data': {'b': 'B'} });
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.text, 'aBc');
model['data']['b'] = 'b';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'abc');
model['data'] = toObservable({'b': 'X'});
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'aXc');
model['data'] = null;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'ac');
});
@@ -202,25 +202,25 @@ templateElementTests() {
var model = toObservable({'b': 'B', 'd': 1});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.text, 'aBc');
model['b'] = 'b';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'abc');
// TODO(jmesserly): MDV set this to empty string and relies on JS conversion
// rules. Is that intended?
// See https://github.com/toolkitchen/mdv/issues/59
model['d'] = null;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 1);
model['d'] = 'here';
model['b'] = 'd';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.text, 'adc');
});
@@ -232,12 +232,12 @@ templateElementTests() {
var model = toObservable({'b': {'value': 'B'}});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.text, 'aBc');
model['b'] = toObservable({'value': 'b'});
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.text, 'abc');
});
@@ -249,16 +249,16 @@ templateElementTests() {
var model = toObservable({'b': 'B'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.attributes['foo'], 'aBc');
model['b'] = 'b';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.attributes['foo'], 'abc');
model['b'] = 'X';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.attributes['foo'], 'aXc');
});
@@ -270,13 +270,13 @@ templateElementTests() {
var model = toObservable({'b': 'b'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.attributes['foo'], '');
expect(div.nodes.last.attributes, isNot(contains('foo?')));
model['b'] = null;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.attributes, isNot(contains('foo')));
});
@@ -287,19 +287,19 @@ templateElementTests() {
var model = toObservable([0, 1, 2]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
model.length = 1;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
model.addAll(toObservable([3, 4]));
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
model.removeRange(1, 2);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 3);
});
@@ -315,7 +315,7 @@ templateElementTests() {
]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 6);
var template = div.firstChild;
@@ -323,19 +323,19 @@ templateElementTests() {
checkExpandos(template.nextNode);
model.sort((a, b) => a['val'] - b['val']);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
checkExpandos(template.nextNode);
model = toObservable(model.reversed);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
checkExpandos(template.nextNode);
for (var item in model) {
item['val'] += 1;
}
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, "11");
expect(div.nodes[2].text, "9");
expect(div.nodes[3].text, "6");
@@ -350,7 +350,7 @@ templateElementTests() {
var model = toObservable({ 'foo': { 'bar': 5 }});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
var template = div.firstChild;
@@ -359,7 +359,7 @@ templateElementTests() {
model = toObservable({'foo': model['foo']});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
checkExpandos(template.nextNode);
});
@@ -370,19 +370,19 @@ templateElementTests() {
var model = toObservable([0, 1, 2]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
model.length = 1;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
model.addAll(toObservable([3, 4]));
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
model.removeRange(1, 2);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 3);
});
@@ -392,7 +392,7 @@ templateElementTests() {
var model = toObservable([{'v': 0}, {'v': 1}, {'v': 2}, {'v': 3},
{'v': 4}]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
var nodes = div.nodes.skip(1).toList();
var vs = model.toList();
@@ -402,14 +402,14 @@ templateElementTests() {
}
model.length = 3;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
for (var i = 0; i < 5; i++) {
expect(nodes[i].text, '$i');
}
vs[3]['v'] = 33;
vs[4]['v'] = 44;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
for (var i = 0; i < 5; i++) {
expect(nodes[i].text, '$i');
}
@@ -421,7 +421,7 @@ templateElementTests() {
var model = toObservable([1, 2, 3, 4, 5]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
// Note: the node at index 0 is the <template>.
var nodes = div.nodes.toList();
@@ -430,7 +430,7 @@ templateElementTests() {
model.removeAt(0);
model.removeLast();
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4, reason: 'list has 3 items');
expect(identical(div.nodes[1], nodes[2]), true, reason: '2 not removed');
expect(identical(div.nodes[2], nodes[3]), true, reason: '3 not removed');
@@ -440,7 +440,7 @@ templateElementTests() {
model[2] = 6;
model.add(7);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 6, reason: 'list has 5 items');
expect(nodes.contains(div.nodes[1]), false, reason: '5 is a new node');
@@ -453,7 +453,7 @@ templateElementTests() {
model.insert(2, 8);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 7, reason: 'list has 6 items');
expect(identical(div.nodes[1], nodes[1]), true);
@@ -476,21 +476,21 @@ templateElementTests() {
]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
expect(div.nodes[1].text, '0');
expect(div.nodes[2].text, '1');
expect(div.nodes[3].text, '2');
model[1]['value'] = 'One';
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
expect(div.nodes[1].text, '0');
expect(div.nodes[2].text, 'One');
expect(div.nodes[3].text, '2');
model.replaceRange(0, 1, toObservable([{'value': 'Zero'}]));
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
expect(div.nodes[1].text, 'Zero');
expect(div.nodes[2].text, 'One');
@@ -505,19 +505,19 @@ templateElementTests() {
var model = toObservable({'x': 'hi'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes.last.value, 'hi');
model['x'] = 'bye';
expect(div.nodes.last.value, 'hi');
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.value, 'bye');
div.nodes.last.value = 'hello';
dispatchEvent('input', div.nodes.last);
expect(model['x'], 'hello');
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.last.value, 'hello');
});
@@ -537,7 +537,7 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
var t1 = document.getElementById('t1');
var instance = t1.nextElementSibling;
@@ -570,7 +570,7 @@ templateElementTests() {
var model = toObservable({'name': 'Leela'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, 'Hi Leela');
});
@@ -584,7 +584,7 @@ templateElementTests() {
var model = toObservable({'name': 'Leela'});
nodeBind(t).bind('bind', model, '');
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, 'Hi Leela');
});
@@ -594,7 +594,7 @@ templateElementTests() {
var model = toObservable({'name': 'Leela'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, 'Hi Leela');
});
@@ -614,7 +614,7 @@ templateElementTests() {
var model = toObservable({'name': 'Fry'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(t2.nextNode.text, 'Hi Fry');
});
@@ -631,13 +631,13 @@ templateElementTests() {
recursivelySetTemplateModel(div, model);
var t = div.nodes.first;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(t.nextNode.text, 'Hi Leela');
nodeBind(t).bind('bind', model, 'XZ');
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(t.nextNode.text, 'Hi Zoidberg');
@@ -667,40 +667,40 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Raf', 'Hi Arv', 'Hi Neal']);
m['contacts'].add(toObservable({'name': 'Alex'}));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Raf', 'Hi Arv', 'Hi Neal', 'Hi Alex']);
m['contacts'].replaceRange(0, 2,
toObservable([{'name': 'Rafael'}, {'name': 'Erik'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Rafael', 'Hi Erik', 'Hi Neal', 'Hi Alex']);
m['contacts'].removeRange(1, 3);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Rafael', 'Hi Alex']);
m['contacts'].insertAll(1,
toObservable([{'name': 'Erik'}, {'name': 'Dimitri'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Rafael', 'Hi Erik', 'Hi Dimitri', 'Hi Alex']);
m['contacts'].replaceRange(0, 1,
toObservable([{'name': 'Tab'}, {'name': 'Neal'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Tab', 'Hi Neal', 'Hi Erik', 'Hi Dimitri',
'Hi Alex']);
m['contacts'] = toObservable([{'name': 'Alex'}]);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Alex']);
m['contacts'].length = 0;
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, []);
});
@@ -718,7 +718,7 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var t = div.nodes.first;
assertNodesAre(div, ['Hi Raf', 'Hi Arv', 'Hi Neal']);
@@ -736,34 +736,34 @@ templateElementTests() {
]);
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Raf', 'Hi Arv', 'Hi Neal']);
m.add(toObservable({'name': 'Alex'}));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Raf', 'Hi Arv', 'Hi Neal', 'Hi Alex']);
m.replaceRange(0, 2, toObservable([{'name': 'Rafael'}, {'name': 'Erik'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Rafael', 'Hi Erik', 'Hi Neal', 'Hi Alex']);
m.removeRange(1, 3);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Rafael', 'Hi Alex']);
m.insertAll(1, toObservable([{'name': 'Erik'}, {'name': 'Dimitri'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Rafael', 'Hi Erik', 'Hi Dimitri', 'Hi Alex']);
m.replaceRange(0, 1, toObservable([{'name': 'Tab'}, {'name': 'Neal'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Tab', 'Hi Neal', 'Hi Erik', 'Hi Dimitri',
'Hi Alex']);
m.length = 0;
m.add(toObservable({'name': 'Alex'}));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Alex']);
});
@@ -781,7 +781,7 @@ templateElementTests() {
m = toObservable({});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 1);
});
@@ -796,7 +796,7 @@ templateElementTests() {
{'name': 'Neal'}
]);
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Raf', 'Hi Arv', 'Hi Neal']);
var node1 = div.nodes[1];
@@ -804,7 +804,7 @@ templateElementTests() {
var node3 = div.nodes[3];
m.replaceRange(1, 2, toObservable([{'name': 'Erik'}]));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Raf', 'Hi Erik', 'Hi Neal']);
expect(div.nodes[1], node1,
reason: 'model[0] did not change so the node should not have changed');
@@ -815,7 +815,7 @@ templateElementTests() {
node2 = div.nodes[2];
m.insert(0, toObservable({'name': 'Alex'}));
- deliverChanges(m);
+ performMicrotaskCheckpoint();
assertNodesAre(div, ['Hi Alex', 'Hi Raf', 'Hi Erik', 'Hi Neal']);
});
@@ -825,7 +825,7 @@ templateElementTests() {
var model = toObservable({'foo': 'bar'});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].nodes[0].nodes[0].text, 'bar');
});
@@ -840,7 +840,7 @@ templateElementTests() {
'a': true
});
nodeBind(t).bind('bind', m, '');
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var instanceInput = t.nextNode;
expect(instanceInput.checked, true);
@@ -863,7 +863,7 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var i = start;
expect(div.nodes[i++].text, '1');
@@ -871,11 +871,11 @@ templateElementTests() {
expect(div.nodes[i++].text, '2');
m['a']['b'] = 11;
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes[start].text, '11');
m['a']['c'] = toObservable({'d': 22});
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes[start + 2].text, '22');
}
@@ -915,7 +915,7 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var i = start;
expect(div.nodes[i++].text, '1');
@@ -930,7 +930,7 @@ templateElementTests() {
'c': {'d': 33}
});
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes[start + 3].text, '3');
expect(div.nodes[start + 5].text, '33');
}
@@ -973,7 +973,7 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var i = start;
expect(div.nodes[i++].text, '1');
@@ -991,7 +991,7 @@ templateElementTests() {
});
i = start + 4;
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes[start + 4].text, '3');
expect(div.nodes[start + 6].text, '31');
expect(div.nodes[start + 7].text, '32');
@@ -1051,7 +1051,7 @@ templateElementTests() {
]);
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var i = 1;
expect(div.nodes[i++].text, 'Item 1');
@@ -1067,7 +1067,7 @@ templateElementTests() {
m[0] = toObservable({'name': 'Item 1 changed'});
i = 1;
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes[i++].text, 'Item 1 changed');
expect(div.nodes[i++].tagName, 'TEMPLATE');
expect(div.nodes[i++].text, 'Item 2');
@@ -1091,7 +1091,7 @@ templateElementTests() {
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var select = div.nodes[0].nextNode;
expect(select.nodes.length, 2);
@@ -1132,7 +1132,7 @@ templateElementTests() {
]);
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var tbody = div.nodes[0].nodes[0];
@@ -1169,7 +1169,7 @@ templateElementTests() {
]);
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
var i = 1;
var tbody = div.nodes[0].nodes[0];
@@ -1217,9 +1217,9 @@ templateElementTests() {
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
m.removeAt(0);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
});
observeTest('DeepNested', () {
@@ -1240,7 +1240,7 @@ templateElementTests() {
}
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].tagName, 'P');
expect(div.nodes[1].nodes.first.tagName, 'TEMPLATE');
@@ -1252,7 +1252,7 @@ templateElementTests() {
var model = 42;
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, '42');
expect(div.nodes[0].text, '');
});
@@ -1262,7 +1262,7 @@ templateElementTests() {
var model = toObservable([]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 1);
expect(div.nodes[0].text, '');
});
@@ -1281,7 +1281,7 @@ templateElementTests() {
'b': 2
});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[0].text, '');
expect(div.nodes[1].text, '1');
@@ -1295,17 +1295,17 @@ templateElementTests() {
var model = toObservable({'a': 42});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, '42');
model = null;
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 1);
model = toObservable({'a': 42});
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes[1].text, '42');
});
@@ -1328,19 +1328,19 @@ templateElementTests() {
}
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 5);
expect(div.nodes[1].text, 'Name: Hermes');
expect(div.nodes[3].text, 'Wife: LaBarbara');
m['child'] = toObservable({'name': 'Dwight'});
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 6);
expect(div.nodes[5].text, 'Child: Dwight');
m.remove('wife');
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 5);
expect(div.nodes[4].text, 'Child: Dwight');
});
@@ -1359,19 +1359,19 @@ templateElementTests() {
}
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 5);
expect(div.nodes[1].text, 'Name: Fry');
expect(div.nodes[3].text, 'Name: Bender');
m['friend']['friend'] = toObservable({'name': 'Leela'});
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 7);
expect(div.nodes[5].text, 'Name: Leela');
m['friend'] = toObservable({'name': 'Leela'});
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 5);
expect(div.nodes[3].text, 'Name: Leela');
});
@@ -1448,7 +1448,7 @@ templateElementTests() {
]
});
recursivelySetTemplateModel(div, m);
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes[1].text, '3');
@@ -1456,7 +1456,7 @@ templateElementTests() {
nodeBind(template)
..unbind('bind')
..bind('repeat', m, 'a');
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 4);
expect(div.nodes[1].text, '0');
expect(div.nodes[2].text, '1');
@@ -1465,7 +1465,7 @@ templateElementTests() {
nodeBind(template).unbind('repeat');
nodeBind(template).bind('bind', m, 'a.1.b');
- deliverChanges(m);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 2);
expect(div.nodes[1].text, '4');
});
@@ -1479,7 +1479,7 @@ templateElementTests() {
'</template>');
var model = toObservable([]);
recursivelySetTemplateModel(div, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 3);
@@ -1487,7 +1487,7 @@ templateElementTests() {
document.getElementById('b').id = 'a';
model..add(1)..add(2);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(div.nodes.length, 7);
expect(div.nodes[4].text, 'b:1');
@@ -1543,7 +1543,7 @@ templateElementTests() {
'<template bind="{{}}">Hi {{ name }}</template>');
var model = toObservable({'name': 'Leela'});
recursivelySetTemplateModel(root, model);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(root.nodes[1].text, 'Hi Leela');
}
});
@@ -1594,19 +1594,19 @@ templateElementTests() {
recursivelySetTemplateModel(div, model, syntax);
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(syntax.count, 1);
var inner = model['outer']['inner'];
model['outer'] = null;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(syntax.count, 1);
model['outer'] = toObservable({'inner': {'age': 2}});
syntax.expectedAge = 2;
- deliverChanges(model);
+ performMicrotaskCheckpoint();
expect(syntax.count, 2);
});
@@ -1695,47 +1695,3 @@ class UnbindingInNestedBindSyntax extends BindingDelegate {
count++;
}
}
-
-/**
- * Verifies that the model is Observable, then calls
- * [performMicrotaskCheckpoint].
- */
-void deliverChanges(model) {
- expectObservable(model);
- performMicrotaskCheckpoint();
-}
-
-void expectObservable(model) {
- if (model is! Observable) {
- // This is here to eagerly catch a bug in the test; it means the test
- // forgot a toObservable somewhere.
- expect(identical(toObservable(model), model), true,
- reason: 'model type "${model.runtimeType}" should be observable');
- return;
- }
- if (model is ObservableList) {
- for (var item in model) {
- expectObservable(item);
- }
- } else if (model is ObservableMap) {
- model.forEach((k, v) {
- expectObservable(k);
- expectObservable(v);
- });
- }
-}
-
-_deepToSymbol(value) {
- if (value is Map) {
- var result = new LinkedHashMap();
- value.forEach((k, v) {
- k = k is String ? new Symbol(k) : _deepToSymbol(k);
- result[k] = _deepToSymbol(v);
- });
- return result;
- }
- if (value is Iterable) {
- return value.map(_deepToSymbol).toList();
- }
- return value;
-}

Powered by Google App Engine
This is Rietveld 408576698