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

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

Issue 1767113002: Support for searching of libraries, import prefixes and import elements. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 564683a87d63da85d0f007f66210af7046a6a5bf..72cf26281a8ec81453f89e2ddd15d0c7f93e8f6b 100644
--- a/pkg/analysis_server/test/services/search/search_engine2_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine2_test.dart
@@ -327,35 +327,52 @@ main() {
await _verifyReferences(element, expected);
}
-// Future test_searchReferences_ImportElement_noPrefix() {
-// _indexTestUnit('''
-//import 'dart:math';
-//main() {
-// print(E);
-//}
-//''');
-// ImportElement element = testLibraryElement.imports[0];
-// Element mainElement = findElement('main');
-// var kind = MatchKind.REFERENCE;
-// var expected = [_expectId(mainElement, kind, 'E);', length: 0)];
-// return _verifyReferences(element, expected);
-// }
-//
-// Future test_searchReferences_ImportElement_withPrefix() {
-// _indexTestUnit('''
-//import 'dart:math' as math;
-//main() {
-// print(math.PI);
-//}
-//''');
-// ImportElement element = testLibraryElement.imports[0];
-// Element mainElement = findElement('main');
-// var kind = MatchKind.REFERENCE;
-// var expected = [
-// _expectId(mainElement, kind, 'math.PI);', length: 'math.'.length)
-// ];
-// return _verifyReferences(element, expected);
-// }
+ test_searchReferences_ImportElement_noPrefix() async {
+ _indexTestUnit('''
+import 'dart:math';
+main() {
+ print(PI);
+ print(new Random());
+ print(max(1, 2));
+}
+Random bar() => null;
+''');
+ ImportElement element = testLibraryElement.imports[0];
+ Element mainElement = findElement('main');
+ Element barElement = findElement('bar');
+ var kind = MatchKind.REFERENCE;
+ var expected = [
+ _expectId(mainElement, kind, 'PI);', length: 0),
+ _expectId(mainElement, kind, 'Random()', length: 0),
+ _expectId(mainElement, kind, 'max(', length: 0),
+ _expectId(barElement, kind, 'Random bar()', length: 0),
+ ];
+ await _verifyReferences(element, expected);
+ }
+
+ test_searchReferences_ImportElement_withPrefix() async {
+ _indexTestUnit('''
+import 'dart:math' as math;
+main() {
+ print(math.PI);
+ print(new math.Random());
+ print(math.max(1, 2));
+}
+math.Random bar() => null;
+''');
+ ImportElement element = testLibraryElement.imports[0];
+ Element mainElement = findElement('main');
+ Element barElement = findElement('bar');
+ var kind = MatchKind.REFERENCE;
+ var length = 'math.'.length;
+ var expected = [
+ _expectId(mainElement, kind, 'math.PI);', length: length),
+ _expectId(mainElement, kind, 'math.Random()', length: length),
+ _expectId(mainElement, kind, 'math.max(', length: length),
+ _expectId(barElement, kind, 'math.Random bar()', length: length),
+ ];
+ await _verifyReferences(element, expected);
+ }
test_searchReferences_LabelElement() async {
_indexTestUnit('''
@@ -378,29 +395,29 @@ label:
await _verifyReferences(element, expected);
}
-// Future test_searchReferences_LibraryElement() {
-// var codeA = 'part of lib; // A';
-// var codeB = 'part of lib; // B';
-// addSource('/unitA.dart', codeA);
-// addSource('/unitB.dart', codeB);
-// _indexTestUnit('''
-//library lib;
-//part 'unitA.dart';
-//part 'unitB.dart';
-//''');
-// LibraryElement element = testLibraryElement;
-// CompilationUnitElement elementA = element.parts[0];
-// CompilationUnitElement elementB = element.parts[1];
-// index.index(context, elementA.computeNode());
-// index.index(context, elementB.computeNode());
-// var expected = [
-// new ExpectedMatch(elementA, MatchKind.REFERENCE,
-// codeA.indexOf('lib; // A'), 'lib'.length),
-// new ExpectedMatch(elementB, MatchKind.REFERENCE,
-// codeB.indexOf('lib; // B'), 'lib'.length),
-// ];
-// return _verifyReferences(element, expected);
-// }
+ test_searchReferences_LibraryElement() async {
+ var codeA = 'part of lib; // A';
+ var codeB = 'part of lib; // B';
+ addSource('/unitA.dart', codeA);
+ addSource('/unitB.dart', codeB);
+ _indexTestUnit('''
+library lib;
+part 'unitA.dart';
+part 'unitB.dart';
+''');
+ LibraryElement element = testLibraryElement;
+ CompilationUnitElement unitElementA = element.parts[0];
+ CompilationUnitElement unitElementB = element.parts[1];
+ index.indexUnit(unitElementA.computeNode());
+ index.indexUnit(unitElementB.computeNode());
+ var expected = [
+ new ExpectedMatch(unitElementA, MatchKind.REFERENCE,
+ codeA.indexOf('lib; // A'), 'lib'.length),
+ new ExpectedMatch(unitElementB, MatchKind.REFERENCE,
+ codeB.indexOf('lib; // B'), 'lib'.length),
+ ];
+ await _verifyReferences(element, expected);
+ }
test_searchReferences_LocalVariableElement() async {
_indexTestUnit('''
@@ -463,7 +480,59 @@ main(A<int> a) {
await _verifyReferences(method, expected);
}
- test_searchReferences_ParameterElement() async {
+ test_searchReferences_ParameterElement_ofLocalFunction() async {
+ _indexTestUnit('''
+main() {
+ foo({p}) {
+ p = 1;
+ p += 2;
+ print(p);
+ p();
+ }
+ foo(p: 42);
+}
+''');
+ ParameterElement element = findElement('p');
+ Element fooElement = findElement('foo');
+ Element mainElement = findElement('main');
+ var expected = [
+ _expectId(fooElement, MatchKind.WRITE, 'p = 1;'),
+ _expectId(fooElement, MatchKind.READ_WRITE, 'p += 2;'),
+ _expectId(fooElement, MatchKind.READ, 'p);'),
+ _expectId(fooElement, MatchKind.INVOCATION, 'p();'),
+ _expectIdQ(mainElement, MatchKind.REFERENCE, 'p: 42')
+ ];
+ await _verifyReferences(element, expected);
+ }
+
+ test_searchReferences_ParameterElement_ofMethod() async {
+ _indexTestUnit('''
+class C {
+ foo({p}) {
+ p = 1;
+ p += 2;
+ print(p);
+ p();
+ }
+}
+main(C c) {
+ c.foo(p: 42);
+}
+''');
+ ParameterElement element = findElement('p');
+ Element fooElement = findElement('foo');
+ Element mainElement = findElement('main');
+ var expected = [
+ _expectId(fooElement, MatchKind.WRITE, 'p = 1;'),
+ _expectId(fooElement, MatchKind.READ_WRITE, 'p += 2;'),
+ _expectId(fooElement, MatchKind.READ, 'p);'),
+ _expectId(fooElement, MatchKind.INVOCATION, 'p();'),
+ _expectIdQ(mainElement, MatchKind.REFERENCE, 'p: 42')
+ ];
+ await _verifyReferences(element, expected);
+ }
+
+ test_searchReferences_ParameterElement_ofTopLevelFunction() async {
_indexTestUnit('''
foo({p}) {
p = 1;
@@ -488,23 +557,23 @@ main() {
await _verifyReferences(element, expected);
}
-// Future test_searchReferences_PrefixElement() {
-// _indexTestUnit('''
-//import 'dart:async' as ppp;
-//main() {
-// ppp.Future a;
-// ppp.Stream b;
-//}
-//''');
-// PrefixElement element = findNodeElementAtString('ppp;');
-// Element elementA = findElement('a');
-// Element elementB = findElement('b');
-// var expected = [
-// _expectId(elementA, MatchKind.REFERENCE, 'ppp.Future'),
-// _expectId(elementB, MatchKind.REFERENCE, 'ppp.Stream')
-// ];
-// return _verifyReferences(element, expected);
-// }
+ test_searchReferences_PrefixElement() async {
+ _indexTestUnit('''
+import 'dart:async' as ppp;
+main() {
+ ppp.Future a;
+ ppp.Stream b;
+}
+''');
+ PrefixElement element = findNodeElementAtString('ppp;');
+ Element elementA = findElement('a');
+ Element elementB = findElement('b');
+ var expected = [
+ _expectId(elementA, MatchKind.REFERENCE, 'ppp.Future'),
+ _expectId(elementB, MatchKind.REFERENCE, 'ppp.Stream')
+ ];
+ await _verifyReferences(element, expected);
+ }
test_searchReferences_PropertyAccessorElement_getter() async {
_indexTestUnit('''
« no previous file with comments | « pkg/analysis_server/lib/src/services/search/search_engine_internal2.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698