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

Side by Side Diff: client/tests/client/observable/AbstractObservableTests.dart

Issue 9382027: Move client/{base, observable, layout, touch, util, view} to samples/ui_lib . (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 10 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
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
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.
4
5 testAbstractObservable() {
6 group('addChangeListener()', () {
7 test('adding the same listener twice returns false the second time', () {
8 final target = new AbstractObservable();
9 final listener = (e) { };
10
11 expect(target.addChangeListener(listener)).isTrue();
12 expect(target.addChangeListener(listener)).isFalse();
13 });
14
15 test('modifies listeners list', () {
16 // check that add/remove works, see contents of listeners too
17 final target = new AbstractObservable();
18 final l1 = (e) { };
19 final l2 = (e) { };
20 final l3 = (e) { };
21 final l4 = (e) { };
22
23 expect(target.listeners).equalsCollection([]);
24
25 target.addChangeListener(l1);
26 expect(target.listeners).equalsCollection([l1]);
27
28 target.addChangeListener(l2);
29 expect(target.listeners).equalsCollection([l1, l2]);
30
31 target.addChangeListener(l3);
32 target.addChangeListener(l4);
33 expect(target.listeners).equalsCollection([l1, l2, l3, l4]);
34
35 target.removeChangeListener(l4);
36 expect(target.listeners).equalsCollection([l1, l2, l3]);
37
38 target.removeChangeListener(l2);
39 expect(target.listeners).equalsCollection([l1, l3]);
40
41 target.removeChangeListener(l1);
42 expect(target.listeners).equalsCollection([l3]);
43
44 target.removeChangeListener(l3);
45 expect(target.listeners).equalsCollection([]);
46 });
47 });
48
49 test('fires immediately if no batch', () {
50 // If no batch is created, a summary should be automatically created and
51 // fired on each property change.
52 final target = new AbstractObservable();
53 EventSummary res = null;
54 target.addChangeListener((summary) {
55 expect(res).isNull();
56 res = summary;
57 expect(res).isNotNull();
58 });
59
60 target.recordPropertyUpdate('pM', 10, 11);
61
62 expect(res).isNotNull();
63 expect(res.events.length).equals(1);
64 validateUpdate(res.events[0], target, 'pM', null, 10, 11);
65 res = null;
66
67 target.recordPropertyUpdate('pL', '11', '13');
68
69 expect(res).isNotNull();
70 expect(res.events.length).equals(1);
71 validateUpdate(res.events[0], target, 'pL', null, '11', '13');
72 });
73 }
OLDNEW
« no previous file with comments | « client/tests/client/layout/layout_tests.dart ('k') | client/tests/client/observable/ChangeEventTests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698