| Index: pkg/analysis_server/test/services/search/search_engine_test.dart
|
| diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
|
| index 05659200c486b68d9665e5b781c64cb5fb80b20c..89ddab3ea538bc5f2661fb8985bddf7983860918 100644
|
| --- a/pkg/analysis_server/test/services/search/search_engine_test.dart
|
| +++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
|
| @@ -18,7 +18,6 @@ import 'package:unittest/unittest.dart';
|
| import '../../abstract_single_unit.dart';
|
| import '../../reflective_tests.dart';
|
|
|
| -
|
| main() {
|
| groupSep = ' | ';
|
| runReflectiveTests(SearchEngineImplTest);
|
| @@ -62,12 +61,10 @@ class ExpectedMatch {
|
| }
|
| }
|
|
|
| -
|
| class MockIndex extends TypedMock implements Index {
|
| noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
|
| }
|
|
|
| -
|
| @reflectiveTest
|
| class SearchEngineImplTest extends AbstractSingleUnitTest {
|
| Index index;
|
| @@ -95,9 +92,10 @@ class B {
|
| ClassElement elementB = findElement('B');
|
| Element element_test = findElement('test', ElementKind.LOCAL_VARIABLE);
|
| var expected = [
|
| - _expectId(elementA.methods[0], MatchKind.DECLARATION, 'test() {}'),
|
| - _expectId(elementB.fields[0], MatchKind.DECLARATION, 'test = 1;'),
|
| - _expectId(element_test, MatchKind.DECLARATION, 'test = 2;'),];
|
| + _expectId(elementA.methods[0], MatchKind.DECLARATION, 'test() {}'),
|
| + _expectId(elementB.fields[0], MatchKind.DECLARATION, 'test = 1;'),
|
| + _expectId(element_test, MatchKind.DECLARATION, 'test = 2;'),
|
| + ];
|
| return searchEngine.searchElementDeclarations('test').then((matches) {
|
| _assertMatches(matches, expected);
|
| });
|
| @@ -118,8 +116,9 @@ class B {
|
| ClassElement elementA = findElement('A');
|
| ClassElement elementB = findElement('B');
|
| var expected = [
|
| - _expectId(elementA.methods[0], MatchKind.DECLARATION, 'test() {}'),
|
| - _expectId(elementB.fields[0], MatchKind.DECLARATION, 'test = 1;')];
|
| + _expectId(elementA.methods[0], MatchKind.DECLARATION, 'test() {}'),
|
| + _expectId(elementB.fields[0], MatchKind.DECLARATION, 'test = 1;')
|
| + ];
|
| return searchEngine.searchMemberDeclarations('test').then((matches) {
|
| _assertMatches(matches, expected);
|
| });
|
| @@ -150,18 +149,19 @@ main(A a, p) {
|
| Element mainA = findElement('mainA');
|
| Element main = findElement('main');
|
| var expected = [
|
| - _expectId(mainA, MatchKind.INVOCATION, 'test(); // a-inv-r-nq'),
|
| - _expectId(mainA, MatchKind.WRITE, 'test = 1; // a-write-r-nq'),
|
| - _expectId(mainA, MatchKind.READ_WRITE, 'test += 2; // a-read-write-r-nq'),
|
| - _expectId(mainA, MatchKind.READ, 'test); // a-read-r-nq'),
|
| - _expectIdQ(main, MatchKind.INVOCATION, 'test(); // a-inv-r-q'),
|
| - _expectIdQ(main, MatchKind.WRITE, 'test = 1; // a-write-r-q'),
|
| - _expectIdQ(main, MatchKind.READ_WRITE, 'test += 2; // a-read-write-r-q'),
|
| - _expectIdQ(main, MatchKind.READ, 'test); // a-read-r-q'),
|
| - _expectIdU(main, MatchKind.INVOCATION, 'test(); // p-inv-ur-q'),
|
| - _expectIdU(main, MatchKind.WRITE, 'test = 1; // p-write-ur-q'),
|
| - _expectIdU(main, MatchKind.READ_WRITE, 'test += 2; // p-read-write-ur-q'),
|
| - _expectIdU(main, MatchKind.READ, 'test); // p-read-ur-q'),];
|
| + _expectId(mainA, MatchKind.INVOCATION, 'test(); // a-inv-r-nq'),
|
| + _expectId(mainA, MatchKind.WRITE, 'test = 1; // a-write-r-nq'),
|
| + _expectId(mainA, MatchKind.READ_WRITE, 'test += 2; // a-read-write-r-nq'),
|
| + _expectId(mainA, MatchKind.READ, 'test); // a-read-r-nq'),
|
| + _expectIdQ(main, MatchKind.INVOCATION, 'test(); // a-inv-r-q'),
|
| + _expectIdQ(main, MatchKind.WRITE, 'test = 1; // a-write-r-q'),
|
| + _expectIdQ(main, MatchKind.READ_WRITE, 'test += 2; // a-read-write-r-q'),
|
| + _expectIdQ(main, MatchKind.READ, 'test); // a-read-r-q'),
|
| + _expectIdU(main, MatchKind.INVOCATION, 'test(); // p-inv-ur-q'),
|
| + _expectIdU(main, MatchKind.WRITE, 'test = 1; // p-write-ur-q'),
|
| + _expectIdU(main, MatchKind.READ_WRITE, 'test += 2; // p-read-write-ur-q'),
|
| + _expectIdU(main, MatchKind.READ, 'test); // p-read-ur-q'),
|
| + ];
|
| return searchEngine.searchMemberReferences('test').then((matches) {
|
| _assertMatches(matches, expected);
|
| });
|
| @@ -178,8 +178,9 @@ main(A p) {
|
| Element pElement = findElement('p');
|
| Element vElement = findElement('v');
|
| var expected = [
|
| - _expectId(pElement, MatchKind.REFERENCE, 'A p'),
|
| - _expectId(vElement, MatchKind.REFERENCE, 'A v')];
|
| + _expectId(pElement, MatchKind.REFERENCE, 'A p'),
|
| + _expectId(vElement, MatchKind.REFERENCE, 'A v')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -193,11 +194,9 @@ part 'my_part.dart';
|
| ''');
|
| CompilationUnitElement element = testLibraryElement.parts[0];
|
| var expected = [
|
| - _expectId(
|
| - testUnitElement,
|
| - MatchKind.REFERENCE,
|
| - "'my_part.dart'",
|
| - length: "'my_part.dart'".length)];
|
| + _expectId(testUnitElement, MatchKind.REFERENCE, "'my_part.dart'",
|
| + length: "'my_part.dart'".length)
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -213,7 +212,8 @@ main() {
|
| ConstructorElement element = findElement('named');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.REFERENCE, '.named();', length: 6)];
|
| + _expectId(mainElement, MatchKind.REFERENCE, '.named();', length: 6)
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -244,14 +244,15 @@ class A {
|
| Element main = findElement('main');
|
| Element fieldParameter = findElement('field', ElementKind.PARAMETER);
|
| var expected = [
|
| - _expectId(fieldParameter, MatchKind.WRITE, 'field}'),
|
| - _expectId(main, MatchKind.REFERENCE, 'field: 1'),
|
| - _expectId(main, MatchKind.READ, 'field); // ref-nq'),
|
| - _expectIdQ(main, MatchKind.READ, 'field); // ref-q'),
|
| - _expectId(main, MatchKind.INVOCATION, 'field(); // inv-nq'),
|
| - _expectIdQ(main, MatchKind.INVOCATION, 'field(); // inv-q'),
|
| - _expectId(main, MatchKind.WRITE, 'field = 2; // ref-nq'),
|
| - _expectIdQ(main, MatchKind.WRITE, 'field = 3; // ref-q'),];
|
| + _expectId(fieldParameter, MatchKind.WRITE, 'field}'),
|
| + _expectId(main, MatchKind.REFERENCE, 'field: 1'),
|
| + _expectId(main, MatchKind.READ, 'field); // ref-nq'),
|
| + _expectIdQ(main, MatchKind.READ, 'field); // ref-q'),
|
| + _expectId(main, MatchKind.INVOCATION, 'field(); // inv-nq'),
|
| + _expectIdQ(main, MatchKind.INVOCATION, 'field(); // inv-q'),
|
| + _expectId(main, MatchKind.WRITE, 'field = 2; // ref-nq'),
|
| + _expectIdQ(main, MatchKind.WRITE, 'field = 3; // ref-q'),
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -266,8 +267,9 @@ main() {
|
| FunctionElement element = findElement('test');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.INVOCATION, 'test();'),
|
| - _expectId(mainElement, MatchKind.REFERENCE, 'test);')];
|
| + _expectId(mainElement, MatchKind.INVOCATION, 'test();'),
|
| + _expectId(mainElement, MatchKind.REFERENCE, 'test);')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -283,8 +285,9 @@ main() {
|
| Element aElement = findElement('a');
|
| Element bElement = findElement('b');
|
| var expected = [
|
| - _expectId(aElement, MatchKind.REFERENCE, 'Test a;'),
|
| - _expectId(bElement, MatchKind.REFERENCE, 'Test b;')];
|
| + _expectId(aElement, MatchKind.REFERENCE, 'Test a;'),
|
| + _expectId(bElement, MatchKind.REFERENCE, 'Test b;')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -313,7 +316,8 @@ main() {
|
| Element mainElement = findElement('main');
|
| var kind = MatchKind.REFERENCE;
|
| var expected = [
|
| - _expectId(mainElement, kind, 'math.PI);', length: 'math.'.length)];
|
| + _expectId(mainElement, kind, 'math.PI);', length: 'math.'.length)
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -332,8 +336,9 @@ label:
|
| LabelElement element = findElement('label');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.REFERENCE, 'label; // 1'),
|
| - _expectId(mainElement, MatchKind.REFERENCE, 'label; // 2')];
|
| + _expectId(mainElement, MatchKind.REFERENCE, 'label; // 1'),
|
| + _expectId(mainElement, MatchKind.REFERENCE, 'label; // 2')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -353,16 +358,11 @@ part 'unitB.dart';
|
| index.indexUnit(context, elementA.node);
|
| index.indexUnit(context, elementB.node);
|
| var expected = [
|
| - new ExpectedMatch(
|
| - elementA,
|
| - MatchKind.REFERENCE,
|
| - codeA.indexOf('lib; // A'),
|
| - 'lib'.length),
|
| - new ExpectedMatch(
|
| - elementB,
|
| - MatchKind.REFERENCE,
|
| - codeB.indexOf('lib; // B'),
|
| - 'lib'.length),];
|
| + 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);
|
| }
|
|
|
| @@ -379,10 +379,11 @@ main() {
|
| LocalVariableElement element = findElement('v');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.WRITE, 'v = 1;'),
|
| - _expectId(mainElement, MatchKind.READ_WRITE, 'v += 2;'),
|
| - _expectId(mainElement, MatchKind.READ, 'v);'),
|
| - _expectId(mainElement, MatchKind.INVOCATION, 'v();')];
|
| + _expectId(mainElement, MatchKind.WRITE, 'v = 1;'),
|
| + _expectId(mainElement, MatchKind.READ_WRITE, 'v += 2;'),
|
| + _expectId(mainElement, MatchKind.READ, 'v);'),
|
| + _expectId(mainElement, MatchKind.INVOCATION, 'v();')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -401,10 +402,11 @@ class A {
|
| MethodElement method = findElement('m');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.INVOCATION, 'm(); // 1'),
|
| - _expectIdQ(mainElement, MatchKind.INVOCATION, 'm(); // 2'),
|
| - _expectId(mainElement, MatchKind.REFERENCE, 'm); // 3'),
|
| - _expectIdQ(mainElement, MatchKind.REFERENCE, 'm); // 4')];
|
| + _expectId(mainElement, MatchKind.INVOCATION, 'm(); // 1'),
|
| + _expectIdQ(mainElement, MatchKind.INVOCATION, 'm(); // 2'),
|
| + _expectId(mainElement, MatchKind.REFERENCE, 'm); // 3'),
|
| + _expectIdQ(mainElement, MatchKind.REFERENCE, 'm); // 4')
|
| + ];
|
| return _verifyReferences(method, expected);
|
| }
|
|
|
| @@ -420,7 +422,8 @@ main(A<int> a) {
|
| MethodMember method = findNodeElementAtString('m(); // ref');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectIdQ(mainElement, MatchKind.INVOCATION, 'm(); // ref')];
|
| + _expectIdQ(mainElement, MatchKind.INVOCATION, 'm(); // ref')
|
| + ];
|
| return _verifyReferences(method, expected);
|
| }
|
|
|
| @@ -440,11 +443,12 @@ main() {
|
| 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();'),
|
| - _expectId(mainElement, MatchKind.REFERENCE, 'p: 42')];
|
| + _expectId(fooElement, MatchKind.WRITE, 'p = 1;'),
|
| + _expectId(fooElement, MatchKind.READ_WRITE, 'p += 2;'),
|
| + _expectId(fooElement, MatchKind.READ, 'p);'),
|
| + _expectId(fooElement, MatchKind.INVOCATION, 'p();'),
|
| + _expectId(mainElement, MatchKind.REFERENCE, 'p: 42')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -460,8 +464,9 @@ main() {
|
| Element elementA = findElement('a');
|
| Element elementB = findElement('b');
|
| var expected = [
|
| - _expectId(elementA, MatchKind.REFERENCE, 'ppp.Future'),
|
| - _expectId(elementB, MatchKind.REFERENCE, 'ppp.Stream')];
|
| + _expectId(elementA, MatchKind.REFERENCE, 'ppp.Future'),
|
| + _expectId(elementB, MatchKind.REFERENCE, 'ppp.Stream')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -478,8 +483,9 @@ class A {
|
| PropertyAccessorElement element = findElement('g', ElementKind.GETTER);
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.REFERENCE, 'g; // 1'),
|
| - _expectIdQ(mainElement, MatchKind.REFERENCE, 'g; // 2')];
|
| + _expectId(mainElement, MatchKind.REFERENCE, 'g; // 1'),
|
| + _expectIdQ(mainElement, MatchKind.REFERENCE, 'g; // 2')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -496,8 +502,9 @@ class A {
|
| PropertyAccessorElement element = findElement('s=');
|
| Element mainElement = findElement('main');
|
| var expected = [
|
| - _expectId(mainElement, MatchKind.REFERENCE, 's = 1'),
|
| - _expectIdQ(mainElement, MatchKind.REFERENCE, 's = 2')];
|
| + _expectId(mainElement, MatchKind.REFERENCE, 's = 1'),
|
| + _expectIdQ(mainElement, MatchKind.REFERENCE, 's = 2')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -524,13 +531,14 @@ main() {
|
| TopLevelVariableElement variable = impUnit.topLevelVariables[0];
|
| Element main = findElement('main');
|
| var expected = [
|
| - _expectId(testUnitElement, MatchKind.REFERENCE, 'V; // imp'),
|
| - _expectId(main, MatchKind.WRITE, 'V = 1; // q'),
|
| - _expectId(main, MatchKind.READ, 'V); // q'),
|
| - _expectId(main, MatchKind.INVOCATION, 'V(); // q'),
|
| - _expectId(main, MatchKind.WRITE, 'V = 1; // nq'),
|
| - _expectId(main, MatchKind.READ, 'V); // nq'),
|
| - _expectId(main, MatchKind.INVOCATION, 'V(); // nq'),];
|
| + _expectId(testUnitElement, MatchKind.REFERENCE, 'V; // imp'),
|
| + _expectId(main, MatchKind.WRITE, 'V = 1; // q'),
|
| + _expectId(main, MatchKind.READ, 'V); // q'),
|
| + _expectId(main, MatchKind.INVOCATION, 'V(); // q'),
|
| + _expectId(main, MatchKind.WRITE, 'V = 1; // nq'),
|
| + _expectId(main, MatchKind.READ, 'V); // nq'),
|
| + _expectId(main, MatchKind.INVOCATION, 'V(); // nq'),
|
| + ];
|
| return _verifyReferences(variable, expected);
|
| }
|
|
|
| @@ -544,8 +552,9 @@ class A<T> {
|
| Element aElement = findElement('a');
|
| Element bElement = findElement('b');
|
| var expected = [
|
| - _expectId(aElement, MatchKind.REFERENCE, 'T a'),
|
| - _expectId(bElement, MatchKind.REFERENCE, 'T b')];
|
| + _expectId(aElement, MatchKind.REFERENCE, 'T a'),
|
| + _expectId(bElement, MatchKind.REFERENCE, 'T b')
|
| + ];
|
| return _verifyReferences(element, expected);
|
| }
|
|
|
| @@ -561,9 +570,10 @@ class C implements T {} // C
|
| ClassElement elementB = findElement('B');
|
| ClassElement elementC = findElement('C');
|
| var expected = [
|
| - _expectId(elementA, MatchKind.REFERENCE, 'T {} // A'),
|
| - _expectId(elementB, MatchKind.REFERENCE, 'T; // B'),
|
| - _expectId(elementC, MatchKind.REFERENCE, 'T {} // C')];
|
| + _expectId(elementA, MatchKind.REFERENCE, 'T {} // A'),
|
| + _expectId(elementB, MatchKind.REFERENCE, 'T; // B'),
|
| + _expectId(elementC, MatchKind.REFERENCE, 'T {} // C')
|
| + ];
|
| return searchEngine.searchSubtypes(element).then((matches) {
|
| _assertMatches(matches, expected);
|
| });
|
| @@ -584,11 +594,12 @@ class NoMatchABCDE {}
|
| Element topD = findElement('D');
|
| Element topE = findElement('E');
|
| var expected = [
|
| - _expectId(topA, MatchKind.DECLARATION, 'A {} // A'),
|
| - _expectId(topB, MatchKind.DECLARATION, 'B ='),
|
| - _expectId(topC, MatchKind.DECLARATION, 'C()'),
|
| - _expectId(topD, MatchKind.DECLARATION, 'D() {}'),
|
| - _expectId(topE, MatchKind.DECLARATION, 'E = null')];
|
| + _expectId(topA, MatchKind.DECLARATION, 'A {} // A'),
|
| + _expectId(topB, MatchKind.DECLARATION, 'B ='),
|
| + _expectId(topC, MatchKind.DECLARATION, 'C()'),
|
| + _expectId(topD, MatchKind.DECLARATION, 'D() {}'),
|
| + _expectId(topE, MatchKind.DECLARATION, 'E = null')
|
| + ];
|
| return _verifyTopLevelDeclarations('^[A-E]\$', expected);
|
| }
|
|
|
| @@ -598,13 +609,8 @@ class NoMatchABCDE {}
|
| if (length == null) {
|
| length = getLeadingIdentifierLength(search);
|
| }
|
| - return new ExpectedMatch(
|
| - element,
|
| - kind,
|
| - offset,
|
| - length,
|
| - isResolved: isResolved,
|
| - isQualified: isQualified);
|
| + return new ExpectedMatch(element, kind, offset, length,
|
| + isResolved: isResolved, isQualified: isQualified);
|
| }
|
|
|
| ExpectedMatch _expectIdQ(Element element, MatchKind kind, String search) {
|
| @@ -612,12 +618,8 @@ class NoMatchABCDE {}
|
| }
|
|
|
| ExpectedMatch _expectIdU(Element element, MatchKind kind, String search) {
|
| - return _expectId(
|
| - element,
|
| - kind,
|
| - search,
|
| - isQualified: true,
|
| - isResolved: false);
|
| + return _expectId(element, kind, search,
|
| + isQualified: true, isResolved: false);
|
| }
|
|
|
| void _indexTestUnit(String code) {
|
| @@ -625,24 +627,26 @@ class NoMatchABCDE {}
|
| index.indexUnit(context, testUnit);
|
| }
|
|
|
| - Future _verifyReferences(Element element,
|
| - List<ExpectedMatch> expectedMatches) {
|
| - return searchEngine.searchReferences(
|
| - element).then((List<SearchMatch> matches) {
|
| + Future _verifyReferences(
|
| + Element element, List<ExpectedMatch> expectedMatches) {
|
| + return searchEngine
|
| + .searchReferences(element)
|
| + .then((List<SearchMatch> matches) {
|
| _assertMatches(matches, expectedMatches);
|
| });
|
| }
|
|
|
| - Future _verifyTopLevelDeclarations(String pattern,
|
| - List<ExpectedMatch> expectedMatches) {
|
| - return searchEngine.searchTopLevelDeclarations(
|
| - pattern).then((List<SearchMatch> matches) {
|
| + Future _verifyTopLevelDeclarations(
|
| + String pattern, List<ExpectedMatch> expectedMatches) {
|
| + return searchEngine
|
| + .searchTopLevelDeclarations(pattern)
|
| + .then((List<SearchMatch> matches) {
|
| _assertMatches(matches, expectedMatches);
|
| });
|
| }
|
|
|
| - static void _assertMatches(List<SearchMatch> matches,
|
| - List<ExpectedMatch> expectedMatches) {
|
| + static void _assertMatches(
|
| + List<SearchMatch> matches, List<ExpectedMatch> expectedMatches) {
|
| expect(matches, unorderedEquals(expectedMatches));
|
| }
|
| }
|
|
|