| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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.diagnostic; | 5 library test.domain.diagnostic; |
| 6 | 6 |
| 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 8 import 'package:analysis_server/src/analysis_server.dart'; | |
| 9 import 'package:analysis_server/src/domain_diagnostic.dart'; | 8 import 'package:analysis_server/src/domain_diagnostic.dart'; |
| 10 import 'package:analysis_server/src/plugin/server_plugin.dart'; | |
| 11 import 'package:analyzer/file_system/memory_file_system.dart'; | |
| 12 import 'package:analyzer/instrumentation/instrumentation.dart'; | |
| 13 import 'package:analyzer/src/generated/engine.dart'; | |
| 14 import 'package:analyzer/src/generated/sdk.dart'; | |
| 15 import 'package:plugin/manager.dart'; | |
| 16 import 'package:plugin/plugin.dart'; | |
| 17 import 'package:test/test.dart'; | 9 import 'package:test/test.dart'; |
| 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 18 | 11 |
| 19 import 'mock_sdk.dart'; | 12 import 'analysis_abstract.dart'; |
| 20 import 'mocks.dart'; | |
| 21 | 13 |
| 22 main() { | 14 main() { |
| 23 AnalysisServer server; | 15 defineReflectiveSuite(() { |
| 24 DiagnosticDomainHandler handler; | 16 defineReflectiveTests(DiagnosticDomainTest); |
| 25 MemoryResourceProvider resourceProvider; | 17 defineReflectiveTests(DiagnosticDomainTest_Driver); |
| 18 }); |
| 19 } |
| 26 | 20 |
| 27 void processRequiredPlugins(ServerPlugin serverPlugin) { | 21 @reflectiveTest |
| 28 List<Plugin> plugins = <Plugin>[]; | 22 class DiagnosticDomainTest extends AbstractAnalysisTest { |
| 29 plugins.addAll(AnalysisEngine.instance.requiredPlugins); | 23 @override |
| 30 plugins.add(serverPlugin); | 24 void setUp() { |
| 31 | 25 super.setUp(); |
| 32 ExtensionManager manager = new ExtensionManager(); | 26 handler = new DiagnosticDomainHandler(server); |
| 33 manager.processPlugins(plugins); | 27 server.handlers = [handler]; |
| 34 } | 28 } |
| 35 | 29 |
| 36 setUp(() { | 30 test_getDiagnostics() async { |
| 37 ServerPlugin serverPlugin = new ServerPlugin(); | 31 String file = '/project/bin/test.dart'; |
| 38 processRequiredPlugins(serverPlugin); | 32 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); |
| 39 // | 33 resourceProvider.newFile(file, 'main() {}'); |
| 40 // Create the server | |
| 41 // | |
| 42 var serverChannel = new MockServerChannel(); | |
| 43 resourceProvider = new MemoryResourceProvider(); | |
| 44 // Create an SDK in the mock file system. | |
| 45 new MockSdk(resourceProvider: resourceProvider); | |
| 46 server = new AnalysisServer( | |
| 47 serverChannel, | |
| 48 resourceProvider, | |
| 49 new MockPackageMapProvider(), | |
| 50 null, | |
| 51 serverPlugin, | |
| 52 new AnalysisServerOptions(), | |
| 53 new DartSdkManager('/', false), | |
| 54 InstrumentationService.NULL_SERVICE); | |
| 55 handler = new DiagnosticDomainHandler(server); | |
| 56 }); | |
| 57 | 34 |
| 58 group('DiagnosticDomainHandler', () { | 35 server.setAnalysisRoots('0', ['/project/'], [], {}); |
| 59 test('getDiagnostics', () async { | |
| 60 String file = '/project/bin/test.dart'; | |
| 61 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); | |
| 62 resourceProvider.newFile(file, 'main() {}'); | |
| 63 | 36 |
| 64 server.setAnalysisRoots('0', ['/project/'], [], {}); | 37 await server.onAnalysisComplete; |
| 65 | 38 |
| 66 await server.onAnalysisComplete; | 39 var request = new DiagnosticGetDiagnosticsParams().toRequest('0'); |
| 40 var response = handler.handleRequest(request); |
| 41 var result = new DiagnosticGetDiagnosticsResult.fromResponse(response); |
| 67 | 42 |
| 68 var request = new DiagnosticGetDiagnosticsParams().toRequest('0'); | 43 expect(result.contexts, hasLength(1)); |
| 69 var response = handler.handleRequest(request); | |
| 70 | 44 |
| 71 int fileCount = 1 /* test.dart */; | 45 ContextData context = result.contexts[0]; |
| 46 expect(context.name, '/project'); |
| 47 expect(context.explicitFileCount, 1); /* test.dart */ |
| 72 | 48 |
| 73 Map json = response.toJson()[Response.RESULT]; | 49 // dart:core dart:async dart:math dart:_internal |
| 74 expect(json['contexts'], hasLength(1)); | 50 expect(context.implicitFileCount, 4); |
| 75 var context = json['contexts'][0]; | 51 expect(context.workItemQueueLength, isNotNull); |
| 76 expect(context['name'], '/project'); | 52 } |
| 77 expect(context['explicitFileCount'], fileCount); | |
| 78 // dart:core dart:async dart:math dart:_internal | |
| 79 expect(context['implicitFileCount'], 4); | |
| 80 expect(context['workItemQueueLength'], isNotNull); | |
| 81 }); | |
| 82 | 53 |
| 83 test('getDiagnostics - (no root)', () async { | 54 test_getDiagnostics_noRoot() async { |
| 84 var request = new DiagnosticGetDiagnosticsParams().toRequest('0'); | 55 var request = new DiagnosticGetDiagnosticsParams().toRequest('0'); |
| 85 var response = handler.handleRequest(request); | 56 var response = handler.handleRequest(request); |
| 86 Map json = response.toJson()[Response.RESULT]; | 57 var result = new DiagnosticGetDiagnosticsResult.fromResponse(response); |
| 87 expect(json['contexts'], hasLength(0)); | 58 expect(result.contexts, isEmpty); |
| 88 }); | 59 } |
| 89 }); | |
| 90 } | 60 } |
| 61 |
| 62 @reflectiveTest |
| 63 class DiagnosticDomainTest_Driver extends DiagnosticDomainTest { |
| 64 @override |
| 65 void setUp() { |
| 66 enableNewAnalysisDriver = true; |
| 67 generateSummaryFiles = true; |
| 68 super.setUp(); |
| 69 } |
| 70 |
| 71 @failingTest |
| 72 @override |
| 73 test_getDiagnostics() { |
| 74 return super.test_getDiagnostics(); |
| 75 } |
| 76 |
| 77 @failingTest |
| 78 @override |
| 79 test_getDiagnostics_noRoot() { |
| 80 return super.test_getDiagnostics_noRoot(); |
| 81 } |
| 82 } |
| OLD | NEW |