OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library pub_uploader_test; | 5 library pub_uploader_test; |
6 | 6 |
7 import 'dart:convert'; | 7 import 'dart:convert'; |
8 import 'dart:io'; | |
9 | 8 |
10 import 'package:scheduled_test/scheduled_process.dart'; | 9 import 'package:scheduled_test/scheduled_process.dart'; |
11 import 'package:scheduled_test/scheduled_server.dart'; | 10 import 'package:scheduled_test/scheduled_server.dart'; |
12 import 'package:scheduled_test/scheduled_test.dart'; | 11 import 'package:scheduled_test/scheduled_test.dart'; |
13 import 'package:shelf/shelf.dart' as shelf; | 12 import 'package:shelf/shelf.dart' as shelf; |
14 | 13 |
15 import '../lib/src/exit_codes.dart' as exit_codes; | 14 import '../lib/src/exit_codes.dart' as exit_codes; |
16 import '../lib/src/io.dart'; | |
17 import '../lib/src/utils.dart'; | 15 import '../lib/src/utils.dart'; |
18 import 'descriptor.dart' as d; | 16 import 'descriptor.dart' as d; |
19 import 'test_pub.dart'; | 17 import 'test_pub.dart'; |
20 | 18 |
21 final USAGE_STRING = ''' | 19 final USAGE_STRING = ''' |
22 Manage uploaders for a package on pub.dartlang.org. | 20 Manage uploaders for a package on pub.dartlang.org. |
23 | 21 |
24 Usage: pub uploader [options] {add/remove} <email> | 22 Usage: pub uploader [options] {add/remove} <email> |
25 -h, --help Print usage information for this command. | 23 -h, --help Print usage information for this command. |
26 --server The package server on which the package is hosted. | 24 --server The package server on which the package is hosted. |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 d.validPackage.create(); | 95 d.validPackage.create(); |
98 | 96 |
99 var server = new ScheduledServer(); | 97 var server = new ScheduledServer(); |
100 d.credentialsFile(server, 'access token').create(); | 98 d.credentialsFile(server, 'access token').create(); |
101 var pub = startPubUploader(server, ['add', 'email']); | 99 var pub = startPubUploader(server, ['add', 'email']); |
102 | 100 |
103 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) { | 101 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) { |
104 return new shelf.Response.ok(JSON.encode({ | 102 return new shelf.Response.ok(JSON.encode({ |
105 'success': {'message': 'Good job!'} | 103 'success': {'message': 'Good job!'} |
106 }), headers: {'content-type': 'application/json'}); | 104 }), headers: {'content-type': 'application/json'}); |
107 request.response.close(); | |
108 }); | 105 }); |
109 | 106 |
110 pub.stdout.expect('Good job!'); | 107 pub.stdout.expect('Good job!'); |
111 pub.shouldExit(exit_codes.SUCCESS); | 108 pub.shouldExit(exit_codes.SUCCESS); |
112 }); | 109 }); |
113 | 110 |
114 integration('add provides an error', () { | 111 integration('add provides an error', () { |
115 var server = new ScheduledServer(); | 112 var server = new ScheduledServer(); |
116 d.credentialsFile(server, 'access token').create(); | 113 d.credentialsFile(server, 'access token').create(); |
117 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); | 114 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 | 160 |
164 server.handle('DELETE', '/api/packages/pkg/uploaders/email', | 161 server.handle('DELETE', '/api/packages/pkg/uploaders/email', |
165 (request) => new shelf.Response.ok("{not json")); | 162 (request) => new shelf.Response.ok("{not json")); |
166 | 163 |
167 pub.stderr.expect(emitsLines( | 164 pub.stderr.expect(emitsLines( |
168 'Invalid server response:\n' | 165 'Invalid server response:\n' |
169 '{not json')); | 166 '{not json')); |
170 pub.shouldExit(1); | 167 pub.shouldExit(1); |
171 }); | 168 }); |
172 } | 169 } |
OLD | NEW |