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

Unified Diff: sdk/lib/_internal/pub/test/test_pub.dart

Issue 221173008: Use shelf for some of pub's servers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/_internal/pub/lib/src/oauth2.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/_internal/pub/test/test_pub.dart
diff --git a/sdk/lib/_internal/pub/test/test_pub.dart b/sdk/lib/_internal/pub/test/test_pub.dart
index 2ed23a93fde1968fe1f59f9de7d1a513d72e76ca..cfad445157cd0eaf9c6e46d3e9f354b9abeb49f6 100644
--- a/sdk/lib/_internal/pub/test/test_pub.dart
+++ b/sdk/lib/_internal/pub/test/test_pub.dart
@@ -19,6 +19,8 @@ import 'package:scheduled_test/scheduled_process.dart';
import 'package:scheduled_test/scheduled_server.dart';
import 'package:scheduled_test/scheduled_stream.dart';
import 'package:scheduled_test/scheduled_test.dart';
+import 'package:shelf/shelf.dart' as shelf;
+import 'package:shelf/shelf_io.dart' as shelf_io;
import 'package:unittest/compact_vm_config.dart';
import 'package:yaml/yaml.dart';
@@ -104,39 +106,20 @@ void serve([List<d.Descriptor> contents]) {
schedule(() {
return _closeServer().then((_) {
- return HttpServer.bind("127.0.0.1", 0).then((server) {
- _server = server;
- server.listen((request) {
- currentSchedule.heartbeat();
- var response = request.response;
- try {
- var path = request.uri.path.replaceFirst("/", "");
- _requestedPaths.add(path);
-
- response.persistentConnection = false;
- var stream = baseDir.load(path);
-
- new ByteStream(stream).toBytes().then((data) {
- currentSchedule.heartbeat();
- response.statusCode = 200;
- response.contentLength = data.length;
- response.add(data);
- response.close();
- }).catchError((e) {
- response.statusCode = 404;
- response.contentLength = 0;
- response.close();
- });
- } catch (e) {
- currentSchedule.signalError(e);
- response.statusCode = 500;
- response.close();
- return;
- }
+ return shelf_io.serve((request) {
+ currentSchedule.heartbeat();
+ var path = request.pathInfo.replaceFirst("/", "");
+ _requestedPaths.add(path);
+
+ return validateStream(baseDir.load(path))
+ .then((stream) => new shelf.Response.ok(stream))
+ .catchError((error) {
+ return new shelf.Response.notFound('File "$path" not found.');
});
+ }, '127.0.0.1', 0).then((server) {
+ _server = server;
_portCompleter.complete(_server.port);
currentSchedule.onComplete.schedule(_closeServer);
- return null;
});
});
}, 'starting a server serving:\n${baseDir.describe()}');
« no previous file with comments | « sdk/lib/_internal/pub/lib/src/oauth2.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698