mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
wrap vfile writes in tests into write action
This commit is contained in:
@@ -18,7 +18,6 @@ import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.newvfs.NewVirtualFile;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
@@ -300,10 +299,10 @@ public abstract class BaseCompilerTestCase extends ModuleTestCase {
|
||||
changeFile(file, null);
|
||||
}
|
||||
|
||||
protected void changeFile(VirtualFile file, final String newText) {
|
||||
protected void changeFile(final VirtualFile file, @Nullable final String newText) {
|
||||
try {
|
||||
if (newText != null) {
|
||||
VfsUtil.saveText(file, newText);
|
||||
setFileText(file, newText);
|
||||
}
|
||||
((NewVirtualFile)file).setTimeStamp(file.getTimeStamp() + 10);
|
||||
}
|
||||
|
||||
@@ -23,10 +23,14 @@ import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.command.undo.UndoManager;
|
||||
import com.intellij.openapi.editor.*;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
import com.intellij.openapi.editor.LogicalPosition;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorActionHandler;
|
||||
import com.intellij.openapi.editor.actionSystem.EditorActionManager;
|
||||
import com.intellij.openapi.editor.actionSystem.TypedAction;
|
||||
@@ -159,7 +163,7 @@ public abstract class CodeInsightTestCase extends PsiTestCase {
|
||||
return configureByText(fileType, text, null);
|
||||
}
|
||||
|
||||
protected PsiFile configureByText(@NotNull final FileType fileType, @NonNls @NotNull String text, @Nullable String _extension) {
|
||||
protected PsiFile configureByText(@NotNull final FileType fileType, @NonNls @NotNull final String text, @Nullable String _extension) {
|
||||
try {
|
||||
final String extension = _extension == null ? fileType.getDefaultExtension():_extension;
|
||||
|
||||
@@ -169,15 +173,19 @@ public abstract class CodeInsightTestCase extends PsiTestCase {
|
||||
if (fileTypeManager.getFileTypeByExtension(extension) != fileType) {
|
||||
new WriteCommandAction(getProject()) {
|
||||
@Override
|
||||
protected void run(Result result) throws Exception {
|
||||
protected void run(@NotNull Result result) throws Exception {
|
||||
fileTypeManager.associateExtension(fileType, extension);
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
final VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(tempFile);
|
||||
assert vFile != null;
|
||||
vFile.setCharset(CharsetToolkit.UTF8_CHARSET);
|
||||
VfsUtil.saveText(vFile, text);
|
||||
new WriteAction() {
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
vFile.setCharset(CharsetToolkit.UTF8_CHARSET);
|
||||
VfsUtil.saveText(vFile, text);
|
||||
}
|
||||
}.execute();
|
||||
|
||||
final VirtualFile vdir = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(dir);
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.intellij.util.Consumer;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.concurrency.Semaphore;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.junit.Assert;
|
||||
|
||||
@@ -120,26 +121,26 @@ public class CompilerTester {
|
||||
return path.findFileByRelativePath(className.replace('.', '/') + ".class");
|
||||
}
|
||||
|
||||
public void touch(VirtualFile file) throws IOException {
|
||||
file.setBinaryContent(file.contentsToByteArray(), -1, file.getTimeStamp() + 1);
|
||||
File ioFile = VfsUtil.virtualToIoFile(file);
|
||||
assert ioFile.setLastModified(ioFile.lastModified() - 100000);
|
||||
file.refresh(false, false);
|
||||
public void touch(final VirtualFile file) throws IOException {
|
||||
new WriteAction() {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
file.setBinaryContent(file.contentsToByteArray(), -1, file.getTimeStamp() + 1);
|
||||
File ioFile = VfsUtil.virtualToIoFile(file);
|
||||
assert ioFile.setLastModified(ioFile.lastModified() - 100000);
|
||||
file.refresh(false, false);
|
||||
}
|
||||
}.execute().throwException();
|
||||
}
|
||||
|
||||
public void setFileText(final PsiFile file, final String text) throws IOException {
|
||||
UIUtil.invokeAndWaitIfNeeded(new Runnable() {
|
||||
new WriteAction() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
final VirtualFile virtualFile = file.getVirtualFile();
|
||||
VfsUtil.saveText(ObjectUtils.assertNotNull(virtualFile), text);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
final VirtualFile virtualFile = file.getVirtualFile();
|
||||
VfsUtil.saveText(ObjectUtils.assertNotNull(virtualFile), text);
|
||||
}
|
||||
});
|
||||
}.execute().throwException();
|
||||
touch(file.getVirtualFile());
|
||||
}
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ import com.intellij.openapi.util.EmptyRunnable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.io.FileUtilRt;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.impl.local.LocalFileSystemImpl;
|
||||
import com.intellij.openapi.vfs.newvfs.impl.VirtualDirectoryImpl;
|
||||
@@ -892,4 +893,24 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro
|
||||
}
|
||||
}.execute().throwException();
|
||||
}
|
||||
|
||||
public static void setFileText(@NotNull final VirtualFile file, @NotNull final String text) throws IOException {
|
||||
new WriteAction() {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
VfsUtil.saveText(file, text);
|
||||
}
|
||||
}.execute().throwException();
|
||||
}
|
||||
|
||||
public static void setBinaryContent(final VirtualFile file, final byte[] content) {
|
||||
new WriteAction() {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
file.setBinaryContent(content);
|
||||
}
|
||||
}.execute().throwException();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.intellij.openapi.vcs.changes.*;
|
||||
import com.intellij.openapi.vcs.impl.ProjectLevelVcsManagerImpl;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
import com.intellij.testFramework.builders.EmptyModuleFixtureBuilder;
|
||||
import com.intellij.testFramework.fixtures.IdeaProjectTestFixture;
|
||||
@@ -327,4 +328,12 @@ public abstract class AbstractVcsTestCase {
|
||||
return annotation;
|
||||
}
|
||||
|
||||
public void setFileText(@NotNull final VirtualFile file, @NotNull final String text) throws IOException {
|
||||
PlatformTestCase.setFileText(file, text);
|
||||
}
|
||||
|
||||
public static void setBinaryContent(final VirtualFile file, final byte[] content) {
|
||||
PlatformTestCase.setBinaryContent(file, content);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user