Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(397)

Unified Diff: pkg/analysis_server/test/services/correction/fix_test.dart

Issue 2377803002: Order suggested Quick Fix imports: direct, export, non-API. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/services/correction/fix_internal.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/services/correction/fix_test.dart
diff --git a/pkg/analysis_server/test/services/correction/fix_test.dart b/pkg/analysis_server/test/services/correction/fix_test.dart
index 9bc4a4f4bc8bf7ee168990b0715d659c8711ebdc..c7ed0bb0b0a6a58bd26ca639fc3ef09a6e63fe66 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -152,8 +152,10 @@ bool test() {
* Configures the [SourceFactory] to have the `my_pkg` package in
* `/packages/my_pkg/lib` folder.
*/
- void _configureMyPkg(String myLibCode) {
- provider.newFile('/packages/my_pkg/lib/my_lib.dart', myLibCode);
+ void _configureMyPkg(Map<String, String> pathToCode) {
+ pathToCode.forEach((path, code) {
+ provider.newFile('/packages/my_pkg/lib/$path', code);
+ });
// configure SourceFactory
Folder myPkgFolder = provider.getResource('/packages/my_pkg/lib');
UriResolver pkgResolver = new PackageMapUriResolver(provider, {
@@ -162,7 +164,11 @@ bool test() {
context.sourceFactory = new SourceFactory(
[AbstractContextTest.SDK_RESOLVER, pkgResolver, resourceResolver]);
// force 'my_pkg' resolution
- addSource('/tmp/other.dart', "import 'package:my_pkg/my_lib.dart';");
+ addSource(
+ '/tmp/other.dart',
+ pathToCode.keys
+ .map((path) => "import 'package:my_pkg/$path';")
+ .join('\n'));
}
AnalysisError _findErrorToFix() {
@@ -3082,12 +3088,37 @@ Future main() async {
''');
}
- test_importLibraryPackage_withClass() async {
- _configureMyPkg('''
-library my_lib;
-class Test {}
+ test_importLibraryPackage_preferDirectOverExport() async {
+ _configureMyPkg({'b.dart': 'class Test {}', 'a.dart': "export 'b.dart';"});
+ resolveTestUnit('''
+main() {
+ Test test = null;
+}
+''');
+ performAllAnalysisTasks();
+ await assertHasFix(
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
+ '''
+import 'package:my_pkg/b.dart';
+
+main() {
+ Test test = null;
+}
+''');
+ await assertHasFix(
+ DartFixKind.IMPORT_LIBRARY_PROJECT2,
+ '''
+import 'package:my_pkg/a.dart';
+
+main() {
+ Test test = null;
+}
''');
- // try to find a fix
+ }
+
+ test_importLibraryPackage_preferPublicOverPrivate() async {
+ _configureMyPkg(
+ {'src/a.dart': 'class Test {}', 'b.dart': "export 'src/a.dart';"});
resolveTestUnit('''
main() {
Test test = null;
@@ -3095,9 +3126,18 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT2,
'''
-import 'package:my_pkg/my_lib.dart';
+import 'package:my_pkg/b.dart';
+
+main() {
+ Test test = null;
+}
+''');
+ await assertHasFix(
+ DartFixKind.IMPORT_LIBRARY_PROJECT3,
+ '''
+import 'package:my_pkg/src/a.dart';
main() {
Test test = null;
@@ -3121,7 +3161,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'lib.dart';
@@ -3155,7 +3195,7 @@ main () {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'a.dart';
import 'b.dart' show Two;
@@ -3181,7 +3221,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import '../lib.dart';
@@ -3206,7 +3246,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import '../lib/sub/folder/lib.dart';
@@ -3231,7 +3271,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'lib.dart';
@@ -3255,7 +3295,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'lib.dart';
@@ -3281,7 +3321,7 @@ class A {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'lib.dart';
@@ -3308,7 +3348,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'lib.dart';
@@ -3332,7 +3372,7 @@ main() {
''');
performAllAnalysisTasks();
await assertHasFix(
- DartFixKind.IMPORT_LIBRARY_PROJECT,
+ DartFixKind.IMPORT_LIBRARY_PROJECT1,
'''
import 'lib.dart';
@@ -3538,7 +3578,7 @@ main() {
}
''');
performAllAnalysisTasks();
- await assertNoFix(DartFixKind.IMPORT_LIBRARY_PROJECT);
+ await assertNoFix(DartFixKind.IMPORT_LIBRARY_PROJECT1);
await assertHasFix(
DartFixKind.IMPORT_LIBRARY_SHOW,
'''
@@ -3924,7 +3964,7 @@ import '../foo/bar/lib.dart';
}
test_replaceImportUri_package() async {
- _configureMyPkg('');
+ _configureMyPkg({'my_lib.dart': ''});
resolveTestUnit('''
import 'no/matter/my_lib.dart';
''');
« no previous file with comments | « pkg/analysis_server/lib/src/services/correction/fix_internal.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698