diff --git a/plugins/git4idea/testData/widgetTree/MultipleFreshRepos b/plugins/git4idea/testData/widgetTree/MultipleFreshRepos new file mode 100644 index 000000000000..8732aebf4454 --- /dev/null +++ b/plugins/git4idea/testData/widgetTree/MultipleFreshRepos @@ -0,0 +1,9 @@ +-Update Project... +-Commit… +-Push… +------ +-New Branch… +-Checkout Tag or Revision… +------ +-bro-repo +-project \ No newline at end of file diff --git a/plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync b/plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync new file mode 100644 index 000000000000..b127833c32b3 --- /dev/null +++ b/plugins/git4idea/testData/widgetTree/MultipleFreshReposNoSync @@ -0,0 +1,12 @@ +-Update Project... +-Commit… +-Push… +------ +-New Branch… +-Checkout Tag or Revision… +------ +-bro-repo +-project +------ +-Local Branches in project + master [icons/currentBranchFavoriteLabel.svg] \ No newline at end of file diff --git a/plugins/git4idea/testData/widgetTree/SingleFreshRepo b/plugins/git4idea/testData/widgetTree/SingleFreshRepo new file mode 100644 index 000000000000..a952f6fae3a9 --- /dev/null +++ b/plugins/git4idea/testData/widgetTree/SingleFreshRepo @@ -0,0 +1,9 @@ +-Update Project... +-Commit… +-Push… +------ +-New Branch… +-Checkout Tag or Revision… +------ +-Local + master [icons/currentBranchFavoriteLabel.svg] \ No newline at end of file diff --git a/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt b/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt index 9621dab81a54..4583357cdf94 100644 --- a/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt +++ b/plugins/git4idea/tests/git4idea/branch/GitWidgetTreeStructureTest.kt @@ -8,10 +8,12 @@ import com.intellij.openapi.vcs.Executor.cd import com.intellij.testFramework.PlatformTestUtil import com.intellij.testFramework.TestDataPath import com.intellij.testFramework.assertions.Assertions +import com.intellij.testFramework.utils.io.deleteRecursively import com.intellij.ui.SeparatorWithText import com.intellij.ui.tree.TreeTestUtil import com.intellij.ui.treeStructure.Tree import com.intellij.vcs.git.shared.repo.GitRepositoriesFrontendHolder +import git4idea.GitUtil import git4idea.config.GitVcsSettings import git4idea.repo.GitRepository import git4idea.test.* @@ -178,6 +180,30 @@ class GitWidgetTreeStructureTest : GitPlatformTest() { compareWithSnapshot(buildTestTree("group")) } + fun testSingleFreshRepo() { + resetToFreshState(repo) + compareWithSnapshot(buildTestTree()) + } + + fun testMultipleFreshRepos() { + resetToFreshState(repo) + registerBroRepo().also { resetToFreshState(it) } + compareWithSnapshot(buildTestTree()) + } + + fun testMultipleFreshReposNoSync() { + settings.syncSetting = DvcsSyncSettings.Value.DONT_SYNC + + resetToFreshState(repo) + registerBroRepo().also { resetToFreshState(it) } + compareWithSnapshot(buildTestTree()) + } + + private fun resetToFreshState(repo: GitRepository) { + repo.root.toNioPath().resolve(GitUtil.DOT_GIT).deleteRecursively() + repo.git("init") + } + private fun createRefs(repo: GitRepository, ensureTags: Boolean = false) { listOf("test", "group/test", "another/group/test").forEach { repo.branch(it)