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'; |
11 import 'package:analysis_server/src/constants.dart'; | 11 import 'package:analysis_server/src/constants.dart'; |
12 import 'package:analysis_server/src/domain_analysis.dart'; | 12 import 'package:analysis_server/src/domain_analysis.dart'; |
13 import 'package:analysis_server/src/plugin/server_plugin.dart'; | 13 import 'package:analysis_server/src/plugin/server_plugin.dart'; |
14 import 'package:analyzer/file_system/memory_file_system.dart'; | 14 import 'package:analyzer/file_system/memory_file_system.dart'; |
15 import 'package:analyzer/instrumentation/instrumentation.dart'; | 15 import 'package:analyzer/instrumentation/instrumentation.dart'; |
| 16 import 'package:analyzer/src/generated/engine.dart'; |
16 import 'package:analyzer/src/generated/sdk.dart'; | 17 import 'package:analyzer/src/generated/sdk.dart'; |
17 import 'package:plugin/manager.dart'; | 18 import 'package:plugin/manager.dart'; |
| 19 import 'package:plugin/plugin.dart'; |
18 import 'package:test/test.dart'; | 20 import 'package:test/test.dart'; |
19 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 21 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
20 | 22 |
21 import 'analysis_abstract.dart'; | 23 import 'analysis_abstract.dart'; |
22 import 'mock_sdk.dart'; | 24 import 'mock_sdk.dart'; |
23 import 'mocks.dart'; | 25 import 'mocks.dart'; |
24 | 26 |
25 main() { | 27 main() { |
26 defineReflectiveSuite(() { | 28 defineReflectiveSuite(() { |
27 defineReflectiveTests(AnalysisDomainTest); | 29 defineReflectiveTests(AnalysisDomainTest); |
28 defineReflectiveTests(SetSubscriptionsTest); | 30 defineReflectiveTests(SetSubscriptionsTest); |
29 }); | 31 }); |
30 | 32 |
31 MockServerChannel serverChannel; | 33 MockServerChannel serverChannel; |
32 MemoryResourceProvider resourceProvider; | 34 MemoryResourceProvider resourceProvider; |
33 AnalysisServer server; | 35 AnalysisServer server; |
34 AnalysisDomainHandler handler; | 36 AnalysisDomainHandler handler; |
35 | 37 |
| 38 void processRequiredPlugins(ServerPlugin serverPlugin) { |
| 39 List<Plugin> plugins = <Plugin>[]; |
| 40 plugins.addAll(AnalysisEngine.instance.requiredPlugins); |
| 41 plugins.add(AnalysisEngine.instance.optionsPlugin); |
| 42 plugins.add(serverPlugin); |
| 43 |
| 44 ExtensionManager manager = new ExtensionManager(); |
| 45 manager.processPlugins(plugins); |
| 46 } |
| 47 |
36 setUp(() { | 48 setUp(() { |
37 serverChannel = new MockServerChannel(); | 49 serverChannel = new MockServerChannel(); |
38 resourceProvider = new MemoryResourceProvider(); | 50 resourceProvider = new MemoryResourceProvider(); |
39 ExtensionManager manager = new ExtensionManager(); | |
40 ServerPlugin serverPlugin = new ServerPlugin(); | 51 ServerPlugin serverPlugin = new ServerPlugin(); |
41 manager.processPlugins([serverPlugin]); | 52 processRequiredPlugins(serverPlugin); |
42 // Create an SDK in the mock file system. | 53 // Create an SDK in the mock file system. |
43 new MockSdk(resourceProvider: resourceProvider); | 54 new MockSdk(resourceProvider: resourceProvider); |
44 server = new AnalysisServer( | 55 server = new AnalysisServer( |
45 serverChannel, | 56 serverChannel, |
46 resourceProvider, | 57 resourceProvider, |
47 new MockPackageMapProvider(), | 58 new MockPackageMapProvider(), |
48 null, | 59 null, |
49 serverPlugin, | 60 serverPlugin, |
50 new AnalysisServerOptions(), | 61 new AnalysisServerOptions(), |
51 new DartSdkManager('/', false), | 62 new DartSdkManager('/', false), |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 Map<AnalysisService, List<String>> analysisSubscriptions = {}; | 433 Map<AnalysisService, List<String>> analysisSubscriptions = {}; |
423 | 434 |
424 Map<String, List<AnalysisError>> filesErrors = {}; | 435 Map<String, List<AnalysisError>> filesErrors = {}; |
425 Map<String, List<HighlightRegion>> filesHighlights = {}; | 436 Map<String, List<HighlightRegion>> filesHighlights = {}; |
426 Map<String, List<NavigationRegion>> filesNavigation = {}; | 437 Map<String, List<NavigationRegion>> filesNavigation = {}; |
427 | 438 |
428 String testFile = '/project/bin/test.dart'; | 439 String testFile = '/project/bin/test.dart'; |
429 String testCode; | 440 String testCode; |
430 | 441 |
431 AnalysisTestHelper() { | 442 AnalysisTestHelper() { |
| 443 ServerPlugin serverPlugin = new ServerPlugin(); |
| 444 processRequiredPlugins(serverPlugin); |
432 serverChannel = new MockServerChannel(); | 445 serverChannel = new MockServerChannel(); |
433 resourceProvider = new MemoryResourceProvider(); | 446 resourceProvider = new MemoryResourceProvider(); |
434 ExtensionManager manager = new ExtensionManager(); | |
435 ServerPlugin serverPlugin = new ServerPlugin(); | |
436 manager.processPlugins([serverPlugin]); | |
437 // Create an SDK in the mock file system. | 447 // Create an SDK in the mock file system. |
438 new MockSdk(resourceProvider: resourceProvider); | 448 new MockSdk(resourceProvider: resourceProvider); |
439 server = new AnalysisServer( | 449 server = new AnalysisServer( |
440 serverChannel, | 450 serverChannel, |
441 resourceProvider, | 451 resourceProvider, |
442 new MockPackageMapProvider(), | 452 new MockPackageMapProvider(), |
443 null, | 453 null, |
444 serverPlugin, | 454 serverPlugin, |
445 new AnalysisServerOptions(), | 455 new AnalysisServerOptions(), |
446 new DartSdkManager('/', false), | 456 new DartSdkManager('/', false), |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 } | 600 } |
591 | 601 |
592 /** | 602 /** |
593 * Validates that the given [request] is handled successfully. | 603 * Validates that the given [request] is handled successfully. |
594 */ | 604 */ |
595 void handleSuccessfulRequest(Request request) { | 605 void handleSuccessfulRequest(Request request) { |
596 Response response = handler.handleRequest(request); | 606 Response response = handler.handleRequest(request); |
597 expect(response, isResponseSuccess('0')); | 607 expect(response, isResponseSuccess('0')); |
598 } | 608 } |
599 | 609 |
| 610 void processRequiredPlugins(ServerPlugin serverPlugin) { |
| 611 List<Plugin> plugins = <Plugin>[]; |
| 612 plugins.addAll(AnalysisEngine.instance.requiredPlugins); |
| 613 plugins.add(AnalysisEngine.instance.optionsPlugin); |
| 614 plugins.add(serverPlugin); |
| 615 |
| 616 ExtensionManager manager = new ExtensionManager(); |
| 617 manager.processPlugins(plugins); |
| 618 } |
| 619 |
600 /** | 620 /** |
601 * Send an `updateContent` request for [testFile]. | 621 * Send an `updateContent` request for [testFile]. |
602 */ | 622 */ |
603 void sendContentChange(dynamic contentChange) { | 623 void sendContentChange(dynamic contentChange) { |
604 Request request = new AnalysisUpdateContentParams({testFile: contentChange}) | 624 Request request = new AnalysisUpdateContentParams({testFile: contentChange}) |
605 .toRequest('0'); | 625 .toRequest('0'); |
606 handleSuccessfulRequest(request); | 626 handleSuccessfulRequest(request); |
607 } | 627 } |
608 | 628 |
609 String setFileContent(String path, String content) { | 629 String setFileContent(String path, String content) { |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 test_beforeAnalysis() async { | 794 test_beforeAnalysis() async { |
775 addTestFile('int V = 42;'); | 795 addTestFile('int V = 42;'); |
776 createProject(); | 796 createProject(); |
777 // subscribe | 797 // subscribe |
778 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); | 798 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, testFile); |
779 // wait for analysis | 799 // wait for analysis |
780 await waitForTasksFinished(); | 800 await waitForTasksFinished(); |
781 expect(filesHighlights[testFile], isNotEmpty); | 801 expect(filesHighlights[testFile], isNotEmpty); |
782 } | 802 } |
783 } | 803 } |
OLD | NEW |