| 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'; | |
| 8 | |
| 9 import 'package:analyzer/src/generated/engine.dart'; | 7 import 'package:analyzer/src/generated/engine.dart'; |
| 10 import 'package:analyzer/src/generated/error.dart'; | 8 import 'package:analyzer/src/generated/error.dart'; |
| 11 import 'package:analysis_server/src/analysis_server.dart'; | 9 import 'package:analysis_server/src/analysis_server.dart'; |
| 12 import 'package:analysis_server/src/constants.dart'; | 10 import 'package:analysis_server/src/constants.dart'; |
| 13 import 'package:analysis_server/src/domain_server.dart'; | 11 import 'package:analysis_server/src/domain_server.dart'; |
| 14 import 'package:analysis_server/src/protocol.dart'; | 12 import 'package:analysis_server/src/protocol.dart'; |
| 15 import 'package:analysis_server/src/resource.dart'; | 13 import 'package:analysis_server/src/resource.dart'; |
| 16 import 'package:mock/mock.dart'; | 14 import 'package:mock/mock.dart'; |
| 17 import 'package:unittest/unittest.dart'; | 15 import 'package:unittest/unittest.dart'; |
| 18 | 16 |
| 19 import 'mocks.dart'; | 17 import 'mocks.dart'; |
| 20 | 18 |
| 21 class AnalysisServerTestHelper { | 19 class AnalysisServerTestHelper { |
| 22 MockServerChannel channel; | 20 MockServerChannel channel; |
| 23 AnalysisServer server; | 21 AnalysisServer server; |
| 24 MockAnalysisLogger logger; | 22 MockAnalysisLogger logger; |
| 25 | 23 |
| 26 AnalysisServerTestHelper() { | 24 AnalysisServerTestHelper() { |
| 27 channel = new MockServerChannel(); | 25 channel = new MockServerChannel(); |
| 28 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE); | 26 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE); |
| 29 logger = new MockAnalysisLogger(); | 27 logger = new MockAnalysisLogger(); |
| 30 AnalysisEngine.instance.logger = logger; | 28 AnalysisEngine.instance.logger = logger; |
| 31 } | 29 } |
| 32 } | 30 } |
| 33 | 31 |
| 34 main() { | 32 main() { |
| 35 group('AnalysisServer', () { | 33 group('AnalysisServer', () { |
| 36 test('addContextToWorkQueue_whenNotRunning', () { | |
| 37 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); | |
| 38 helper.server.running = false; | |
| 39 MockAnalysisContext context = new MockAnalysisContext(); | |
| 40 helper.server.addContextToWorkQueue(context); | |
| 41 // Pump the event queue to make sure the server doesn't try to do any | |
| 42 // analysis. | |
| 43 return pumpEventQueue(); | |
| 44 }); | |
| 45 | |
| 46 test('echo', () { | 34 test('echo', () { |
| 47 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); | 35 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); |
| 48 helper.server.handlers = [new EchoHandler()]; | 36 helper.server.handlers = [new EchoHandler()]; |
| 49 var request = new Request('my22', 'echo'); | 37 var request = new Request('my22', 'echo'); |
| 50 return helper.channel.sendRequest(request) | 38 return helper.channel.sendRequest(request) |
| 51 .then((Response response) { | 39 .then((Response response) { |
| 52 expect(response.id, equals('my22')); | 40 expect(response.id, equals('my22')); |
| 53 expect(response.error, isNull); | 41 expect(response.error, isNull); |
| 54 }); | 42 }); |
| 55 }); | 43 }); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 // %s formatting in its correction string. But no such errors or hints | 78 // %s formatting in its correction string. But no such errors or hints |
| 91 // currently exist! | 79 // currently exist! |
| 92 HintCode errorCode = HintCode.MISSING_RETURN; | 80 HintCode errorCode = HintCode.MISSING_RETURN; |
| 93 | 81 |
| 94 AnalysisError analysisError = | 82 AnalysisError analysisError = |
| 95 new AnalysisError.con2(source, 10, 5, errorCode, ['int']); | 83 new AnalysisError.con2(source, 10, 5, errorCode, ['int']); |
| 96 Map<String, Object> json = AnalysisServer.errorToJson(analysisError); | 84 Map<String, Object> json = AnalysisServer.errorToJson(analysisError); |
| 97 expect(json['correction'], equals(errorCode.correction)); | 85 expect(json['correction'], equals(errorCode.correction)); |
| 98 }); | 86 }); |
| 99 | 87 |
| 100 test('performTask_whenNotRunning', () { | |
| 101 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); | |
| 102 // If the server is shut down while there is analysis still pending, | |
| 103 // performTask() should notice that the server is no longer running and | |
| 104 // do no analysis. | |
| 105 MockAnalysisContext context = new MockAnalysisContext(); | |
| 106 helper.server.addContextToWorkQueue(context); | |
| 107 helper.server.running = false; | |
| 108 // Pump the event queue to make sure the server doesn't try to do any | |
| 109 // analysis. | |
| 110 return pumpEventQueue(); | |
| 111 }); | |
| 112 | |
| 113 test('shutdown', () { | 88 test('shutdown', () { |
| 114 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); | 89 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); |
| 115 helper.server.handlers = [new ServerDomainHandler(helper.server)]; | 90 helper.server.handlers = [new ServerDomainHandler(helper.server)]; |
| 116 var request = new Request('my28', METHOD_SHUTDOWN); | 91 var request = new Request('my28', METHOD_SHUTDOWN); |
| 117 return helper.channel.sendRequest(request) | 92 return helper.channel.sendRequest(request) |
| 118 .then((Response response) { | 93 .then((Response response) { |
| 119 expect(response.id, equals('my28')); | 94 expect(response.id, equals('my28')); |
| 120 expect(response.error, isNull); | 95 expect(response.error, isNull); |
| 121 }); | 96 }); |
| 122 }); | 97 }); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 138 @override | 113 @override |
| 139 Response handleRequest(Request request) { | 114 Response handleRequest(Request request) { |
| 140 if (request.method == 'echo') { | 115 if (request.method == 'echo') { |
| 141 var response = new Response(request.id); | 116 var response = new Response(request.id); |
| 142 response.setResult('echo', true); | 117 response.setResult('echo', true); |
| 143 return response; | 118 return response; |
| 144 } | 119 } |
| 145 return null; | 120 return null; |
| 146 } | 121 } |
| 147 } | 122 } |
| OLD | NEW |