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

Side by Side Diff: pkg/polymer_expressions/test/bindings_test.dart

Issue 34453003: Rename mdv -> template_binding, remove experiemntal apis from dart:html (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library bindings_test; 5 library bindings_test;
6 6
7 import 'dart:html'; 7 import 'dart:html';
8 8
9 import 'package:logging/logging.dart'; 9 import 'package:logging/logging.dart';
10 import 'package:mdv/mdv.dart' as mdv;
11 import 'package:observe/observe.dart'; 10 import 'package:observe/observe.dart';
12 import 'package:observe/src/microtask.dart'; 11 import 'package:observe/src/microtask.dart';
13 import 'package:polymer_expressions/polymer_expressions.dart'; 12 import 'package:polymer_expressions/polymer_expressions.dart';
13 import 'package:template_binding/template_binding.dart' show templateBind;
14 import 'package:unittest/html_config.dart'; 14 import 'package:unittest/html_config.dart';
15 import 'package:unittest/unittest.dart'; 15 import 'package:unittest/unittest.dart';
16 16
17 main() { 17 main() {
18 mdv.initialize();
19 useHtmlConfiguration(); 18 useHtmlConfiguration();
20 19
21 group('bindings', () { 20 group('bindings', () {
22 var stop = null; 21 var stop = null;
23 var messages = []; 22 var messages = [];
24 var testDiv; 23 var testDiv;
25 setUp(() { 24 setUp(() {
26 stop = Logger.root.onRecord.listen((r) => messages.add(r)); 25 stop = Logger.root.onRecord.listen((r) => messages.add(r));
27 document.body.append(testDiv = new DivElement()); 26 document.body.append(testDiv = new DivElement());
28 }); 27 });
(...skipping 12 matching lines...) Expand all
41 .getBinding(model, 'x', null, null); 40 .getBinding(model, 'x', null, null);
42 expect(binding.value, isNull); 41 expect(binding.value, isNull);
43 model.x = "hi"; 42 model.x = "hi";
44 performMicrotaskCheckpoint(); 43 performMicrotaskCheckpoint();
45 expect(binding.value, 'hi'); 44 expect(binding.value, 'hi');
46 expect(messages.length, 0); 45 expect(messages.length, 0);
47 }); 46 });
48 47
49 observeTest('should update text content when data changes', () { 48 observeTest('should update text content when data changes', () {
50 var model = new NotifyModel('abcde'); 49 var model = new NotifyModel('abcde');
51 var template = new Element.html( 50 var template = templateBind(new Element.html(
52 '<template><span>{{x}}</span></template>'); 51 '<template><span>{{x}}</span></template>'));
53 testDiv.append(template.createInstance(model, new PolymerExpressions())); 52 testDiv.append(template.createInstance(model, new PolymerExpressions()));
54 53
55 performMicrotaskCheckpoint(); 54 performMicrotaskCheckpoint();
56 var el = testDiv.query("span"); 55 var el = testDiv.query("span");
57 expect(el.text, 'abcde'); 56 expect(el.text, 'abcde');
58 expect(model.x, 'abcde'); 57 expect(model.x, 'abcde');
59 model.x = '___'; 58 model.x = '___';
60 59
61 performMicrotaskCheckpoint(); 60 performMicrotaskCheckpoint();
62 expect(model.x, '___'); 61 expect(model.x, '___');
63 expect(el.text, '___'); 62 expect(el.text, '___');
64 }); 63 });
65 64
66 observeTest('should log eval exceptions', () { 65 observeTest('should log eval exceptions', () {
67 var model = new NotifyModel('abcde'); 66 var model = new NotifyModel('abcde');
68 var template = new Element.html( 67 var template = templateBind(new Element.html(
69 '<template><span>{{foo}}</span></template>'); 68 '<template><span>{{foo}}</span></template>'));
70 testDiv.append(template.createInstance(model, new PolymerExpressions())); 69 testDiv.append(template.createInstance(model, new PolymerExpressions()));
71 performMicrotaskCheckpoint(); 70 performMicrotaskCheckpoint();
72 expect(messages.length, 1); 71 expect(messages.length, 1);
73 expect(messages[0].message, 72 expect(messages[0].message,
74 "Error evaluating expression 'foo': variable 'foo' not found"); 73 "Error evaluating expression 'foo': variable 'foo' not found");
75 }); 74 });
76 75
77 observeTest('should preserve the cursor position', () { 76 observeTest('should preserve the cursor position', () {
78 var model = new NotifyModel('abcde'); 77 var model = new NotifyModel('abcde');
79 var template = new Element.html( 78 var template = templateBind(new Element.html(
80 '<template><input id="i1" value={{x}}></template>'); 79 '<template><input id="i1" value={{x}}></template>'));
81 testDiv.append(template.createInstance(model, new PolymerExpressions())); 80 testDiv.append(template.createInstance(model, new PolymerExpressions()));
82 81
83 performMicrotaskCheckpoint(); 82 performMicrotaskCheckpoint();
84 var el = testDiv.query("#i1"); 83 var el = testDiv.query("#i1");
85 var subscription = el.onInput.listen(expectAsync1((_) { 84 var subscription = el.onInput.listen(expectAsync1((_) {
86 performMicrotaskCheckpoint(); 85 performMicrotaskCheckpoint();
87 }, count: 1)); 86 }, count: 1));
88 el.focus(); 87 el.focus();
89 88
90 expect(el.value, 'abcde'); 89 expect(el.value, 'abcde');
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 var _x; 123 var _x;
125 NotifyModel([this._x]); 124 NotifyModel([this._x]);
126 125
127 get x => _x; 126 get x => _x;
128 set x(value) { 127 set x(value) {
129 _x = notifyPropertyChange(#x, _x, value); 128 _x = notifyPropertyChange(#x, _x, value);
130 } 129 }
131 } 130 }
132 131
133 observeTest(name, testCase) => test(name, wrapMicrotask(testCase)); 132 observeTest(name, testCase) => test(name, wrapMicrotask(testCase));
OLDNEW
« no previous file with comments | « pkg/polymer_expressions/lib/polymer_expressions.dart ('k') | pkg/polymer_expressions/test/eval_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698