Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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_lish_test; | 5 library pub_lish_test; |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'dart:json' as json; | 8 import 'dart:json' as json; |
| 9 | 9 |
| 10 import 'test_pub.dart'; | 10 import 'test_pub.dart'; |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 response.outputStream.writeString(json.stringify(body)); | 31 response.outputStream.writeString(json.stringify(body)); |
| 32 response.outputStream.close(); | 32 response.outputStream.close(); |
| 33 }); | 33 }); |
| 34 }); | 34 }); |
| 35 } | 35 } |
| 36 | 36 |
| 37 void handleUpload(ScheduledServer server) { | 37 void handleUpload(ScheduledServer server) { |
| 38 server.handle('POST', '/upload', (request, response) { | 38 server.handle('POST', '/upload', (request, response) { |
| 39 // TODO(nweiz): Once a multipart/form-data parser in Dart exists, validate | 39 // TODO(nweiz): Once a multipart/form-data parser in Dart exists, validate |
| 40 // that the request body is correctly formatted. See issue 6952. | 40 // that the request body is correctly formatted. See issue 6952. |
| 41 return server.url.then((url) { | 41 return drainInputStream(request.inputStream).then((_) { |
| 42 return server.url; | |
|
nweiz
2013/02/06 20:47:05
Style nit: I'd probably make this a "=>"-style lam
Bob Nystrom
2013/02/06 20:50:40
I did that first, but then the following then() do
| |
| 43 }).then((url) { | |
| 42 response.statusCode = 302; | 44 response.statusCode = 302; |
| 43 response.headers.set('location', url.resolve('/create').toString()); | 45 response.headers.set('location', url.resolve('/create').toString()); |
| 44 response.outputStream.close(); | 46 response.outputStream.close(); |
| 45 }); | 47 }); |
| 46 }); | 48 }); |
| 47 } | 49 } |
| 48 | 50 |
| 49 main() { | 51 main() { |
| 50 initConfig(); | 52 initConfig(); |
| 51 setUp(() => normalPackage.scheduleCreate()); | 53 setUp(() => normalPackage.scheduleCreate()); |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 253 | 255 |
| 254 integration('cloud storage upload provides an error', () { | 256 integration('cloud storage upload provides an error', () { |
| 255 var server = new ScheduledServer(); | 257 var server = new ScheduledServer(); |
| 256 credentialsFile(server, 'access token').scheduleCreate(); | 258 credentialsFile(server, 'access token').scheduleCreate(); |
| 257 var pub = startPubLish(server); | 259 var pub = startPubLish(server); |
| 258 | 260 |
| 259 confirmPublish(pub); | 261 confirmPublish(pub); |
| 260 handleUploadForm(server); | 262 handleUploadForm(server); |
| 261 | 263 |
| 262 server.handle('POST', '/upload', (request, response) { | 264 server.handle('POST', '/upload', (request, response) { |
| 263 response.statusCode = 400; | 265 return drainInputStream(request.inputStream).then((_) { |
| 264 response.headers.contentType = new ContentType('application', 'xml'); | 266 response.statusCode = 400; |
| 265 response.outputStream.writeString('<Error><Message>Your request sucked.' | 267 response.headers.contentType = new ContentType('application', 'xml'); |
| 266 '</Message></Error>'); | 268 response.outputStream.writeString('<Error><Message>Your request sucked.' |
| 267 response.outputStream.close(); | 269 '</Message></Error>'); |
| 270 response.outputStream.close(); | |
| 271 }); | |
| 268 }); | 272 }); |
| 269 | 273 |
| 270 // TODO(nweiz): This should use the server's error message once the client | 274 // TODO(nweiz): This should use the server's error message once the client |
| 271 // can parse the XML. | 275 // can parse the XML. |
| 272 expectLater(pub.nextErrLine(), equals('Failed to upload the package.')); | 276 expectLater(pub.nextErrLine(), equals('Failed to upload the package.')); |
| 273 pub.shouldExit(1); | 277 pub.shouldExit(1); |
| 274 }); | 278 }); |
| 275 | 279 |
| 276 integration("cloud storage upload doesn't redirect", () { | 280 integration("cloud storage upload doesn't redirect", () { |
| 277 var server = new ScheduledServer(); | 281 var server = new ScheduledServer(); |
| 278 credentialsFile(server, 'access token').scheduleCreate(); | 282 credentialsFile(server, 'access token').scheduleCreate(); |
| 279 var pub = startPubLish(server); | 283 var pub = startPubLish(server); |
| 280 | 284 |
| 281 confirmPublish(pub); | 285 confirmPublish(pub); |
| 282 handleUploadForm(server); | 286 handleUploadForm(server); |
| 283 | 287 |
| 284 server.handle('POST', '/upload', (request, response) { | 288 server.handle('POST', '/upload', (request, response) { |
| 285 // don't set the location header | 289 return drainInputStream(request.inputStream).then((_) { |
| 286 response.outputStream.close(); | 290 // Don't set the location header. |
| 291 response.outputStream.close(); | |
| 292 }); | |
| 287 }); | 293 }); |
| 288 | 294 |
| 289 expectLater(pub.nextErrLine(), equals('Failed to upload the package.')); | 295 expectLater(pub.nextErrLine(), equals('Failed to upload the package.')); |
| 290 pub.shouldExit(1); | 296 pub.shouldExit(1); |
| 291 }); | 297 }); |
| 292 | 298 |
| 293 integration('package creation provides an error', () { | 299 integration('package creation provides an error', () { |
| 294 var server = new ScheduledServer(); | 300 var server = new ScheduledServer(); |
| 295 credentialsFile(server, 'access token').scheduleCreate(); | 301 credentialsFile(server, 'access token').scheduleCreate(); |
| 296 var pub = startPubLish(server); | 302 var pub = startPubLish(server); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 364 server.handle('GET', '/create', (request, response) { | 370 server.handle('GET', '/create', (request, response) { |
| 365 response.outputStream.writeString(json.stringify(body)); | 371 response.outputStream.writeString(json.stringify(body)); |
| 366 response.outputStream.close(); | 372 response.outputStream.close(); |
| 367 }); | 373 }); |
| 368 | 374 |
| 369 expectLater(pub.nextErrLine(), equals('Invalid server response:')); | 375 expectLater(pub.nextErrLine(), equals('Invalid server response:')); |
| 370 expectLater(pub.nextErrLine(), equals(json.stringify(body))); | 376 expectLater(pub.nextErrLine(), equals(json.stringify(body))); |
| 371 pub.shouldExit(1); | 377 pub.shouldExit(1); |
| 372 }); | 378 }); |
| 373 } | 379 } |
| OLD | NEW |