Chromium Code Reviews| 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.domain.execution; | 5 library test.domain.execution; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/analysis_server.dart'; | 9 import 'package:analysis_server/src/analysis_server.dart'; |
| 10 import 'package:analysis_server/src/constants.dart'; | 10 import 'package:analysis_server/src/constants.dart'; |
| 11 import 'package:analysis_server/src/domain_execution.dart'; | 11 import 'package:analysis_server/src/domain_execution.dart'; |
| 12 import 'package:analysis_server/src/protocol.dart'; | 12 import 'package:analysis_server/src/protocol.dart'; |
| 13 import 'package:analyzer/file_system/memory_file_system.dart'; | 13 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 14 import 'package:analyzer/instrumentation/instrumentation.dart'; | 14 import 'package:analyzer/instrumentation/instrumentation.dart'; |
| 15 import 'package:analyzer/src/generated/engine.dart'; | 15 import 'package:analyzer/src/generated/engine.dart'; |
| 16 import 'package:analyzer/src/generated/source.dart'; | 16 import 'package:analyzer/src/generated/source.dart'; |
| 17 import 'package:typed_mock/typed_mock.dart'; | 17 import 'package:typed_mock/typed_mock.dart'; |
| 18 import 'package:unittest/unittest.dart'; | 18 import 'package:unittest/unittest.dart'; |
| 19 | 19 |
| 20 import 'mock_sdk.dart'; | 20 import 'mock_sdk.dart'; |
| 21 import 'mocks.dart'; | 21 import 'mocks.dart'; |
| 22 import 'operation/operation_queue_test.dart'; | 22 import 'operation/operation_queue_test.dart'; |
| 23 import 'package:analyzer/file_system/file_system.dart'; | |
| 24 import 'package:analyzer/src/generated/source_io.dart'; | |
| 23 | 25 |
| 24 /** | 26 /** |
| 25 * Return a matcher that will match an [ExecutableFile] if it has the given | 27 * Return a matcher that will match an [ExecutableFile] if it has the given |
| 26 * [source] and [kind]. | 28 * [source] and [kind]. |
| 27 */ | 29 */ |
| 28 Matcher isExecutableFile(Source source, ExecutableKind kind) { | 30 Matcher isExecutableFile(Source source, ExecutableKind kind) { |
| 29 return new IsExecutableFile(source.fullName, kind); | 31 return new IsExecutableFile(source.fullName, kind); |
| 30 } | 32 } |
| 31 | 33 |
| 32 main() { | 34 main() { |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 77 test('delete non-existent context', () { | 79 test('delete non-existent context', () { |
| 78 Request request = new ExecutionDeleteContextParams('13').toRequest('0'); | 80 Request request = new ExecutionDeleteContextParams('13').toRequest('0'); |
| 79 Response response = handler.handleRequest(request); | 81 Response response = handler.handleRequest(request); |
| 80 // TODO(brianwilkerson) It isn't currently specified to be an error if a | 82 // TODO(brianwilkerson) It isn't currently specified to be an error if a |
| 81 // client attempts to delete a context that doesn't exist. Should it be? | 83 // client attempts to delete a context that doesn't exist. Should it be? |
| 82 // expect(response, isResponseFailure('0')); | 84 // expect(response, isResponseFailure('0')); |
| 83 expect(response, isResponseSuccess('0')); | 85 expect(response, isResponseSuccess('0')); |
| 84 }); | 86 }); |
| 85 }); | 87 }); |
| 86 | 88 |
| 87 // group('mapUri', () { | 89 group('mapUri', () { |
| 88 // String contextId; | 90 String contextId; |
| 89 // | 91 |
| 90 // setUp(() { | 92 setUp(() { |
| 91 // Request request = | 93 Folder folder = provider.newFile('/a/b.dart', '').parent; |
| 92 // new ExecutionCreateContextParams('/a/b.dart').toRequest('0'); | 94 server.folderMap.putIfAbsent(folder, () { |
| 93 // Response response = handler.handleRequest(request); | 95 SourceFactory factory = new SourceFactory([new ResourceUriResolver(pro vider)]); |
| 94 // expect(response, isResponseSuccess('0')); | 96 AnalysisContext context = AnalysisEngine.instance.createAnalysisContex t(); |
| 95 // ExecutionCreateContextResult result = | 97 context.sourceFactory = factory; |
| 96 // new ExecutionCreateContextResult.fromResponse(response); | 98 return context; |
| 97 // contextId = result.id; | 99 }); |
| 98 // }); | 100 Request request = |
| 99 // | 101 new ExecutionCreateContextParams('/a/b.dart').toRequest('0'); |
| 100 // tearDown(() { | 102 Response response = handler.handleRequest(request); |
| 101 // Request request = | 103 expect(response, isResponseSuccess('0')); |
| 102 // new ExecutionDeleteContextParams(contextId).toRequest('1'); | 104 ExecutionCreateContextResult result = |
| 103 // Response response = handler.handleRequest(request); | 105 new ExecutionCreateContextResult.fromResponse(response); |
| 104 // expect(response, isResponseSuccess('1')); | 106 contextId = result.id; |
| 105 // }); | 107 }); |
| 106 // | 108 |
| 107 // test('file to URI', () { | 109 tearDown(() { |
| 108 // Request request = | 110 Request request = |
| 109 // new ExecutionMapUriParams(contextId, file: '/a/b.dart').toRequest( '2'); | 111 new ExecutionDeleteContextParams(contextId).toRequest('1'); |
| 110 // Response response = handler.handleRequest(request); | 112 Response response = handler.handleRequest(request); |
| 111 // expect(response, isResponseSuccess('2')); | 113 expect(response, isResponseSuccess('1')); |
| 112 // ExecutionMapUriResult result = | 114 }); |
| 113 // new ExecutionMapUriResult.fromResponse(response); | 115 |
| 114 // expect(result.file, isNull); | 116 group('file to URI', () { |
| 115 // expect(result.uri, isNotNull); | 117 test('does not exist', () { |
| 116 // // TODO(brianwilkerson) Test for the correct result. | 118 Request request = |
| 117 // }); | 119 new ExecutionMapUriParams(contextId, file: '/a/c.dart').toRequest( '2'); |
| 118 // | 120 Response response = handler.handleRequest(request); |
| 119 // test('URI to file', () { | 121 expect(response, isResponseFailure('2')); |
| 120 // Request request = | 122 }); |
| 121 // new ExecutionMapUriParams(contextId, uri: '/a/b.dart').toRequest(' 3'); | 123 |
| 122 // Response response = handler.handleRequest(request); | 124 test('does not exist', () { |
|
Paul Berry
2015/02/06 03:55:33
Did you copy/paste the test name from the previous
Brian Wilkerson
2015/02/06 15:49:01
Done
| |
| 123 // expect(response, isResponseSuccess('3')); | 125 provider.newFolder('/a/d'); |
| 124 // ExecutionMapUriResult result = | 126 Request request = |
| 125 // new ExecutionMapUriResult.fromResponse(response); | 127 new ExecutionMapUriParams(contextId, file: '/a/d').toRequest('2'); |
| 126 // expect(result.file, isNotNull); | 128 Response response = handler.handleRequest(request); |
| 127 // expect(result.uri, isNull); | 129 expect(response, isResponseFailure('2')); |
| 128 // // TODO(brianwilkerson) Test for the correct result. | 130 }); |
| 129 // }); | 131 |
| 130 // | 132 test('valid', () { |
| 131 // test('invalid context id', () { | 133 Request request = |
| 132 // Request request = | 134 new ExecutionMapUriParams(contextId, file: '/a/b.dart').toRequest( '2'); |
| 133 // new ExecutionMapUriParams('xxx', uri: '').toRequest('4'); | 135 Response response = handler.handleRequest(request); |
| 134 // Response response = handler.handleRequest(request); | 136 expect(response, isResponseSuccess('2')); |
| 135 // expect(response, isResponseFailure('4')); | 137 ExecutionMapUriResult result = |
| 136 // }); | 138 new ExecutionMapUriResult.fromResponse(response); |
| 137 // | 139 expect(result.file, isNull); |
| 138 // test('both file and uri', () { | 140 expect(result.uri, 'file:///a/b.dart'); |
| 139 // Request request = | 141 }); |
| 140 // new ExecutionMapUriParams('xxx', file: '', uri: '').toRequest('5') ; | 142 }); |
| 141 // Response response = handler.handleRequest(request); | 143 |
| 142 // expect(response, isResponseFailure('5')); | 144 group('URI to file', () { |
| 143 // }); | 145 test('invalid', () { |
| 144 // }); | 146 Request request = |
| 147 new ExecutionMapUriParams(contextId, uri: 'foo:///a/b.dart').toReq uest('2'); | |
| 148 Response response = handler.handleRequest(request); | |
| 149 expect(response, isResponseFailure('2')); | |
| 150 }); | |
| 151 | |
| 152 test('valid', () { | |
| 153 Request request = | |
| 154 new ExecutionMapUriParams(contextId, uri: 'file:///a/b.dart').toRe quest('2'); | |
| 155 Response response = handler.handleRequest(request); | |
| 156 expect(response, isResponseSuccess('2')); | |
| 157 ExecutionMapUriResult result = | |
| 158 new ExecutionMapUriResult.fromResponse(response); | |
| 159 expect(result.file, '/a/b.dart'); | |
| 160 expect(result.uri, isNull); | |
| 161 }); | |
| 162 }); | |
| 163 | |
| 164 test('invalid context id', () { | |
| 165 Request request = | |
| 166 new ExecutionMapUriParams('xxx', uri: '').toRequest('4'); | |
| 167 Response response = handler.handleRequest(request); | |
| 168 expect(response, isResponseFailure('4')); | |
| 169 }); | |
| 170 | |
| 171 test('both file and uri', () { | |
|
Paul Berry
2015/02/06 03:55:33
Should we also have a test for the case where neit
Brian Wilkerson
2015/02/06 15:49:01
Done
| |
| 172 Request request = | |
| 173 new ExecutionMapUriParams('xxx', file: '', uri: '').toRequest('5'); | |
| 174 Response response = handler.handleRequest(request); | |
| 175 expect(response, isResponseFailure('5')); | |
| 176 }); | |
| 177 }); | |
| 145 | 178 |
| 146 group('setSubscriptions', () { | 179 group('setSubscriptions', () { |
| 147 test('failure - invalid service name', () { | 180 test('failure - invalid service name', () { |
| 148 expect(handler.onFileAnalyzed, isNull); | 181 expect(handler.onFileAnalyzed, isNull); |
| 149 | 182 |
| 150 Request request = new Request('0', EXECUTION_SET_SUBSCRIPTIONS, { | 183 Request request = new Request('0', EXECUTION_SET_SUBSCRIPTIONS, { |
| 151 SUBSCRIPTIONS: ['noSuchService'] | 184 SUBSCRIPTIONS: ['noSuchService'] |
| 152 }); | 185 }); |
| 153 Response response = handler.handleRequest(request); | 186 Response response = handler.handleRequest(request); |
| 154 expect(response, isResponseFailure('0')); | 187 expect(response, isResponseFailure('0')); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 271 * A [Source] that knows it's [fullName]. | 304 * A [Source] that knows it's [fullName]. |
| 272 */ | 305 */ |
| 273 class TestSource implements Source { | 306 class TestSource implements Source { |
| 274 String fullName; | 307 String fullName; |
| 275 | 308 |
| 276 TestSource(this.fullName); | 309 TestSource(this.fullName); |
| 277 | 310 |
| 278 @override | 311 @override |
| 279 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); | 312 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); |
| 280 } | 313 } |
| OLD | NEW |