Chromium Code Reviews| Index: test/version_solver_test.dart |
| diff --git a/test/version_solver_test.dart b/test/version_solver_test.dart |
| index 7d8da5d532a0d01f62a64651d2cd41816f10076a..da890621771fb360d7b4ffcbca2ab8b7893c168c 100644 |
| --- a/test/version_solver_test.dart |
| +++ b/test/version_solver_test.dart |
| @@ -12,6 +12,7 @@ import 'package:pub/src/sdk.dart' as sdk; |
| import 'package:pub/src/solver/version_solver.dart'; |
| import 'package:pub/src/source.dart'; |
| import 'package:pub/src/source/cached.dart'; |
| +import 'package:pub/src/source_registry.dart'; |
| import 'package:pub/src/system_cache.dart'; |
| import 'package:pub/src/utils.dart'; |
| import 'package:pub_semver/pub_semver.dart'; |
| @@ -652,7 +653,7 @@ backtracking() { |
| 'c 5.0.0': {}, |
| }, result: { |
| 'myapp from root': '0.0.0', |
| - 'a': '1.0.0', |
| + 'a-x': '1.0.0', |
|
Bob Nystrom
2016/06/23 20:29:49
Why the change here?
nweiz
2016/06/23 21:01:21
Previously, the result wasn't validating which "a
Bob Nystrom
2016/06/23 22:02:20
Ah, cool. I thought it was actually producing a di
|
| 'b': '1.0.0', |
| 'c': '5.0.0' |
| }, maxTries: 2); |
| @@ -1121,8 +1122,8 @@ testResolve(String description, Map packages, { |
| // Build the test package graph. |
| var root; |
| packages.forEach((description, dependencies) { |
| - var id = parseSpec(description); |
| - var package = mockPackage(id, dependencies, |
| + var id = parseSpec(cache.sources, description); |
| + var package = mockPackage(cache.sources, id, dependencies, |
| id.name == 'myapp' ? overrides : null); |
| if (id.name == 'myapp') { |
| // Don't add the root package to the server, so we can verify that Pub |
| @@ -1139,7 +1140,7 @@ testResolve(String description, Map packages, { |
| if (result != null) { |
| var newResult = {}; |
| result.forEach((description, version) { |
| - var id = parseSpec(description, version); |
| + var id = parseSpec(cache.sources, description, version); |
| newResult[id.name] = id; |
| }); |
| result = newResult; |
| @@ -1148,12 +1149,12 @@ testResolve(String description, Map packages, { |
| // Parse the lockfile. |
| var realLockFile; |
| if (lockfile == null) { |
| - realLockFile = new LockFile.empty(cache.sources); |
| + realLockFile = new LockFile.empty(); |
| } else { |
| realLockFile = new LockFile(lockfile.keys.map((name) { |
| var version = new Version.parse(lockfile[name]); |
| - return new PackageId(name, source1.name, version, name); |
| - }), cache.sources); |
| + return new PackageId(name, source1, version, name); |
| + })); |
| } |
| // Resolve the versions. |
| @@ -1358,13 +1359,15 @@ class MockSource extends Source { |
| BoundSource bind(SystemCache cache) => new BoundMockSource(this, cache); |
| PackageRef parseRef(String name, description, {String containingPath}) => |
| - new PackageRef(name, this.name, description); |
| + new PackageRef(name, this, description); |
| PackageId parseId(String name, Version version, description) => |
| - new PackageId(name, this.name, version, description); |
| + new PackageId(name, this, version, description); |
| bool descriptionsEqual(description1, description2) => |
| description1 == description2; |
| + |
| + int hashDescription(description) => description.hashCode; |
| } |
| class BoundMockSource extends CachedSource { |
| @@ -1403,8 +1406,7 @@ class BoundMockSource extends CachedSource { |
| } |
| return _packages[ref.description].values.map((package) { |
| - return new PackageId( |
| - ref.name, source.name, package.version, ref.description); |
| + return new PackageId(ref.name, source, package.version, ref.description); |
| }).toList(); |
| } |
| @@ -1438,7 +1440,8 @@ class BoundMockSource extends CachedSource { |
| } |
| } |
| -Package mockPackage(PackageId id, Map dependencyStrings, Map overrides) { |
| +Package mockPackage(SourceRegistry sources, PackageId id, Map dependencyStrings, |
| + Map overrides) { |
| var sdkConstraint = null; |
| // Build the pubspec dependencies. |
| @@ -1451,7 +1454,7 @@ Package mockPackage(PackageId id, Map dependencyStrings, Map overrides) { |
| spec = spec.substring("(dev) ".length); |
| } |
| - var dep = parseSpec(spec).withConstraint( |
| + var dep = parseSpec(sources, spec).withConstraint( |
| new VersionConstraint.parse(constraint)); |
| if (dep.name == 'sdk') { |
| @@ -1469,8 +1472,8 @@ Package mockPackage(PackageId id, Map dependencyStrings, Map overrides) { |
| var dependencyOverrides = <PackageDep>[]; |
| if (overrides != null) { |
| overrides.forEach((spec, constraint) { |
| - dependencyOverrides.add(parseSpec(spec).withConstraint( |
| - new VersionConstraint.parse(constraint))); |
| + dependencyOverrides.add(parseSpec(sources, spec) |
| + .withConstraint(new VersionConstraint.parse(constraint))); |
| }); |
| } |
| @@ -1497,7 +1500,7 @@ Package mockPackage(PackageId id, Map dependencyStrings, Map overrides) { |
| /// |
| /// The "from mock" optional suffix is the name of a source for the package. |
| /// If omitted, it defaults to "mock1". |
| -PackageId parseSpec(String text, [String version]) { |
| +PackageId parseSpec(SourceRegistry sources, String text, [String version]) { |
| var pattern = new RegExp(r"(([a-z_]*)(-[a-z_]+)?)( ([^ ]+))?( from (.*))?$"); |
| var match = pattern.firstMatch(text); |
| if (match == null) { |
| @@ -1523,11 +1526,8 @@ PackageId parseSpec(String text, [String version]) { |
| } |
| } |
| - var source = "mock1"; |
| - if (match[7] != null) { |
| - source = match[7]; |
| - if (source == "root") source = null; |
| - } |
| + var source = sources["mock1"]; |
| + if (match[7] != null) source = match[7] == "root" ? null : sources[match[7]]; |
| return new PackageId(name, source, parsedVersion, description); |
| } |