| 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 6c414641ad23e70cca3c70d701048969199727ca..7ed9aea68bd005c64de354bad37c9a0ae5a0b7e3 100644
|
| --- a/pkg/analysis_server/test/services/correction/fix_test.dart
|
| +++ b/pkg/analysis_server/test/services/correction/fix_test.dart
|
| @@ -27,6 +27,7 @@ import 'package:test/test.dart';
|
| import 'package:test_reflective_loader/test_reflective_loader.dart';
|
|
|
| import '../../abstract_single_unit.dart';
|
| +import 'flutter_util.dart';
|
|
|
| main() {
|
| defineReflectiveSuite(() {
|
| @@ -53,6 +54,8 @@ class BaseFixProcessorTest extends AbstractSingleUnitTest {
|
|
|
| String myPkgLibPath = '/packages/my_pkg/lib';
|
|
|
| + String flutterPkgLibPath = '/packages/flutter/lib';
|
| +
|
| Fix fix;
|
| SourceChange change;
|
| String resultCode;
|
| @@ -5387,6 +5390,135 @@ class A {
|
| ''');
|
| }
|
|
|
| + test_undefinedParameter_convertFlutterChild_invalidList() async {
|
| + _configureFlutterPkg({
|
| + 'src/widgets/framework.dart': flutter_framework_code,
|
| + });
|
| + await resolveTestUnit('''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Container(
|
| + child: new Row(
|
| + child: <Widget>[
|
| + new Transform(),
|
| + null,
|
| + new AspectRatio(),
|
| + ],
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + await assertNoFix(DartFixKind.CONVERT_FLUTTER_CHILD);
|
| + }
|
| +
|
| + test_undefinedParameter_convertFlutterChild_OK_hasList() async {
|
| + _configureFlutterPkg({
|
| + 'src/widgets/framework.dart': flutter_framework_code,
|
| + });
|
| + await resolveTestUnit('''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Container(
|
| + child: new Row(
|
| + child: [
|
| + new Transform(),
|
| + new ClipRect.rect(),
|
| + new AspectRatio(),
|
| + ],
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + await assertHasFix(
|
| + DartFixKind.CONVERT_FLUTTER_CHILD,
|
| + '''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Container(
|
| + child: new Row(
|
| + children: <Widget>[
|
| + new Transform(),
|
| + new ClipRect.rect(),
|
| + new AspectRatio(),
|
| + ],
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_undefinedParameter_convertFlutterChild_OK_hasTypedList() async {
|
| + _configureFlutterPkg({
|
| + 'src/widgets/framework.dart': flutter_framework_code,
|
| + });
|
| + await resolveTestUnit('''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Container(
|
| + child: new Row(
|
| + child: <Widget>[
|
| + new Transform(),
|
| + new ClipRect.rect(),
|
| + new AspectRatio(),
|
| + ],
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + await assertHasFix(
|
| + DartFixKind.CONVERT_FLUTTER_CHILD,
|
| + '''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Container(
|
| + child: new Row(
|
| + children: <Widget>[
|
| + new Transform(),
|
| + new ClipRect.rect(),
|
| + new AspectRatio(),
|
| + ],
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_undefinedParameter_convertFlutterChild_OK_multiLine() async {
|
| + _configureFlutterPkg({
|
| + 'src/widgets/framework.dart': flutter_framework_code,
|
| + });
|
| + await resolveTestUnit('''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Scaffold(
|
| + body: new Row(
|
| + child: new Container(
|
| + width: 200.0,
|
| + height: 300.0,
|
| + ),
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + await assertHasFix(
|
| + DartFixKind.CONVERT_FLUTTER_CHILD,
|
| + '''
|
| +import 'package:flutter/src/widgets/framework.dart';
|
| +build() {
|
| + return new Scaffold(
|
| + body: new Row(
|
| + children: <Widget>[
|
| + new Container(
|
| + width: 200.0,
|
| + height: 300.0,
|
| + ),
|
| + ],
|
| + ),
|
| + );
|
| +}
|
| +''');
|
| + }
|
| +
|
| test_undefinedSetter_useSimilar_hint() async {
|
| await resolveTestUnit('''
|
| class A {
|
| @@ -5524,6 +5656,34 @@ class Required {
|
| }
|
| ''');
|
| }
|
| +
|
| + /**
|
| + * Configures the [SourceFactory] to have the `flutter` package in
|
| + * `/packages/flutter/lib` folder.
|
| + */
|
| + void _configureFlutterPkg(Map<String, String> pathToCode) {
|
| + pathToCode.forEach((path, code) {
|
| + provider.newFile('$flutterPkgLibPath/$path', code);
|
| + });
|
| + // configure SourceFactory
|
| + Folder myPkgFolder = provider.getResource(flutterPkgLibPath);
|
| + UriResolver pkgResolver = new PackageMapUriResolver(provider, {
|
| + 'flutter': [myPkgFolder]
|
| + });
|
| + SourceFactory sourceFactory = new SourceFactory(
|
| + [new DartUriResolver(sdk), pkgResolver, resourceResolver]);
|
| + if (enableNewAnalysisDriver) {
|
| + driver.configure(sourceFactory: sourceFactory);
|
| + } else {
|
| + context.sourceFactory = sourceFactory;
|
| + }
|
| + // force 'flutter' resolution
|
| + addSource(
|
| + '/tmp/other.dart',
|
| + pathToCode.keys
|
| + .map((path) => "import 'package:flutter/$path';")
|
| + .join('\n'));
|
| + }
|
| }
|
|
|
| @reflectiveTest
|
|
|