Stop using newDotPackagesFile() in analyzer/.

Change-Id: I3a150895e4aa8822317bb1a9225033c787b4ecd2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/236445
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov
2022-03-10 05:27:45 +00:00
committed by Commit Bot
parent fc2ebe7310
commit 1a3eefd699
3 changed files with 115 additions and 387 deletions
@@ -20,32 +20,6 @@ class PackagesTest with ResourceProviderMixin {
newFile('/test/lib/test.dart', content: '');
}
void test_findPackagesFrom_fallbackToDotPackages() {
newDotPackagesFile('/test', content: '''
test:lib/
bbb:${toUriStr('/packages/bbb/lib')}
''');
var packages = findPackagesFrom(
resourceProvider,
getFile('/test/lib/a.dart'),
);
_assertPackage(
packages,
name: 'test',
expectedLibPath: '/test/lib',
expectedVersion: null,
);
_assertPackage(
packages,
name: 'bbb',
expectedLibPath: '/packages/bbb/lib',
expectedVersion: null,
);
}
void test_findPackagesFrom_missing() {
var packages = findPackagesFrom(
resourceProvider,
@@ -55,52 +29,6 @@ bbb:${toUriStr('/packages/bbb/lib')}
expect(packages.packages, isEmpty);
}
void test_findPackagesFrom_preferPackageConfig() {
newFile('/test/.dart_tool/package_config.json', content: '''
{
"configVersion": 2,
"packages": [
{
"name": "test",
"rootUri": "../",
"packageUri": "lib/",
"languageVersion": "2.6"
},
{
"name": "aaa",
"rootUri": "${toUriStr('/packages/aaa')}",
"packageUri": "lib/",
"languageVersion": "2.3"
}
]
}
''');
newDotPackagesFile('/test', content: '''
test:lib/
bbb:${toUriStr('/packages/bbb/lib')}
''');
var packages = findPackagesFrom(
resourceProvider,
getFile('/test/lib/a.dart'),
);
_assertPackage(
packages,
name: 'test',
expectedLibPath: '/test/lib',
expectedVersion: Version(2, 6, 0),
);
_assertPackage(
packages,
name: 'aaa',
expectedLibPath: '/packages/aaa/lib',
expectedVersion: Version(2, 3, 0),
);
}
test_packageForPath() {
var packages = Packages(
{
@@ -137,29 +65,6 @@ bbb:${toUriStr('/packages/bbb/lib')}
check('/home/ddd/lib/d.dart', null);
}
test_parseDotPackagesFile() {
var file = newDotPackagesFile('/test', content: '''
# Generated by pub
aaa:${toUriStr('/packages/aaa/lib/')}
test:lib/
''');
var packages = parseDotPackagesFile(resourceProvider, file);
_assertPackage(
packages,
name: 'test',
expectedLibPath: '/test/lib',
expectedVersion: null,
);
_assertPackage(
packages,
name: 'aaa',
expectedLibPath: '/packages/aaa/lib',
expectedVersion: null,
);
}
test_parsePackageConfigJsonFile() {
var file = newFile('/test/.dart_tool/package_config.json', content: '''
{
@@ -209,21 +114,6 @@ test:lib/
);
}
test_parsePackagesFile_dotPackages() {
var dotPackagesFile = newDotPackagesFile('/test', content: '''
bbb:${toUriStr('/packages/bbb/lib')}
''');
var packages = parsePackagesFile(resourceProvider, dotPackagesFile);
_assertPackage(
packages,
name: 'bbb',
expectedLibPath: '/packages/bbb/lib',
expectedVersion: null,
);
}
test_parsePackagesFile_packageConfig() {
var path = convertPath('/test/.dart_tool/package_config.json');
newFile(path, content: '''
@@ -250,38 +140,6 @@ bbb:${toUriStr('/packages/bbb/lib')}
);
}
test_parsePackagesFile_packageConfig_fromDotPackages() {
newFile('/test/.dart_tool/package_config.json', content: '''
{
"configVersion": 2,
"packages": [
{
"name": "aaa",
"rootUri": "${toUriStr('/packages/aaa')}",
"packageUri": "lib/",
"languageVersion": "2.3"
}
]
}
''');
var dotPackagesFile = newDotPackagesFile('/test', content: '''
bbb:${toUriStr('/packages/bbb/lib')}
''');
var packages = parsePackagesFile(
resourceProvider,
dotPackagesFile,
);
_assertPackage(
packages,
name: 'aaa',
expectedLibPath: '/packages/aaa/lib',
expectedVersion: Version(2, 3, 0),
);
}
void _assertPackage(
Packages packages, {
required String name,
@@ -235,7 +235,7 @@ analyzer:
void test_locateRoots_multiple_dirAndNestedDir_innerConfigurationFiles() {
var outerRootFolder = newFolder('/outer');
var innerOptionsFile = newAnalysisOptionsYamlFile('/outer/examples/inner');
var innerPackagesFile = newDotPackagesFile('/outer/examples/inner');
var innerPackagesFile = newPackageConfigJsonFile('/outer/examples/inner');
var innerRootFolder = newFolder('/outer/examples/inner');
var roots = contextLocator.locateRoots(
@@ -274,7 +274,7 @@ analyzer:
void test_locateRoots_multiple_dirAndNestedDir_outerConfigurationFiles() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder innerRootFolder = newFolder('/test/outer/examples/inner');
List<ContextRoot> roots = contextLocator.locateRoots(
@@ -336,7 +336,7 @@ analyzer:
void test_locateRoots_multiple_dirAndNestedFile_outerConfigurationFiles() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
File testFile = newFile('/test/outer/examples/inner/test.dart');
List<ContextRoot> roots = contextLocator
@@ -353,11 +353,11 @@ analyzer:
void test_locateRoots_multiple_dirAndSiblingDir_bothConfigurationFiles() {
Folder outer1RootFolder = newFolder('/test/outer1');
File outer1OptionsFile = newAnalysisOptionsYamlFile('/test/outer1');
File outer1PackagesFile = newDotPackagesFile('/test/outer1');
File outer1PackagesFile = newPackageConfigJsonFile('/test/outer1');
Folder outer2RootFolder = newFolder('/test/outer2');
File outer2OptionsFile = newAnalysisOptionsYamlFile('/test/outer2');
File outer2PackagesFile = newDotPackagesFile('/test/outer2');
File outer2PackagesFile = newPackageConfigJsonFile('/test/outer2');
List<ContextRoot> roots = contextLocator.locateRoots(
includedPaths: [outer1RootFolder.path, outer2RootFolder.path]);
@@ -400,10 +400,10 @@ analyzer:
void test_locateRoots_multiple_dirAndSiblingFile() {
Folder outer1RootFolder = newFolder('/test/outer1');
File outer1OptionsFile = newAnalysisOptionsYamlFile('/test/outer1');
File outer1PackagesFile = newDotPackagesFile('/test/outer1');
File outer1PackagesFile = newPackageConfigJsonFile('/test/outer1');
File outer2OptionsFile = newAnalysisOptionsYamlFile('/test/outer2');
File outer2PackagesFile = newDotPackagesFile('/test/outer2');
File outer2PackagesFile = newPackageConfigJsonFile('/test/outer2');
File testFile = newFile('/test/outer2/test.dart');
List<ContextRoot> roots = contextLocator
@@ -490,7 +490,7 @@ analyzer:
exclude:
- lib/test2.dart
''');
File packagesFile = newDotPackagesFile('/home/test');
File packagesFile = newPackageConfigJsonFile('/home/test');
File testFile1 = newFile('/home/test/lib/test1.dart');
File testFile2 = newFile('/home/test/lib/test2.dart');
@@ -552,7 +552,7 @@ analyzer:
void test_locateRoots_multiple_fileAndSiblingFile_hasOptionsPackages() {
File optionsFile = newAnalysisOptionsYamlFile('/home/test');
File packagesFile = newDotPackagesFile('/home/test');
File packagesFile = newPackageConfigJsonFile('/home/test');
File testFile1 = newFile('/home/test/lib/test1.dart');
File testFile2 = newFile('/home/test/lib/test2.dart');
@@ -571,7 +571,7 @@ analyzer:
}
void test_locateRoots_multiple_fileAndSiblingFile_hasPackages() {
File packagesFile = newDotPackagesFile('/home/test');
File packagesFile = newPackageConfigJsonFile('/home/test');
File testFile1 = newFile('/home/test/lib/test1.dart');
File testFile2 = newFile('/home/test/lib/test2.dart');
@@ -595,8 +595,8 @@ analyzer:
/// just the file system root.
void
test_locateRoots_multiple_fileAndSiblingFile_hasPackages_overridePackages() {
newDotPackagesFile('/home/test'); // not used
File overridePackagesFile = newDotPackagesFile('/home');
newPackageConfigJsonFile('/home/test'); // not used
File overridePackagesFile = newPackageConfigJsonFile('/home');
File testFile1 = newFile('/home/test/lib/test1.dart');
File testFile2 = newFile('/home/test/lib/test2.dart');
@@ -789,7 +789,7 @@ analyzer:
void test_locateRoots_nested_excluded_dot() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
newFolder('/test/outer/.examples');
newAnalysisOptionsYamlFile('/test/outer/.examples/inner');
@@ -809,7 +809,7 @@ analyzer:
void test_locateRoots_nested_excluded_explicit() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder excludedFolder = newFolder('/test/outer/examples');
newAnalysisOptionsYamlFile('/test/outer/examples/inner');
@@ -828,12 +828,13 @@ analyzer:
void test_locateRoots_nested_multiple() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder inner1RootFolder = newFolder('/test/outer/examples/inner1');
File inner1OptionsFile =
newAnalysisOptionsYamlFile('/test/outer/examples/inner1');
Folder inner2RootFolder = newFolder('/test/outer/examples/inner2');
File inner2PackagesFile = newDotPackagesFile('/test/outer/examples/inner2');
File inner2PackagesFile =
newPackageConfigJsonFile('/test/outer/examples/inner2');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [outerRootFolder.path]);
@@ -862,7 +863,7 @@ analyzer:
void test_locateRoots_nested_options() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder innerRootFolder = newFolder('/test/outer/examples/inner');
File innerOptionsFile =
newAnalysisOptionsYamlFile('/test/outer/examples/inner');
@@ -887,7 +888,7 @@ analyzer:
void test_locateRoots_nested_options_overriddenOptions() {
Folder outerRootFolder = newFolder('/test/outer');
newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
newFolder('/test/outer/examples/inner');
newAnalysisOptionsYamlFile('/test/outer/examples/inner');
File overrideOptionsFile = newAnalysisOptionsYamlFile('/test/override');
@@ -907,11 +908,11 @@ analyzer:
void test_locateRoots_nested_options_overriddenPackages() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
newDotPackagesFile('/test/outer');
newPackageConfigJsonFile('/test/outer');
Folder innerRootFolder = newFolder('/test/outer/examples/inner');
File innerOptionsFile =
newAnalysisOptionsYamlFile('/test/outer/examples/inner');
File overridePackagesFile = newDotPackagesFile('/test/override');
File overridePackagesFile = newPackageConfigJsonFile('/test/override');
List<ContextRoot> roots = contextLocator.locateRoots(
includedPaths: [outerRootFolder.path],
@@ -934,11 +935,12 @@ analyzer:
void test_locateRoots_nested_optionsAndPackages() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder innerRootFolder = newFolder('/test/outer/examples/inner');
File innerOptionsFile =
newAnalysisOptionsYamlFile('/test/outer/examples/inner');
File innerPackagesFile = newDotPackagesFile('/test/outer/examples/inner');
File innerPackagesFile =
newPackageConfigJsonFile('/test/outer/examples/inner');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [outerRootFolder.path]);
@@ -960,12 +962,12 @@ analyzer:
void test_locateRoots_nested_optionsAndPackages_overriddenBoth() {
Folder outerRootFolder = newFolder('/test/outer');
newAnalysisOptionsYamlFile('/test/outer');
newDotPackagesFile('/test/outer');
newPackageConfigJsonFile('/test/outer');
newFolder('/test/outer/examples/inner');
newAnalysisOptionsYamlFile('/test/outer/examples/inner');
newDotPackagesFile('/test/outer/examples/inner');
newPackageConfigJsonFile('/test/outer/examples/inner');
File overrideOptionsFile = newAnalysisOptionsYamlFile('/test/override');
File overridePackagesFile = newDotPackagesFile('/test/override');
File overridePackagesFile = newPackageConfigJsonFile('/test/override');
List<ContextRoot> roots = contextLocator.locateRoots(
includedPaths: [outerRootFolder.path],
@@ -1009,9 +1011,10 @@ analyzer:
void test_locateRoots_nested_packages() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder innerRootFolder = newFolder('/test/outer/examples/inner');
File innerPackagesFile = newDotPackagesFile('/test/outer/examples/inner');
File innerPackagesFile =
newPackageConfigJsonFile('/test/outer/examples/inner');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [outerRootFolder.path]);
@@ -1033,9 +1036,10 @@ analyzer:
void test_locateRoots_nested_packages_overriddenOptions() {
Folder outerRootFolder = newFolder('/test/outer');
newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
Folder innerRootFolder = newFolder('/test/outer/examples/inner');
File innerPackagesFile = newDotPackagesFile('/test/outer/examples/inner');
File innerPackagesFile =
newPackageConfigJsonFile('/test/outer/examples/inner');
File overrideOptionsFile = newAnalysisOptionsYamlFile('/test/override');
List<ContextRoot> roots = contextLocator.locateRoots(
@@ -1059,10 +1063,10 @@ analyzer:
void test_locateRoots_nested_packages_overriddenPackages() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
newDotPackagesFile('/test/outer');
newPackageConfigJsonFile('/test/outer');
newFolder('/test/outer/examples/inner');
newDotPackagesFile('/test/outer/examples/inner');
File overridePackagesFile = newDotPackagesFile('/test/override');
newPackageConfigJsonFile('/test/outer/examples/inner');
File overridePackagesFile = newPackageConfigJsonFile('/test/override');
List<ContextRoot> roots = contextLocator.locateRoots(
includedPaths: [outerRootFolder.path],
@@ -1079,7 +1083,7 @@ analyzer:
void test_locateRoots_nested_packagesDirectory_included() {
Folder outerRootFolder = newFolder('/test/outer');
File outerOptionsFile = newAnalysisOptionsYamlFile('/test/outer');
File outerPackagesFile = newDotPackagesFile('/test/outer');
File outerPackagesFile = newPackageConfigJsonFile('/test/outer');
File innerOptionsFile =
newAnalysisOptionsYamlFile('/test/outer/packages/inner');
@@ -1152,7 +1156,7 @@ analyzer:
- **.g.dart
analyzer:
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1178,7 +1182,7 @@ analyzer:
exclude:
- data/**.g.dart
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1211,7 +1215,7 @@ analyzer:
exclude:
- data/**/foo/**
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1243,7 +1247,7 @@ analyzer:
exclude:
- data/**
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
newFolder('/test/root/data');
List<ContextRoot> roots =
@@ -1277,7 +1281,7 @@ analyzer:
- data/**
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
newFolder('/test/root/data');
List<ContextRoot> roots =
@@ -1314,7 +1318,7 @@ analyzer:
- foo/**
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
newFolder('/test/root/foo');
newFolder('/test/root/bar');
@@ -1348,7 +1352,7 @@ analyzer:
exclude:
- data/**
''');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
newFolder('/test/root/data');
newAnalysisOptionsYamlFile('/test/root/data', content: '');
@@ -1375,7 +1379,7 @@ analyzer:
void test_locateRoots_single_dir_directOptions_directPackages() {
Folder rootFolder = newFolder('/test/root');
File optionsFile = newAnalysisOptionsYamlFile('/test/root');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1391,7 +1395,7 @@ analyzer:
void test_locateRoots_single_dir_directOptions_inheritedPackages() {
Folder rootFolder = newFolder('/test/root');
File optionsFile = newAnalysisOptionsYamlFile('/test/root');
File packagesFile = newDotPackagesFile('/test');
File packagesFile = newPackageConfigJsonFile('/test');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1407,7 +1411,7 @@ analyzer:
void test_locateRoots_single_dir_inheritedOptions_directPackages() {
Folder rootFolder = newFolder('/test/root');
File optionsFile = newAnalysisOptionsYamlFile('/test');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1423,7 +1427,7 @@ analyzer:
void test_locateRoots_single_dir_inheritedOptions_inheritedPackages() {
Folder rootFolder = newFolder('/test/root');
File optionsFile = newAnalysisOptionsYamlFile('/test');
File packagesFile = newDotPackagesFile('/test');
File packagesFile = newPackageConfigJsonFile('/test');
List<ContextRoot> roots =
contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1439,7 +1443,7 @@ analyzer:
void test_locateRoots_single_dir_prefer_packageConfigJson() {
var rootFolder = newFolder('/test');
var optionsFile = newAnalysisOptionsYamlFile('/test');
newDotPackagesFile('/test'); // the file is not used
newPackageConfigJsonFile('/test'); // the file is not used
var packageConfigJsonFile = newPackageConfigJsonFile('/test');
var roots = contextLocator.locateRoots(includedPaths: [rootFolder.path]);
@@ -1454,7 +1458,7 @@ analyzer:
void test_locateRoots_single_file_inheritedOptions_directPackages() {
File optionsFile = newAnalysisOptionsYamlFile('/test');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
File testFile = newFile('/test/root/test.dart');
List<ContextRoot> roots =
@@ -1470,7 +1474,7 @@ analyzer:
void test_locateRoots_single_file_notExisting() {
File optionsFile = newAnalysisOptionsYamlFile('/test');
File packagesFile = newDotPackagesFile('/test/root');
File packagesFile = newPackageConfigJsonFile('/test/root');
File testFile = getFile('/test/root/test.dart');
List<ContextRoot> roots =
@@ -14,6 +14,8 @@ import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../dart/resolution/context_collection_resolution.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AvailableDeclarationsTest);
@@ -38,43 +40,20 @@ class AbstractContextTest with ResourceProviderMixin {
Folder get sdkRoot => newFolder('/sdk');
void addDotPackagesDependency(String path, String name, String rootPath) {
var packagesFile = getFile(path);
String packagesContent;
try {
packagesContent = packagesFile.readAsStringSync();
} catch (_) {
packagesContent = '';
}
// Ignore if there is already the same package dependency.
if (packagesContent.contains('$name:file://')) {
return;
}
rootPath = convertPath(rootPath);
packagesContent += '$name:${toUri('$rootPath/lib')}\n';
packagesFile.writeAsStringSync(packagesContent);
createAnalysisContexts();
}
void addTestPackageDependency(String name, String rootPath) {
addDotPackagesDependency('/home/test/.packages', name, rootPath);
}
/// Create all analysis contexts in `/home`.
void createAnalysisContexts() {
createAnalysisContexts0('/home', '/home/test');
}
void createAnalysisContexts0(String rootPath, String testPath) {
analysisContextCollection = AnalysisContextCollectionImpl(
includedPaths: [convertPath('/home')],
includedPaths: [convertPath(rootPath)],
resourceProvider: resourceProvider,
sdkPath: sdkRoot.path,
);
var testPath = convertPath('/home/test');
testAnalysisContext = getContext(testPath);
var testPath_ = convertPath(testPath);
testAnalysisContext = getContext(testPath_);
}
/// Create an analysis options file based on the given arguments.
@@ -107,12 +86,36 @@ class AbstractContextTest with ResourceProviderMixin {
);
newFolder('/home/test');
newDotPackagesFile('/home/test', content: '''
test:${toUri('/home/test/lib')}
''');
writeTestPackageConfig(
PackageConfigFileBuilder(),
);
createAnalysisContexts();
}
void writePackageConfig(
String directoryPath,
PackageConfigFileBuilder config,
) {
newPackageConfigJsonFile(
directoryPath,
content: config.toContent(
toUriStr: toUriStr,
),
);
createAnalysisContexts();
}
void writeTestPackageConfig(PackageConfigFileBuilder config) {
config = config.copy();
config.add(
name: 'test',
rootPath: '/home/test',
);
writePackageConfig('/home/test', config);
}
}
@reflectiveTest
@@ -124,14 +127,20 @@ class AvailableDeclarationsTest extends _Base {
dependencies:
aaa: any
''');
addDotPackagesDependency('/home/bbb/.packages', 'aaa', '/home/aaa');
writePackageConfig(
'/home/bbb',
PackageConfigFileBuilder()..add(name: 'aaa', rootPath: '/home/aaa'),
);
newFile('/home/bbb/lib/b.dart', content: 'class B {}');
newPubspecYamlFile('/home/ccc', r'''
dependencies:
aaa: any
''');
addDotPackagesDependency('/home/ccc/.packages', 'aaa', '/home/aaa');
writePackageConfig(
'/home/ccc',
PackageConfigFileBuilder()..add(name: 'aaa', rootPath: '/home/aaa'),
);
newFile('/home/ccc/lib/c.dart', content: 'class C {}');
createAnalysisContexts();
@@ -563,7 +572,9 @@ name: test
dependencies:
aaa: any
''');
addTestPackageDependency('aaa', '/packages/aaa');
writeTestPackageConfig(
PackageConfigFileBuilder()..add(name: 'aaa', rootPath: '/packages/aaa'),
);
var homeContext = analysisContextCollection.contextFor(homePath);
var testContext = analysisContextCollection.contextFor(testPath);
@@ -3031,160 +3042,6 @@ int foo = 0;
@reflectiveTest
class GetLibrariesTest extends _Base {
test_bazel() async {
newFile('/home/aaa/lib/a.dart', content: 'class A {}');
newFile('/home/aaa/lib/src/a2.dart', content: 'class A2 {}');
newFile('/home/bbb/lib/b.dart', content: 'class B {}');
newFile('/home/bbb/lib/src/b2.dart', content: 'class B2 {}');
newFile('/home/material_button/BUILD', content: '');
newFile(
'/home/material_button/lib/button.dart',
content: 'class MaterialButton {}',
);
newFile(
'/home/material_button/test/button_test.dart',
content: 'class MaterialButtonTest {}',
);
newFile('/home/material_button/testing/BUILD', content: '');
newFile(
'/home/material_button/testing/lib/material_button_po.dart',
content: 'class MaterialButtonPO {}',
);
var packagesFilePath = '/home/material_button/.packages';
addDotPackagesDependency(packagesFilePath, 'aaa', '/home/aaa');
addDotPackagesDependency(packagesFilePath, 'bbb', '/home/bbb');
addDotPackagesDependency(
packagesFilePath,
'material_button',
'/home/material_button',
);
addDotPackagesDependency(
packagesFilePath,
'material_button_testing',
'/home/material_button/testing',
);
var analysisContext = analysisContextCollection.contextFor(
convertPath('/home/material_button'),
);
var context = tracker.addContext(analysisContext);
context.setDependencies({
convertPath('/home/material_button'): [convertPath('/home/aaa/lib')],
convertPath('/home/material_button/testing'): [
convertPath('/home/bbb/lib'),
convertPath('/home/material_button/lib'),
],
});
await _doAllTrackerWork();
_assertHasLibrary('package:aaa/a.dart', declarations: [
_ExpectedDeclaration.class_('A', [
_ExpectedDeclaration.constructor(''),
]),
]);
_assertHasNoLibrary('package:aaa/src/a2.dart');
_assertHasLibrary('package:bbb/b.dart', declarations: [
_ExpectedDeclaration.class_('B', [
_ExpectedDeclaration.constructor(''),
]),
]);
_assertHasNoLibrary('package:bbb/src/b2.dart');
_assertHasLibrary('package:material_button/button.dart', declarations: [
_ExpectedDeclaration.class_('MaterialButton', [
_ExpectedDeclaration.constructor(''),
]),
]);
_assertHasLibrary(
toUriStr('/home/material_button/test/button_test.dart'),
declarations: [
_ExpectedDeclaration.class_('MaterialButtonTest', [
_ExpectedDeclaration.constructor(''),
]),
],
);
_assertHasLibrary(
'package:material_button_testing/material_button_po.dart',
declarations: [
_ExpectedDeclaration.class_('MaterialButtonPO', [
_ExpectedDeclaration.constructor(''),
]),
],
);
{
var path = convertPath('/home/material_button/lib/_.dart');
var libraries = context.getLibraries(path);
_assertHasLibraries(
libraries.sdk,
uriList: ['dart:core', 'dart:async'],
);
_assertHasLibraries(
libraries.dependencies,
uriList: ['package:aaa/a.dart'],
only: true,
);
_assertHasLibraries(
libraries.context,
uriList: [
'package:material_button/button.dart',
],
only: true,
);
}
{
var path = convertPath('/home/material_button/test/_.dart');
var libraries = context.getLibraries(path);
_assertHasLibraries(
libraries.sdk,
uriList: ['dart:core', 'dart:async'],
);
_assertHasLibraries(
libraries.dependencies,
uriList: ['package:aaa/a.dart'],
only: true,
);
_assertHasLibraries(
libraries.context,
uriList: [
'package:material_button/button.dart',
toUriStr('/home/material_button/test/button_test.dart'),
],
only: true,
);
}
{
var path = convertPath('/home/material_button/testing/lib/_.dart');
var libraries = context.getLibraries(path);
_assertHasLibraries(
libraries.sdk,
uriList: ['dart:core', 'dart:async'],
);
_assertHasLibraries(
libraries.dependencies,
uriList: [
'package:bbb/b.dart',
'package:material_button/button.dart',
],
only: true,
);
_assertHasLibraries(
libraries.context,
uriList: [
'package:material_button_testing/material_button_po.dart',
],
only: true,
);
}
}
test_excludeSelf() async {
var a = convertPath('/home/test/lib/a.dart');
var b = convertPath('/home/test/lib/b.dart');
@@ -3272,10 +3129,13 @@ dependencies:
''');
newFile('/home/test/samples/basic/lib/s.dart', content: 'class S {}');
addTestPackageDependency('aaa', '/home/aaa');
addTestPackageDependency('bbb', '/home/bbb');
addTestPackageDependency('ccc', '/home/ccc');
addTestPackageDependency('basic', '/home/test/samples/basic');
writeTestPackageConfig(
PackageConfigFileBuilder()
..add(name: 'aaa', rootPath: '/home/aaa')
..add(name: 'bbb', rootPath: '/home/bbb')
..add(name: 'ccc', rootPath: '/home/ccc')
..add(name: 'basic', rootPath: '/home/test/samples/basic'),
);
var context = tracker.addContext(testAnalysisContext);
await _doAllTrackerWork();
@@ -3449,8 +3309,11 @@ class A3 {}
class B {}
''');
addTestPackageDependency('aaa', '/home/aaa');
addTestPackageDependency('bbb', '/home/bbb');
writeTestPackageConfig(
PackageConfigFileBuilder()
..add(name: 'aaa', rootPath: '/home/aaa')
..add(name: 'bbb', rootPath: '/home/bbb'),
);
newFile('/home/test/lib/t.dart', content: 'class T {}');
newFile('/home/test/lib/src/t2.dart', content: 'class T2 {}');
@@ -3554,8 +3417,11 @@ class A {}
class B {}
''');
addTestPackageDependency('aaa', '/home/aaa');
addTestPackageDependency('bbb', '/home/bbb');
writeTestPackageConfig(
PackageConfigFileBuilder()
..add(name: 'aaa', rootPath: '/home/aaa')
..add(name: 'bbb', rootPath: '/home/bbb'),
);
newFile('/home/test/lib/test.dart', content: r'''
class C {}