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

Unified Diff: pkg/analyzer/test/src/dart/analysis/search_test.dart

Issue 2653493006: Issue 28386. Implement search for potential usages with the new analysis driver. (Closed)
Patch Set: Created 3 years, 11 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/analyzer/test/src/dart/analysis/search_test.dart
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index 29faa9f1d841f31da6f617cc4675d8a653274066..74616121ba88b2905d06adc9d9056676f199cd10 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -99,6 +99,74 @@ import 'not-dart.txt';
expect(await driver.search.classMembers(regExp), isEmpty);
}
+ test_searchMemberReferences_qualified_resolved() async {
+ await _resolveTestUnit('''
+class C {
+ var test;
+}
+main(C c) {
+ print(c.test);
+ c.test = 1;
+ c.test += 2;
+ c.test();
+}
+''');
+ await _verifyNameReferences('test', []);
+ }
+
+ test_searchMemberReferences_qualified_unresolved() async {
+ await _resolveTestUnit('''
+main(p) {
+ print(p.test);
+ p.test = 1;
+ p.test += 2;
+ p.test();
+}
+''');
+ Element main = _findElement('main');
+ await _verifyNameReferences('test', <ExpectedResult>[
+ _expectIdQU(main, SearchResultKind.READ, 'test);'),
+ _expectIdQU(main, SearchResultKind.WRITE, 'test = 1;'),
+ _expectIdQU(main, SearchResultKind.READ_WRITE, 'test += 2;'),
+ _expectIdQU(main, SearchResultKind.INVOCATION, 'test();'),
+ ]);
+ }
+
+ test_searchMemberReferences_unqualified_resolved() async {
+ await _resolveTestUnit('''
+class C {
+ var test;
+ main() {
+ print(test);
+ test = 1;
+ test += 2;
+ test();
+ }
+}
+''');
+ await _verifyNameReferences('test', []);
+ }
+
+ test_searchMemberReferences_unqualified_unresolved() async {
+ await _resolveTestUnit('''
+class C {
+ main() {
+ print(test);
+ test = 1;
+ test += 2;
+ test();
+ }
+}
+''');
+ Element main = _findElement('main');
+ await _verifyNameReferences('test', <ExpectedResult>[
+ _expectIdU(main, SearchResultKind.READ, 'test);'),
+ _expectIdU(main, SearchResultKind.WRITE, 'test = 1;'),
+ _expectIdU(main, SearchResultKind.READ_WRITE, 'test += 2;'),
+ _expectIdU(main, SearchResultKind.INVOCATION, 'test();'),
+ ]);
+ }
+
test_searchReferences_ClassElement_definedInside() async {
await _resolveTestUnit('''
class A {};
@@ -1013,6 +1081,26 @@ class NoMatchABCDE {}
return _expectId(element, kind, search, isQualified: true, length: length);
}
+ /**
+ * Create [ExpectedResult] for a qualified and unresolved match.
+ */
+ ExpectedResult _expectIdQU(
+ Element element, SearchResultKind kind, String search,
+ {int length}) {
+ return _expectId(element, kind, search,
+ isQualified: true, isResolved: false, length: length);
+ }
+
+ /**
+ * Create [ExpectedResult] for a unqualified and unresolved match.
+ */
+ ExpectedResult _expectIdU(
+ Element element, SearchResultKind kind, String search,
+ {int length}) {
+ return _expectId(element, kind, search,
+ isQualified: false, isResolved: false, length: length);
+ }
+
Element _findElement(String name, [ElementKind kind]) {
return findChildElement(testUnit.element, name, kind);
}
@@ -1035,6 +1123,14 @@ class NoMatchABCDE {}
}
}
+ Future<Null> _verifyNameReferences(
+ String name, List<ExpectedResult> expectedMatches) async {
+ List<SearchResult> results =
+ await driver.search.unresolvedMemberReferences(name);
+ _assertResults(results, expectedMatches);
+ expect(results, hasLength(expectedMatches.length));
+ }
+
Future _verifyReferences(
Element element, List<ExpectedResult> expectedMatches) async {
List<SearchResult> results = await driver.search.references(element);

Powered by Google App Engine
This is Rietveld 408576698