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

Unified 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, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/_internal/pub/test/version_solver_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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'),
« 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