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 testing.mock_sdk; | 5 library testing.mock_sdk; |
6 | 6 |
7 import 'package:analyzer/file_system/file_system.dart' as resource; | 7 import 'package:analyzer/file_system/file_system.dart' as resource; |
8 import 'package:analyzer/file_system/memory_file_system.dart' as resource; | 8 import 'package:analyzer/file_system/memory_file_system.dart' as resource; |
9 import 'package:analyzer/src/generated/engine.dart'; | 9 import 'package:analyzer/src/generated/engine.dart'; |
10 import 'package:analyzer/src/generated/sdk.dart'; | 10 import 'package:analyzer/src/generated/sdk.dart'; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 | 100 |
101 static const List<SdkLibrary> LIBRARIES = const [ | 101 static const List<SdkLibrary> LIBRARIES = const [ |
102 LIB_CORE, | 102 LIB_CORE, |
103 LIB_ASYNC, | 103 LIB_ASYNC, |
104 LIB_MATH, | 104 LIB_MATH, |
105 LIB_HTML,]; | 105 LIB_HTML,]; |
106 | 106 |
107 final resource.MemoryResourceProvider provider = | 107 final resource.MemoryResourceProvider provider = |
108 new resource.MemoryResourceProvider(); | 108 new resource.MemoryResourceProvider(); |
109 | 109 |
| 110 /** |
| 111 * The [AnalysisContext] which is used for all of the sources. |
| 112 */ |
| 113 InternalAnalysisContext _analysisContext; |
| 114 |
110 MockSdk() { | 115 MockSdk() { |
111 LIBRARIES.forEach((_MockSdkLibrary library) { | 116 LIBRARIES.forEach((_MockSdkLibrary library) { |
112 provider.newFile(library.path, library.content); | 117 provider.newFile(library.path, library.content); |
113 }); | 118 }); |
114 } | 119 } |
115 | 120 |
116 @override | 121 @override |
117 AnalysisContext get context => throw unimplemented; | 122 AnalysisContext get context { |
| 123 if (_analysisContext == null) { |
| 124 _analysisContext = new SdkAnalysisContext(); |
| 125 SourceFactory factory = new SourceFactory([new DartUriResolver(this)]); |
| 126 _analysisContext.sourceFactory = factory; |
| 127 ChangeSet changeSet = new ChangeSet(); |
| 128 for (String uri in uris) { |
| 129 Source source = factory.forUri(uri); |
| 130 changeSet.addedSource(source); |
| 131 } |
| 132 _analysisContext.applyChanges(changeSet); |
| 133 } |
| 134 return _analysisContext; |
| 135 } |
118 | 136 |
119 @override | 137 @override |
120 List<SdkLibrary> get sdkLibraries => LIBRARIES; | 138 List<SdkLibrary> get sdkLibraries => LIBRARIES; |
121 | 139 |
122 @override | 140 @override |
123 String get sdkVersion => throw unimplemented; | 141 String get sdkVersion => throw unimplemented; |
124 | 142 |
125 UnimplementedError get unimplemented => new UnimplementedError(); | 143 UnimplementedError get unimplemented => new UnimplementedError(); |
126 | 144 |
127 @override | 145 @override |
128 List<String> get uris => throw unimplemented; | 146 List<String> get uris { |
| 147 List<String> uris = <String>[]; |
| 148 for (SdkLibrary library in LIBRARIES) { |
| 149 uris.add('dart:' + library.shortName); |
| 150 } |
| 151 return uris; |
| 152 } |
129 | 153 |
130 @override | 154 @override |
131 Source fromFileUri(Uri uri) { | 155 Source fromFileUri(Uri uri) { |
132 String filePath = uri.path; | 156 String filePath = uri.path; |
133 String libPath = '/lib'; | 157 String libPath = '/lib'; |
134 if (!filePath.startsWith("$libPath/")) { | 158 if (!filePath.startsWith("$libPath/")) { |
135 return null; | 159 return null; |
136 } | 160 } |
137 for (SdkLibrary library in LIBRARIES) { | 161 for (SdkLibrary library in LIBRARIES) { |
138 String libraryPath = library.path; | 162 String libraryPath = library.path; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
215 bool get isInternal => throw unimplemented; | 239 bool get isInternal => throw unimplemented; |
216 | 240 |
217 @override | 241 @override |
218 bool get isShared => throw unimplemented; | 242 bool get isShared => throw unimplemented; |
219 | 243 |
220 @override | 244 @override |
221 bool get isVmLibrary => throw unimplemented; | 245 bool get isVmLibrary => throw unimplemented; |
222 | 246 |
223 UnimplementedError get unimplemented => new UnimplementedError(); | 247 UnimplementedError get unimplemented => new UnimplementedError(); |
224 } | 248 } |
OLD | NEW |