Index: pkg/analyzer/test/src/dart/analysis/file_state_test.dart |
diff --git a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart |
index 296b9c9cefe5162dd1a49df638c3bbc57cc16e84..f492fd6a21cca9c3c6afd0acbfe327eac0e36a19 100644 |
--- a/pkg/analyzer/test/src/dart/analysis/file_state_test.dart |
+++ b/pkg/analyzer/test/src/dart/analysis/file_state_test.dart |
@@ -31,20 +31,22 @@ main() { |
@reflectiveTest |
class FileSystemStateTest { |
- static final MockSdk sdk = new MockSdk(); |
- |
final MemoryResourceProvider provider = new MemoryResourceProvider(); |
+ MockSdk sdk; |
+ |
final ByteStore byteStore = new MemoryByteStore(); |
final FileContentOverlay contentOverlay = new FileContentOverlay(); |
final StringBuffer logBuffer = new StringBuffer(); |
+ SourceFactory sourceFactory; |
PerformanceLog logger; |
FileSystemState fileSystemState; |
void setUp() { |
logger = new PerformanceLog(logBuffer); |
- SourceFactory sourceFactory = new SourceFactory([ |
+ sdk = new MockSdk(resourceProvider: provider); |
+ sourceFactory = new SourceFactory([ |
new DartUriResolver(sdk), |
new PackageMapUriResolver(provider, <String, List<Folder>>{ |
'aaa': [provider.getFolder(_p('/aaa/lib'))], |
@@ -55,7 +57,7 @@ class FileSystemStateTest { |
AnalysisOptions analysisOptions = new AnalysisOptionsImpl() |
..strongMode = true; |
fileSystemState = new FileSystemState(logger, byteStore, contentOverlay, |
- provider, sourceFactory, analysisOptions, new Uint32List(0), ''); |
+ provider, sourceFactory, analysisOptions, new Uint32List(0)); |
} |
test_exportedTopLevelDeclarations_export() { |
@@ -260,10 +262,10 @@ class A2 {} |
expect(file.uri, FastUri.parse('package:aaa/a.dart')); |
expect(file.content, ''); |
expect(file.contentHash, _md5('')); |
- expect(file.importedFiles, isEmpty); |
+ expect(_excludeSdk(file.importedFiles), isEmpty); |
expect(file.exportedFiles, isEmpty); |
expect(file.partedFiles, isEmpty); |
- expect(file.directReferencedFiles, isEmpty); |
+ expect(_excludeSdk(file.directReferencedFiles), isEmpty); |
expect(file.isPart, isFalse); |
expect(file.library, isNull); |
expect(file.unlinked, isNotNull); |
@@ -299,7 +301,7 @@ class A1 {} |
expect(file.unlinked.classes, hasLength(1)); |
expect(file.unlinked.classes[0].name, 'A1'); |
- expect(file.importedFiles, hasLength(2)); |
+ expect(_excludeSdk(file.importedFiles), hasLength(2)); |
expect(file.importedFiles[0].path, a2); |
expect(file.importedFiles[0].uri, FastUri.parse('package:aaa/a2.dart')); |
expect(file.importedFiles[0].source, isNotNull); |
@@ -319,7 +321,7 @@ class A1 {} |
expect(file.partedFiles[0].path, a4); |
expect(file.partedFiles[0].uri, FastUri.parse('package:aaa/a4.dart')); |
- expect(file.directReferencedFiles, hasLength(5)); |
+ expect(_excludeSdk(file.directReferencedFiles), hasLength(5)); |
expect(fileSystemState.getFilesForPath(a1), [file]); |
} |
@@ -343,12 +345,12 @@ part 'd.dart'; |
part 'not_dart.txt'; |
'''); |
FileState file = fileSystemState.getFileForPath(a); |
- expect( |
- file.importedFiles.map((f) => f.path), unorderedEquals([b, not_dart])); |
+ expect(_excludeSdk(file.importedFiles).map((f) => f.path), |
+ unorderedEquals([b, not_dart])); |
expect( |
file.exportedFiles.map((f) => f.path), unorderedEquals([c, not_dart])); |
expect(file.partedFiles.map((f) => f.path), unorderedEquals([d, not_dart])); |
- expect(fileSystemState.knownFilePaths, |
+ expect(_excludeSdk(fileSystemState.knownFilePaths), |
unorderedEquals([a, b, c, d, not_dart])); |
} |
@@ -376,10 +378,10 @@ class A2 {} |
expect(file_a2.unlinked.classes, hasLength(1)); |
expect(file_a2.unlinked.classes[0].name, 'A2'); |
- expect(file_a2.importedFiles, isEmpty); |
+ expect(_excludeSdk(file_a2.importedFiles), isEmpty); |
expect(file_a2.exportedFiles, isEmpty); |
expect(file_a2.partedFiles, isEmpty); |
- expect(file_a2.directReferencedFiles, isEmpty); |
+ expect(_excludeSdk(file_a2.directReferencedFiles), isEmpty); |
// The library is not known yet. |
expect(file_a2.isPart, isTrue); |
@@ -389,7 +391,8 @@ class A2 {} |
FileState file_a1 = fileSystemState.getFileForPath(a1); |
expect(file_a1.partedFiles, hasLength(1)); |
expect(file_a1.partedFiles[0], same(file_a2)); |
- expect(file_a1.directReferencedFiles, unorderedEquals([file_a2])); |
+ expect( |
+ _excludeSdk(file_a1.directReferencedFiles), unorderedEquals([file_a2])); |
// Now the part knows its library. |
expect(file_a2.library, same(file_a1)); |
@@ -563,7 +566,8 @@ set _V3(_) {} |
fb.transitiveFiles; |
fc.transitiveFiles; |
fd.transitiveFiles; |
- expect(fileSystemState.test.filesWithoutTransitiveFiles, isEmpty); |
+ expect( |
+ _excludeSdk(fileSystemState.test.filesWithoutTransitiveFiles), isEmpty); |
// No imports, so just a single file. |
provider.newFile(pa, ""); |
@@ -646,13 +650,15 @@ set _V3(_) {} |
expect(fb.transitiveSignature, isNotNull); |
expect(fc.transitiveSignature, isNotNull); |
expect(fd.transitiveSignature, isNotNull); |
- expect(fileSystemState.test.filesWithoutTransitiveFiles, isEmpty); |
+ expect( |
+ _excludeSdk(fileSystemState.test.filesWithoutTransitiveFiles), isEmpty); |
// Make an update to a.dart that does not change its API signature. |
// All transitive signatures are still valid. |
provider.newFile(pa, "class A {} // the same API signature"); |
fa.refresh(); |
- expect(fileSystemState.test.filesWithoutTransitiveFiles, isEmpty); |
+ expect( |
+ _excludeSdk(fileSystemState.test.filesWithoutTransitiveFiles), isEmpty); |
// Change a.dart API signature, also flush signatures of b.dart and c.dart, |
// but d.dart is still OK. |
@@ -670,16 +676,26 @@ set _V3(_) {} |
void _assertFilesWithoutTransitiveFiles(List<FileState> expected) { |
var actual = fileSystemState.test.filesWithoutTransitiveFiles; |
- expect(actual, unorderedEquals(expected)); |
+ expect(_excludeSdk(actual), unorderedEquals(expected)); |
} |
void _assertFilesWithoutTransitiveSignatures(List<FileState> expected) { |
var actual = fileSystemState.test.filesWithoutTransitiveSignature; |
- expect(actual, unorderedEquals(expected)); |
+ expect(_excludeSdk(actual), unorderedEquals(expected)); |
} |
void _assertTransitiveFiles(FileState file, List<FileState> expected) { |
- expect(file.transitiveFiles, unorderedEquals(expected)); |
+ expect(_excludeSdk(file.transitiveFiles), unorderedEquals(expected)); |
+ } |
+ |
+ List<T> _excludeSdk<T>(Iterable<T> files) { |
+ return files.where((T file) { |
+ if (file is FileState) { |
+ return file.uri.scheme != 'dart'; |
+ } else { |
+ return !(file as String).startsWith(_p('/sdk')); |
+ } |
+ }).toList(); |
} |
String _p(String path) => provider.convertPath(path); |