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.abstract; | 5 library test.domain.analysis.abstract; |
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 30 matching lines...) Expand all Loading... |
41 } | 41 } |
42 return length; | 42 return length; |
43 } | 43 } |
44 | 44 |
45 /** | 45 /** |
46 * An abstract base for all 'analysis' domain tests. | 46 * An abstract base for all 'analysis' domain tests. |
47 */ | 47 */ |
48 class AbstractAnalysisTest { | 48 class AbstractAnalysisTest { |
49 MockServerChannel serverChannel; | 49 MockServerChannel serverChannel; |
50 MemoryResourceProvider resourceProvider; | 50 MemoryResourceProvider resourceProvider; |
| 51 MockPackageMapProvider packageMapProvider; |
51 AnalysisServer server; | 52 AnalysisServer server; |
52 RequestHandler handler; | 53 RequestHandler handler; |
53 | 54 |
54 final List<ServerErrorParams> serverErrors = <ServerErrorParams>[]; | 55 final List<ServerErrorParams> serverErrors = <ServerErrorParams>[]; |
55 final List<GeneralAnalysisService> generalServices = | 56 final List<GeneralAnalysisService> generalServices = |
56 <GeneralAnalysisService>[]; | 57 <GeneralAnalysisService>[]; |
57 final Map<AnalysisService, List<String>> analysisSubscriptions = {}; | 58 final Map<AnalysisService, List<String>> analysisSubscriptions = {}; |
58 | 59 |
59 String projectPath = '/project'; | 60 String projectPath = '/project'; |
60 String testFolder = '/project/bin'; | 61 String testFolder = '/project/bin'; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 // | 122 // |
122 ExtensionManager manager = new ExtensionManager(); | 123 ExtensionManager manager = new ExtensionManager(); |
123 manager.processPlugins(plugins); | 124 manager.processPlugins(plugins); |
124 // | 125 // |
125 // Create server | 126 // Create server |
126 // | 127 // |
127 MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); | 128 MockSdk sdk = new MockSdk(resourceProvider: resourceProvider); |
128 return new AnalysisServer( | 129 return new AnalysisServer( |
129 serverChannel, | 130 serverChannel, |
130 resourceProvider, | 131 resourceProvider, |
| 132 packageMapProvider, |
131 index, | 133 index, |
132 serverPlugin, | 134 serverPlugin, |
133 new AnalysisServerOptions(), | 135 new AnalysisServerOptions(), |
134 new DartSdkManager('/', false, (_) => sdk), | 136 new DartSdkManager('/', false, (_) => sdk), |
135 InstrumentationService.NULL_SERVICE); | 137 InstrumentationService.NULL_SERVICE); |
136 } | 138 } |
137 | 139 |
138 Index createIndex() { | 140 Index createIndex() { |
139 return null; | 141 return null; |
140 } | 142 } |
141 | 143 |
142 /** | 144 /** |
143 * Creates a project `/project`. | 145 * Creates a project `/project`. |
144 */ | 146 */ |
145 void createProject({Map<String, String> packageRoots}) { | 147 void createProject({Map<String, String> packageRoots}) { |
146 resourceProvider.newFolder(projectPath); | 148 resourceProvider.newFolder(projectPath); |
147 Request request = new AnalysisSetAnalysisRootsParams([projectPath], [], | 149 Request request = |
148 packageRoots: packageRoots) | 150 new AnalysisSetAnalysisRootsParams([projectPath], [], packageRoots: pack
ageRoots).toRequest('0'); |
149 .toRequest('0'); | |
150 handleSuccessfulRequest(request, handler: analysisHandler); | 151 handleSuccessfulRequest(request, handler: analysisHandler); |
151 } | 152 } |
152 | 153 |
153 /** | 154 /** |
154 * Returns the offset of [search] in [testCode]. | 155 * Returns the offset of [search] in [testCode]. |
155 * Fails if not found. | 156 * Fails if not found. |
156 */ | 157 */ |
157 int findFileOffset(String path, String search) { | 158 int findFileOffset(String path, String search) { |
158 File file = resourceProvider.getResource(path) as File; | 159 File file = resourceProvider.getResource(path) as File; |
159 String code = file.createSource().contents.data; | 160 String code = file.createSource().contents.data; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 void removeGeneralAnalysisSubscription(GeneralAnalysisService service) { | 199 void removeGeneralAnalysisSubscription(GeneralAnalysisService service) { |
199 generalServices.remove(service); | 200 generalServices.remove(service); |
200 Request request = new AnalysisSetGeneralSubscriptionsParams(generalServices) | 201 Request request = new AnalysisSetGeneralSubscriptionsParams(generalServices) |
201 .toRequest('0'); | 202 .toRequest('0'); |
202 handleSuccessfulRequest(request); | 203 handleSuccessfulRequest(request); |
203 } | 204 } |
204 | 205 |
205 void setUp() { | 206 void setUp() { |
206 serverChannel = new MockServerChannel(); | 207 serverChannel = new MockServerChannel(); |
207 resourceProvider = new MemoryResourceProvider(); | 208 resourceProvider = new MemoryResourceProvider(); |
| 209 packageMapProvider = new MockPackageMapProvider(); |
208 Index index = createIndex(); | 210 Index index = createIndex(); |
209 server = createAnalysisServer(index); | 211 server = createAnalysisServer(index); |
210 handler = analysisHandler; | 212 handler = analysisHandler; |
211 // listen for notifications | 213 // listen for notifications |
212 Stream<Notification> notificationStream = | 214 Stream<Notification> notificationStream = |
213 serverChannel.notificationController.stream; | 215 serverChannel.notificationController.stream; |
214 notificationStream.listen((Notification notification) { | 216 notificationStream.listen((Notification notification) { |
215 processNotification(notification); | 217 processNotification(notification); |
216 }); | 218 }); |
217 } | 219 } |
(...skipping 14 matching lines...) Expand all Loading... |
232 } | 234 } |
233 | 235 |
234 /** | 236 /** |
235 * Completes with a successful [Response] for the given [request]. | 237 * Completes with a successful [Response] for the given [request]. |
236 * Otherwise fails. | 238 * Otherwise fails. |
237 */ | 239 */ |
238 Future<Response> waitResponse(Request request) async { | 240 Future<Response> waitResponse(Request request) async { |
239 return serverChannel.sendRequest(request); | 241 return serverChannel.sendRequest(request); |
240 } | 242 } |
241 } | 243 } |
OLD | NEW |