Merge pull request #587 from dart-lang/update_completions_tests
update code completion tests to account for the new ranking algorithm
diff --git a/lib/src/analysis_server.dart b/lib/src/analysis_server.dart
index f672b61..7e03974 100644
--- a/lib/src/analysis_server.dart
+++ b/lib/src/analysis_server.dart
@@ -131,10 +131,6 @@
suggestions = suggestions
.where(
(s) => s.completion.toLowerCase().startsWith(prefix.toLowerCase()))
- // This hack filters out of scope completions. It needs removing when we
- // have categories of completions.
- // TODO(devoncarew): Remove this filter code.
- .where((CompletionSuggestion c) => c.relevance > 500)
.toList();
suggestions.sort((CompletionSuggestion x, CompletionSuggestion y) {
diff --git a/test/analysis_server_test.dart b/test/analysis_server_test.dart
index bd0dd7b..ac72d57 100644
--- a/test/analysis_server_test.dart
+++ b/test/analysis_server_test.dart
@@ -5,9 +5,9 @@
library services.analyzer_server_test;
import 'package:dart_services/src/analysis_server.dart';
-import 'package:dart_services/src/protos/dart_services.pb.dart' as proto;
import 'package:dart_services/src/common.dart';
import 'package:dart_services/src/flutter_web.dart';
+import 'package:dart_services/src/protos/dart_services.pb.dart' as proto;
import 'package:dart_services/src/sdk_manager.dart';
import 'package:test/test.dart';
@@ -73,14 +73,13 @@
tearDown(() => analysisServer.shutdown());
- test('simple_completion', () {
+ test('simple_completion', () async {
// Just after i.
- return analysisServer.complete(completionCode, 32).then((results) {
- expect(results.replacementLength, 0);
- expect(results.replacementOffset, 32);
- expect(completionsContains(results, 'abs'), true);
- expect(completionsContains(results, 'codeUnitAt'), false);
- });
+ final results = await analysisServer.complete(completionCode, 32);
+ expect(results.replacementLength, 0);
+ expect(results.replacementOffset, 32);
+ expectCompletionsContains(results, 'abs');
+ expect(completionsContains(results, 'codeUnitAt'), false);
});
test('repro #126 - completions polluted on second request', () {
@@ -97,14 +96,19 @@
});
});
- test('import_test', () {
+ test('import_test', () async {
+ // We're testing here that we don't have any path imports - we don't want
+ // to enable browsing the file system.
final testCode = "import '/'; main() { int a = 0; a. }";
- return analysisServer.complete(testCode, 9).then((results) {
- expect(results.completions.every((completion) {
+ final results = await analysisServer.complete(testCode, 9);
+ final completions = results.completions;
+
+ if (completions.isNotEmpty) {
+ expect(completions.every((completion) {
return completion.completion['completion'].startsWith('dart:');
}), true);
- });
+ }
});
test('import_and_other_test', () {
@@ -211,3 +215,10 @@
bool completionsContains(proto.CompleteResponse response, String expected) =>
response.completions
.any((completion) => completion.completion['completion'] == expected);
+
+void expectCompletionsContains(
+ proto.CompleteResponse response, String expected) {
+ final completions =
+ response.completions.map((c) => c.completion['completion']).toList();
+ expect(completions, contains(expected));
+}