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

Unified Diff: sdk/lib/_internal/pub/test/serve/utils.dart

Issue 20204003: First stab at a dev server in pub using barback. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Revise. Created 7 years, 5 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
Index: sdk/lib/_internal/pub/test/serve/utils.dart
diff --git a/sdk/lib/_internal/pub/test/serve/utils.dart b/sdk/lib/_internal/pub/test/serve/utils.dart
new file mode 100644
index 0000000000000000000000000000000000000000..a74498ba9460d6d75fc07e74d2e3314d3d99307a
--- /dev/null
+++ b/sdk/lib/_internal/pub/test/serve/utils.dart
@@ -0,0 +1,57 @@
+// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library pub_tests;
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:http/http.dart' as http;
+import 'package:scheduled_test/scheduled_process.dart';
+import 'package:scheduled_test/scheduled_test.dart';
+
+import '../descriptor.dart' as d;
+import '../test_pub.dart';
+
+/// The pub process running "pub serve".
+ScheduledProcess _pubServer;
+
+/// The ephemeral port assigned to the running server.
+int _port;
+
+/// Schedules starting the "pub serve" process.
+void startPubServe() {
+ // Use port 0 to get an ephemeral port.
+ _pubServer = startPub(args: ["serve", "--port=0"]);
+
+ expect(_pubServer.nextLine().then((line) {
+ var match = new RegExp(r"localhost:(\d+)").firstMatch(line);
+ assert(match != null);
+ _port = int.parse(match[1]);
+ }), completes);
+}
+
+void endPubServe() {
+ _pubServer.kill();
+}
+
+/// Schedules an HTTP request to the running pub server with [urlPath] and
+/// verifies that it responds with [expected].
+void requestShouldSucceed(String urlPath, String expected) {
+ schedule(() {
+ return http.get("http://localhost:$_port/$urlPath").then((response) {
+ expect(response.body, equals(expected));
+ });
+ }, "request $urlPath");
+}
+
+/// Schedules an HTTP request to the running pub server with [urlPath] and
+/// verifies that it responds with a 404.
+void requestShould404(String urlPath) {
+ schedule(() {
+ return http.get("http://localhost:$_port/$urlPath").then((response) {
+ expect(response.statusCode, equals(404));
+ });
+ }, "request $urlPath");
+}

Powered by Google App Engine
This is Rietveld 408576698