| 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.analysis_server; | 5 library test.analysis_server; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analyzer/src/generated/engine.dart'; | 9 import 'package:analyzer/src/generated/engine.dart'; |
| 10 import 'package:analyzer/src/generated/source_io.dart'; | 10 import 'package:analyzer/src/generated/source_io.dart'; |
| 11 import 'package:analyzer/src/generated/error.dart'; | 11 import 'package:analyzer/src/generated/error.dart'; |
| 12 import 'package:analysis_server/src/analysis_server.dart'; | 12 import 'package:analysis_server/src/analysis_server.dart'; |
| 13 import 'package:analysis_server/src/domain_server.dart'; | 13 import 'package:analysis_server/src/domain_server.dart'; |
| 14 import 'package:analysis_server/src/protocol.dart'; | 14 import 'package:analysis_server/src/protocol.dart'; |
| 15 import 'package:mock/mock.dart'; | 15 import 'package:mock/mock.dart'; |
| 16 import 'package:unittest/unittest.dart'; | 16 import 'package:unittest/unittest.dart'; |
| 17 | 17 |
| 18 import 'mocks.dart'; | 18 import 'mocks.dart'; |
| 19 | 19 |
| 20 main() { | 20 main() { |
| 21 group('AnalysisServer', () { | 21 group('AnalysisServer', () { |
| 22 setUp(AnalysisServerTest.setUp); | 22 setUp(AnalysisServerTest.setUp); |
| 23 test('addContextToWorkQueue_twice', | 23 test('addContextToWorkQueue_twice', |
| 24 AnalysisServerTest.addContextToWorkQueue_twice); | 24 AnalysisServerTest.addContextToWorkQueue_twice); |
| 25 test('addContextToWorkQueue_whenNotRunning', | 25 test('addContextToWorkQueue_whenNotRunning', |
| 26 AnalysisServerTest.addContextToWorkQueue_whenNotRunning); | 26 AnalysisServerTest.addContextToWorkQueue_whenNotRunning); |
| 27 test('addContextToWorkQueue_whenRunning', | 27 test('addContextToWorkQueue_whenRunning', |
| 28 AnalysisServerTest.addContextToWorkQueue_whenRunning); | 28 AnalysisServerTest.addContextToWorkQueue_whenRunning); |
| 29 test('createContext', AnalysisServerTest.createContext); | 29 // TODO(scheglov) remove or move to the 'analysis' domain |
| 30 // test('createContext', AnalysisServerTest.createContext); |
| 30 test('echo', AnalysisServerTest.echo); | 31 test('echo', AnalysisServerTest.echo); |
| 31 test('errorToJson_formattingApplied', | 32 test('errorToJson_formattingApplied', |
| 32 AnalysisServerTest.errorToJson_formattingApplied); | 33 AnalysisServerTest.errorToJson_formattingApplied); |
| 33 test('errorToJson_noCorrection', | 34 test('errorToJson_noCorrection', |
| 34 AnalysisServerTest.errorToJson_noCorrection); | 35 AnalysisServerTest.errorToJson_noCorrection); |
| 35 test('errorToJson_withCorrection', | 36 test('errorToJson_withCorrection', |
| 36 AnalysisServerTest.errorToJson_withCorrection); | 37 AnalysisServerTest.errorToJson_withCorrection); |
| 37 test('performTask_whenNotRunning', | 38 test('performTask_whenNotRunning', |
| 38 AnalysisServerTest.performTask_whenNotRunning); | 39 AnalysisServerTest.performTask_whenNotRunning); |
| 39 test('shutdown', AnalysisServerTest.shutdown); | 40 test('shutdown', AnalysisServerTest.shutdown); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // The context should only be asked to perform its analysis task once. | 96 // The context should only be asked to perform its analysis task once. |
| 96 MockAnalysisContext context = new MockAnalysisContext(); | 97 MockAnalysisContext context = new MockAnalysisContext(); |
| 97 server.addContextToWorkQueue(context); | 98 server.addContextToWorkQueue(context); |
| 98 server.addContextToWorkQueue(context); | 99 server.addContextToWorkQueue(context); |
| 99 context.when(callsTo('performAnalysisTask')).thenReturn( | 100 context.when(callsTo('performAnalysisTask')).thenReturn( |
| 100 new AnalysisResult(null, 0, null, 0)); | 101 new AnalysisResult(null, 0, null, 0)); |
| 101 return pumpEventQueue().then((_) => | 102 return pumpEventQueue().then((_) => |
| 102 context.getLogs(callsTo('performAnalysisTask')).verify(happenedExactly(1
))); | 103 context.getLogs(callsTo('performAnalysisTask')).verify(happenedExactly(1
))); |
| 103 } | 104 } |
| 104 | 105 |
| 105 static Future createContext() { | 106 // TODO(scheglov) remove or move to the 'analysis' domain |
| 106 server.handlers = [new ServerDomainHandler(server)]; | 107 // static Future createContext() { |
| 107 var request = new Request('my27', ServerDomainHandler.CREATE_CONTEXT_METHOD)
; | 108 // server.handlers = [new ServerDomainHandler(server)]; |
| 108 request.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, sdkPath); | 109 // var request = new Request('my27', ServerDomainHandler.CREATE_CONTEXT_METHO
D); |
| 109 request.setParameter(AnalysisServer.CONTEXT_ID_PARAM, 'ctx'); | 110 // request.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, sdkPath); |
| 110 return channel.sendRequest(request) | 111 // request.setParameter(AnalysisServer.CONTEXT_ID_PARAM, 'ctx'); |
| 111 .then((Response response) { | 112 // return channel.sendRequest(request) |
| 112 expect(response.id, equals('my27')); | 113 // .then((Response response) { |
| 113 expect(response.error, isNull); | 114 // expect(response.id, equals('my27')); |
| 114 }); | 115 // expect(response.error, isNull); |
| 115 } | 116 // }); |
| 117 // } |
| 116 | 118 |
| 117 static Future echo() { | 119 static Future echo() { |
| 118 server.handlers = [new EchoHandler()]; | 120 server.handlers = [new EchoHandler()]; |
| 119 var request = new Request('my22', 'echo'); | 121 var request = new Request('my22', 'echo'); |
| 120 return channel.sendRequest(request) | 122 return channel.sendRequest(request) |
| 121 .then((Response response) { | 123 .then((Response response) { |
| 122 expect(response.id, equals('my22')); | 124 expect(response.id, equals('my22')); |
| 123 expect(response.error, isNull); | 125 expect(response.error, isNull); |
| 124 }); | 126 }); |
| 125 } | 127 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 server.addContextToWorkQueue(context); | 177 server.addContextToWorkQueue(context); |
| 176 server.running = false; | 178 server.running = false; |
| 177 // Pump the event queue to make sure the server doesn't try to do any | 179 // Pump the event queue to make sure the server doesn't try to do any |
| 178 // analysis. | 180 // analysis. |
| 179 return pumpEventQueue(); | 181 return pumpEventQueue(); |
| 180 } | 182 } |
| 181 | 183 |
| 182 static Future shutdown() { | 184 static Future shutdown() { |
| 183 server.handlers = [new ServerDomainHandler(server)]; | 185 server.handlers = [new ServerDomainHandler(server)]; |
| 184 var request = new Request('my28', ServerDomainHandler.SHUTDOWN_METHOD); | 186 var request = new Request('my28', ServerDomainHandler.SHUTDOWN_METHOD); |
| 185 request.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, ''); | |
| 186 return channel.sendRequest(request) | 187 return channel.sendRequest(request) |
| 187 .then((Response response) { | 188 .then((Response response) { |
| 188 expect(response.id, equals('my28')); | 189 expect(response.id, equals('my28')); |
| 189 expect(response.error, isNull); | 190 expect(response.error, isNull); |
| 190 }); | 191 }); |
| 191 } | 192 } |
| 192 | 193 |
| 193 static Future unknownRequest() { | 194 static Future unknownRequest() { |
| 194 server.handlers = [new EchoHandler()]; | 195 server.handlers = [new EchoHandler()]; |
| 195 var request = new Request('my22', 'randomRequest'); | 196 var request = new Request('my22', 'randomRequest'); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 206 @override | 207 @override |
| 207 Response handleRequest(Request request) { | 208 Response handleRequest(Request request) { |
| 208 if (request.method == 'echo') { | 209 if (request.method == 'echo') { |
| 209 var response = new Response(request.id); | 210 var response = new Response(request.id); |
| 210 response.setResult('echo', true); | 211 response.setResult('echo', true); |
| 211 return response; | 212 return response; |
| 212 } | 213 } |
| 213 return null; | 214 return null; |
| 214 } | 215 } |
| 215 } | 216 } |
| OLD | NEW |