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

Side by Side Diff: packages/watcher/test/path_set_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 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
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 import 'package:path/path.dart' as p; 5 import 'package:path/path.dart' as p;
6 import 'package:test/test.dart'; 6 import 'package:test/test.dart';
7 import 'package:watcher/src/path_set.dart'; 7 import 'package:watcher/src/path_set.dart';
8 8
9 import 'utils.dart';
10
11 Matcher containsPath(String path) => predicate((set) => 9 Matcher containsPath(String path) => predicate((set) =>
12 set is PathSet && set.contains(path), 10 set is PathSet && set.contains(path),
13 'set contains "$path"'); 11 'set contains "$path"');
14 12
15 Matcher containsDir(String path) => predicate((set) => 13 Matcher containsDir(String path) => predicate((set) =>
16 set is PathSet && set.containsDir(path), 14 set is PathSet && set.containsDir(path),
17 'set contains directory "$path"'); 15 'set contains directory "$path"');
18 16
19 void main() { 17 void main() {
20 var set; 18 var set;
(...skipping 14 matching lines...) Expand all
35 33
36 test("that's not normalized normalizes the path before storing it", () { 34 test("that's not normalized normalizes the path before storing it", () {
37 set.add("root/../root/path/to/../to/././file"); 35 set.add("root/../root/path/to/../to/././file");
38 expect(set, containsPath("root/path/to/file")); 36 expect(set, containsPath("root/path/to/file"));
39 }); 37 });
40 38
41 test("that's absolute normalizes the path before storing it", () { 39 test("that's absolute normalizes the path before storing it", () {
42 set.add(p.absolute("root/path/to/file")); 40 set.add(p.absolute("root/path/to/file"));
43 expect(set, containsPath("root/path/to/file")); 41 expect(set, containsPath("root/path/to/file"));
44 }); 42 });
45
46 test("that's not beneath the root throws an error", () {
47 expect(() => set.add("path/to/file"), throwsArgumentError);
48 });
49 }); 43 });
50 44
51 group("removing a path", () { 45 group("removing a path", () {
52 test("that's in the set removes and returns that path", () { 46 test("that's in the set removes and returns that path", () {
53 set.add("root/path/to/file"); 47 set.add("root/path/to/file");
54 expect(set.remove("root/path/to/file"), 48 expect(set.remove("root/path/to/file"),
55 unorderedEquals([p.normalize("root/path/to/file")])); 49 unorderedEquals([p.normalize("root/path/to/file")]));
56 expect(set, isNot(containsPath("root/path/to/file"))); 50 expect(set, isNot(containsPath("root/path/to/file")));
57 }); 51 });
58 52
(...skipping 12 matching lines...) Expand all
71 "root/path/to/one", 65 "root/path/to/one",
72 "root/path/to/two", 66 "root/path/to/two",
73 "root/path/to/sub/three" 67 "root/path/to/sub/three"
74 ].map(p.normalize))); 68 ].map(p.normalize)));
75 69
76 expect(set, containsPath("root/outside")); 70 expect(set, containsPath("root/outside"));
77 expect(set, isNot(containsPath("root/path/to/one"))); 71 expect(set, isNot(containsPath("root/path/to/one")));
78 expect(set, isNot(containsPath("root/path/to/two"))); 72 expect(set, isNot(containsPath("root/path/to/two")));
79 expect(set, isNot(containsPath("root/path/to/sub/three"))); 73 expect(set, isNot(containsPath("root/path/to/sub/three")));
80 }); 74 });
81 75
82 test("that's a directory in the set removes and returns it and all files " 76 test("that's a directory in the set removes and returns it and all files "
83 "beneath it", () { 77 "beneath it", () {
84 set.add("root/path"); 78 set.add("root/path");
85 set.add("root/path/to/one"); 79 set.add("root/path/to/one");
86 set.add("root/path/to/two"); 80 set.add("root/path/to/two");
87 set.add("root/path/to/sub/three"); 81 set.add("root/path/to/sub/three");
88 82
89 expect(set.remove("root/path"), unorderedEquals([ 83 expect(set.remove("root/path"), unorderedEquals([
90 "root/path", 84 "root/path",
91 "root/path/to/one", 85 "root/path/to/one",
(...skipping 11 matching lines...) Expand all
103 set.add("root/path/to/file"); 97 set.add("root/path/to/file");
104 expect(set.remove("root/../root/path/to/../to/./file"), 98 expect(set.remove("root/../root/path/to/../to/./file"),
105 unorderedEquals([p.normalize("root/path/to/file")])); 99 unorderedEquals([p.normalize("root/path/to/file")]));
106 }); 100 });
107 101
108 test("that's absolute removes and returns the normalized path", () { 102 test("that's absolute removes and returns the normalized path", () {
109 set.add("root/path/to/file"); 103 set.add("root/path/to/file");
110 expect(set.remove(p.absolute("root/path/to/file")), 104 expect(set.remove(p.absolute("root/path/to/file")),
111 unorderedEquals([p.normalize("root/path/to/file")])); 105 unorderedEquals([p.normalize("root/path/to/file")]));
112 }); 106 });
113
114 test("that's not beneath the root throws an error", () {
115 expect(() => set.remove("path/to/file"), throwsArgumentError);
116 });
117 }); 107 });
118 108
119 group("containsPath()", () { 109 group("containsPath()", () {
120 test("returns false for a non-existent path", () { 110 test("returns false for a non-existent path", () {
121 set.add("root/path/to/file"); 111 set.add("root/path/to/file");
122 expect(set, isNot(containsPath("root/path/to/nothing"))); 112 expect(set, isNot(containsPath("root/path/to/nothing")));
123 }); 113 });
124 114
125 test("returns false for a directory that wasn't added explicitly", () { 115 test("returns false for a directory that wasn't added explicitly", () {
126 set.add("root/path/to/file"); 116 set.add("root/path/to/file");
127 expect(set, isNot(containsPath("root/path"))); 117 expect(set, isNot(containsPath("root/path")));
128 }); 118 });
129 119
130 test("returns true for a directory that was added explicitly", () { 120 test("returns true for a directory that was added explicitly", () {
131 set.add("root/path"); 121 set.add("root/path");
132 set.add("root/path/to/file"); 122 set.add("root/path/to/file");
133 expect(set, containsPath("root/path")); 123 expect(set, containsPath("root/path"));
134 }); 124 });
135 125
136 test("with a non-normalized path normalizes the path before looking it up", 126 test("with a non-normalized path normalizes the path before looking it up",
137 () { 127 () {
138 set.add("root/path/to/file"); 128 set.add("root/path/to/file");
139 expect(set, containsPath("root/../root/path/to/../to/././file")); 129 expect(set, containsPath("root/../root/path/to/../to/././file"));
140 }); 130 });
141 131
142 test("with an absolute path normalizes the path before looking it up", () { 132 test("with an absolute path normalizes the path before looking it up", () {
143 set.add("root/path/to/file"); 133 set.add("root/path/to/file");
144 expect(set, containsPath(p.absolute("root/path/to/file"))); 134 expect(set, containsPath(p.absolute("root/path/to/file")));
145 }); 135 });
146
147 test("with a path that's not beneath the root throws an error", () {
148 expect(() => set.contains("path/to/file"), throwsArgumentError);
149 });
150 }); 136 });
151 137
152 group("containsDir()", () { 138 group("containsDir()", () {
153 test("returns true for a directory that was added implicitly", () { 139 test("returns true for a directory that was added implicitly", () {
154 set.add("root/path/to/file"); 140 set.add("root/path/to/file");
155 expect(set, containsDir("root/path")); 141 expect(set, containsDir("root/path"));
156 expect(set, containsDir("root/path/to")); 142 expect(set, containsDir("root/path/to"));
157 }); 143 });
158 144
159 test("returns true for a directory that was added explicitly", () { 145 test("returns true for a directory that was added explicitly", () {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 set.add("root/path/to/file"); 177 set.add("root/path/to/file");
192 expect(set, containsDir("root/../root/path/to/../to/.")); 178 expect(set, containsDir("root/../root/path/to/../to/."));
193 }); 179 });
194 180
195 test("with an absolute path normalizes the path before looking it up", () { 181 test("with an absolute path normalizes the path before looking it up", () {
196 set.add("root/path/to/file"); 182 set.add("root/path/to/file");
197 expect(set, containsDir(p.absolute("root/path"))); 183 expect(set, containsDir(p.absolute("root/path")));
198 }); 184 });
199 }); 185 });
200 186
201 group("toSet", () { 187 group("paths", () {
202 test("returns paths added to the set", () { 188 test("returns paths added to the set", () {
203 set.add("root/path"); 189 set.add("root/path");
204 set.add("root/path/to/one"); 190 set.add("root/path/to/one");
205 set.add("root/path/to/two"); 191 set.add("root/path/to/two");
206 192
207 expect(set.toSet(), unorderedEquals([ 193 expect(set.paths, unorderedEquals([
208 "root/path", 194 "root/path",
209 "root/path/to/one", 195 "root/path/to/one",
210 "root/path/to/two", 196 "root/path/to/two",
211 ].map(p.normalize))); 197 ].map(p.normalize)));
212 }); 198 });
213 199
214 test("doesn't return paths removed from the set", () { 200 test("doesn't return paths removed from the set", () {
215 set.add("root/path/to/one"); 201 set.add("root/path/to/one");
216 set.add("root/path/to/two"); 202 set.add("root/path/to/two");
217 set.remove("root/path/to/two"); 203 set.remove("root/path/to/two");
218 204
219 expect(set.toSet(), unorderedEquals([p.normalize("root/path/to/one")])); 205 expect(set.paths, unorderedEquals([p.normalize("root/path/to/one")]));
220 }); 206 });
221 }); 207 });
222 208
223 group("clear", () { 209 group("clear", () {
224 test("removes all paths from the set", () { 210 test("removes all paths from the set", () {
225 set.add("root/path"); 211 set.add("root/path");
226 set.add("root/path/to/one"); 212 set.add("root/path/to/one");
227 set.add("root/path/to/two"); 213 set.add("root/path/to/two");
228 214
229 set.clear(); 215 set.clear();
230 expect(set.toSet(), isEmpty); 216 expect(set.paths, isEmpty);
231 }); 217 });
232 }); 218 });
233 } 219 }
OLDNEW
« no previous file with comments | « packages/watcher/test/no_subscription/mac_os_test.dart ('k') | packages/watcher/test/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698