| 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 '../../../pkg/unittest/lib/unittest.dart'; | 7 import '../../../pkg/unittest/lib/unittest.dart'; | 
| 8 import 'test_pub.dart'; | 8 import 'test_pub.dart'; | 
| 9 import '../../pub/utils.dart'; | 9 import '../../pub/utils.dart'; | 
| 10 import '../../pub/version.dart'; | 10 import '../../pub/version.dart'; | 
| 11 | 11 | 
| 12 main() { | 12 main() { | 
|  | 13   initConfig(); | 
|  | 14 | 
| 13   final v123 = new Version.parse('1.2.3'); | 15   final v123 = new Version.parse('1.2.3'); | 
| 14   final v114 = new Version.parse('1.1.4'); | 16   final v114 = new Version.parse('1.1.4'); | 
| 15   final v124 = new Version.parse('1.2.4'); | 17   final v124 = new Version.parse('1.2.4'); | 
| 16   final v200 = new Version.parse('2.0.0'); | 18   final v200 = new Version.parse('2.0.0'); | 
| 17   final v234 = new Version.parse('2.3.4'); | 19   final v234 = new Version.parse('2.3.4'); | 
| 18   final v250 = new Version.parse('2.5.0'); | 20   final v250 = new Version.parse('2.5.0'); | 
| 19   final v300 = new Version.parse('3.0.0'); | 21   final v300 = new Version.parse('3.0.0'); | 
| 20 | 22 | 
| 21   group('Version', () { | 23   group('Version', () { | 
| 22     test('none', () { | 24     test('none', () { | 
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 379         var constraint = new VersionConstraint.parse('>1.0.0 >=1.2.3 <1.3.0'); | 381         var constraint = new VersionConstraint.parse('>1.0.0 >=1.2.3 <1.3.0'); | 
| 380         expect(constraint, allows([ | 382         expect(constraint, allows([ | 
| 381             new Version.parse('1.2.3'), | 383             new Version.parse('1.2.3'), | 
| 382             new Version.parse('1.2.5')])); | 384             new Version.parse('1.2.5')])); | 
| 383         expect(constraint, doesNotAllow([ | 385         expect(constraint, doesNotAllow([ | 
| 384             new Version.parse('1.2.3-pre'), | 386             new Version.parse('1.2.3-pre'), | 
| 385             new Version.parse('1.3.0'), | 387             new Version.parse('1.3.0'), | 
| 386             new Version.parse('3.4.5')])); | 388             new Version.parse('3.4.5')])); | 
| 387       }); | 389       }); | 
| 388 | 390 | 
|  | 391       test('ignores whitespace around operators', () { | 
|  | 392         var constraint = new VersionConstraint.parse(' >1.0.0>=1.2.3 < 1.3.0'); | 
|  | 393         expect(constraint, allows([ | 
|  | 394             new Version.parse('1.2.3'), | 
|  | 395             new Version.parse('1.2.5')])); | 
|  | 396         expect(constraint, doesNotAllow([ | 
|  | 397             new Version.parse('1.2.3-pre'), | 
|  | 398             new Version.parse('1.3.0'), | 
|  | 399             new Version.parse('3.4.5')])); | 
|  | 400       }); | 
|  | 401 | 
|  | 402       test('does not allow "any" to be mixed with other constraints', () { | 
|  | 403         expect(() => new VersionConstraint.parse('any 1.0.0'), | 
|  | 404             throwsFormatException); | 
|  | 405       }); | 
|  | 406 | 
| 389       test('throws FormatException on a bad string', () { | 407       test('throws FormatException on a bad string', () { | 
| 390         expect(() => new VersionConstraint.parse(''), throwsFormatException); | 408         var bad = [ | 
| 391         expect(() => new VersionConstraint.parse('   '), throwsFormatException); | 409            "", "   ",               // Empty string. | 
| 392         expect(() => new VersionConstraint.parse('not a version'), | 410            "foo",                   // Bad text. | 
| 393             throwsFormatException); | 411            ">foo",                  // Bad text after operator. | 
|  | 412            "1.0.0 foo", "1.0.0foo", // Bad text after version. | 
|  | 413            "anything",              // Bad text after "any". | 
|  | 414            "<>1.0.0",               // Multiple operators. | 
|  | 415            "1.0.0<"                 // Trailing operator. | 
|  | 416         ]; | 
|  | 417 | 
|  | 418         for (var text in bad) { | 
|  | 419           expect(() => new VersionConstraint.parse(text), | 
|  | 420               throwsFormatException); | 
|  | 421         } | 
| 394       }); | 422       }); | 
| 395     }); | 423     }); | 
| 396   }); | 424   }); | 
| 397 } | 425 } | 
| 398 | 426 | 
| 399 class VersionConstraintMatcher implements Matcher { | 427 class VersionConstraintMatcher implements Matcher { | 
| 400   final List<Version> _expected; | 428   final List<Version> _expected; | 
| 401   final bool _allow; | 429   final bool _allow; | 
| 402 | 430 | 
| 403   VersionConstraintMatcher(this._expected, this._allow); | 431   VersionConstraintMatcher(this._expected, this._allow); | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 439 | 467 | 
| 440 Matcher allows(List<Version> versions) => | 468 Matcher allows(List<Version> versions) => | 
| 441     new VersionConstraintMatcher(versions, true); | 469     new VersionConstraintMatcher(versions, true); | 
| 442 | 470 | 
| 443 Matcher doesNotAllow(List<Version> versions) => | 471 Matcher doesNotAllow(List<Version> versions) => | 
| 444     new VersionConstraintMatcher(versions, false); | 472     new VersionConstraintMatcher(versions, false); | 
| 445 | 473 | 
| 446 throwsIllegalArg(function) { | 474 throwsIllegalArg(function) { | 
| 447   expect(function, throwsA((e) => e is ArgumentError)); | 475   expect(function, throwsA((e) => e is ArgumentError)); | 
| 448 } | 476 } | 
| OLD | NEW | 
|---|