OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS d.file | |
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. | |
4 | |
5 library pub_tests; | |
6 | |
7 import 'dart:async'; | |
8 | |
9 import 'package:scheduled_test/scheduled_test.dart'; | |
10 | |
11 import '../../descriptor.dart' as d; | |
12 import '../../test_pub.dart'; | |
13 import '../utils.dart'; | |
14 | |
15 main() { | |
16 initConfig(); | |
17 integration( | |
18 "binds a directory to a new port and immediately unbinds that " "directory
", | |
19 () { | |
20 d.dir( | |
21 appPath, | |
22 [ | |
23 d.appPubspec(), | |
24 d.dir("test", [d.file("index.html", "<test body>")]), | |
25 d.dir("web", [d.file("index.html", "<body>")])]).create(); | |
26 | |
27 pubServe(args: ["web"]); | |
28 | |
29 // We call [webSocketRequest] outside of the [schedule] call below because | |
30 // we need it to schedule the sending of the request to guarantee that the | |
31 // serve is sent before the unserve. | |
32 var serveRequest = webSocketRequest("serveDirectory", { | |
33 "path": "test" | |
34 }); | |
35 var unserveRequest = webSocketRequest("unserveDirectory", { | |
36 "path": "test" | |
37 }); | |
38 | |
39 schedule(() { | |
40 return Future.wait([serveRequest, unserveRequest]).then((results) { | |
41 expect(results[0], contains("result")); | |
42 expect(results[1], contains("result")); | |
43 // These results should be equal since "serveDirectory" returns the URL | |
44 // of the new server and "unserveDirectory" returns the URL of the | |
45 // server that was turned off. We're asserting that the same server was | |
46 // both started and stopped. | |
47 expect(results[0]["result"]["url"], matches(r"http://localhost:\d+")); | |
48 expect(results[0]["result"], equals(results[1]["result"])); | |
49 }); | |
50 }); | |
51 | |
52 endPubServe(); | |
53 }); | |
54 } | |
OLD | NEW |