| Index: utils/tests/pub/pub_test.dart
 | 
| diff --git a/utils/tests/pub/pub_test.dart b/utils/tests/pub/pub_test.dart
 | 
| index 8d7f1cdc94c72acdf81965ba187c3ffaf064bf0d..272aefcc891f3f952ff50684d49791363f2e9370 100644
 | 
| --- a/utils/tests/pub/pub_test.dart
 | 
| +++ b/utils/tests/pub/pub_test.dart
 | 
| @@ -90,8 +90,9 @@ listCommand() {
 | 
|  }
 | 
|  
 | 
|  installCommand() {
 | 
| -  test('adds a dependent package', () {
 | 
| +  test('checks out a package from the SDK', () {
 | 
|      dir(sdkPath, [
 | 
| +      file('revision', '1234'),
 | 
|        dir('lib', [
 | 
|          dir('foo', [
 | 
|            file('foo.dart', 'main() => "foo";')
 | 
| @@ -117,40 +118,6 @@ installCommand() {
 | 
|      run();
 | 
|    });
 | 
|  
 | 
| -  test('adds a transitively dependent package', () {
 | 
| -    dir(sdkPath, [
 | 
| -      dir('lib', [
 | 
| -        dir('foo', [
 | 
| -          file('foo.dart', 'main() => "foo";'),
 | 
| -          file('pubspec.yaml', 'dependencies:\n  bar:')
 | 
| -        ]),
 | 
| -        dir('bar', [
 | 
| -          file('bar.dart', 'main() => "bar";'),
 | 
| -        ])
 | 
| -      ])
 | 
| -    ]).scheduleCreate();
 | 
| -
 | 
| -    dir(appPath, [
 | 
| -      file('pubspec.yaml', 'dependencies:\n  foo:')
 | 
| -    ]).scheduleCreate();
 | 
| -
 | 
| -    schedulePub(args: ['install'],
 | 
| -        output: '''
 | 
| -        Dependencies installed!
 | 
| -        ''');
 | 
| -
 | 
| -    dir(packagesPath, [
 | 
| -      dir('foo', [
 | 
| -        file('foo.dart', 'main() => "foo";')
 | 
| -      ]),
 | 
| -      dir('bar', [
 | 
| -        file('bar.dart', 'main() => "bar";'),
 | 
| -      ])
 | 
| -    ]).scheduleValidate();
 | 
| -
 | 
| -    run();
 | 
| -  });
 | 
| -
 | 
|    test('checks out a package from Git', () {
 | 
|      withGit(() {
 | 
|        git('foo.git', [
 | 
| @@ -480,6 +447,105 @@ dependencies:
 | 
|  
 | 
|      run();
 | 
|    });
 | 
| +
 | 
| +  test('resolves version constraints from a pub server', () {
 | 
| +    servePackages("localhost", 3123, [
 | 
| +      '''
 | 
| +name: foo
 | 
| +version: 1.2.3
 | 
| +dependencies:
 | 
| +  baz:
 | 
| +    repo: {name: baz, url: http://localhost:3123}
 | 
| +    version: ">=2.0.0"
 | 
| +''',
 | 
| +      '''
 | 
| +name: bar
 | 
| +version: 2.3.4
 | 
| +dependencies:
 | 
| +  baz:
 | 
| +    repo: {name: baz, url: http://localhost:3123}
 | 
| +    version: "<3.0.0"
 | 
| +''',
 | 
| +      '{name: baz, version: 2.0.3}',
 | 
| +      '{name: baz, version: 2.0.4}',
 | 
| +      '{name: baz, version: 3.0.1}',
 | 
| +    ]);
 | 
| +
 | 
| +    dir(appPath, [
 | 
| +      file('pubspec.yaml', '''
 | 
| +dependencies:
 | 
| +  foo: {repo: {name: foo, url: http://localhost:3123}}
 | 
| +  bar: {repo: {name: bar, url: http://localhost:3123}}
 | 
| +''')
 | 
| +    ]).scheduleCreate();
 | 
| +
 | 
| +    schedulePub(args: ['install'],
 | 
| +        output: const RegExp("Dependencies installed!\$"));
 | 
| +
 | 
| +    dir(cachePath, [
 | 
| +      dir('repo', [
 | 
| +        dir('localhost%583123', [
 | 
| +          dir('foo-1.2.3', [
 | 
| +            file('pubspec.yaml', '''
 | 
| +name: foo
 | 
| +version: 1.2.3
 | 
| +dependencies:
 | 
| +  baz:
 | 
| +    repo: {name: baz, url: http://localhost:3123}
 | 
| +    version: ">=2.0.0"
 | 
| +'''),
 | 
| +            file('foo.dart', 'main() => print("foo 1.2.3");')
 | 
| +          ]),
 | 
| +          dir('bar-2.3.4', [
 | 
| +            file('pubspec.yaml', '''
 | 
| +name: bar
 | 
| +version: 2.3.4
 | 
| +dependencies:
 | 
| +  baz:
 | 
| +    repo: {name: baz, url: http://localhost:3123}
 | 
| +    version: "<3.0.0"
 | 
| +'''),
 | 
| +            file('bar.dart', 'main() => print("bar 2.3.4");')
 | 
| +          ]),
 | 
| +          dir('baz-2.0.4', [
 | 
| +            file('pubspec.yaml', '{name: baz, version: 2.0.4}'),
 | 
| +            file('baz.dart', 'main() => print("baz 2.0.4");')
 | 
| +          ])
 | 
| +        ])
 | 
| +      ])
 | 
| +    ]).scheduleValidate();
 | 
| +
 | 
| +    dir(packagesPath, [
 | 
| +      dir('foo', [
 | 
| +        file('pubspec.yaml', '''
 | 
| +name: foo
 | 
| +version: 1.2.3
 | 
| +dependencies:
 | 
| +  baz:
 | 
| +    repo: {name: baz, url: http://localhost:3123}
 | 
| +    version: ">=2.0.0"
 | 
| +'''),
 | 
| +        file('foo.dart', 'main() => print("foo 1.2.3");')
 | 
| +      ]),
 | 
| +      dir('bar', [
 | 
| +        file('pubspec.yaml', '''
 | 
| +name: bar
 | 
| +version: 2.3.4
 | 
| +dependencies:
 | 
| +  baz:
 | 
| +    repo: {name: baz, url: http://localhost:3123}
 | 
| +    version: "<3.0.0"
 | 
| +'''),
 | 
| +        file('bar.dart', 'main() => print("bar 2.3.4");')
 | 
| +      ]),
 | 
| +      dir('baz', [
 | 
| +        file('pubspec.yaml', '{name: baz, version: 2.0.4}'),
 | 
| +        file('baz.dart', 'main() => print("baz 2.0.4");')
 | 
| +      ])
 | 
| +    ]).scheduleValidate();
 | 
| +
 | 
| +    run();
 | 
| +  });
 | 
|  }
 | 
|  
 | 
|  versionCommand() {
 | 
| 
 |