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'; | 8 import 'dart:io'; |
9 | 9 |
10 import 'package:scheduled_test/scheduled_process.dart'; | 10 import 'package:scheduled_test/scheduled_process.dart'; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
66 | 66 |
67 request.response.headers.contentType = | 67 request.response.headers.contentType = |
68 new ContentType("application", "json"); | 68 new ContentType("application", "json"); |
69 request.response.write(JSON.encode({ | 69 request.response.write(JSON.encode({ |
70 'success': {'message': 'Good job!'} | 70 'success': {'message': 'Good job!'} |
71 })); | 71 })); |
72 request.response.close(); | 72 request.response.close(); |
73 }), completes); | 73 }), completes); |
74 }); | 74 }); |
75 | 75 |
76 expect(pub.nextLine(), completion(equals('Good job!'))); | 76 pub.stdout.expect('Good job!'); |
77 pub.shouldExit(exit_codes.SUCCESS); | 77 pub.shouldExit(exit_codes.SUCCESS); |
78 }); | 78 }); |
79 | 79 |
80 integration('removes an uploader', () { | 80 integration('removes an uploader', () { |
81 var server = new ScheduledServer(); | 81 var server = new ScheduledServer(); |
82 d.credentialsFile(server, 'access token').create(); | 82 d.credentialsFile(server, 'access token').create(); |
83 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); | 83 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); |
84 | 84 |
85 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) { | 85 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) { |
86 request.response.headers.contentType = | 86 request.response.headers.contentType = |
87 new ContentType("application", "json"); | 87 new ContentType("application", "json"); |
88 request.response.write(JSON.encode({ | 88 request.response.write(JSON.encode({ |
89 'success': {'message': 'Good job!'} | 89 'success': {'message': 'Good job!'} |
90 })); | 90 })); |
91 request.response.close(); | 91 request.response.close(); |
92 }); | 92 }); |
93 | 93 |
94 expect(pub.nextLine(), completion(equals('Good job!'))); | 94 pub.stdout.expect('Good job!'); |
95 pub.shouldExit(exit_codes.SUCCESS); | 95 pub.shouldExit(exit_codes.SUCCESS); |
96 }); | 96 }); |
97 | 97 |
98 integration('defaults to the current package', () { | 98 integration('defaults to the current package', () { |
99 d.validPackage.create(); | 99 d.validPackage.create(); |
100 | 100 |
101 var server = new ScheduledServer(); | 101 var server = new ScheduledServer(); |
102 d.credentialsFile(server, 'access token').create(); | 102 d.credentialsFile(server, 'access token').create(); |
103 var pub = startPubUploader(server, ['add', 'email']); | 103 var pub = startPubUploader(server, ['add', 'email']); |
104 | 104 |
105 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) { | 105 server.handle('POST', '/api/packages/test_pkg/uploaders', (request) { |
106 request.response.headers.contentType = | 106 request.response.headers.contentType = |
107 new ContentType("application", "json"); | 107 new ContentType("application", "json"); |
108 request.response.write(JSON.encode({ | 108 request.response.write(JSON.encode({ |
109 'success': {'message': 'Good job!'} | 109 'success': {'message': 'Good job!'} |
110 })); | 110 })); |
111 request.response.close(); | 111 request.response.close(); |
112 }); | 112 }); |
113 | 113 |
114 expect(pub.nextLine(), completion(equals('Good job!'))); | 114 pub.stdout.expect('Good job!'); |
115 pub.shouldExit(exit_codes.SUCCESS); | 115 pub.shouldExit(exit_codes.SUCCESS); |
116 }); | 116 }); |
117 | 117 |
118 integration('add provides an error', () { | 118 integration('add provides an error', () { |
119 var server = new ScheduledServer(); | 119 var server = new ScheduledServer(); |
120 d.credentialsFile(server, 'access token').create(); | 120 d.credentialsFile(server, 'access token').create(); |
121 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); | 121 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); |
122 | 122 |
123 server.handle('POST', '/api/packages/pkg/uploaders', (request) { | 123 server.handle('POST', '/api/packages/pkg/uploaders', (request) { |
124 request.response.statusCode = 400; | 124 request.response.statusCode = 400; |
125 request.response.headers.contentType = | 125 request.response.headers.contentType = |
126 new ContentType("application", "json"); | 126 new ContentType("application", "json"); |
127 request.response.write(JSON.encode({ | 127 request.response.write(JSON.encode({ |
128 'error': {'message': 'Bad job!'} | 128 'error': {'message': 'Bad job!'} |
129 })); | 129 })); |
130 request.response.close(); | 130 request.response.close(); |
131 }); | 131 }); |
132 | 132 |
133 expect(pub.nextErrLine(), completion(equals('Bad job!'))); | 133 pub.stderr.expect('Bad job!'); |
134 pub.shouldExit(1); | 134 pub.shouldExit(1); |
135 }); | 135 }); |
136 | 136 |
137 integration('remove provides an error', () { | 137 integration('remove provides an error', () { |
138 var server = new ScheduledServer(); | 138 var server = new ScheduledServer(); |
139 d.credentialsFile(server, 'access token').create(); | 139 d.credentialsFile(server, 'access token').create(); |
140 var pub = startPubUploader(server, | 140 var pub = startPubUploader(server, |
141 ['--package', 'pkg', 'remove', 'e/mail']); | 141 ['--package', 'pkg', 'remove', 'e/mail']); |
142 | 142 |
143 server.handle('DELETE', '/api/packages/pkg/uploaders/e%2Fmail', (request) { | 143 server.handle('DELETE', '/api/packages/pkg/uploaders/e%2Fmail', (request) { |
144 request.response.statusCode = 400; | 144 request.response.statusCode = 400; |
145 request.response.headers.contentType = | 145 request.response.headers.contentType = |
146 new ContentType("application", "json"); | 146 new ContentType("application", "json"); |
147 request.response.write(JSON.encode({ | 147 request.response.write(JSON.encode({ |
148 'error': {'message': 'Bad job!'} | 148 'error': {'message': 'Bad job!'} |
149 })); | 149 })); |
150 request.response.close(); | 150 request.response.close(); |
151 }); | 151 }); |
152 | 152 |
153 expect(pub.nextErrLine(), completion(equals('Bad job!'))); | 153 pub.stderr.expect('Bad job!'); |
154 pub.shouldExit(1); | 154 pub.shouldExit(1); |
155 }); | 155 }); |
156 | 156 |
157 integration('add provides invalid JSON', () { | 157 integration('add provides invalid JSON', () { |
158 var server = new ScheduledServer(); | 158 var server = new ScheduledServer(); |
159 d.credentialsFile(server, 'access token').create(); | 159 d.credentialsFile(server, 'access token').create(); |
160 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); | 160 var pub = startPubUploader(server, ['--package', 'pkg', 'add', 'email']); |
161 | 161 |
162 server.handle('POST', '/api/packages/pkg/uploaders', (request) { | 162 server.handle('POST', '/api/packages/pkg/uploaders', (request) { |
163 request.response.write("{not json"); | 163 request.response.write("{not json"); |
164 request.response.close(); | 164 request.response.close(); |
165 }); | 165 }); |
166 | 166 |
167 expect(pub.nextErrLine(), completion(equals('Invalid server response:'))); | 167 pub.stderr.expect(emitsString( |
168 expect(pub.nextErrLine(), completion(equals('{not json'))); | 168 'Invalid server response:\n' |
169 '{not json')); | |
Bob Nystrom
2014/02/14 17:55:02
Be consistent about using emitsString() or multipl
nweiz
2014/02/18 22:01:10
I chose [emitsString] for consistency with longer
Bob Nystrom
2014/02/18 22:12:59
That makes sense to me too, but in that case I'd p
| |
169 pub.shouldExit(1); | 170 pub.shouldExit(1); |
170 }); | 171 }); |
171 | 172 |
172 integration('remove provides invalid JSON', () { | 173 integration('remove provides invalid JSON', () { |
173 var server = new ScheduledServer(); | 174 var server = new ScheduledServer(); |
174 d.credentialsFile(server, 'access token').create(); | 175 d.credentialsFile(server, 'access token').create(); |
175 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); | 176 var pub = startPubUploader(server, ['--package', 'pkg', 'remove', 'email']); |
176 | 177 |
177 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) { | 178 server.handle('DELETE', '/api/packages/pkg/uploaders/email', (request) { |
178 request.response.write("{not json"); | 179 request.response.write("{not json"); |
179 request.response.close(); | 180 request.response.close(); |
180 }); | 181 }); |
181 | 182 |
182 expect(pub.nextErrLine(), completion(equals('Invalid server response:'))); | 183 pub.stderr.expect(emitsString( |
183 expect(pub.nextErrLine(), completion(equals('{not json'))); | 184 'Invalid server response:\n' |
185 '{not json')); | |
184 pub.shouldExit(1); | 186 pub.shouldExit(1); |
185 }); | 187 }); |
186 } | 188 } |
OLD | NEW |