[lvcs] create RootEntry only for the test root directory in the old ui model tests

GitOrigin-RevId: acca7ce8c9ebf41a59a5200c08befa8b515229f0
This commit is contained in:
Julia Beliaeva
2024-04-30 18:19:42 +02:00
committed by intellij-monorepo-bot
parent 386ddcd575
commit 477d1336e5
13 changed files with 78 additions and 27 deletions

View File

@@ -603,7 +603,7 @@ c:com.intellij.history.integration.ui.models.DirectoryHistoryDialogModel
f:com.intellij.history.integration.ui.models.EntireFileDifferenceModel
- com.intellij.history.integration.ui.models.FileDifferenceModel
- <init>(com.intellij.openapi.project.Project,com.intellij.history.integration.IdeaGateway,com.intellij.history.core.tree.Entry,com.intellij.history.core.tree.Entry,Z):V
f:com.intellij.history.integration.ui.models.EntireFileHistoryDialogModel
c:com.intellij.history.integration.ui.models.EntireFileHistoryDialogModel
- com.intellij.history.integration.ui.models.FileHistoryDialogModel
- <init>(com.intellij.openapi.project.Project,com.intellij.history.integration.IdeaGateway,com.intellij.history.core.LocalHistoryFacade,com.intellij.openapi.vfs.VirtualFile):V
- getDifferenceModel():com.intellij.history.integration.ui.models.FileDifferenceModel
@@ -643,6 +643,7 @@ a:com.intellij.history.integration.ui.models.HistoryDialogModel
- p:collectRevisionData():com.intellij.history.integration.ui.models.RevisionData
- p:createChange(com.intellij.history.core.revisions.Difference):com.intellij.openapi.vcs.changes.Change
- a:createReverter():com.intellij.history.integration.revertion.Reverter
- p:createRootEntry():com.intellij.history.core.tree.RootEntry
- getChanges():java.util.List
- getCurrentRevision():com.intellij.history.core.revisions.Revision
- p:getDifferences():java.util.List
@@ -809,9 +810,10 @@ com.intellij.history.integration.ui.views.RevisionsList$SelectionListener
f:com.intellij.history.integration.ui.views.SelectionHistoryDialog
- com.intellij.history.integration.ui.views.FileHistoryDialog
- <init>(com.intellij.openapi.project.Project,com.intellij.history.integration.IdeaGateway,com.intellij.openapi.vfs.VirtualFile,I,I):V
f:com.intellij.history.integration.ui.views.SelectionHistoryDialogModel
c:com.intellij.history.integration.ui.views.SelectionHistoryDialogModel
- com.intellij.history.integration.ui.models.FileHistoryDialogModel
- <init>(com.intellij.openapi.project.Project,com.intellij.history.integration.IdeaGateway,com.intellij.history.core.LocalHistoryFacade,com.intellij.openapi.vfs.VirtualFile,I,I):V
- p:collectRevisionData():com.intellij.history.integration.ui.models.RevisionData
- createReverter():com.intellij.history.integration.revertion.Reverter
- filterContents(java.lang.String):java.util.Set
- getDifferenceModel():com.intellij.history.integration.ui.models.FileDifferenceModel

View File

