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

Side by Side Diff: sdk/lib/_internal/pub/test/version_test.dart

Issue 432913002: Don't allow pre-release versions of the max in "<" constraints. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « sdk/lib/_internal/pub/test/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 'package:unittest/unittest.dart'; 7 import 'package:unittest/unittest.dart';
8 import 'test_pub.dart'; 8 import 'test_pub.dart';
9 import '../lib/src/version.dart'; 9 import '../lib/src/version.dart';
10 10
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 expect(range.includeMax, isFalse); 246 expect(range.includeMax, isFalse);
247 }); 247 });
248 248
249 test('throws if min > max', () { 249 test('throws if min > max', () {
250 throwsIllegalArg(() => new VersionRange(min: v124, max: v123)); 250 throwsIllegalArg(() => new VersionRange(min: v124, max: v123));
251 }); 251 });
252 }); 252 });
253 253
254 group('allows()', () { 254 group('allows()', () {
255 test('version must be greater than min', () { 255 test('version must be greater than min', () {
256 var range = new VersionRange(min: v123, max: v234); 256 var range = new VersionRange(min: v123);
257 257
258 expect(range.allows(new Version.parse('1.2.2')), isFalse); 258 expect(range.allows(new Version.parse('1.2.2')), isFalse);
259 expect(range.allows(new Version.parse('1.2.3')), isFalse); 259 expect(range.allows(new Version.parse('1.2.3')), isFalse);
260 expect(range.allows(new Version.parse('1.3.3')), isTrue); 260 expect(range.allows(new Version.parse('1.3.3')), isTrue);
261 expect(range.allows(new Version.parse('2.3.3')), isTrue); 261 expect(range.allows(new Version.parse('2.3.3')), isTrue);
262 }); 262 });
263 263
264 test('version must be min or greater if includeMin', () { 264 test('version must be min or greater if includeMin', () {
265 var range = new VersionRange(min: v123, max: v234, includeMin: true); 265 var range = new VersionRange(min: v123, includeMin: true);
266 266
267 expect(range.allows(new Version.parse('1.2.2')), isFalse); 267 expect(range.allows(new Version.parse('1.2.2')), isFalse);
268 expect(range.allows(new Version.parse('1.2.3')), isTrue); 268 expect(range.allows(new Version.parse('1.2.3')), isTrue);
269 expect(range.allows(new Version.parse('1.3.3')), isTrue); 269 expect(range.allows(new Version.parse('1.3.3')), isTrue);
270 expect(range.allows(new Version.parse('2.3.3')), isTrue); 270 expect(range.allows(new Version.parse('2.3.3')), isTrue);
271 }); 271 });
272 272
273 test('pre-release versions of inclusive min are excluded', () {
274 var range = new VersionRange(min: v123, includeMin: true);
275
276 expect(range.allows(new Version.parse('1.2.3-dev')), isFalse);
277 expect(range.allows(new Version.parse('1.2.4-dev')), isTrue);
278 });
279
273 test('version must be less than max', () { 280 test('version must be less than max', () {
274 var range = new VersionRange(min: v123, max: v234); 281 var range = new VersionRange(max: v234);
275 282
276 expect(range.allows(new Version.parse('2.3.3')), isTrue); 283 expect(range.allows(new Version.parse('2.3.3')), isTrue);
277 expect(range.allows(new Version.parse('2.3.4')), isFalse); 284 expect(range.allows(new Version.parse('2.3.4')), isFalse);
278 expect(range.allows(new Version.parse('2.4.3')), isFalse); 285 expect(range.allows(new Version.parse('2.4.3')), isFalse);
279 }); 286 });
280 287
288 test('pre-release versions of non-pre-release max are excluded', () {
289 var range = new VersionRange(max: v234);
290
291 expect(range.allows(new Version.parse('2.3.3')), isTrue);
292 expect(range.allows(new Version.parse('2.3.4-dev')), isFalse);
293 expect(range.allows(new Version.parse('2.3.4')), isFalse);
294 });
295
296 test('pre-release versions of pre-release max are included', () {
297 var range = new VersionRange(max: new Version.parse('2.3.4-dev.2'));
298
299 expect(range.allows(new Version.parse('2.3.4-dev.1')), isTrue);
300 expect(range.allows(new Version.parse('2.3.4-dev.2')), isFalse);
301 expect(range.allows(new Version.parse('2.3.4-dev.3')), isFalse);
302 });
303
281 test('version must be max or less if includeMax', () { 304 test('version must be max or less if includeMax', () {
282 var range = new VersionRange(min: v123, max: v234, includeMax: true); 305 var range = new VersionRange(min: v123, max: v234, includeMax: true);
283 306
284 expect(range.allows(new Version.parse('2.3.3')), isTrue); 307 expect(range.allows(new Version.parse('2.3.3')), isTrue);
285 expect(range.allows(new Version.parse('2.3.4')), isTrue); 308 expect(range.allows(new Version.parse('2.3.4')), isTrue);
286 expect(range.allows(new Version.parse('2.4.3')), isFalse); 309 expect(range.allows(new Version.parse('2.4.3')), isFalse);
310
311 // Pre-releases of the max are allowed.
312 expect(range.allows(new Version.parse('2.3.4-dev')), isTrue);
287 }); 313 });
288 314
289 test('has no min if one was not set', () { 315 test('has no min if one was not set', () {
290 var range = new VersionRange(max: v123); 316 var range = new VersionRange(max: v123);
291 317
292 expect(range.allows(new Version.parse('0.0.0')), isTrue); 318 expect(range.allows(new Version.parse('0.0.0')), isTrue);
293 expect(range.allows(new Version.parse('1.2.3')), isFalse); 319 expect(range.allows(new Version.parse('1.2.3')), isFalse);
294 }); 320 });
295 321
296 test('has no max if one was not set', () { 322 test('has no max if one was not set', () {
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 new Version.parse('1.2.3+foo'), 435 new Version.parse('1.2.3+foo'),
410 new Version.parse('1.2.4')])); 436 new Version.parse('1.2.4')]));
411 expect(new VersionConstraint.parse('>=1.2.3'), doesNotAllow([ 437 expect(new VersionConstraint.parse('>=1.2.3'), doesNotAllow([
412 new Version.parse('1.2.1'), 438 new Version.parse('1.2.1'),
413 new Version.parse('1.2.3-build')])); 439 new Version.parse('1.2.3-build')]));
414 }); 440 });
415 441
416 test('parses a "<" maximum version', () { 442 test('parses a "<" maximum version', () {
417 expect(new VersionConstraint.parse('<1.2.3'), allows([ 443 expect(new VersionConstraint.parse('<1.2.3'), allows([
418 new Version.parse('1.2.1'), 444 new Version.parse('1.2.1'),
419 new Version.parse('1.2.3-build')])); 445 new Version.parse('1.2.2+foo')]));
420 expect(new VersionConstraint.parse('<1.2.3'), doesNotAllow([ 446 expect(new VersionConstraint.parse('<1.2.3'), doesNotAllow([
421 new Version.parse('1.2.3'), 447 new Version.parse('1.2.3'),
422 new Version.parse('1.2.3+foo'), 448 new Version.parse('1.2.3+foo'),
423 new Version.parse('1.2.4')])); 449 new Version.parse('1.2.4')]));
424 }); 450 });
425 451
426 test('parses a "<=" maximum version', () { 452 test('parses a "<=" maximum version', () {
427 expect(new VersionConstraint.parse('<=1.2.3'), allows([ 453 expect(new VersionConstraint.parse('<=1.2.3'), allows([
428 new Version.parse('1.2.1'), 454 new Version.parse('1.2.1'),
429 new Version.parse('1.2.3-build'), 455 new Version.parse('1.2.3-build'),
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 549
524 Matcher allows(List<Version> versions) => 550 Matcher allows(List<Version> versions) =>
525 new VersionConstraintMatcher(versions, true); 551 new VersionConstraintMatcher(versions, true);
526 552
527 Matcher doesNotAllow(List<Version> versions) => 553 Matcher doesNotAllow(List<Version> versions) =>
528 new VersionConstraintMatcher(versions, false); 554 new VersionConstraintMatcher(versions, false);
529 555
530 throwsIllegalArg(function) { 556 throwsIllegalArg(function) {
531 expect(function, throwsA((e) => e is ArgumentError)); 557 expect(function, throwsA((e) => e is ArgumentError));
532 } 558 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub/test/version_solver_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698