| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'package:analyzer/dart/element/element.dart'; | 5 import 'package:analyzer/dart/element/element.dart'; |
| 6 import 'package:analyzer/dart/element/visitor.dart'; | 6 import 'package:analyzer/dart/element/visitor.dart'; |
| 7 import 'package:analyzer/file_system/file_system.dart'; | 7 import 'package:analyzer/file_system/file_system.dart'; |
| 8 import 'package:analyzer/file_system/memory_file_system.dart'; | 8 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 9 import 'package:analyzer/source/package_map_resolver.dart'; | 9 import 'package:analyzer/source/package_map_resolver.dart'; |
| 10 import 'package:analyzer/src/dart/analysis/byte_store.dart'; | 10 import 'package:analyzer/src/dart/analysis/byte_store.dart'; |
| 11 import 'package:analyzer/src/dart/analysis/driver.dart'; | 11 import 'package:analyzer/src/dart/analysis/driver.dart'; |
| 12 import 'package:analyzer/src/dart/analysis/file_state.dart'; | 12 import 'package:analyzer/src/dart/analysis/file_state.dart'; |
| 13 import 'package:analyzer/src/dart/analysis/status.dart'; | 13 import 'package:analyzer/src/dart/analysis/status.dart'; |
| 14 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl; | 14 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl; |
| 15 import 'package:analyzer/src/generated/sdk.dart'; | 15 import 'package:analyzer/src/generated/sdk.dart'; |
| 16 import 'package:analyzer/src/generated/source.dart'; | 16 import 'package:analyzer/src/generated/source.dart'; |
| 17 import 'package:analyzer/src/summary/package_bundle_reader.dart'; |
| 17 import 'package:test/test.dart'; | 18 import 'package:test/test.dart'; |
| 18 import 'package:typed_mock/typed_mock.dart'; | 19 import 'package:typed_mock/typed_mock.dart'; |
| 19 | 20 |
| 20 import '../../context/mock_sdk.dart'; | 21 import '../../context/mock_sdk.dart'; |
| 21 | 22 |
| 22 /** | 23 /** |
| 23 * Finds an [Element] with the given [name]. | 24 * Finds an [Element] with the given [name]. |
| 24 */ | 25 */ |
| 25 Element findChildElement(Element root, String name, [ElementKind kind]) { | 26 Element findChildElement(Element root, String name, [ElementKind kind]) { |
| 26 Element result = null; | 27 Element result = null; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 | 68 |
| 68 void addTestFile(String content, {bool priority: false}) { | 69 void addTestFile(String content, {bool priority: false}) { |
| 69 testCode = content; | 70 testCode = content; |
| 70 provider.newFile(testFile, content); | 71 provider.newFile(testFile, content); |
| 71 driver.addFile(testFile); | 72 driver.addFile(testFile); |
| 72 if (priority) { | 73 if (priority) { |
| 73 driver.priorityFiles = [testFile]; | 74 driver.priorityFiles = [testFile]; |
| 74 } | 75 } |
| 75 } | 76 } |
| 76 | 77 |
| 78 AnalysisDriver createAnalysisDriver({SummaryDataStore externalSummaries}) { |
| 79 return new AnalysisDriver( |
| 80 scheduler, |
| 81 logger, |
| 82 provider, |
| 83 byteStore, |
| 84 contentOverlay, |
| 85 null, |
| 86 new SourceFactory([ |
| 87 new DartUriResolver(sdk), |
| 88 generatedUriResolver, |
| 89 new PackageMapUriResolver(provider, <String, List<Folder>>{ |
| 90 'test': [provider.getFolder(testProject)] |
| 91 }), |
| 92 new ResourceUriResolver(provider) |
| 93 ], null, provider), |
| 94 new AnalysisOptionsImpl() |
| 95 ..strongMode = true |
| 96 ..enableUriInPartOf = true, |
| 97 disableChangesAndCacheAllResults: disableChangesAndCacheAllResults, |
| 98 externalSummaries: externalSummaries); |
| 99 } |
| 100 |
| 77 int findOffset(String search) { | 101 int findOffset(String search) { |
| 78 int offset = testCode.indexOf(search); | 102 int offset = testCode.indexOf(search); |
| 79 if (offset < 0) { | 103 if (offset < 0) { |
| 80 fail("Did not find '$search' in\n$testCode"); | 104 fail("Did not find '$search' in\n$testCode"); |
| 81 } | 105 } |
| 82 return offset; | 106 return offset; |
| 83 } | 107 } |
| 84 | 108 |
| 85 int getLeadingIdentifierLength(String search) { | 109 int getLeadingIdentifierLength(String search) { |
| 86 int length = 0; | 110 int length = 0; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 102 } | 126 } |
| 103 return length; | 127 return length; |
| 104 } | 128 } |
| 105 | 129 |
| 106 void setUp() { | 130 void setUp() { |
| 107 sdk = new MockSdk(resourceProvider: provider); | 131 sdk = new MockSdk(resourceProvider: provider); |
| 108 testProject = _p('/test/lib'); | 132 testProject = _p('/test/lib'); |
| 109 testFile = _p('/test/lib/test.dart'); | 133 testFile = _p('/test/lib/test.dart'); |
| 110 logger = new PerformanceLog(logBuffer); | 134 logger = new PerformanceLog(logBuffer); |
| 111 scheduler = new AnalysisDriverScheduler(logger); | 135 scheduler = new AnalysisDriverScheduler(logger); |
| 112 driver = new AnalysisDriver( | 136 driver = createAnalysisDriver(); |
| 113 scheduler, | |
| 114 logger, | |
| 115 provider, | |
| 116 byteStore, | |
| 117 contentOverlay, | |
| 118 null, | |
| 119 new SourceFactory([ | |
| 120 new DartUriResolver(sdk), | |
| 121 generatedUriResolver, | |
| 122 new PackageMapUriResolver(provider, <String, List<Folder>>{ | |
| 123 'test': [provider.getFolder(testProject)] | |
| 124 }), | |
| 125 new ResourceUriResolver(provider) | |
| 126 ], null, provider), | |
| 127 new AnalysisOptionsImpl() | |
| 128 ..strongMode = true | |
| 129 ..enableUriInPartOf = true, | |
| 130 disableChangesAndCacheAllResults: disableChangesAndCacheAllResults); | |
| 131 scheduler.start(); | 137 scheduler.start(); |
| 132 scheduler.status.listen(allStatuses.add); | 138 scheduler.status.listen(allStatuses.add); |
| 133 driver.results.listen(allResults.add); | 139 driver.results.listen(allResults.add); |
| 134 driver.exceptions.listen(allExceptions.add); | 140 driver.exceptions.listen(allExceptions.add); |
| 135 } | 141 } |
| 136 | 142 |
| 137 String _p(String path) => provider.convertPath(path); | 143 String _p(String path) => provider.convertPath(path); |
| 138 } | 144 } |
| 139 | 145 |
| 140 /** | 146 /** |
| 141 * Wraps an [_ElementVisitorFunction] into a [GeneralizingElementVisitor]. | 147 * Wraps an [_ElementVisitorFunction] into a [GeneralizingElementVisitor]. |
| 142 */ | 148 */ |
| 143 class _ElementVisitorFunctionWrapper extends GeneralizingElementVisitor { | 149 class _ElementVisitorFunctionWrapper extends GeneralizingElementVisitor { |
| 144 final _ElementVisitorFunction function; | 150 final _ElementVisitorFunction function; |
| 145 | 151 |
| 146 _ElementVisitorFunctionWrapper(this.function); | 152 _ElementVisitorFunctionWrapper(this.function); |
| 147 | 153 |
| 148 visitElement(Element element) { | 154 visitElement(Element element) { |
| 149 function(element); | 155 function(element); |
| 150 super.visitElement(element); | 156 super.visitElement(element); |
| 151 } | 157 } |
| 152 } | 158 } |
| 153 | 159 |
| 154 class _GeneratedUriResolverMock extends TypedMock implements UriResolver {} | 160 class _GeneratedUriResolverMock extends TypedMock implements UriResolver {} |
| OLD | NEW |