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

Unified Diff: pkg/analysis_server/test/domain_completion_test.dart

Issue 1353913002: Add defaultCompletionSorter allowing sorting to be overridden - fixes #24339 (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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
Index: pkg/analysis_server/test/domain_completion_test.dart
diff --git a/pkg/analysis_server/test/domain_completion_test.dart b/pkg/analysis_server/test/domain_completion_test.dart
index 3c3306e844c5594c8bf6a4f3773c64df6d9b4511..577363621551f3517254a65c74ce0b9fccfa285a 100644
--- a/pkg/analysis_server/test/domain_completion_test.dart
+++ b/pkg/analysis_server/test/domain_completion_test.dart
@@ -17,6 +17,7 @@ import 'package:analysis_server/src/domain_completion.dart';
import 'package:analysis_server/src/plugin/server_plugin.dart';
import 'package:analysis_server/src/protocol.dart';
import 'package:analysis_server/src/services/completion/completion_manager.dart';
+import 'package:analysis_server/src/services/completion/contribution_sorter.dart';
import 'package:analysis_server/src/services/completion/dart_completion_manager.dart';
import 'package:analysis_server/src/services/index/index.dart' show Index;
import 'package:analysis_server/src/services/index/local_memory_index.dart';
@@ -470,6 +471,29 @@ class CompletionTest extends AbstractAnalysisTest {
});
}
+ test_invocation_sdk_relevancy_off() {
+ var originalSorter = DartCompletionManager.defaultContributionSorter;
+ var mockSorter = new MockRelevancySorter();
+ DartCompletionManager.defaultContributionSorter = mockSorter;
+ addTestFile('main() {Map m; m.^}');
+ return getSuggestions().then((_) {
+ // Assert that the CommonUsageComputer has been replaced
+ expect(suggestions.any((s) => s.relevance == DART_RELEVANCE_COMMON_USAGE),
+ isFalse);
+ DartCompletionManager.defaultContributionSorter = originalSorter;
+ expect(mockSorter.count, 2);
+ });
+ }
+
+ test_invocation_sdk_relevancy_on() {
+ addTestFile('main() {Map m; m.^}');
+ return getSuggestions().then((_) {
+ // Assert that the CommonUsageComputer is working
+ expect(suggestions.any((s) => s.relevance == DART_RELEVANCE_COMMON_USAGE),
+ isTrue);
+ });
+ }
+
test_invocation_withTrailingStmt() {
addTestFile('class A {b() {}} main() {A a; a.^ int x = 7;}');
return getSuggestions().then((_) {
@@ -690,6 +714,17 @@ class MockContext implements AnalysisContext {
noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
}
+class MockRelevancySorter implements ContributionSorter {
+ int count = 0;
+
+ @override
+ void sort(DartCompletionRequest request) {
+ if (++count > 2) {
+ throw 'unexpected sort';
+ }
+ }
+}
+
/**
* Mock stream for tracking calls to listen and subscription.cancel.
*/
« no previous file with comments | « pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart ('k') | pkg/analysis_server/test/mock_sdk.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698