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

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

Issue 335943003: merge to trunk all changes from 36817 until 37378 under the packages: polymer, (Closed) Base URL: http://dart.googlecode.com/svn/trunk/dart/
Patch Set: Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/polymer_expressions/pubspec.yaml ('k') | pkg/polymer_expressions/test/eval_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:async'; 7 import 'dart:async';
8 import 'dart:html'; 8 import 'dart:html';
9 9
10 import 'package:observe/observe.dart'; 10 import 'package:observe/observe.dart';
11 import 'package:observe/mirrors_used.dart'; // make test smaller. 11 import 'package:observe/mirrors_used.dart'; // make test smaller.
12 import 'package:observe/src/dirty_check.dart' show dirtyCheckZone; 12 import 'package:observe/src/dirty_check.dart' show dirtyCheckZone;
13 import 'package:polymer_expressions/polymer_expressions.dart'; 13 import 'package:polymer_expressions/polymer_expressions.dart';
14 import 'package:smoke/mirrors.dart' as smoke; 14 import 'package:smoke/mirrors.dart' as smoke;
15 import 'package:template_binding/template_binding.dart' show 15 import 'package:template_binding/template_binding.dart' show
16 TemplateBindExtension, templateBind; 16 TemplateBindExtension, templateBind;
17 import 'package:unittest/html_config.dart'; 17 import 'package:unittest/html_config.dart';
18 18
19 import 'package:unittest/unittest.dart'; 19 import 'package:unittest/unittest.dart';
20 20
21 var testDiv; 21 var testDiv;
22 22
23 main() => dirtyCheckZone().run(() { 23 main() => dirtyCheckZone().run(() {
24 useHtmlConfiguration(); 24 useHtmlConfiguration();
25 smoke.useMirrors();
25 26
26 group('bindings', () { 27 group('bindings', () {
27 var stop = null; 28 var stop = null;
28 setUp(() { 29 setUp(() {
29 document.body.append(testDiv = new DivElement()); 30 document.body.append(testDiv = new DivElement());
30 }); 31 });
31 32
32 tearDown(() { 33 tearDown(() {
33 testDiv.remove(); 34 testDiv.remove();
34 testDiv = null; 35 testDiv = null;
35 }); 36 });
36 37
37 test('should update binding when data changes', () { 38 test('should update binding when data changes', () {
38 var model = new NotifyModel(); 39 var model = new NotifyModel();
39 var binding = new PolymerExpressions() 40 var binding = new PolymerExpressions()
40 .prepareBinding('x', null, null)(model, null, false); 41 .prepareBinding('x', null, null)(model, null, false);
41 expect(binding.value, isNull); 42 expect(binding.value, isNull);
42 model.x = "hi"; 43 model.x = "hi";
43 return new Future(() { 44 return new Future(() {
44 expect(binding.value, 'hi'); 45 expect(binding.value, 'hi');
45 }); 46 });
46 }); 47 });
47 48
49 // regression test for issue 19296
50 test('should not throw when data changes', () {
51 var model = new NotifyModel();
52 var tag = new Element.html('<template>'
53 '<template repeat="{{ i in x }}">{{ i }}</template></template>');
54 TemplateBindExtension.bootstrap(tag);
55 var template = templateBind(tag);
56 testDiv.append(template.createInstance(model, new PolymerExpressions()));
57
58 return new Future(() {
59 model.x = [1, 2, 3];
60 }).then(_nextMicrotask).then((_) {
61 expect(testDiv.text,'123');
62 });
63 });
64
65
48 test('should update text content when data changes', () { 66 test('should update text content when data changes', () {
49 var model = new NotifyModel('abcde'); 67 var model = new NotifyModel('abcde');
50 var tag = new Element.html( 68 var tag = new Element.html(
51 '<template><span>{{x}}</span></template>'); 69 '<template><span>{{x}}</span></template>');
52 TemplateBindExtension.bootstrap(tag); 70 TemplateBindExtension.bootstrap(tag);
53 var template = templateBind(tag); 71 var template = templateBind(tag);
54 testDiv.append(template.createInstance(model, new PolymerExpressions())); 72 testDiv.append(template.createInstance(model, new PolymerExpressions()));
55 73
56 var el; 74 var el;
57 return new Future(() { 75 return new Future(() {
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 get y => _y; 311 get y => _y;
294 set y(value) { 312 set y(value) {
295 _y = notifyPropertyChange(#y, _y, value); 313 _y = notifyPropertyChange(#y, _y, value);
296 } 314 }
297 } 315 }
298 316
299 class _NullTreeSanitizer implements NodeTreeSanitizer { 317 class _NullTreeSanitizer implements NodeTreeSanitizer {
300 void sanitizeTree(Node node) {} 318 void sanitizeTree(Node node) {}
301 } 319 }
302 final _nullTreeSanitizer = new _NullTreeSanitizer(); 320 final _nullTreeSanitizer = new _NullTreeSanitizer();
OLDNEW
« no previous file with comments | « pkg/polymer_expressions/pubspec.yaml ('k') | pkg/polymer_expressions/test/eval_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698