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

Side by Side Diff: utils/tests/pub/version_test.dart

Issue 11090016: Change core lib, dart2js, and more for new optional parameters syntax (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « utils/tests/pub/version_solver_test.dart ('k') | no next file » | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 version_test; 5 library version_test;
6 6
7 import '../../../pkg/unittest/unittest.dart'; 7 import '../../../pkg/unittest/unittest.dart';
8 import '../../pub/utils.dart'; 8 import '../../pub/utils.dart';
9 import '../../pub/version.dart'; 9 import '../../pub/version.dart';
10 10
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 }); 87 });
88 88
89 test('intersect()', () { 89 test('intersect()', () {
90 // Intersecting the same version returns the version. 90 // Intersecting the same version returns the version.
91 expect(v123.intersect(v123), equals(v123)); 91 expect(v123.intersect(v123), equals(v123));
92 92
93 // Intersecting a different version allows no versions. 93 // Intersecting a different version allows no versions.
94 expect(v123.intersect(v114).isEmpty); 94 expect(v123.intersect(v114).isEmpty);
95 95
96 // Intersecting a range returns the version if the range allows it. 96 // Intersecting a range returns the version if the range allows it.
97 expect(v123.intersect(new VersionRange(v114, v124)), equals(v123)); 97 expect(v123.intersect(new VersionRange(min: v114, max: v124)),
98 equals(v123));
98 99
99 // Intersecting a range allows no versions if the range doesn't allow it. 100 // Intersecting a range allows no versions if the range doesn't allow it.
100 expect(v114.intersect(new VersionRange(v123, v124)).isEmpty); 101 expect(v114.intersect(new VersionRange(min: v123, max: v124)).isEmpty);
101 }); 102 });
102 103
103 test('isEmpty', () { 104 test('isEmpty', () {
104 expect(!v123.isEmpty); 105 expect(!v123.isEmpty);
105 }); 106 });
106 107
107 test('parse()', () { 108 test('parse()', () {
108 expect(new Version.parse('0.0.0'), equals(new Version(0, 0, 0))); 109 expect(new Version.parse('0.0.0'), equals(new Version(0, 0, 0)));
109 expect(new Version.parse('12.34.56'), equals(new Version(12, 34, 56))); 110 expect(new Version.parse('12.34.56'), equals(new Version(12, 34, 56)));
110 111
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 expect(new Version(1, 2, 3, build: 'build.1').toString(), equals( 143 expect(new Version(1, 2, 3, build: 'build.1').toString(), equals(
143 '1.2.3+build.1')); 144 '1.2.3+build.1'));
144 expect(new Version(1, 2, 3, pre: 'pre', build: 'bui').toString(), equals( 145 expect(new Version(1, 2, 3, pre: 'pre', build: 'bui').toString(), equals(
145 '1.2.3-pre+bui')); 146 '1.2.3-pre+bui'));
146 }); 147 });
147 }); 148 });
148 149
149 group('VersionRange', () { 150 group('VersionRange', () {
150 group('constructor', () { 151 group('constructor', () {
151 test('takes a min and max', () { 152 test('takes a min and max', () {
152 var range = new VersionRange(v123, v124); 153 var range = new VersionRange(min: v123, max: v124);
153 expect(range.min, equals(v123)); 154 expect(range.min, equals(v123));
154 expect(range.max, equals(v124)); 155 expect(range.max, equals(v124));
155 }); 156 });
156 157
157 test('allows omitting max', () { 158 test('allows omitting max', () {
158 var range = new VersionRange(v123); 159 var range = new VersionRange(min: v123);
159 expect(range.min, equals(v123)); 160 expect(range.min, equals(v123));
160 expect(range.max, isNull); 161 expect(range.max, isNull);
161 }); 162 });
162 163
163 test('allows omitting min and max', () { 164 test('allows omitting min and max', () {
164 var range = new VersionRange(); 165 var range = new VersionRange();
165 expect(range.min, isNull); 166 expect(range.min, isNull);
166 expect(range.max, isNull); 167 expect(range.max, isNull);
167 }); 168 });
168 169
(...skipping 11 matching lines...) Expand all
180 var range = new VersionRange(max: v123, includeMax: true); 181 var range = new VersionRange(max: v123, includeMax: true);
181 expect(range.includeMax); 182 expect(range.includeMax);
182 }); 183 });
183 184
184 test('includeMax defaults to false if omitted', () { 185 test('includeMax defaults to false if omitted', () {
185 var range = new VersionRange(max: v123); 186 var range = new VersionRange(max: v123);
186 expect(range.includeMax, isFalse); 187 expect(range.includeMax, isFalse);
187 }); 188 });
188 189
189 test('throws if min > max', () { 190 test('throws if min > max', () {
190 throwsIllegalArg(() => new VersionRange(v124, v123)); 191 throwsIllegalArg(() => new VersionRange(min: v124, max: v123));
191 }); 192 });
192 }); 193 });
193 194
194 group('allows()', () { 195 group('allows()', () {
195 test('version must be greater than min', () { 196 test('version must be greater than min', () {
196 var range = new VersionRange(v123, v234); 197 var range = new VersionRange(min: v123, max: v234);
197 198
198 expect(!range.allows(new Version.parse('1.2.2'))); 199 expect(!range.allows(new Version.parse('1.2.2')));
199 expect(!range.allows(new Version.parse('1.2.3'))); 200 expect(!range.allows(new Version.parse('1.2.3')));
200 expect(range.allows(new Version.parse('1.3.3'))); 201 expect(range.allows(new Version.parse('1.3.3')));
201 expect(range.allows(new Version.parse('2.3.3'))); 202 expect(range.allows(new Version.parse('2.3.3')));
202 }); 203 });
203 204
204 test('version must be min or greater if includeMin', () { 205 test('version must be min or greater if includeMin', () {
205 var range = new VersionRange(v123, v234, includeMin: true); 206 var range = new VersionRange(min: v123, max: v234, includeMin: true);
206 207
207 expect(!range.allows(new Version.parse('1.2.2'))); 208 expect(!range.allows(new Version.parse('1.2.2')));
208 expect(range.allows(new Version.parse('1.2.3'))); 209 expect(range.allows(new Version.parse('1.2.3')));
209 expect(range.allows(new Version.parse('1.3.3'))); 210 expect(range.allows(new Version.parse('1.3.3')));
210 expect(range.allows(new Version.parse('2.3.3'))); 211 expect(range.allows(new Version.parse('2.3.3')));
211 }); 212 });
212 213
213 test('version must be less than max', () { 214 test('version must be less than max', () {
214 var range = new VersionRange(v123, v234); 215 var range = new VersionRange(min: v123, max: v234);
215 216
216 expect(range.allows(new Version.parse('2.3.3'))); 217 expect(range.allows(new Version.parse('2.3.3')));
217 expect(!range.allows(new Version.parse('2.3.4'))); 218 expect(!range.allows(new Version.parse('2.3.4')));
218 expect(!range.allows(new Version.parse('2.4.3'))); 219 expect(!range.allows(new Version.parse('2.4.3')));
219 }); 220 });
220 221
221 test('version must be max or less if includeMax', () { 222 test('version must be max or less if includeMax', () {
222 var range = new VersionRange(v123, v234, includeMax: true); 223 var range = new VersionRange(min: v123, max: v234, includeMax: true);
223 224
224 expect(range.allows(new Version.parse('2.3.3'))); 225 expect(range.allows(new Version.parse('2.3.3')));
225 expect(range.allows(new Version.parse('2.3.4'))); 226 expect(range.allows(new Version.parse('2.3.4')));
226 expect(!range.allows(new Version.parse('2.4.3'))); 227 expect(!range.allows(new Version.parse('2.4.3')));
227 }); 228 });
228 229
229 test('has no min if one was not set', () { 230 test('has no min if one was not set', () {
230 var range = new VersionRange(max: v123); 231 var range = new VersionRange(max: v123);
231 232
232 expect(range.allows(new Version.parse('0.0.0'))); 233 expect(range.allows(new Version.parse('0.0.0')));
233 expect(!range.allows(new Version.parse('1.2.3'))); 234 expect(!range.allows(new Version.parse('1.2.3')));
234 }); 235 });
235 236
236 test('has no max if one was not set', () { 237 test('has no max if one was not set', () {
237 var range = new VersionRange(v123); 238 var range = new VersionRange(min: v123);
238 239
239 expect(!range.allows(new Version.parse('1.2.3'))); 240 expect(!range.allows(new Version.parse('1.2.3')));
240 expect(range.allows(new Version.parse('1.3.3'))); 241 expect(range.allows(new Version.parse('1.3.3')));
241 expect(range.allows(new Version.parse('999.3.3'))); 242 expect(range.allows(new Version.parse('999.3.3')));
242 }); 243 });
243 244
244 test('allows any version if there is no min or max', () { 245 test('allows any version if there is no min or max', () {
245 var range = new VersionRange(); 246 var range = new VersionRange();
246 247
247 expect(range.allows(new Version.parse('0.0.0'))); 248 expect(range.allows(new Version.parse('0.0.0')));
248 expect(range.allows(new Version.parse('999.99.9'))); 249 expect(range.allows(new Version.parse('999.99.9')));
249 }); 250 });
250 }); 251 });
251 252
252 group('intersect()', () { 253 group('intersect()', () {
253 test('two overlapping ranges', () { 254 test('two overlapping ranges', () {
254 var a = new VersionRange(v123, v250); 255 var a = new VersionRange(min: v123, max: v250);
255 var b = new VersionRange(v200, v300); 256 var b = new VersionRange(min: v200, max: v300);
256 var intersect = a.intersect(b); 257 var intersect = a.intersect(b);
257 expect(intersect.min, equals(v200)); 258 expect(intersect.min, equals(v200));
258 expect(intersect.max, equals(v250)); 259 expect(intersect.max, equals(v250));
259 expect(intersect.includeMin, isFalse); 260 expect(intersect.includeMin, isFalse);
260 expect(intersect.includeMax, isFalse); 261 expect(intersect.includeMax, isFalse);
261 }); 262 });
262 263
263 test('a non-overlapping range allows no versions', () { 264 test('a non-overlapping range allows no versions', () {
264 var a = new VersionRange(v114, v124); 265 var a = new VersionRange(min: v114, max: v124);
265 var b = new VersionRange(v200, v250); 266 var b = new VersionRange(min: v200, max: v250);
266 expect(a.intersect(b).isEmpty); 267 expect(a.intersect(b).isEmpty);
267 }); 268 });
268 269
269 test('adjacent ranges allow no versions if exclusive', () { 270 test('adjacent ranges allow no versions if exclusive', () {
270 var a = new VersionRange(v114, v124, includeMax: false); 271 var a = new VersionRange(min: v114, max: v124, includeMax: false);
271 var b = new VersionRange(v124, v200, includeMin: true); 272 var b = new VersionRange(min: v124, max: v200, includeMin: true);
272 expect(a.intersect(b).isEmpty); 273 expect(a.intersect(b).isEmpty);
273 }); 274 });
274 275
275 test('adjacent ranges allow version if inclusive', () { 276 test('adjacent ranges allow version if inclusive', () {
276 var a = new VersionRange(v114, v124, includeMax: true); 277 var a = new VersionRange(min: v114, max: v124, includeMax: true);
277 var b = new VersionRange(v124, v200, includeMin: true); 278 var b = new VersionRange(min: v124, max: v200, includeMin: true);
278 expect(a.intersect(b), equals(v124)); 279 expect(a.intersect(b), equals(v124));
279 }); 280 });
280 281
281 test('with an open range', () { 282 test('with an open range', () {
282 var open = new VersionRange(); 283 var open = new VersionRange();
283 var a = new VersionRange(v114, v124); 284 var a = new VersionRange(min: v114, max: v124);
284 expect(open.intersect(open), equals(open)); 285 expect(open.intersect(open), equals(open));
285 expect(a.intersect(open), equals(a)); 286 expect(a.intersect(open), equals(a));
286 }); 287 });
287 288
288 test('returns the version if the range allows it', () { 289 test('returns the version if the range allows it', () {
289 expect(new VersionRange(v114, v124).intersect(v123), equals(v123)); 290 expect(new VersionRange(min: v114, max: v124).intersect(v123),
290 expect(new VersionRange(v123, v124).intersect(v114).isEmpty); 291 equals(v123));
292 expect(new VersionRange(min: v123, max: v124).intersect(v114).isEmpty);
291 }); 293 });
292 }); 294 });
293 295
294 test('isEmpty', () { 296 test('isEmpty', () {
295 expect(new VersionRange().isEmpty, isFalse); 297 expect(new VersionRange().isEmpty, isFalse);
296 expect(new VersionRange(v123, v124).isEmpty, isFalse); 298 expect(new VersionRange(min: v123, max: v124).isEmpty, isFalse);
297 }); 299 });
298 }); 300 });
299 301
300 group('VersionConstraint', () { 302 group('VersionConstraint', () {
301 test('empty', () { 303 test('empty', () {
302 expect(new VersionConstraint.empty().isEmpty); 304 expect(new VersionConstraint.empty().isEmpty);
303 }); 305 });
304 306
305 group('parse()', () { 307 group('parse()', () {
306 test('parses an exact version', () { 308 test('parses an exact version', () {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 424
423 Matcher allows(List<Version> versions) => 425 Matcher allows(List<Version> versions) =>
424 new VersionConstraintMatcher(versions, true); 426 new VersionConstraintMatcher(versions, true);
425 427
426 Matcher doesNotAllow(List<Version> versions) => 428 Matcher doesNotAllow(List<Version> versions) =>
427 new VersionConstraintMatcher(versions, false); 429 new VersionConstraintMatcher(versions, false);
428 430
429 throwsIllegalArg(function) { 431 throwsIllegalArg(function) {
430 expect(function, throwsA((e) => e is ArgumentError)); 432 expect(function, throwsA((e) => e is ArgumentError));
431 } 433 }
OLDNEW
« no previous file with comments | « utils/tests/pub/version_solver_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698