| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |