Index: sdk/lib/_internal/pub/test/version_test.dart |
diff --git a/sdk/lib/_internal/pub/test/version_test.dart b/sdk/lib/_internal/pub/test/version_test.dart |
index 8e6a8254e4d115b485824b028d4f322c8d40dc71..0bfe60eb621bd35ed96ba2fd7a91046956e20def 100644 |
--- a/sdk/lib/_internal/pub/test/version_test.dart |
+++ b/sdk/lib/_internal/pub/test/version_test.dart |
@@ -253,7 +253,7 @@ main() { |
group('allows()', () { |
test('version must be greater than min', () { |
- var range = new VersionRange(min: v123, max: v234); |
+ var range = new VersionRange(min: v123); |
expect(range.allows(new Version.parse('1.2.2')), isFalse); |
expect(range.allows(new Version.parse('1.2.3')), isFalse); |
@@ -262,7 +262,7 @@ main() { |
}); |
test('version must be min or greater if includeMin', () { |
- var range = new VersionRange(min: v123, max: v234, includeMin: true); |
+ var range = new VersionRange(min: v123, includeMin: true); |
expect(range.allows(new Version.parse('1.2.2')), isFalse); |
expect(range.allows(new Version.parse('1.2.3')), isTrue); |
@@ -270,20 +270,46 @@ main() { |
expect(range.allows(new Version.parse('2.3.3')), isTrue); |
}); |
+ test('pre-release versions of inclusive min are excluded', () { |
+ var range = new VersionRange(min: v123, includeMin: true); |
+ |
+ expect(range.allows(new Version.parse('1.2.3-dev')), isFalse); |
+ expect(range.allows(new Version.parse('1.2.4-dev')), isTrue); |
+ }); |
+ |
test('version must be less than max', () { |
- var range = new VersionRange(min: v123, max: v234); |
+ var range = new VersionRange(max: v234); |
expect(range.allows(new Version.parse('2.3.3')), isTrue); |
expect(range.allows(new Version.parse('2.3.4')), isFalse); |
expect(range.allows(new Version.parse('2.4.3')), isFalse); |
}); |
+ test('pre-release versions of non-pre-release max are excluded', () { |
+ var range = new VersionRange(max: v234); |
+ |
+ expect(range.allows(new Version.parse('2.3.3')), isTrue); |
+ expect(range.allows(new Version.parse('2.3.4-dev')), isFalse); |
+ expect(range.allows(new Version.parse('2.3.4')), isFalse); |
+ }); |
+ |
+ test('pre-release versions of pre-release max are included', () { |
+ var range = new VersionRange(max: new Version.parse('2.3.4-dev.2')); |
+ |
+ expect(range.allows(new Version.parse('2.3.4-dev.1')), isTrue); |
+ expect(range.allows(new Version.parse('2.3.4-dev.2')), isFalse); |
+ expect(range.allows(new Version.parse('2.3.4-dev.3')), isFalse); |
+ }); |
+ |
test('version must be max or less if includeMax', () { |
var range = new VersionRange(min: v123, max: v234, includeMax: true); |
expect(range.allows(new Version.parse('2.3.3')), isTrue); |
expect(range.allows(new Version.parse('2.3.4')), isTrue); |
expect(range.allows(new Version.parse('2.4.3')), isFalse); |
+ |
+ // Pre-releases of the max are allowed. |
+ expect(range.allows(new Version.parse('2.3.4-dev')), isTrue); |
}); |
test('has no min if one was not set', () { |
@@ -416,7 +442,7 @@ main() { |
test('parses a "<" maximum version', () { |
expect(new VersionConstraint.parse('<1.2.3'), allows([ |
new Version.parse('1.2.1'), |
- new Version.parse('1.2.3-build')])); |
+ new Version.parse('1.2.2+foo')])); |
expect(new VersionConstraint.parse('<1.2.3'), doesNotAllow([ |
new Version.parse('1.2.3'), |
new Version.parse('1.2.3+foo'), |