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

Unified Diff: pkg/analysis_server/test/services/search/search_engine2_test.dart

Issue 2566393003: Implement SearchEngine.searchMemberDeclarations() for the new driver. (Closed)
Patch Set: Created 4 years 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/services/search/search_engine2_test.dart
diff --git a/pkg/analysis_server/test/services/search/search_engine2_test.dart b/pkg/analysis_server/test/services/search/search_engine2_test.dart
index eed803e27a3a8cdd7f786a1bf52281ae3b7ba43b..5d8ac40d5289f21429303dbbc9feebc245a3320c 100644
--- a/pkg/analysis_server/test/services/search/search_engine2_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine2_test.dart
@@ -105,6 +105,55 @@ class C extends B {}
expect(subtypes, contains(predicate((ClassElement e) => e.name == 'C')));
}
+ test_searchMemberDeclarations() async {
+ var a = _p('/test/a.dart');
+ var b = _p('/test/b.dart');
+
+ var codeA = '''
+class A {
+ int test; // 1
+ int testTwo;
+}
+''';
+ var codeB = '''
+class B {
+ void test() {} // 2
+ void testTwo() {}
+}
+int test;
+''';
+
+ provider.newFile(a, codeA);
+ provider.newFile(b, codeB);
+
+ var driver1 = _newDriver();
+ var driver2 = _newDriver();
+
+ driver1.addFile(a);
+ driver2.addFile(b);
+
+ while (scheduler.isAnalyzing) {
+ await new Future.delayed(new Duration(milliseconds: 1));
+ }
+
+ var searchEngine = new SearchEngineImpl2([driver1, driver2]);
+ List<SearchMatch> matches =
+ await searchEngine.searchMemberDeclarations('test');
+ expect(matches, hasLength(2));
+
+ void assertHasElement(String name, int nameOffset) {
+ expect(
+ matches,
+ contains(predicate((SearchMatch m) =>
+ m.kind == MatchKind.DECLARATION &&
+ m.element.name == name &&
+ m.element.nameOffset == nameOffset)));
+ }
+
+ assertHasElement('test', codeA.indexOf('test; // 1'));
+ assertHasElement('test', codeB.indexOf('test() {} // 2'));
+ }
+
test_searchReferences() async {
var a = _p('/test/a.dart');
var b = _p('/test/b.dart');

Powered by Google App Engine
This is Rietveld 408576698