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 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:analysis_server/protocol/protocol.dart'; | 7 import 'package:analysis_server/protocol/protocol.dart'; |
8 import 'package:analysis_server/protocol/protocol_constants.dart'; | 8 import 'package:analysis_server/protocol/protocol_constants.dart'; |
9 import 'package:analysis_server/protocol/protocol_generated.dart'; | 9 import 'package:analysis_server/protocol/protocol_generated.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/domain_analysis.dart'; | 11 import 'package:analysis_server/src/domain_analysis.dart'; |
12 import 'package:analysis_server/src/plugin/server_plugin.dart'; | |
13 import 'package:analyzer/file_system/memory_file_system.dart'; | 12 import 'package:analyzer/file_system/memory_file_system.dart'; |
14 import 'package:analyzer/instrumentation/instrumentation.dart'; | 13 import 'package:analyzer/instrumentation/instrumentation.dart'; |
15 import 'package:analyzer/src/generated/engine.dart'; | 14 import 'package:analyzer/src/generated/engine.dart'; |
16 import 'package:analyzer/src/generated/sdk.dart'; | 15 import 'package:analyzer/src/generated/sdk.dart'; |
17 import 'package:analyzer_plugin/protocol/protocol_common.dart'; | 16 import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
18 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; | 17 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; |
19 import 'package:plugin/manager.dart'; | 18 import 'package:plugin/manager.dart'; |
20 import 'package:plugin/plugin.dart'; | 19 import 'package:plugin/plugin.dart'; |
21 import 'package:test/test.dart'; | 20 import 'package:test/test.dart'; |
22 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 21 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
23 | 22 |
24 import 'analysis_abstract.dart'; | 23 import 'analysis_abstract.dart'; |
25 import 'mock_sdk.dart'; | 24 import 'mock_sdk.dart'; |
26 import 'mocks.dart'; | 25 import 'mocks.dart'; |
27 | 26 |
28 main() { | 27 main() { |
29 defineReflectiveSuite(() { | 28 defineReflectiveSuite(() { |
30 defineReflectiveTests(AnalysisDomainTest); | 29 defineReflectiveTests(AnalysisDomainTest); |
31 defineReflectiveTests(SetSubscriptionsTest); | 30 defineReflectiveTests(SetSubscriptionsTest); |
32 }); | 31 }); |
33 | 32 |
34 MockServerChannel serverChannel; | 33 MockServerChannel serverChannel; |
35 MemoryResourceProvider resourceProvider; | 34 MemoryResourceProvider resourceProvider; |
36 AnalysisServer server; | 35 AnalysisServer server; |
37 AnalysisDomainHandler handler; | 36 AnalysisDomainHandler handler; |
38 | 37 |
39 void processRequiredPlugins(ServerPlugin serverPlugin) { | 38 void processRequiredPlugins() { |
40 List<Plugin> plugins = <Plugin>[]; | 39 List<Plugin> plugins = <Plugin>[]; |
41 plugins.addAll(AnalysisEngine.instance.requiredPlugins); | 40 plugins.addAll(AnalysisEngine.instance.requiredPlugins); |
42 plugins.add(serverPlugin); | |
43 | 41 |
44 ExtensionManager manager = new ExtensionManager(); | 42 ExtensionManager manager = new ExtensionManager(); |
45 manager.processPlugins(plugins); | 43 manager.processPlugins(plugins); |
46 } | 44 } |
47 | 45 |
48 setUp(() { | 46 setUp(() { |
49 serverChannel = new MockServerChannel(); | 47 serverChannel = new MockServerChannel(); |
50 resourceProvider = new MemoryResourceProvider(); | 48 resourceProvider = new MemoryResourceProvider(); |
51 ServerPlugin serverPlugin = new ServerPlugin(); | 49 processRequiredPlugins(); |
52 processRequiredPlugins(serverPlugin); | |
53 // Create an SDK in the mock file system. | 50 // Create an SDK in the mock file system. |
54 new MockSdk(resourceProvider: resourceProvider); | 51 new MockSdk(resourceProvider: resourceProvider); |
55 server = new AnalysisServer( | 52 server = new AnalysisServer( |
56 serverChannel, | 53 serverChannel, |
57 resourceProvider, | 54 resourceProvider, |
58 new MockPackageMapProvider(), | 55 new MockPackageMapProvider(), |
59 serverPlugin, | |
60 new AnalysisServerOptions(), | 56 new AnalysisServerOptions(), |
61 new DartSdkManager('/', false), | 57 new DartSdkManager('/', false), |
62 InstrumentationService.NULL_SERVICE); | 58 InstrumentationService.NULL_SERVICE); |
63 handler = new AnalysisDomainHandler(server); | 59 handler = new AnalysisDomainHandler(server); |
64 }); | 60 }); |
65 | 61 |
66 group('updateContent', testUpdateContent); | 62 group('updateContent', testUpdateContent); |
67 | 63 |
68 group('AnalysisDomainHandler', () { | 64 group('AnalysisDomainHandler', () { |
69 // TODO(brianwilkerson) Re-enable these tests if we re-enable the | 65 // TODO(brianwilkerson) Re-enable these tests if we re-enable the |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 Map<AnalysisService, List<String>> analysisSubscriptions = {}; | 420 Map<AnalysisService, List<String>> analysisSubscriptions = {}; |
425 | 421 |
426 Map<String, List<AnalysisError>> filesErrors = {}; | 422 Map<String, List<AnalysisError>> filesErrors = {}; |
427 Map<String, List<HighlightRegion>> filesHighlights = {}; | 423 Map<String, List<HighlightRegion>> filesHighlights = {}; |
428 Map<String, List<NavigationRegion>> filesNavigation = {}; | 424 Map<String, List<NavigationRegion>> filesNavigation = {}; |
429 | 425 |
430 String testFile = '/project/bin/test.dart'; | 426 String testFile = '/project/bin/test.dart'; |
431 String testCode; | 427 String testCode; |
432 | 428 |
433 AnalysisTestHelper() { | 429 AnalysisTestHelper() { |
434 ServerPlugin serverPlugin = new ServerPlugin(); | 430 processRequiredPlugins(); |
435 processRequiredPlugins(serverPlugin); | |
436 serverChannel = new MockServerChannel(); | 431 serverChannel = new MockServerChannel(); |
437 resourceProvider = new MemoryResourceProvider(); | 432 resourceProvider = new MemoryResourceProvider(); |
438 // Create an SDK in the mock file system. | 433 // Create an SDK in the mock file system. |
439 new MockSdk(resourceProvider: resourceProvider); | 434 new MockSdk(resourceProvider: resourceProvider); |
440 server = new AnalysisServer( | 435 server = new AnalysisServer( |
441 serverChannel, | 436 serverChannel, |
442 resourceProvider, | 437 resourceProvider, |
443 new MockPackageMapProvider(), | 438 new MockPackageMapProvider(), |
444 serverPlugin, | |
445 new AnalysisServerOptions(), | 439 new AnalysisServerOptions(), |
446 new DartSdkManager('/', false), | 440 new DartSdkManager('/', false), |
447 InstrumentationService.NULL_SERVICE); | 441 InstrumentationService.NULL_SERVICE); |
448 handler = new AnalysisDomainHandler(server); | 442 handler = new AnalysisDomainHandler(server); |
449 // listen for notifications | 443 // listen for notifications |
450 Stream<Notification> notificationStream = | 444 Stream<Notification> notificationStream = |
451 serverChannel.notificationController.stream; | 445 serverChannel.notificationController.stream; |
452 notificationStream.listen((Notification notification) { | 446 notificationStream.listen((Notification notification) { |
453 if (notification.event == ANALYSIS_NOTIFICATION_ERRORS) { | 447 if (notification.event == ANALYSIS_NOTIFICATION_ERRORS) { |
454 var decoded = new AnalysisErrorsParams.fromNotification(notification); | 448 var decoded = new AnalysisErrorsParams.fromNotification(notification); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 } | 584 } |
591 | 585 |
592 /** | 586 /** |
593 * Validates that the given [request] is handled successfully. | 587 * Validates that the given [request] is handled successfully. |
594 */ | 588 */ |
595 void handleSuccessfulRequest(Request request) { | 589 void handleSuccessfulRequest(Request request) { |
596 Response response = handler.handleRequest(request); | 590 Response response = handler.handleRequest(request); |
597 expect(response, isResponseSuccess('0')); | 591 expect(response, isResponseSuccess('0')); |
598 } | 592 } |
599 | 593 |
600 void processRequiredPlugins(ServerPlugin serverPlugin) { | 594 void processRequiredPlugins() { |
601 List<Plugin> plugins = <Plugin>[]; | 595 List<Plugin> plugins = <Plugin>[]; |
602 plugins.addAll(AnalysisEngine.instance.requiredPlugins); | 596 plugins.addAll(AnalysisEngine.instance.requiredPlugins); |
603 plugins.add(serverPlugin); | |
604 | 597 |
605 ExtensionManager manager = new ExtensionManager(); | 598 ExtensionManager manager = new ExtensionManager(); |
606 manager.processPlugins(plugins); | 599 manager.processPlugins(plugins); |
607 } | 600 } |
608 | 601 |
609 /** | 602 /** |
610 * Send an `updateContent` request for [testFile]. | 603 * Send an `updateContent` request for [testFile]. |
611 */ | 604 */ |
612 void sendContentChange(dynamic contentChange) { | 605 void sendContentChange(dynamic contentChange) { |
613 Request request = new AnalysisUpdateContentParams({testFile: contentChange}) | 606 Request request = new AnalysisUpdateContentParams({testFile: contentChange}) |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
795 plugin.AnalysisSetSubscriptionsParams params = | 788 plugin.AnalysisSetSubscriptionsParams params = |
796 pluginManager.analysisSetSubscriptionsParams; | 789 pluginManager.analysisSetSubscriptionsParams; |
797 expect(params, isNotNull); | 790 expect(params, isNotNull); |
798 Map<plugin.AnalysisService, List<String>> subscriptions = | 791 Map<plugin.AnalysisService, List<String>> subscriptions = |
799 params.subscriptions; | 792 params.subscriptions; |
800 expect(subscriptions, hasLength(1)); | 793 expect(subscriptions, hasLength(1)); |
801 List<String> files = subscriptions[plugin.AnalysisService.HIGHLIGHTS]; | 794 List<String> files = subscriptions[plugin.AnalysisService.HIGHLIGHTS]; |
802 expect(files, [testFile]); | 795 expect(files, [testFile]); |
803 } | 796 } |
804 } | 797 } |
OLD | NEW |