OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library test.domain.analysis; | 5 library test.domain.analysis; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
10 import 'package:analysis_server/src/analysis_server.dart'; | 10 import 'package:analysis_server/src/analysis_server.dart'; |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 | 98 |
99 group('setAnalysisRoots', () { | 99 group('setAnalysisRoots', () { |
100 Response testSetAnalysisRoots( | 100 Response testSetAnalysisRoots( |
101 List<String> included, List<String> excluded) { | 101 List<String> included, List<String> excluded) { |
102 Request request = new AnalysisSetAnalysisRootsParams(included, excluded) | 102 Request request = new AnalysisSetAnalysisRootsParams(included, excluded) |
103 .toRequest('0'); | 103 .toRequest('0'); |
104 return handler.handleRequest(request); | 104 return handler.handleRequest(request); |
105 } | 105 } |
106 | 106 |
107 group('excluded', () { | 107 group('excluded', () { |
108 test('excluded folder', () { | 108 test('excluded folder', () async { |
109 String fileA = '/project/aaa/a.dart'; | 109 String fileA = '/project/aaa/a.dart'; |
110 String fileB = '/project/bbb/b.dart'; | 110 String fileB = '/project/bbb/b.dart'; |
111 resourceProvider.newFile(fileA, '// a'); | 111 resourceProvider.newFile(fileA, '// a'); |
112 resourceProvider.newFile(fileB, '// b'); | 112 resourceProvider.newFile(fileB, '// b'); |
113 var response = testSetAnalysisRoots(['/project'], ['/project/bbb']); | 113 var response = testSetAnalysisRoots(['/project'], ['/project/bbb']); |
114 var serverRef = server; | 114 var serverRef = server; |
115 expect(response, isResponseSuccess('0')); | 115 expect(response, isResponseSuccess('0')); |
116 // unit "a" is resolved eventually | 116 // unit "a" is resolved eventually |
117 // unit "b" is not resolved | 117 // unit "b" is not resolved |
118 return server.onAnalysisComplete.then((_) { | 118 await server.onAnalysisComplete; |
119 expect(serverRef.getResolvedCompilationUnit(fileA), isNotNull); | 119 expect(await serverRef.getResolvedCompilationUnit(fileA), isNotNull); |
120 expect(serverRef.getResolvedCompilationUnit(fileB), isNull); | 120 expect(await serverRef.getResolvedCompilationUnit(fileB), isNull); |
121 }); | |
122 }); | 121 }); |
123 | 122 |
124 test('not absolute', () async { | 123 test('not absolute', () async { |
125 var response = testSetAnalysisRoots([], ['foo/bar']); | 124 var response = testSetAnalysisRoots([], ['foo/bar']); |
126 expect( | 125 expect( |
127 response, | 126 response, |
128 isResponseFailure( | 127 isResponseFailure( |
129 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); | 128 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); |
130 }); | 129 }); |
131 | 130 |
132 test('not normalized', () async { | 131 test('not normalized', () async { |
133 var response = testSetAnalysisRoots([], ['/foo/../bar']); | 132 var response = testSetAnalysisRoots([], ['/foo/../bar']); |
134 expect( | 133 expect( |
135 response, | 134 response, |
136 isResponseFailure( | 135 isResponseFailure( |
137 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); | 136 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); |
138 }); | 137 }); |
139 }); | 138 }); |
140 | 139 |
141 group('included', () { | 140 group('included', () { |
142 test('new folder', () { | 141 test('new folder', () async { |
143 String file = '/project/bin/test.dart'; | 142 String file = '/project/bin/test.dart'; |
144 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); | 143 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); |
145 resourceProvider.newFile(file, 'main() {}'); | 144 resourceProvider.newFile(file, 'main() {}'); |
146 var response = testSetAnalysisRoots(['/project'], []); | 145 var response = testSetAnalysisRoots(['/project'], []); |
147 var serverRef = server; | 146 var serverRef = server; |
148 expect(response, isResponseSuccess('0')); | 147 expect(response, isResponseSuccess('0')); |
149 // verify that unit is resolved eventually | 148 // verify that unit is resolved eventually |
150 return server.onAnalysisComplete.then((_) { | 149 await server.onAnalysisComplete; |
151 var unit = serverRef.getResolvedCompilationUnit(file); | 150 var unit = await serverRef.getResolvedCompilationUnit(file); |
152 expect(unit, isNotNull); | 151 expect(unit, isNotNull); |
153 }); | |
154 }); | 152 }); |
155 | 153 |
156 test('nonexistent folder', () async { | 154 test('nonexistent folder', () async { |
157 String fileB = '/project_b/b.dart'; | 155 String fileB = '/project_b/b.dart'; |
158 resourceProvider.newFile(fileB, '// b'); | 156 resourceProvider.newFile(fileB, '// b'); |
159 var response = testSetAnalysisRoots(['/project_a', '/project_b'], []); | 157 var response = testSetAnalysisRoots(['/project_a', '/project_b'], []); |
160 var serverRef = server; | 158 var serverRef = server; |
161 expect(response, isResponseSuccess('0')); | 159 expect(response, isResponseSuccess('0')); |
162 // Non-existence of /project_a should not prevent files in /project_b | 160 // Non-existence of /project_a should not prevent files in /project_b |
163 // from being analyzed. | 161 // from being analyzed. |
164 await server.onAnalysisComplete; | 162 await server.onAnalysisComplete; |
165 expect(serverRef.getResolvedCompilationUnit(fileB), isNotNull); | 163 var unit = await serverRef.getResolvedCompilationUnit(fileB); |
| 164 expect(unit, isNotNull); |
166 }); | 165 }); |
167 | 166 |
168 test('not absolute', () async { | 167 test('not absolute', () async { |
169 var response = testSetAnalysisRoots(['foo/bar'], []); | 168 var response = testSetAnalysisRoots(['foo/bar'], []); |
170 expect( | 169 expect( |
171 response, | 170 response, |
172 isResponseFailure( | 171 isResponseFailure( |
173 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); | 172 '0', RequestErrorCode.INVALID_FILE_PATH_FORMAT)); |
174 }); | 173 }); |
175 | 174 |
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
775 test_beforeAnalysis() async { | 774 test_beforeAnalysis() async { |
776 addTestFile('int V = 42;'); | 775 addTestFile('int V = 42;'); |
777 createProject(); | 776 createProject(); |
778 // subscribe | 777 // subscribe |
779 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); | 778 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); |
780 // wait for analysis | 779 // wait for analysis |
781 await waitForTasksFinished(); | 780 await waitForTasksFinished(); |
782 expect(filesHighlights[testFile], isNotEmpty); | 781 expect(filesHighlights[testFile], isNotEmpty); |
783 } | 782 } |
784 } | 783 } |
OLD | NEW |