| Index: pkg/analysis_server/test/services/index/store/split_store_test.dart
|
| diff --git a/pkg/analysis_server/test/services/index/store/split_store_test.dart b/pkg/analysis_server/test/services/index/store/split_store_test.dart
|
| index c663dc42f12299275eff9921153721db2d4bf8b7..f52556cdad86ba0ca00dcba40fdd1e6588f21eb0 100644
|
| --- a/pkg/analysis_server/test/services/index/store/split_store_test.dart
|
| +++ b/pkg/analysis_server/test/services/index/store/split_store_test.dart
|
| @@ -492,11 +492,14 @@ class _SplitIndexStoreTest {
|
| IndexableElement indexableC;
|
| IndexableElement indexableD;
|
|
|
| - HtmlElement htmlElementA = new MockHtmlElement();
|
| - HtmlElement htmlElementB = new MockHtmlElement();
|
| - LibraryElement libraryElement = new MockLibraryElement();
|
| Source librarySource = new MockSource('librarySource');
|
| CompilationUnitElement libraryUnitElement = new MockCompilationUnitElement();
|
| + LibraryElement libraryElement = new MockLibraryElement();
|
| +
|
| + Source librarySourceB = new MockSource('librarySourceB');
|
| + LibraryElement libraryElementB = new MockLibraryElement();
|
| + CompilationUnitElement libraryUnitElementB = new MockCompilationUnitElement();
|
| +
|
| ElementCodec elementCodec = new MockElementCodec();
|
| MemoryNodeManager nodeManager = new MemoryNodeManager();
|
| RelationshipImpl relationship =
|
| @@ -518,7 +521,8 @@ class _SplitIndexStoreTest {
|
| indexableD = new IndexableElement(elementD);
|
|
|
| nodeManager.elementCodec = elementCodec;
|
| - store = new SplitIndexStore(nodeManager);
|
| + store = new SplitIndexStore(nodeManager,
|
| + <IndexObjectManager>[new DartUnitIndexObjectManager()]);
|
| when(elementCodec.encode1(indexableA)).thenReturn(11);
|
| when(elementCodec.encode2(indexableA)).thenReturn(12);
|
| when(elementCodec.encode3(indexableA)).thenReturn(13);
|
| @@ -538,7 +542,6 @@ class _SplitIndexStoreTest {
|
| when(contextA.isDisposed).thenReturn(false);
|
| when(contextB.isDisposed).thenReturn(false);
|
| when(contextC.isDisposed).thenReturn(false);
|
| - when(librarySource.fullName).thenReturn('/home/user/librarySource.dart');
|
| when(sourceA.fullName).thenReturn('/home/user/sourceA.dart');
|
| when(sourceB.fullName).thenReturn('/home/user/sourceB.dart');
|
| when(sourceC.fullName).thenReturn('/home/user/sourceC.dart');
|
| @@ -567,25 +570,31 @@ class _SplitIndexStoreTest {
|
| when(unitElementB.library).thenReturn(libraryElement);
|
| when(unitElementC.library).thenReturn(libraryElement);
|
| when(unitElementD.library).thenReturn(libraryElement);
|
| - when(htmlElementA.source).thenReturn(sourceA);
|
| - when(htmlElementB.source).thenReturn(sourceB);
|
| // library
|
| + when(librarySource.fullName).thenReturn('/home/user/librarySource.dart');
|
| when(libraryUnitElement.library).thenReturn(libraryElement);
|
| when(libraryUnitElement.source).thenReturn(librarySource);
|
| when(libraryElement.source).thenReturn(librarySource);
|
| when(libraryElement.definingCompilationUnit).thenReturn(libraryUnitElement);
|
| + // library B
|
| + when(librarySourceB.fullName).thenReturn('/home/user/librarySource.dart');
|
| + when(libraryUnitElementB.library).thenReturn(libraryElementB);
|
| + when(libraryUnitElementB.source).thenReturn(librarySourceB);
|
| + when(libraryElementB.source).thenReturn(librarySourceB);
|
| + when(libraryElementB.definingCompilationUnit)
|
| + .thenReturn(libraryUnitElementB);
|
| }
|
|
|
| void test_aboutToIndexDart_disposedContext() {
|
| when(contextA.isDisposed).thenReturn(true);
|
| - expect(store.aboutToIndexDart(contextA, unitElementA), isFalse);
|
| + expect(store.aboutToIndex(contextA, unitElementA), isFalse);
|
| }
|
|
|
| Future test_aboutToIndexDart_library_first() {
|
| when(libraryElement.parts)
|
| .thenReturn(<CompilationUnitElement>[unitElementA, unitElementB]);
|
| {
|
| - store.aboutToIndexDart(contextA, libraryUnitElement);
|
| + store.aboutToIndex(contextA, libraryUnitElement);
|
| store.doneIndex();
|
| }
|
| return store
|
| @@ -599,12 +608,12 @@ class _SplitIndexStoreTest {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableB);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| @@ -616,7 +625,7 @@ class _SplitIndexStoreTest {
|
| // apply "libraryUnitElement", only with "B"
|
| when(libraryElement.parts).thenReturn([unitElementB]);
|
| {
|
| - store.aboutToIndexDart(contextA, libraryUnitElement);
|
| + store.aboutToIndex(contextA, libraryUnitElement);
|
| store.doneIndex();
|
| }
|
| }).then((_) {
|
| @@ -630,52 +639,26 @@ class _SplitIndexStoreTest {
|
|
|
| void test_aboutToIndexDart_nullLibraryElement() {
|
| when(unitElementA.library).thenReturn(null);
|
| - expect(store.aboutToIndexDart(contextA, unitElementA), isFalse);
|
| + expect(store.aboutToIndex(contextA, unitElementA), isFalse);
|
| }
|
|
|
| void test_aboutToIndexDart_nullLibraryUnitElement() {
|
| when(libraryElement.definingCompilationUnit).thenReturn(null);
|
| - expect(store.aboutToIndexDart(contextA, unitElementA), isFalse);
|
| + expect(store.aboutToIndex(contextA, unitElementA), isFalse);
|
| }
|
|
|
| void test_aboutToIndexDart_nullUnitElement() {
|
| - expect(store.aboutToIndexDart(contextA, null), isFalse);
|
| - }
|
| -
|
| - test_aboutToIndexHtml_() {
|
| - LocationImpl locationA = mockLocation(indexableA);
|
| - LocationImpl locationB = mockLocation(indexableB);
|
| - {
|
| - store.aboutToIndexHtml(contextA, htmlElementA);
|
| - store.recordRelationship(indexableA, relationship, locationA);
|
| - store.doneIndex();
|
| - }
|
| - {
|
| - store.aboutToIndexHtml(contextA, htmlElementB);
|
| - store.recordRelationship(indexableA, relationship, locationB);
|
| - store.doneIndex();
|
| - }
|
| - // "A" and "B" locations
|
| - return store
|
| - .getRelationships(indexableA, relationship)
|
| - .then((List<LocationImpl> locations) {
|
| - assertLocations(locations, [locationA, locationB]);
|
| - });
|
| - }
|
| -
|
| - void test_aboutToIndexHtml_disposedContext() {
|
| - when(contextA.isDisposed).thenReturn(true);
|
| - expect(store.aboutToIndexHtml(contextA, htmlElementA), isFalse);
|
| + expect(store.aboutToIndex(contextA, null), isFalse);
|
| }
|
|
|
| test_cancelIndexDart() {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableA);
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.recordTopLevelDeclaration(elementA);
|
| - store.cancelIndexDart();
|
| + store.cancelIndex();
|
| return store
|
| .getRelationships(indexableA, relationship)
|
| .then((List<LocationImpl> locations) {
|
| @@ -686,7 +669,7 @@ class _SplitIndexStoreTest {
|
|
|
| void test_clear() {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| expect(nodeManager.isEmpty(), isFalse);
|
| @@ -714,12 +697,12 @@ class _SplitIndexStoreTest {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableB);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| @@ -757,12 +740,12 @@ class _SplitIndexStoreTest {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableB);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| @@ -775,7 +758,7 @@ class _SplitIndexStoreTest {
|
|
|
| test_recordRelationship_oneLocation() {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| return store
|
| @@ -788,7 +771,7 @@ class _SplitIndexStoreTest {
|
| test_recordRelationship_twoLocations() {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableA);
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| @@ -803,12 +786,12 @@ class _SplitIndexStoreTest {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableB);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| @@ -832,39 +815,39 @@ class _SplitIndexStoreTest {
|
| store.removeContext(null);
|
| }
|
|
|
| - test_removeSource_library() {
|
| + test_removeSource_library() async {
|
| + when(elementB.library).thenReturn(libraryElementB);
|
| + when(unitElementB.library).thenReturn(libraryElementB);
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableB);
|
| LocationImpl locationC = mockLocation(indexableC);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| - store.recordRelationship(indexableA, relationship, locationA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| + store.recordRelationship(indexableD, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| - store.recordRelationship(indexableA, relationship, locationB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| + store.recordRelationship(indexableD, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementC);
|
| - store.recordRelationship(indexableA, relationship, locationC);
|
| + store.aboutToIndex(contextA, unitElementC);
|
| + store.recordRelationship(indexableD, relationship, locationC);
|
| store.doneIndex();
|
| }
|
| // "A", "B" and "C" locations
|
| - return store
|
| - .getRelationships(indexableA, relationship)
|
| - .then((List<LocationImpl> locations) {
|
| + {
|
| + var locations = await store.getRelationships(indexableD, relationship);
|
| assertLocations(locations, [locationA, locationB, locationC]);
|
| - }).then((_) {
|
| - // remove "librarySource"
|
| - store.removeSource(contextA, librarySource);
|
| - return store
|
| - .getRelationships(indexableA, relationship)
|
| - .then((List<LocationImpl> locations) {
|
| - assertLocations(locations, []);
|
| - });
|
| - });
|
| + }
|
| + // remove "librarySource"
|
| + store.removeSource(contextA, librarySource);
|
| + // only "B" location, which is in "librarySourceB"
|
| + {
|
| + var locations = await store.getRelationships(indexableD, relationship);
|
| + assertLocations(locations, [locationB]);
|
| + }
|
| }
|
|
|
| void test_removeSource_nullContext() {
|
| @@ -876,17 +859,17 @@ class _SplitIndexStoreTest {
|
| LocationImpl locationB = mockLocation(indexableB);
|
| LocationImpl locationC = mockLocation(indexableC);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementC);
|
| + store.aboutToIndex(contextA, unitElementC);
|
| store.recordRelationship(indexableA, relationship, locationC);
|
| store.doneIndex();
|
| }
|
| @@ -910,12 +893,12 @@ class _SplitIndexStoreTest {
|
| LocationImpl locationA = mockLocation(indexableA);
|
| LocationImpl locationB = mockLocation(indexableB);
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordRelationship(indexableA, relationship, locationA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordRelationship(indexableA, relationship, locationB);
|
| store.doneIndex();
|
| }
|
| @@ -941,17 +924,17 @@ class _SplitIndexStoreTest {
|
|
|
| void test_removeSources_unit() {
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordTopLevelDeclaration(elementA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementB);
|
| + store.aboutToIndex(contextA, unitElementB);
|
| store.recordTopLevelDeclaration(elementB);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementC);
|
| + store.aboutToIndex(contextA, unitElementC);
|
| store.recordTopLevelDeclaration(elementC);
|
| store.doneIndex();
|
| }
|
| @@ -975,12 +958,12 @@ class _SplitIndexStoreTest {
|
| when(elementCodec.decode(contextB, 21, 22, 23))
|
| .thenReturn(new IndexableElement(elementB));
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordTopLevelDeclaration(elementA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextB, unitElementB);
|
| + store.aboutToIndex(contextB, unitElementB);
|
| store.recordTopLevelDeclaration(elementB);
|
| store.doneIndex();
|
| }
|
| @@ -991,7 +974,7 @@ class _SplitIndexStoreTest {
|
| }
|
| // re-index "unitElementA"
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.doneIndex();
|
| }
|
| {
|
| @@ -1006,12 +989,12 @@ class _SplitIndexStoreTest {
|
| when(elementCodec.decode(contextB, 21, 22, 23))
|
| .thenReturn(new IndexableElement(elementB));
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordTopLevelDeclaration(elementA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextB, unitElementB);
|
| + store.aboutToIndex(contextB, unitElementB);
|
| store.recordTopLevelDeclaration(elementB);
|
| store.doneIndex();
|
| }
|
| @@ -1034,12 +1017,12 @@ class _SplitIndexStoreTest {
|
| when(elementCodec.decode(contextB, 21, 22, 23))
|
| .thenReturn(new IndexableElement(elementB));
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordTopLevelDeclaration(elementA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextB, unitElementB);
|
| + store.aboutToIndex(contextB, unitElementB);
|
| store.recordTopLevelDeclaration(elementB);
|
| store.doneIndex();
|
| }
|
| @@ -1062,12 +1045,12 @@ class _SplitIndexStoreTest {
|
| when(elementCodec.decode(contextB, 21, 22, 23))
|
| .thenReturn(new IndexableElement(elementB));
|
| {
|
| - store.aboutToIndexDart(contextA, unitElementA);
|
| + store.aboutToIndex(contextA, unitElementA);
|
| store.recordTopLevelDeclaration(elementA);
|
| store.doneIndex();
|
| }
|
| {
|
| - store.aboutToIndexDart(contextB, unitElementB);
|
| + store.aboutToIndex(contextB, unitElementB);
|
| store.recordTopLevelDeclaration(elementB);
|
| store.doneIndex();
|
| }
|
|
|