Index: sdk/lib/_internal/pub/test/serve/web_socket/serve_directory_and_immediately_unserve_test.dart |
diff --git a/sdk/lib/_internal/pub/test/serve/web_socket/serve_directory_and_immediately_unserve_test.dart b/sdk/lib/_internal/pub/test/serve/web_socket/serve_directory_and_immediately_unserve_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1d459cf9c21bfc7f6a1590025cdfde435d8cb025 |
--- /dev/null |
+++ b/sdk/lib/_internal/pub/test/serve/web_socket/serve_directory_and_immediately_unserve_test.dart |
@@ -0,0 +1,50 @@ |
+// Copyright (c) 2014, 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 'package:scheduled_test/scheduled_test.dart'; |
+ |
+import '../../descriptor.dart' as d; |
+import '../../test_pub.dart'; |
+import '../utils.dart'; |
+ |
+main() { |
+ initConfig(); |
+ integration("binds a directory to a new port and immediately unbinds that " |
+ "directory", () { |
+ d.dir(appPath, [ |
+ d.appPubspec(), |
+ d.dir("test", [ |
+ d.file("index.html", "<test body>") |
+ ]), |
+ d.dir("web", [ |
+ d.file("index.html", "<body>") |
+ ]) |
+ ]).create(); |
+ |
+ pubServe(args: ["web"]); |
+ |
+ schedule(() { |
+ return Future.wait([ |
+ webSocketRequest("serveDirectory", {"path": "test"}), |
+ webSocketRequest("unserveDirectory", {"path": "test"}) |
+ ]).then((results) { |
+ expect(results[0], contains("result")); |
+ expect(results[1], contains("result")); |
+ // These results should be equal since "serveDirectory" returns the URL |
+ // of the new server and "unserveDirectory" returns the URL of the |
+ // server that was turned off. We're asserting that the same server was |
+ // both started and stopped. |
+ expect(results[0]["result"]["url"], |
+ matches(r"http://127\.0\.0\.1:\d+")); |
+ expect(results[0]["result"], equals(results[1]["result"])); |
+ }); |
+ }); |
+ |
+ endPubServe(); |
+ }); |
+} |