From 5a51a1b2b572aaf101faf935a04e50953d7db1f2 Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Thu, 20 Jun 2019 15:15:11 +0300 Subject: [PATCH] hg: test fixed - perform copy command using CopyFilesOrDirectoriesHandler instead if VirtualFile copy * when Copy Dir action from project view or sm similar performed -> CopyFilesOrDirectoriesHandler called, so use the same in test cases; * CopyFilesOrDirectoriesHandler produces one directoryCreated event and one per file fileCopied event (for each directory child), while VF copy produces one fileCopied event for entire dir; GitOrigin-RevId: beb2ba132e58254708aef6d020652bbfea80dc6d --- .../testSrc/org/zmlx/hg4idea/test/HgCopyTest.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgCopyTest.java b/plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgCopyTest.java index dd203de32b08..3eed51963551 100644 --- a/plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgCopyTest.java +++ b/plugins/hg4idea/testSrc/org/zmlx/hg4idea/test/HgCopyTest.java @@ -12,11 +12,17 @@ // limitations under the License. package org.zmlx.hg4idea.test; +import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.vcs.VcsTestUtil; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.PsiDirectory; +import com.intellij.psi.PsiManager; +import com.intellij.refactoring.copy.CopyFilesOrDirectoriesHandler; +import org.jetbrains.annotations.NotNull; import org.junit.Test; import java.io.File; +import java.io.IOException; public class HgCopyTest extends HgSingleUserTest { @@ -59,8 +65,15 @@ public class HgCopyTest extends HgSingleUserTest { VirtualFile parent = createDirInCommand(myWorkingCopyDir, "com"); createFileInCommand(parent, "a.txt", "new file content"); runHgOnProjectRepo("commit", "-m", "added file"); - copyFileInCommand(parent, "org"); + copyDir(parent, "org"); verify(runHgOnProjectRepo("status"), HgTestOutputParser.added("org", "a.txt")); } + + private void copyDir(@NotNull VirtualFile vDir, @NotNull String newName) throws IOException { + WriteCommandAction.writeCommandAction(myProject).run(() -> { + PsiDirectory psiDirectory = PsiManager.getInstance(myProject).findDirectory(vDir); + CopyFilesOrDirectoriesHandler.copyToDirectory(psiDirectory, newName, psiDirectory.getParentDirectory()); + }); + } }