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

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

Issue 2617833003: Run Quick Fixes tests with the new analysis driver. (Closed)
Patch Set: Created 3 years, 11 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 | « no previous file | 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 3d5ebd532f30065f45a5bd9234689923bcd6f814..0739abe7dad6791dba2ee678952d8163caf185bf 100644
--- a/pkg/analysis_server/test/services/correction/fix_test.dart
+++ b/pkg/analysis_server/test/services/correction/fix_test.dart
@@ -7,15 +7,18 @@ library test.services.correction.fix;
import 'dart:async';
import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
+import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
import 'package:analysis_server/plugin/protocol/protocol.dart'
hide AnalysisError;
import 'package:analysis_server/src/services/correction/fix.dart';
import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/standard_resolution_map.dart';
import 'package:analyzer/error/error.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:test/test.dart';
@@ -27,6 +30,7 @@ import '../../abstract_single_unit.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(FixProcessorTest);
+ defineReflectiveTests(FixProcessorTest_Driver);
defineReflectiveTests(LintFixTest);
});
}
@@ -72,7 +76,7 @@ bool test() {
}
assertHasFix(FixKind kind, String expected) async {
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(kind, error);
change = fix.change;
// apply to "file"
@@ -84,7 +88,7 @@ bool test() {
}
assertNoFix(FixKind kind) async {
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
List<Fix> fixes = await _computeFixes(error);
for (Fix fix in fixes) {
if (fix.kind == kind) {
@@ -144,9 +148,19 @@ bool test() {
* Computes fixes for the given [error] in [testUnit].
*/
Future<List<Fix>> _computeFixes(AnalysisError error) async {
- FixContextImpl fixContext = new FixContextImpl(provider, context, error);
- DefaultFixContributor contributor = new DefaultFixContributor();
- return contributor.computeFixes(fixContext);
+ if (enableNewAnalysisDriver) {
+ DartFixContext fixContext = new _DartFixContextImpl(
+ provider,
+ driver.getTopLevelNameDeclarations,
+ resolutionMap.elementDeclaredByCompilationUnit(testUnit).context,
+ testUnit,
+ error);
+ return await new DefaultFixContributor().internalComputeFixes(fixContext);
+ } else {
+ FixContextImpl fixContext = new FixContextImpl(provider, context, error);
+ DefaultFixContributor contributor = new DefaultFixContributor();
+ return contributor.computeFixes(fixContext);
+ }
}
/**
@@ -172,8 +186,13 @@ bool test() {
.join('\n'));
}
- AnalysisError _findErrorToFix() {
- List<AnalysisError> errors = context.computeErrors(testSource);
+ Future<AnalysisError> _findErrorToFix() async {
+ List<AnalysisError> errors;
+ if (enableNewAnalysisDriver) {
+ errors = (await driver.getResult(testFile)).errors;
+ } else {
+ errors = context.computeErrors(testSource);
+ }
if (errorFilter != null) {
errors = errors.where(errorFilter).toList();
}
@@ -414,7 +433,7 @@ library my.lib;
part 'part.dart';
''');
_performAnalysis();
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.ADD_PART_OF, error);
change = fix.change;
// apply to "file"
@@ -889,7 +908,7 @@ main() {
lib.Test t = null;
}
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_CLASS, error);
change = fix.change;
// apply to "lib.dart"
@@ -1772,7 +1791,7 @@ class A {
await resolveTestUnit('''
import 'my_file.dart';
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_FILE, error);
change = fix.change;
// validate change
@@ -1809,7 +1828,7 @@ import 'my_file.txt';
await resolveTestUnit('''
import 'a/bb/c_cc/my_lib.dart';
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_FILE, error);
change = fix.change;
// validate change
@@ -1829,7 +1848,7 @@ import 'a/bb/c_cc/my_lib.dart';
await resolveTestUnit('''
import 'a/bb/my_lib.dart';
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_FILE, error);
change = fix.change;
// validate change
@@ -1849,7 +1868,7 @@ import 'a/bb/my_lib.dart';
library my.lib;
part 'my_part.dart';
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_FILE, error);
change = fix.change;
// validate change
@@ -1883,7 +1902,7 @@ part 'my_part.dart';
[AbstractContextTest.SDK_RESOLVER, pkgResolver, resourceResolver]);
// prepare fix
testUnit = await resolveLibraryUnit(testSource);
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_FILE, error);
change = fix.change;
// validate change
@@ -5097,7 +5116,7 @@ main(aaa.D d, aaa.E e) {
d.foo(e);
}
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_METHOD, error);
change = fix.change;
// apply to "test2.dart"
@@ -5132,7 +5151,7 @@ main(test2.D d, test2.E e) {
d.foo(e);
}
''');
- AnalysisError error = _findErrorToFix();
+ AnalysisError error = await _findErrorToFix();
fix = await _assertHasFix(DartFixKind.CREATE_METHOD, error);
change = fix.change;
// apply to "test2.dart"
@@ -5353,6 +5372,168 @@ main() {
}
@reflectiveTest
+class FixProcessorTest_Driver extends FixProcessorTest {
+ @override
+ bool get enableNewAnalysisDriver => true;
+
+ @failingTest
+ @override
+ test_addFieldFormalParameters_hasRequiredParameter() {
+ return test_addFieldFormalParameters_hasRequiredParameter();
+ }
+
+ @failingTest
+ @override
+ test_addFieldFormalParameters_noParameters() {
+ return test_addFieldFormalParameters_noParameters();
+ }
+
+ @failingTest
+ @override
+ test_addFieldFormalParameters_noRequiredParameter() {
+ return test_addFieldFormalParameters_noRequiredParameter();
+ }
+
+ @failingTest
+ @override
+ test_addPartOfDirective() {
+ return test_addPartOfDirective();
+ }
+
+ @failingTest
+ @override
+ test_addSync_blockFunctionBody() {
+ return test_addSync_blockFunctionBody();
+ }
+
+ @failingTest
+ @override
+ test_createFile_forPart_inPackageLib() {
+ return test_createFile_forPart_inPackageLib();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryPackage_preferDirectOverExport() {
+ return test_importLibraryPackage_preferDirectOverExport();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryPackage_preferDirectOverExport_src() {
+ return test_importLibraryPackage_preferDirectOverExport_src();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryPackage_preferPublicOverPrivate() {
+ return test_importLibraryPackage_preferPublicOverPrivate();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withClass_annotation() {
+ return test_importLibraryProject_withClass_annotation();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withClass_constInstanceCreation() {
+ return test_importLibraryProject_withClass_constInstanceCreation();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withClass_hasOtherLibraryWithPrefix() {
+ return test_importLibraryProject_withClass_hasOtherLibraryWithPrefix();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withClass_inParentFolder() {
+ return test_importLibraryProject_withClass_inParentFolder();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withClass_inRelativeFolder() {
+ return test_importLibraryProject_withClass_inRelativeFolder();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withClass_inSameFolder() {
+ return test_importLibraryProject_withClass_inSameFolder();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withFunction() {
+ return test_importLibraryProject_withFunction();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withFunction_unresolvedMethod() {
+ return test_importLibraryProject_withFunction_unresolvedMethod();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withFunctionTypeAlias() {
+ return test_importLibraryProject_withFunctionTypeAlias();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryProject_withTopLevelVariable() {
+ return test_importLibraryProject_withTopLevelVariable();
+ }
+
+ @failingTest
+ @override
+ test_importLibrarySdk_withClass_itemOfList() {
+ return test_importLibrarySdk_withClass_itemOfList();
+ }
+
+ @failingTest
+ @override
+ test_importLibrarySdk_withTopLevelVariable() {
+ return test_importLibrarySdk_withTopLevelVariable();
+ }
+
+ @failingTest
+ @override
+ test_importLibrarySdk_withTopLevelVariable_annotation() {
+ return test_importLibrarySdk_withTopLevelVariable_annotation();
+ }
+
+ @failingTest
+ @override
+ test_importLibraryShow_project() {
+ return test_importLibraryShow_project();
+ }
+
+ @failingTest
+ @override
+ test_noException_1() {
+ return test_noException_1();
+ }
+
+ @failingTest
+ @override
+ test_replaceImportUri_inProject() {
+ return test_replaceImportUri_inProject();
+ }
+
+ @failingTest
+ @override
+ test_replaceImportUri_package() {
+ return test_replaceImportUri_package();
+ }
+}
+
+@reflectiveTest
class LintFixTest extends BaseFixProcessorTest {
AnalysisError error;
@@ -5579,3 +5760,23 @@ main() {
expect(resultCode, expectedResult);
}
}
+
+class _DartFixContextImpl implements DartFixContext {
+ @override
+ final ResourceProvider resourceProvider;
+
+ @override
+ final GetTopLevelDeclarations getTopLevelDeclarations;
+
+ @override
+ final AnalysisContext analysisContext;
+
+ @override
+ final CompilationUnit unit;
+
+ @override
+ final AnalysisError error;
+
+ _DartFixContextImpl(this.resourceProvider, this.getTopLevelDeclarations,
+ this.analysisContext, this.unit, this.error);
+}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698