| 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 'package:analyzer/file_system/physical_file_system.dart'; | |
| 8 import 'package:analysis_server/src/analysis_server.dart'; | 7 import 'package:analysis_server/src/analysis_server.dart'; |
| 9 import 'package:analysis_server/src/constants.dart'; | 8 import 'package:analysis_server/src/constants.dart'; |
| 10 import 'package:analysis_server/src/domain_server.dart'; | 9 import 'package:analysis_server/src/domain_server.dart'; |
| 11 import 'package:analysis_server/src/operation/operation.dart'; | 10 import 'package:analysis_server/src/operation/operation.dart'; |
| 12 import 'package:analysis_server/src/protocol.dart'; | 11 import 'package:analysis_server/src/protocol.dart'; |
| 13 import 'mock_sdk.dart'; | 12 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 14 import 'package:analyzer/src/generated/engine.dart'; | 13 import 'package:analyzer/src/generated/engine.dart'; |
| 15 import 'package:analyzer/src/generated/java_engine.dart'; | 14 import 'package:analyzer/src/generated/java_engine.dart'; |
| 16 import 'package:analyzer/src/generated/source.dart'; | 15 import 'package:analyzer/src/generated/source.dart'; |
| 17 import 'package:typed_mock/typed_mock.dart'; | 16 import 'package:typed_mock/typed_mock.dart'; |
| 18 import 'package:unittest/unittest.dart'; | 17 import 'package:unittest/unittest.dart'; |
| 19 | 18 |
| 20 import 'mocks.dart'; | 19 import 'mocks.dart'; |
| 20 import 'mock_sdk.dart'; |
| 21 | 21 |
| 22 main() { | 22 main() { |
| 23 group('AnalysisServer', () { | 23 group('AnalysisServer', () { |
| 24 test('server.status notifications', () { | 24 test('server.status notifications', () { |
| 25 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); | 25 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); |
| 26 MockAnalysisContext context = new MockAnalysisContext('context'); | 26 MockAnalysisContext context = new MockAnalysisContext('context'); |
| 27 MockSource source = new MockSource('source'); | 27 MockSource source = new MockSource('source'); |
| 28 when(source.fullName).thenReturn('foo.dart'); | 28 when(source.fullName).thenReturn('foo.dart'); |
| 29 when(source.isInSystemLibrary).thenReturn(false); | 29 when(source.isInSystemLibrary).thenReturn(false); |
| 30 ChangeNoticeImpl notice = new ChangeNoticeImpl(source); | 30 ChangeNoticeImpl notice = new ChangeNoticeImpl(source); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 ServerOperationPriority.ANALYSIS, (_) { throw exceptionToThrow; }); | 95 ServerOperationPriority.ANALYSIS, (_) { throw exceptionToThrow; }); |
| 96 helper.server.operationQueue.add(operation); | 96 helper.server.operationQueue.add(operation); |
| 97 helper.server.performOperationPending = true; | 97 helper.server.performOperationPending = true; |
| 98 try { | 98 try { |
| 99 helper.server.performOperation(); | 99 helper.server.performOperation(); |
| 100 fail('exception not rethrown'); | 100 fail('exception not rethrown'); |
| 101 } on AnalysisException catch (exception) { | 101 } on AnalysisException catch (exception) { |
| 102 expect(exception.cause.exception, equals(exceptionToThrow)); | 102 expect(exception.cause.exception, equals(exceptionToThrow)); |
| 103 } | 103 } |
| 104 }); | 104 }); |
| 105 |
| 106 test('contexts changed event', () { |
| 107 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); |
| 108 helper.resourceProvider.newFolder('/foo'); |
| 109 |
| 110 bool wasAdded = false; |
| 111 bool wasChanged = false; |
| 112 bool wasRemoved = false; |
| 113 helper.server.onContextsChanged.listen((ContextsChangedEvent event) { |
| 114 wasAdded = event.added.length == 1; |
| 115 if (wasAdded) { |
| 116 expect(event.added[0], isNotNull); |
| 117 } |
| 118 wasChanged = event.changed.length == 1; |
| 119 if (wasChanged) { |
| 120 expect(event.changed[0], isNotNull); |
| 121 } |
| 122 wasRemoved = event.removed.length == 1; |
| 123 if (wasRemoved) { |
| 124 expect(event.removed[0], isNotNull); |
| 125 } |
| 126 }); |
| 127 |
| 128 helper.server.setAnalysisRoots('0', ['/foo'], [], {}); |
| 129 return pumpEventQueue().then((_) { |
| 130 expect(wasAdded, isTrue); |
| 131 expect(wasChanged, isFalse); |
| 132 expect(wasRemoved, isFalse); |
| 133 |
| 134 wasAdded = false; |
| 135 wasChanged = false; |
| 136 wasRemoved = false; |
| 137 helper.server.setAnalysisRoots('0', ['/foo'], [], {'/foo':'/bar'}); |
| 138 return pumpEventQueue(); |
| 139 }).then((_) { |
| 140 expect(wasAdded, isFalse); |
| 141 expect(wasChanged, isTrue); |
| 142 expect(wasRemoved, isFalse); |
| 143 |
| 144 wasAdded = false; |
| 145 wasChanged = false; |
| 146 wasRemoved = false; |
| 147 helper.server.setAnalysisRoots('0', [], [], {}); |
| 148 return pumpEventQueue(); |
| 149 }).then((_) { |
| 150 expect(wasAdded, isFalse); |
| 151 expect(wasChanged, isFalse); |
| 152 expect(wasRemoved, isTrue); |
| 153 }); |
| 154 }); |
| 105 }); | 155 }); |
| 106 } | 156 } |
| 107 | 157 |
| 108 class AnalysisServerTestHelper { | 158 class AnalysisServerTestHelper { |
| 109 MockServerChannel channel; | 159 MockServerChannel channel; |
| 110 AnalysisServer server; | 160 AnalysisServer server; |
| 161 MemoryResourceProvider resourceProvider; |
| 111 | 162 |
| 112 AnalysisServerTestHelper({bool rethrowExceptions: true}) { | 163 AnalysisServerTestHelper({bool rethrowExceptions: true}) { |
| 113 channel = new MockServerChannel(); | 164 channel = new MockServerChannel(); |
| 114 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE, | 165 resourceProvider = new MemoryResourceProvider(); |
| 166 server = new AnalysisServer(channel, resourceProvider, |
| 115 new MockPackageMapProvider(), null, new MockSdk(), | 167 new MockPackageMapProvider(), null, new MockSdk(), |
| 116 rethrowExceptions: rethrowExceptions); | 168 rethrowExceptions: rethrowExceptions); |
| 117 } | 169 } |
| 118 } | 170 } |
| 119 | 171 |
| 120 class EchoHandler implements RequestHandler { | 172 class EchoHandler implements RequestHandler { |
| 121 @override | 173 @override |
| 122 Response handleRequest(Request request) { | 174 Response handleRequest(Request request) { |
| 123 if (request.method == 'echo') { | 175 if (request.method == 'echo') { |
| 124 return new Response(request.id, result: {'echo': true}); | 176 return new Response(request.id, result: {'echo': true}); |
| 125 } | 177 } |
| 126 return null; | 178 return null; |
| 127 } | 179 } |
| 128 } | 180 } |
| OLD | NEW |