@@ -7,7 +7,7 @@ import com.intellij.history.integration.IdeaGateway;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
public final class EntireFileHistoryDialogModel extends FileHistoryDialogModel {
public class EntireFileHistoryDialogModel extends FileHistoryDialogModel {
public EntireFileHistoryDialogModel(Project p, IdeaGateway gw, LocalHistoryFacade vcs, VirtualFile f) {
super(p, gw, vcs, f);
}

View File

@@ -6,8 +6,10 @@ import com.intellij.history.core.LocalHistoryFacade;
import com.intellij.history.core.revisions.Difference;
import com.intellij.history.core.revisions.Revision;
import com.intellij.history.core.tree.Entry;
import com.intellij.history.core.tree.RootEntry;
import com.intellij.history.integration.IdeaGateway;
import com.intellij.history.integration.revertion.Reverter;
import com.intellij.openapi.application.ReadAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NlsContexts;
import com.intellij.openapi.util.io.FileUtil;
@@ -66,7 +68,11 @@ public abstract class HistoryDialogModel {
}
protected @NotNull RevisionData collectRevisionData() {
return RevisionDataKt.collectRevisionData(myProject, myGateway, myVcs, myFile, myFilter, myBefore);
return RevisionDataKt.collectRevisionData(myProject, myGateway, myVcs, createRootEntry(), myFile, myFilter, myBefore);
}
protected @NotNull RootEntry createRootEntry() {
return ReadAction.compute(() -> myGateway.createTransientRootEntry());
}
public void processContents(@NotNull PairProcessor<? super Revision, ? super String> processor) {

View File

@@ -6,8 +6,8 @@ import com.intellij.history.core.RevisionsCollector
import com.intellij.history.core.processContents
import com.intellij.history.core.revisions.CurrentRevision
import com.intellij.history.core.revisions.Revision
import com.intellij.history.core.tree.RootEntry
import com.intellij.history.integration.IdeaGateway
import com.intellij.openapi.application.runReadAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.platform.lvcs.impl.RevisionId
@@ -22,18 +22,14 @@ internal fun Revision.toRevisionId() = if (changeSetId == null) RevisionId.Curre
internal fun collectRevisionData(project: Project,
gateway: IdeaGateway,
facade: LocalHistoryFacade,
root: RootEntry,
file: VirtualFile,
filter: String? = null,
before: Boolean = true): RevisionData {
return runReadAction {
gateway.registerUnsavedDocuments(facade)
val root = gateway.createTransientRootEntry()
val path = gateway.getPathOrUrl(file)
val revisionItems = mergeLabelsWithRevisions(RevisionsCollector.collect(facade, root, path, project.getLocationHash(), filter, before))
RevisionData(CurrentRevision(root, path), revisionItems)
}
gateway.registerUnsavedDocuments(facade)
val path = gateway.getPathOrUrl(file)
val revisionItems = mergeLabelsWithRevisions(RevisionsCollector.collect(facade, root, path, project.getLocationHash(), filter, before))
return RevisionData(CurrentRevision(root, path), revisionItems)
}
private fun mergeLabelsWithRevisions(revisions: List<Revision>): List<RevisionItem> {

View File

@@ -29,7 +29,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.Set;
public final class SelectionHistoryDialogModel extends FileHistoryDialogModel {
public class SelectionHistoryDialogModel extends FileHistoryDialogModel {
private RevisionSelectionCalculator myCalculatorCache;
private final int myFrom;
private final int myTo;

View File

@@ -140,10 +140,14 @@ public abstract class IntegrationTestCase extends HeavyPlatformTestCase {
ApplicationManager.getApplication().runWriteAction(() -> document.setText(text));
}
protected LocalHistoryFacade getVcs() {
public @NotNull LocalHistoryFacade getVcs() {
return LocalHistoryImpl.getInstanceImpl().getFacade();
}
public @NotNull IdeaGateway getGateway() {
return myGateway;
}
/**
* Includes revisions for all ChangeSets plus a current revision.
*/
@@ -172,7 +176,7 @@ public abstract class IntegrationTestCase extends HeavyPlatformTestCase {
return LocalHistoryTestCase.getEntryFor(getVcs(), getRootEntry(), revisionId, f.getPath());
}
protected RootEntry getRootEntry() {
public @NotNull RootEntry getRootEntry() {
return myGateway.createTransientRootEntryForPath(myGateway.getPathOrUrl(myRoot), true);
}

View File

@@ -11,6 +11,8 @@ import com.intellij.openapi.vfs.VirtualFile;
import java.io.IOException;
import java.util.List;
import static com.intellij.history.integration.ui.HistoryDialogModelsKt.createDirectoryModel;
public class DirectoryHistoryDialogModelTest extends LocalHistoryUITestCase {
private DirectoryHistoryDialogModel m;
@@ -46,6 +48,6 @@ public class DirectoryHistoryDialogModelTest extends LocalHistoryUITestCase {
}
private void initModelFor(VirtualFile dir) {
m = new DirectoryHistoryDialogModel(myProject, myGateway, getVcs(), dir);
m = createDirectoryModel(this, dir);
}
}

View File

@@ -10,11 +10,12 @@ import com.intellij.openapi.vcs.changes.patch.PatchWriter;
import java.nio.file.Path;
import java.util.List;
import static com.intellij.history.integration.ui.HistoryDialogModelsKt.createDirectoryModel;
import static org.assertj.core.api.Assertions.assertThat;
public class DirectoryHistoryDialogPatchCreationTest extends PatchingTestCase {
public void testPatchCreation() throws Exception {
DirectoryHistoryDialogModel m = new DirectoryHistoryDialogModel(myProject, myGateway, getVcs(), myRoot);
DirectoryHistoryDialogModel m = createDirectoryModel(this, myRoot);
m.clearRevisions();
createChildDataWithoutContent(myRoot, "f0.txt");
createChildDataWithContent(myRoot, "f1.txt");

View File

@@ -24,6 +24,8 @@ import com.intellij.openapi.util.Disposer;
import java.util.Collections;
import static com.intellij.history.integration.ui.HistoryDialogModelsKt.createDirectoryModel;
public class DirectoryHistoryDialogTest extends LocalHistoryUITestCase {
public void testDialogWorks() {
DirectoryHistoryDialog d = new DirectoryHistoryDialog(myProject, myGateway, myRoot);
@@ -56,7 +58,7 @@ public class DirectoryHistoryDialogTest extends LocalHistoryUITestCase {
}
private DirectoryHistoryDialogModel createModelAndSelectRevisions(int first, int second) {
DirectoryHistoryDialogModel m = new DirectoryHistoryDialogModel(myProject, myGateway, getVcs(), myRoot);
DirectoryHistoryDialogModel m = createDirectoryModel(this, myRoot);
m.selectRevisions(first, second);
return m;
}

View File

@@ -18,7 +18,6 @@ package com.intellij.history.integration.ui;
import com.intellij.diff.contents.DiffContent;
import com.intellij.diff.contents.DocumentContent;
import com.intellij.history.integration.ui.models.EntireFileHistoryDialogModel;
import com.intellij.history.integration.ui.models.FileHistoryDialogModel;
import com.intellij.history.integration.ui.models.RevisionProcessingProgress;
import com.intellij.history.integration.ui.views.FileHistoryDialog;
@@ -30,6 +29,8 @@ import com.intellij.util.text.DateFormatUtil;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import static com.intellij.history.integration.ui.HistoryDialogModelsKt.createFileModel;
public class FileHistoryDialogTest extends LocalHistoryUITestCase {
public void testDialogWorks() {
VirtualFile file = createChildData(myRoot, "f.txt");
@@ -122,12 +123,8 @@ public class FileHistoryDialogTest extends LocalHistoryUITestCase {
return m.getDifferenceModel().getRightDiffContent(RevisionProcessingProgress.EMPTY);
}
private FileHistoryDialogModel createFileModel(VirtualFile f) {
return new EntireFileHistoryDialogModel(myProject, myGateway, getVcs(), f);
}
private FileHistoryDialogModel createFileModelAndSelectRevisions(VirtualFile f, int first, int second) {
FileHistoryDialogModel m = createFileModel(f);
FileHistoryDialogModel m = createFileModel(this, f);
m.selectRevisions(first, second);
return m;
}

View File

@@ -2,6 +2,7 @@
package com.intellij.history.integration.ui;
import com.intellij.history.core.changes.ChangeSet;
import com.intellij.history.core.tree.RootEntry;
import com.intellij.history.integration.IntegrationTestCase;
import com.intellij.history.integration.revertion.Reverter;
import com.intellij.history.integration.ui.models.HistoryDialogModel;
@@ -142,6 +143,11 @@ public class HistoryDialogModelTest extends IntegrationTestCase {
private void initModelFor() {
m = new HistoryDialogModel(myProject, myGateway, getVcs(), f) {
@Override
protected @NotNull RootEntry createRootEntry() {
return getRootEntry();
}
@Override
public Reverter createReverter() {
throw new UnsupportedOperationException();

View File

@@ -0,0 +1,33 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.history.integration.ui
import com.intellij.history.core.tree.RootEntry
import com.intellij.history.integration.IntegrationTestCase
import com.intellij.history.integration.ui.models.DirectoryHistoryDialogModel
import com.intellij.history.integration.ui.models.EntireFileHistoryDialogModel
import com.intellij.history.integration.ui.views.SelectionHistoryDialogModel
import com.intellij.openapi.vfs.VirtualFile
fun IntegrationTestCase.createFileModel(file: VirtualFile): EntireFileHistoryDialogModel {
return object : EntireFileHistoryDialogModel(project, gateway, vcs, file) {
override fun createRootEntry(): RootEntry {
return this@createFileModel.rootEntry
}
}
}
fun IntegrationTestCase.createDirectoryModel(directory: VirtualFile): DirectoryHistoryDialogModel {
return object : DirectoryHistoryDialogModel(project, gateway, vcs, directory) {
override fun createRootEntry(): RootEntry {
return this@createDirectoryModel.rootEntry
}
}
}
fun IntegrationTestCase.createSelectionModel(file: VirtualFile, from: Int, to: Int): SelectionHistoryDialogModel {
return object : SelectionHistoryDialogModel(project, gateway, vcs, file, from, to) {
override fun createRootEntry(): RootEntry {
return this@createSelectionModel.rootEntry
}
}
}

View File

@@ -15,6 +15,8 @@ import com.intellij.openapi.vfs.VirtualFile;
import java.nio.charset.StandardCharsets;
import static com.intellij.history.integration.ui.HistoryDialogModelsKt.createDirectoryModel;
import static com.intellij.history.integration.ui.HistoryDialogModelsKt.createSelectionModel;
import static org.easymock.EasyMock.*;
public class SelectionHistoryDialogTest extends LocalHistoryUITestCase {
@@ -112,7 +114,7 @@ public class SelectionHistoryDialogTest extends LocalHistoryUITestCase {
}
private void initModelOnSecondLineAndSelectRevisions(int first, int second) {
m = new SelectionHistoryDialogModel(myProject, myGateway, getVcs(), f, 1, 1);
m = createSelectionModel(this, f, 1, 1);
m.selectRevisions(first, second);
dm = m.getDifferenceModel();
}