| Index: sdk/lib/_internal/pub/test/pubspec_test.dart
|
| diff --git a/sdk/lib/_internal/pub/test/pubspec_test.dart b/sdk/lib/_internal/pub/test/pubspec_test.dart
|
| index e34ce431c0d2dca1bc1c859c4d3f1d7fe5b1fd4c..fec3077dcfa9e317ab64f11ccc806df775397a2c 100644
|
| --- a/sdk/lib/_internal/pub/test/pubspec_test.dart
|
| +++ b/sdk/lib/_internal/pub/test/pubspec_test.dart
|
| @@ -444,5 +444,58 @@ publish_to: none
|
| (pubspec) => pubspec.publishTo);
|
| });
|
| });
|
| +
|
| + group("executables", () {
|
| + test("defaults to an empty map if omitted", () {
|
| + var pubspec = new Pubspec.parse('', sources);
|
| + expect(pubspec.executables, isEmpty);
|
| + });
|
| +
|
| + test("allows simple names for keys and most characters in values", () {
|
| + var pubspec = new Pubspec.parse('''
|
| +executables:
|
| + abcDEF-123_: "abc DEF-123._"
|
| +''', sources);
|
| + expect(pubspec.executables['abcDEF-123_'], equals('abc DEF-123._'));
|
| + });
|
| +
|
| + test("throws if not a map", () {
|
| + expectPubspecException('executables: not map',
|
| + (pubspec) => pubspec.executables);
|
| + });
|
| +
|
| + test("throws if key is not a string", () {
|
| + expectPubspecException('executables: {123: value}',
|
| + (pubspec) => pubspec.executables);
|
| + });
|
| +
|
| + test("throws if a key isn't a simple name", () {
|
| + expectPubspecException('executables: {funny/name: ok}',
|
| + (pubspec) => pubspec.executables);
|
| + });
|
| +
|
| + test("throws if a value is not a string", () {
|
| + expectPubspecException('executables: {command: 123}',
|
| + (pubspec) => pubspec.executables);
|
| + });
|
| +
|
| + test("throws if a value contains a path separator", () {
|
| + expectPubspecException('executables: {command: funny_name/part}',
|
| + (pubspec) => pubspec.executables);
|
| + });
|
| +
|
| + test("throws if a value contains a windows path separator", () {
|
| + expectPubspecException(r'executables: {command: funny_name\part}',
|
| + (pubspec) => pubspec.executables);
|
| + });
|
| +
|
| + test("uses the key if the value is null", () {
|
| + var pubspec = new Pubspec.parse('''
|
| +executables:
|
| + command:
|
| +''', sources);
|
| + expect(pubspec.executables['command'], equals('command'));
|
| + });
|
| + });
|
| });
|
| }
|
|
|