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

Unified Diff: utils/tests/pub/test_pub.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased to r18818 Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/tests/pub/pub_uploader_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/tests/pub/test_pub.dart
diff --git a/utils/tests/pub/test_pub.dart b/utils/tests/pub/test_pub.dart
index 2a148f214c052954c41a0ccc19309eb84f5b14c8..64ca42391aa6978650c7aa4e5af3c446fdcf4538 100644
--- a/utils/tests/pub/test_pub.dart
+++ b/utils/tests/pub/test_pub.dart
@@ -102,36 +102,38 @@ void serve([List<Descriptor> contents]) {
_schedule((_) {
return _closeServer().then((_) {
- _server = new HttpServer();
- _server.defaultRequestHandler = (request, response) {
- var path = request.uri.replaceFirst("/", "").split("/");
- response.persistentConnection = false;
- var stream;
- try {
- stream = baseDir.load(path);
- } catch (e) {
- response.statusCode = 404;
- response.contentLength = 0;
- response.outputStream.close();
- return;
- }
+ return HttpServer.bind("127.0.0.1", 0).then((server) {
+ _server = server;
+ server.listen((request) {
+ var response = request.response;
+ var path = request.uri.path.replaceFirst("/", "").split("/");
+ response.persistentConnection = false;
+ var stream;
+ try {
+ stream = baseDir.load(path);
+ } catch (e) {
+ response.statusCode = 404;
+ response.contentLength = 0;
+ response.close();
+ return;
+ }
- stream.toBytes().then((data) {
- response.statusCode = 200;
- response.contentLength = data.length;
- response.outputStream.write(data);
- response.outputStream.close();
- }).catchError((e) {
- print("Exception while handling ${request.uri}: $e");
- response.statusCode = 500;
- response.reasonPhrase = e.message;
- response.outputStream.close();
+ stream.toBytes().then((data) {
+ response.statusCode = 200;
+ response.contentLength = data.length;
+ response.add(data);
+ response.close();
+ }).catchError((e) {
+ print("Exception while handling ${request.uri}: $e");
+ response.statusCode = 500;
+ response.reasonPhrase = e.message;
+ response.close();
+ });
});
- };
- _server.listen("127.0.0.1", 0);
- _portCompleter.complete(_server.port);
- _scheduleCleanup((_) => _closeServer());
- return null;
+ _portCompleter.complete(_server.port);
+ _scheduleCleanup((_) => _closeServer());
+ return null;
+ });
});
});
}
@@ -467,15 +469,15 @@ final String packagesPath = "$appPath/packages";
typedef Future _ScheduledEvent(String parentDir);
/// The list of events that are scheduled to run as part of the test case.
-List<_ScheduledEvent> _scheduled;
+Queue<_ScheduledEvent> _scheduled;
/// The list of events that are scheduled to run after the test case, even if
/// it failed.
-List<_ScheduledEvent> _scheduledCleanup;
+Queue<_ScheduledEvent> _scheduledCleanup;
/// The list of events that are scheduled to run after the test case only if it
/// failed.
-List<_ScheduledEvent> _scheduledOnException;
+Queue<_ScheduledEvent> _scheduledOnException;
/// Set to true when the current batch of scheduled events should be aborted.
bool _abortScheduled = false;
@@ -704,18 +706,16 @@ void useMockClient(MockClient client) {
});
}
-Future _runScheduled(List<_ScheduledEvent> scheduled) {
+Future _runScheduled(Queue<_ScheduledEvent> scheduled) {
if (scheduled == null) return new Future.immediate(null);
- var iterator = scheduled.iterator;
Future runNextEvent(_) {
- if (_abortScheduled || !iterator.moveNext()) {
+ if (_abortScheduled || scheduled.isEmpty) {
_abortScheduled = false;
- scheduled.clear();
return new Future.immediate(null);
}
- var future = iterator.current(_sandboxDir);
+ var future = scheduled.removeFirst()(_sandboxDir);
if (future != null) {
return future.then(runNextEvent);
} else {
@@ -1155,8 +1155,8 @@ class TarFileDescriptor extends Descriptor {
// TODO(nweiz): propagate any errors to the return value. See issue 3657.
withTempDir((tempDir) {
return create(tempDir).then((tar) {
- var sourceStream = new File(tar).openInputStream();
- return store(wrapInputStream(sourceStream), controller);
+ var sourceStream = new File(tar).openRead();
+ return store(sourceStream, controller);
});
});
return new ByteStream(controller.stream);
@@ -1500,11 +1500,11 @@ class ScheduledServer {
factory ScheduledServer() {
var scheduledServer;
scheduledServer = new ScheduledServer._(_scheduleValue((_) {
- var server = new HttpServer();
- server.defaultRequestHandler = scheduledServer._awaitHandle;
- server.listen("127.0.0.1", 0);
- _scheduleCleanup((_) => server.close());
- return new Future.immediate(server);
+ return HttpServer.bind("127.0.0.1", 0).then((server) {
+ server.listen(scheduledServer._awaitHandle);
+ _scheduleCleanup((_) => server.close());
+ return server;
+ });
}));
return scheduledServer;
}
@@ -1526,8 +1526,7 @@ class ScheduledServer {
var requestCompleteCompleter = new Completer();
handlerCompleter.complete((request, response) {
expect(request.method, equals(method));
- // TODO(nweiz): Use request.path once issue 7464 is fixed.
- expect(Uri.parse(request.uri).path, equals(path));
+ expect(request.uri.path, equals(path));
var future = handler(request, response);
if (future == null) future = new Future.immediate(null);
@@ -1545,17 +1544,18 @@ class ScheduledServer {
_ignored.add(new Pair(method, path));
/// Raises an error complaining of an unexpected request.
- void _awaitHandle(HttpRequest request, HttpResponse response) {
- if (_ignored.contains(new Pair(request.method, request.path))) return;
+ void _awaitHandle(HttpRequest request) {
+ HttpResponse response = request.response;
+ if (_ignored.contains(new Pair(request.method, request.uri.path))) return;
var future = timeout(defer(() {
if (_handlers.isEmpty) {
- fail('Unexpected ${request.method} request to ${request.path}.');
+ fail('Unexpected ${request.method} request to ${request.uri.path}.');
}
return _handlers.removeFirst();
}).then((handler) {
handler(request, response);
}), _SCHEDULE_TIMEOUT, "waiting for a handler for ${request.method} "
- "${request.path}");
+ "${request.uri.path}");
expect(future, completes);
}
}
@@ -1587,8 +1587,8 @@ Future _awaitObject(object) {
/// Schedules a callback to be called as part of the test case.
void _schedule(_ScheduledEvent event) {
- if (_scheduled == null) _scheduled = [];
- _scheduled.add(event);
+ if (_scheduled == null) _scheduled = new Queue();
+ _scheduled.addLast(event);
}
/// Like [_schedule], but pipes the return value of [event] to a returned
@@ -1605,15 +1605,15 @@ Future _scheduleValue(_ScheduledEvent event) {
/// Schedules a callback to be called after the test case has completed, even
/// if it failed.
void _scheduleCleanup(_ScheduledEvent event) {
- if (_scheduledCleanup == null) _scheduledCleanup = [];
- _scheduledCleanup.add(event);
+ if (_scheduledCleanup == null) _scheduledCleanup = new Queue();
+ _scheduledCleanup.addLast(event);
}
/// Schedules a callback to be called after the test case has completed, but
/// only if it failed.
void _scheduleOnException(_ScheduledEvent event) {
- if (_scheduledOnException == null) _scheduledOnException = [];
- _scheduledOnException.add(event);
+ if (_scheduledOnException == null) _scheduledOnException = new Queue();
+ _scheduledOnException.addLast(event);
}
/// Like [expect], but for [Future]s that complete as part of the scheduled
« no previous file with comments | « utils/tests/pub/pub_uploader_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698