OLD | NEW |
| (Empty) |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS 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 test.integration.server.domain; | |
6 | |
7 import 'dart:async'; | |
8 | |
9 import 'package:analysis_testing/reflective_tests.dart'; | |
10 import 'package:unittest/unittest.dart'; | |
11 | |
12 import 'integration_tests.dart'; | |
13 | |
14 @ReflectiveTestCase() | |
15 class ServerDomainIntegrationTest extends AbstractAnalysisServerIntegrationTest | |
16 { | |
17 test_getVersion() { | |
18 return sendServerGetVersion(); | |
19 } | |
20 | |
21 test_shutdown() { | |
22 return sendServerShutdown().then((_) { | |
23 return new Future.delayed(new Duration(seconds: 1)).then((_) { | |
24 sendServerGetVersion().then((_) { | |
25 fail('Server still alive after server.shutdown'); | |
26 }); | |
27 // Give the server time to respond before terminating the test. | |
28 return new Future.delayed(new Duration(seconds: 1)); | |
29 }); | |
30 }); | |
31 } | |
32 | |
33 test_setSubscriptions() { | |
34 bool statusReceived = false; | |
35 Completer analysisBegun = new Completer(); | |
36 onServerStatus.listen((_) { | |
37 statusReceived = true; | |
38 }); | |
39 onAnalysisErrors.listen((_) { | |
40 if (!analysisBegun.isCompleted) { | |
41 analysisBegun.complete(); | |
42 } | |
43 }); | |
44 return sendServerSetSubscriptions([]).then((_) { | |
45 String pathname = sourcePath('test.dart'); | |
46 writeFile(pathname, ''' | |
47 main() { | |
48 var x; | |
49 }'''); | |
50 standardAnalysisSetup(subscribeStatus: false); | |
51 // Analysis should begin, but no server.status notification should be | |
52 // received. | |
53 return analysisBegun.future.then((_) { | |
54 expect(statusReceived, isFalse); | |
55 return sendServerSetSubscriptions(['STATUS']).then((_) { | |
56 // Tickle test.dart just in case analysis has already completed. | |
57 writeFile(pathname, ''' | |
58 main() { | |
59 var y; | |
60 }'''); | |
61 // Analysis should eventually complete, and we should be notified | |
62 // about it. | |
63 return analysisFinished; | |
64 }); | |
65 }); | |
66 }); | |
67 } | |
68 | |
69 test_setSubscriptions_invalidService() { | |
70 // TODO(paulberry): verify that if an invalid service is specified, the | |
71 // current subscriptions are unchanged. | |
72 return sendServerSetSubscriptions(['bogus'], checkTypes: false).then((_) { | |
73 fail('setSubscriptions should have produced an error'); | |
74 }, onError: (error) { | |
75 // The expected error occurred. | |
76 }); | |
77 } | |
78 | |
79 test_connected() { | |
80 expect(serverConnectedParams, isNull); | |
81 } | |
82 | |
83 test_error() { | |
84 // TODO(paulberry): how do we test the 'server.error' notification given | |
85 // that this notification should only occur in the event of a server bug? | |
86 } | |
87 | |
88 test_status() { | |
89 // After we kick off analysis, we should get one server.status message with | |
90 // analyzing=true, and another server.status message after that with | |
91 // analyzing=false. | |
92 Completer analysisBegun = new Completer(); | |
93 Completer analysisFinished = new Completer(); | |
94 onServerStatus.listen((params) { | |
95 if (params['analysis'] != null) { | |
96 if (params['analysis']['analyzing']) { | |
97 expect(analysisBegun.isCompleted, isFalse); | |
98 analysisBegun.complete(); | |
99 } else { | |
100 expect(analysisFinished.isCompleted, isFalse); | |
101 analysisFinished.complete(); | |
102 } | |
103 } | |
104 }); | |
105 writeFile(sourcePath('test.dart'), ''' | |
106 main() { | |
107 var x; | |
108 }'''); | |
109 standardAnalysisSetup(); | |
110 expect(analysisBegun.isCompleted, isFalse); | |
111 expect(analysisFinished.isCompleted, isFalse); | |
112 return analysisBegun.future.then((_) { | |
113 expect(analysisFinished.isCompleted, isFalse); | |
114 return analysisFinished.future; | |
115 }); | |
116 } | |
117 } | |
118 | |
119 main() { | |
120 runReflectiveTests(ServerDomainIntegrationTest); | |
121 } | |
OLD | NEW |