Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Side by Side Diff: sdk/lib/_internal/pub/test/pub_uploader_test.dart

Issue 164773003: Change ScheduledProcess's output streams over to be ScheduledStreams. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: update pubspecs Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698