Index: sdk/lib/_internal/pub_generated/test/pub_get_and_upgrade_test.dart |
diff --git a/sdk/lib/_internal/pub_generated/test/pub_get_and_upgrade_test.dart b/sdk/lib/_internal/pub_generated/test/pub_get_and_upgrade_test.dart |
index b459fcf21e5a440a666f44c5c8eaa4018e8bb3db..c4ff0e9c77ce53d8c3f59d5054251de7f837919e 100644 |
--- a/sdk/lib/_internal/pub_generated/test/pub_get_and_upgrade_test.dart |
+++ b/sdk/lib/_internal/pub_generated/test/pub_get_and_upgrade_test.dart |
@@ -1,36 +1,52 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
library pub_tests; |
+ |
import 'package:scheduled_test/scheduled_test.dart'; |
+ |
import '../lib/src/exit_codes.dart' as exit_codes; |
import 'descriptor.dart' as d; |
import 'test_pub.dart'; |
+ |
main() { |
initConfig(); |
+ |
forBothPubGetAndUpgrade((command) { |
group('requires', () { |
integration('a pubspec', () { |
d.dir(appPath, []).create(); |
+ |
pubCommand( |
command, |
error: new RegExp( |
r'Could not find a file named "pubspec.yaml" ' r'in "[^\n]*"\.')); |
}); |
+ |
integration('a pubspec with a "name" key', () { |
d.dir(appPath, [d.pubspec({ |
"dependencies": { |
"foo": null |
} |
})]).create(); |
+ |
pubCommand( |
command, |
error: contains('Missing the required "name" field.'), |
exitCode: exit_codes.DATA); |
}); |
}); |
+ |
integration('adds itself to the packages', () { |
+ // The symlink should use the name in the pubspec, not the name of the |
+ // directory. |
d.dir(appPath, [d.pubspec({ |
"name": "myapp_name" |
}), d.libDir('myapp_name')]).create(); |
+ |
pubCommand(command); |
+ |
d.dir( |
packagesPath, |
[ |
@@ -38,30 +54,43 @@ main() { |
"myapp_name", |
[d.file('myapp_name.dart', 'main() => "myapp_name";')])]).validate(); |
}); |
+ |
integration( |
'does not adds itself to the packages if it has no "lib" ' 'directory', |
() { |
+ // The symlink should use the name in the pubspec, not the name of the |
+ // directory. |
d.dir(appPath, [d.pubspec({ |
"name": "myapp_name" |
- })]).create(); |
+ }),]).create(); |
+ |
pubCommand(command); |
+ |
d.dir(packagesPath, [d.nothing("myapp_name")]).validate(); |
}); |
+ |
integration( |
'does not add a package if it does not have a "lib" ' 'directory', |
() { |
+ // Using a path source, but this should be true of all sources. |
d.dir('foo', [d.libPubspec('foo', '0.0.0-not.used')]).create(); |
+ |
d.dir(appPath, [d.appPubspec({ |
"foo": { |
"path": "../foo" |
} |
})]).create(); |
+ |
pubCommand(command); |
+ |
d.packagesDir({ |
"foo": null |
}).validate(); |
}); |
+ |
integration('reports a solver failure', () { |
+ // myapp depends on foo and bar which both depend on baz with mismatched |
+ // descriptions. |
d.dir('deps', [d.dir('foo', [d.pubspec({ |
"name": "foo", |
"dependencies": { |
@@ -79,6 +108,7 @@ main() { |
})]), |
d.dir('baz1', [d.libPubspec('baz', '0.0.0')]), |
d.dir('baz2', [d.libPubspec('baz', '0.0.0')])]).create(); |
+ |
d.dir(appPath, [d.appPubspec({ |
"foo": { |
"path": "../deps/foo" |
@@ -87,21 +117,25 @@ main() { |
"path": "../deps/bar" |
} |
})]).create(); |
+ |
pubCommand( |
command, |
error: new RegExp("^Incompatible dependencies on baz:\n")); |
}); |
+ |
integration('does not allow a dependency on itself', () { |
d.dir(appPath, [d.appPubspec({ |
"myapp": { |
"path": "." |
} |
})]).create(); |
+ |
pubCommand( |
command, |
error: contains('A package may not list itself as a dependency.'), |
exitCode: exit_codes.DATA); |
}); |
+ |
integration('does not allow a dev dependency on itself', () { |
d.dir(appPath, [d.pubspec({ |
"name": "myapp", |
@@ -111,6 +145,7 @@ main() { |
} |
} |
})]).create(); |
+ |
pubCommand( |
command, |
error: contains('A package may not list itself as a dependency.'), |