Fix LSP refactor test on Windows
Removes the recently-added base class to tests (which brought more with it than we needed - and caused issues on Windows) and adds in the flutter/meta packages using helpers (inc extracting the meta package to a new helper).
Re-enable skipped LSP refactor test
Change-Id: I62f8b3e300a776cae4fbd6d15deafb5b8970eef0
Change-Id: I165b9acf75a3ec9a91feb1730be2949eb4d5e5cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106741
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <dantup@google.com>
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index 0b356a6..9b67afb8 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -21,6 +21,7 @@
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
import 'src/utilities/flutter_util.dart';
+import 'src/utilities/meta_util.dart';
/**
* Finds an [Element] with the given [name].
@@ -68,111 +69,8 @@
}
void addMetaPackage() {
- addPackageFile('meta', 'meta.dart', r'''
-library meta;
-
-const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
-
-@deprecated
-const _Checked checked = const _Checked();
-
-const _Experimental experimental = const _Experimental();
-
-const _Factory factory = const _Factory();
-
-const Immutable immutable = const Immutable();
-
-const _IsTest isTest = const _IsTest();
-
-const _IsTestGroup isTestGroup = const _IsTestGroup();
-
-const _Literal literal = const _Literal();
-
-const _MustCallSuper mustCallSuper = const _MustCallSuper();
-
-const _OptionalTypeArgs optionalTypeArgs = const _OptionalTypeArgs();
-
-const _Protected protected = const _Protected();
-
-const Required required = const Required();
-
-const _Sealed sealed = const _Sealed();
-
-@deprecated
-const _Virtual virtual = const _Virtual();
-
-const _VisibleForOverriding visibleForOverriding =
- const _VisibleForOverriding();
-
-const _VisibleForTesting visibleForTesting = const _VisibleForTesting();
-
-class Immutable {
- final String reason;
- const Immutable([this.reason]);
-}
-
-class Required {
- final String reason;
- const Required([this.reason]);
-}
-
-class _AlwaysThrows {
- const _AlwaysThrows();
-}
-
-class _Checked {
- const _Checked();
-}
-
-class _Experimental {
- const _Experimental();
-}
-
-class _Factory {
- const _Factory();
-}
-
-class _IsTest {
- const _IsTest();
-}
-
-class _IsTestGroup {
- const _IsTestGroup();
-}
-
-class _Literal {
- const _Literal();
-}
-
-class _MustCallSuper {
- const _MustCallSuper();
-}
-
-class _OptionalTypeArgs {
- const _OptionalTypeArgs();
-}
-
-class _Protected {
- const _Protected();
-}
-
-class _Sealed {
- const _Sealed();
-}
-
-@deprecated
-class _Virtual {
- const _Virtual();
-}
-
-class _VisibleForOverriding {
- const _VisibleForOverriding();
-}
-
-class _VisibleForTesting {
- const _VisibleForTesting();
-}
-''');
+ Folder libFolder = configureMetaPackage(resourceProvider);
+ addTestPackageDependency('meta', libFolder.parent.path);
}
/// Add a new file with the given [pathInLib] to the package with the
diff --git a/pkg/analysis_server/test/lsp/code_actions_refactor_test.dart b/pkg/analysis_server/test/lsp/code_actions_refactor_test.dart
index e1a52a7..d232188 100644
--- a/pkg/analysis_server/test/lsp/code_actions_refactor_test.dart
+++ b/pkg/analysis_server/test/lsp/code_actions_refactor_test.dart
@@ -6,13 +6,14 @@
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
+import '../src/utilities/flutter_util.dart' as flutter;
+import '../src/utilities/meta_util.dart' as meta;
import 'code_actions_abstract.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ExtractMethodRefactorCodeActionsTest);
- // TODO(dantup): Restore this once the tests are fixed for Windows.
- //defineReflectiveTests(ExtractWidgetRefactorCodeActionsTest);
+ defineReflectiveTests(ExtractWidgetRefactorCodeActionsTest);
});
}
@@ -68,8 +69,21 @@
@reflectiveTest
class ExtractWidgetRefactorCodeActionsTest extends AbstractCodeActionsTest {
final extractWidgetTitle = 'Extract Widget';
+
+ @override
+ void setUp() {
+ super.setUp();
+
+ final flutterLibFolder = flutter.configureFlutterPackage(resourceProvider);
+ final metaLibFolder = meta.configureMetaPackage(resourceProvider);
+ // Create .packages in the project.
+ newFile(join(projectFolderPath, '.packages'), content: '''
+flutter:${flutterLibFolder.toUri()}
+meta:${metaLibFolder.toUri()}
+''');
+ }
+
test_appliesCorrectEdits() async {
- addFlutterPackage();
const content = '''
import 'package:flutter/material.dart';
diff --git a/pkg/analysis_server/test/lsp/server_abstract.dart b/pkg/analysis_server/test/lsp/server_abstract.dart
index 2eda180..d252fd2 100644
--- a/pkg/analysis_server/test/lsp/server_abstract.dart
+++ b/pkg/analysis_server/test/lsp/server_abstract.dart
@@ -21,7 +21,6 @@
import 'package:path/path.dart' as path;
import 'package:test/test.dart';
-import '../abstract_context.dart';
import '../mocks.dart';
const dartLanguageId = 'dart';
@@ -844,7 +843,7 @@
contents.replaceAll(rangeMarkerStart, '').replaceAll(rangeMarkerEnd, '');
}
-abstract class AbstractLspAnalysisServerTest extends AbstractContextTest
+abstract class AbstractLspAnalysisServerTest
with
ResourceProviderMixin,
ClientCapabilitiesHelperMixin,
diff --git a/pkg/analysis_server/test/src/utilities/meta_util.dart b/pkg/analysis_server/test/src/utilities/meta_util.dart
new file mode 100644
index 0000000..2fc9cff
--- /dev/null
+++ b/pkg/analysis_server/test/src/utilities/meta_util.dart
@@ -0,0 +1,128 @@
+// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer/file_system/memory_file_system.dart';
+
+const String metaPkgLibPath = '/packages/meta/lib';
+
+/**
+ * Add a meta library and types to the given [provider] and return
+ * the `lib` folder.
+ */
+Folder configureMetaPackage(MemoryResourceProvider provider) {
+ File newFile(String path, String content) =>
+ provider.newFile(provider.convertPath(path), content ?? '');
+
+ Folder newFolder(String path) =>
+ provider.newFolder(provider.convertPath(path));
+
+ newFile('$metaPkgLibPath/meta.dart', r'''
+library meta;
+
+const _AlwaysThrows alwaysThrows = const _AlwaysThrows();
+
+@deprecated
+const _Checked checked = const _Checked();
+
+const _Experimental experimental = const _Experimental();
+
+const _Factory factory = const _Factory();
+
+const Immutable immutable = const Immutable();
+
+const _IsTest isTest = const _IsTest();
+
+const _IsTestGroup isTestGroup = const _IsTestGroup();
+
+const _Literal literal = const _Literal();
+
+const _MustCallSuper mustCallSuper = const _MustCallSuper();
+
+const _OptionalTypeArgs optionalTypeArgs = const _OptionalTypeArgs();
+
+const _Protected protected = const _Protected();
+
+const Required required = const Required();
+
+const _Sealed sealed = const _Sealed();
+
+@deprecated
+const _Virtual virtual = const _Virtual();
+
+const _VisibleForOverriding visibleForOverriding =
+ const _VisibleForOverriding();
+
+const _VisibleForTesting visibleForTesting = const _VisibleForTesting();
+
+class Immutable {
+ final String reason;
+ const Immutable([this.reason]);
+}
+
+class Required {
+ final String reason;
+ const Required([this.reason]);
+}
+
+class _AlwaysThrows {
+ const _AlwaysThrows();
+}
+
+class _Checked {
+ const _Checked();
+}
+
+class _Experimental {
+ const _Experimental();
+}
+
+class _Factory {
+ const _Factory();
+}
+
+class _IsTest {
+ const _IsTest();
+}
+
+class _IsTestGroup {
+ const _IsTestGroup();
+}
+
+class _Literal {
+ const _Literal();
+}
+
+class _MustCallSuper {
+ const _MustCallSuper();
+}
+
+class _OptionalTypeArgs {
+ const _OptionalTypeArgs();
+}
+
+class _Protected {
+ const _Protected();
+}
+
+class _Sealed {
+ const _Sealed();
+}
+
+@deprecated
+class _Virtual {
+ const _Virtual();
+}
+
+class _VisibleForOverriding {
+ const _VisibleForOverriding();
+}
+
+class _VisibleForTesting {
+ const _VisibleForTesting();
+}
+''');
+
+ return newFolder(metaPkgLibPath);
+}