mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
no write action by default in tests
This commit is contained in:
@@ -364,10 +364,6 @@ public abstract class BaseCompilerTestCase extends ModuleTestCase {
|
||||
}.execute().getResultObject();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected static void assertOutput(Module module, TestFileSystemBuilder item) {
|
||||
assertOutput(module, item, false);
|
||||
|
||||
@@ -180,13 +180,8 @@ public class JavaExternalDocumentationTest extends PlatformTestCase {
|
||||
finally {
|
||||
EditorFactory.getInstance().releaseEditor(editor);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private static class MockDocumentationComponent extends DocumentationComponent {
|
||||
private String myText;
|
||||
|
||||
|
||||
+3
-1
@@ -16,6 +16,7 @@
|
||||
package com.intellij.codeInsight.actions;
|
||||
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
@@ -23,6 +24,7 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.module.StdModuleTypes;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDirectory;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
@@ -263,7 +265,7 @@ public abstract class AbstractLayoutCodeProcessorTest extends PsiTestCase {
|
||||
PsiDirectory dir = createDirectory(getTempRootDirectory().getVirtualFile(), newModuleName);
|
||||
String path = dir.getVirtualFile().getPath() + "/" + newModuleName + ".iml";
|
||||
|
||||
Module module = ModuleManager.getInstance(getProject()).newModule(path, StdModuleTypes.JAVA.getId());
|
||||
Module module = ApplicationManager.getApplication().runWriteAction((Computable<Module>)() -> ModuleManager.getInstance(getProject()).newModule(path, StdModuleTypes.JAVA.getId()));
|
||||
PsiDirectory src = createDirectory(dir.getVirtualFile(), "src");
|
||||
|
||||
PsiTestUtil.addSourceRoot(module, src.getVirtualFile());
|
||||
|
||||
+1
-2
@@ -107,7 +107,6 @@ import com.intellij.openapi.util.ProperTextRange;
|
||||
import com.intellij.openapi.util.Segment;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.profile.codeInspection.InspectionProfileManager;
|
||||
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
|
||||
@@ -1420,7 +1419,7 @@ public class DaemonRespondToChangesTest extends DaemonAnalyzerTestCase {
|
||||
@Override
|
||||
protected void run(@NotNull Result<OpenFileDescriptor> result) throws Throwable {
|
||||
VirtualFile alienFile = alienRoot.createChildData(this, "X.java");
|
||||
VfsUtil.saveText(alienFile, "class Alien { }");
|
||||
setFileText(alienFile, "class Alien { }");
|
||||
OpenFileDescriptor alienDescriptor = new OpenFileDescriptor(alienProject, alienFile);
|
||||
result.setResult(alienDescriptor);
|
||||
}
|
||||
|
||||
@@ -388,9 +388,4 @@ public class JavaDocInfoGeneratorTest extends CodeInsightTestCase {
|
||||
return html == null ? null : StringUtil.convertLineSeparators(html.trim()).replaceAll("<base href=\"[^\"]*\">",
|
||||
"<base href=\"placeholder\">");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -89,11 +89,6 @@ public class GlobalInspectionContextTest extends CodeInsightTestCase {
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTestDataPath() {
|
||||
return JavaTestUtil.getJavaTestDataPath() + "/inspection/globalContext/";
|
||||
|
||||
@@ -44,8 +44,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
import static java.util.Collections.singletonList;
|
||||
|
||||
@PlatformTestCase.WrapInCommand
|
||||
public class DirectoryIndexTest extends IdeaTestCase {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.DirectoryIndexTest");
|
||||
@@ -68,11 +66,6 @@ public class DirectoryIndexTest extends IdeaTestCase {
|
||||
private VirtualFile myExcludedLibSrcDir, myExcludedLibClsDir;
|
||||
private ProjectFileIndex myFileIndex;
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
@@ -149,7 +142,8 @@ public class DirectoryIndexTest extends IdeaTestCase {
|
||||
PsiTestUtil.addSourceRoot(myModule, myTestResDir, JavaResourceRootType.TEST_RESOURCE);
|
||||
|
||||
ModuleRootModificationUtil.addModuleLibrary(myModule, "lib.js",
|
||||
singletonList(myFileLibCls.getUrl()), singletonList(myFileLibSrc.getUrl()));
|
||||
Collections.singletonList(myFileLibCls.getUrl()), Collections
|
||||
.singletonList(myFileLibSrc.getUrl()));
|
||||
PsiTestUtil.addExcludedRoot(myModule, myExcludedLibClsDir);
|
||||
PsiTestUtil.addExcludedRoot(myModule, myExcludedLibSrcDir);
|
||||
}
|
||||
@@ -163,7 +157,7 @@ public class DirectoryIndexTest extends IdeaTestCase {
|
||||
PsiTestUtil.addSourceRoot(myModule2, mySrcDir2);
|
||||
PsiTestUtil.addExcludedRoot(myModule2, myExcludeDir);
|
||||
ModuleRootModificationUtil.addModuleLibrary(myModule2, "lib",
|
||||
singletonList(myLibClsDir.getUrl()), singletonList(myLibSrcDir.getUrl()),
|
||||
Collections.singletonList(myLibClsDir.getUrl()), Collections.singletonList(myLibSrcDir.getUrl()),
|
||||
Arrays.asList(myExcludedLibClsDir.getUrl(), myExcludedLibSrcDir.getUrl()), DependencyScope.COMPILE, true);
|
||||
}
|
||||
|
||||
@@ -815,7 +809,7 @@ public class DirectoryIndexTest extends IdeaTestCase {
|
||||
public void testFileLibraryInsideFolderLibrary() throws IOException {
|
||||
VirtualFile file = createChildData(myLibSrcDir, "empty.txt");
|
||||
ModuleRootModificationUtil.addModuleLibrary(myModule2, "lib2",
|
||||
Collections.<String>emptyList(), singletonList(file.getUrl()),
|
||||
Collections.<String>emptyList(), Collections.singletonList(file.getUrl()),
|
||||
Collections.<String>emptyList(), DependencyScope.COMPILE, true);
|
||||
|
||||
// same for the dir and for the file
|
||||
|
||||
@@ -85,9 +85,4 @@ public class LoadProjectTest extends PlatformTestCase {
|
||||
psiFile -> psiFile.getViewProvider().getVirtualFile().getFileSystem() instanceof LocalFileSystem &&
|
||||
psiFile.getProject() == getProject());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -227,9 +227,4 @@ public class StructureViewUpdatingTest extends TestSourceBasedTestCase {
|
||||
protected String getTestDataPath() {
|
||||
return JavaTestUtil.getJavaTestDataPath();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,9 +16,11 @@
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileEditor.impl.LoadTextUtil;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.testFramework.PsiTestCase;
|
||||
@@ -30,20 +32,36 @@ public class AddClassToFileTest extends PsiTestCase{
|
||||
VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete);
|
||||
PsiDirectory dir = myPsiManager.findDirectory(root);
|
||||
assertNotNull(dir);
|
||||
PsiFile file = dir.createFile("AAA.java");
|
||||
PsiFile file = ApplicationManager.getApplication().runWriteAction(new Computable<PsiFile>() {
|
||||
@Override
|
||||
public PsiFile compute() {
|
||||
return dir.createFile("AAA.java");
|
||||
}
|
||||
});
|
||||
PsiClass aClass = myJavaFacade.getElementFactory().createClass("AAA");
|
||||
file.add(aClass);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
file.add(aClass);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
PsiTestUtil.checkFileStructure(file);
|
||||
}
|
||||
|
||||
public void testFileModified() throws Exception {
|
||||
VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete);
|
||||
VirtualFile pkg = root.createChildDirectory(this, "foo");
|
||||
VirtualFile pkg = createChildDirectory(root, "foo");
|
||||
PsiDirectory dir = myPsiManager.findDirectory(pkg);
|
||||
assertNotNull(dir);
|
||||
String text = "package foo;\n\nclass A {}";
|
||||
PsiElement created = dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("A.java", JavaFileType.INSTANCE, text));
|
||||
PsiElement created = ApplicationManager.getApplication().runWriteAction(new Computable<PsiElement>() {
|
||||
@Override
|
||||
public PsiElement compute() {
|
||||
return dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText("A.java", JavaFileType.INSTANCE, text));
|
||||
}
|
||||
});
|
||||
VirtualFile virtualFile = created.getContainingFile().getVirtualFile();
|
||||
assertNotNull(virtualFile);
|
||||
String fileText = LoadTextUtil.loadText(virtualFile).toString();
|
||||
|
||||
@@ -1,14 +1,30 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.roots.ex.ProjectRootManagerEx;
|
||||
import com.intellij.openapi.util.EmptyRunnable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.testFramework.PlatformTestUtil;
|
||||
import com.intellij.testFramework.PsiTestCase;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
|
||||
@PlatformTestCase.WrapInCommand
|
||||
public class CodeFragmentsTest extends PsiTestCase{
|
||||
@@ -16,20 +32,32 @@ public class CodeFragmentsTest extends PsiTestCase{
|
||||
PsiCodeFragment fragment = JavaCodeFragmentFactory.getInstance(myProject).createExpressionCodeFragment("AAA.foo()", null, null, false);
|
||||
PsiClass arrayListClass = myJavaFacade.findClass("java.util.ArrayList", GlobalSearchScope.allScope(getProject()));
|
||||
PsiReference ref = fragment.findReferenceAt(0);
|
||||
ref.bindToElement(arrayListClass);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ref.bindToElement(arrayListClass);
|
||||
}
|
||||
});
|
||||
|
||||
assertEquals("ArrayList.foo()", fragment.getText());
|
||||
}
|
||||
|
||||
public void testDontLoseDocument() {
|
||||
PsiExpressionCodeFragment fragment = JavaCodeFragmentFactory.getInstance(myProject).createExpressionCodeFragment("a", null, null, true);
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(fragment);
|
||||
document.insertString(1, "b");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
assertEquals("ab", fragment.getText());
|
||||
assertEquals("ab", fragment.getExpression().getText());
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(fragment);
|
||||
document.insertString(1, "b");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
assertEquals("ab", fragment.getText());
|
||||
assertEquals("ab", fragment.getExpression().getText());
|
||||
|
||||
//noinspection UnusedAssignment
|
||||
document = null;
|
||||
}
|
||||
});
|
||||
|
||||
//noinspection UnusedAssignment
|
||||
document = null;
|
||||
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
assertEquals("ab", PsiDocumentManager.getInstance(myProject).getDocument(fragment).getText());
|
||||
@@ -40,7 +68,13 @@ public class CodeFragmentsTest extends PsiTestCase{
|
||||
VirtualFile file = fragment.getViewProvider().getVirtualFile();
|
||||
assertInstanceOf(file, LightVirtualFile.class);
|
||||
|
||||
ProjectRootManagerEx.getInstanceEx(getProject()).makeRootsChange(EmptyRunnable.getInstance(), false, true);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ProjectRootManagerEx.getInstanceEx(getProject()).makeRootsChange(EmptyRunnable.getInstance(), false, true);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
assertSame(fragment, PsiManager.getInstance(myProject).findFile(file));
|
||||
assertTrue(fragment.isValid());
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,6 +17,7 @@ package com.intellij.psi;
|
||||
|
||||
import com.intellij.core.CoreJavaFileManager;
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
@@ -186,10 +187,16 @@ public class CoreJavaFileManagerTest extends PsiTestCase {
|
||||
@NotNull
|
||||
private CoreJavaFileManager configureManager(@Language("JAVA") @NotNull String text, @NotNull String className) throws Exception {
|
||||
VirtualFile root = PsiTestUtil.createTestProjectStructure(myProject, myModule, myFilesToDelete);
|
||||
VirtualFile pkg = root.createChildDirectory(this, "foo");
|
||||
VirtualFile pkg = createChildDirectory(root, "foo");
|
||||
PsiDirectory dir = myPsiManager.findDirectory(pkg);
|
||||
assertNotNull(dir);
|
||||
dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText(className + ".java", JavaFileType.INSTANCE, text));
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
dir.add(PsiFileFactory.getInstance(getProject()).createFileFromText(className + ".java", JavaFileType.INSTANCE, text));
|
||||
}
|
||||
});
|
||||
|
||||
CoreJavaFileManager manager = new CoreJavaFileManager(myPsiManager);
|
||||
manager.addToClasspath(root);
|
||||
return manager;
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.testFramework.PsiTestCase;
|
||||
@@ -27,10 +43,22 @@ public class NormalizeDeclarationTest extends PsiTestCase{
|
||||
assertTrue(element instanceof PsiIdentifier);
|
||||
assertTrue(element.getParent() instanceof PsiVariable);
|
||||
|
||||
((PsiVariable)element.getParent()).normalizeDeclaration();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
((PsiVariable)element.getParent()).normalizeDeclaration();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
String textAfter = loadFile(getTestName(false) + "_after.java");
|
||||
PostprocessReformattingAspect.getInstance(getProject()).doPostponedFormatting();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PostprocessReformattingAspect.getInstance(getProject()).doPostponedFormatting();
|
||||
}
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
|
||||
String fileText = myFile.getText();
|
||||
|
||||
@@ -1,3 +1,18 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -39,10 +54,10 @@ public class OverlappingSourceRootsTest extends PsiTestCase {
|
||||
|
||||
myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByPath(dir.getPath().replace(File.separatorChar, '/'));
|
||||
|
||||
mySourceRoot1 = myProjectRoot.createChildDirectory(null, "root1");
|
||||
mySourceRoot2 = myProjectRoot.createChildDirectory(null, "root2");
|
||||
mySourceRoot11 = mySourceRoot1.createChildDirectory(null, "root11");
|
||||
mySourceRoot21 = mySourceRoot2.createChildDirectory(null, "root21");
|
||||
mySourceRoot1 = createChildDirectory(myProjectRoot, "root1");
|
||||
mySourceRoot2 = createChildDirectory(myProjectRoot, "root2");
|
||||
mySourceRoot11 = createChildDirectory(mySourceRoot1, "root11");
|
||||
mySourceRoot21 = createChildDirectory(mySourceRoot2, "root21");
|
||||
|
||||
PsiTestUtil.addContentRoot(myModule, myProjectRoot);
|
||||
PsiTestUtil.addSourceRoot(myModule, mySourceRoot21);
|
||||
@@ -50,10 +65,10 @@ public class OverlappingSourceRootsTest extends PsiTestCase {
|
||||
PsiTestUtil.addSourceRoot(myModule, mySourceRoot2);
|
||||
PsiTestUtil.addSourceRoot(myModule, mySourceRoot11);
|
||||
|
||||
myFile1 = mySourceRoot1.createChildData(null, "File1.java");
|
||||
myFile2 = mySourceRoot2.createChildData(null, "File2.java");
|
||||
myFile11 = mySourceRoot11.createChildData(null, "File11.java");
|
||||
myFile21 = mySourceRoot21.createChildData(null, "File21.java");
|
||||
myFile1 = createChildData(mySourceRoot1, "File1.java");
|
||||
myFile2 = createChildData(mySourceRoot2, "File2.java");
|
||||
myFile11 = createChildData(mySourceRoot11, "File11.java");
|
||||
myFile21 = createChildData(mySourceRoot21, "File21.java");
|
||||
} catch (IOException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -628,7 +628,13 @@ public class SrcRepositoryUseTest extends PsiTestCase{
|
||||
PsiClass aClass = myJavaFacade.findClass("pack.MyClass2", GlobalSearchScope.allScope(myProject));
|
||||
assertNotNull(aClass);
|
||||
|
||||
aClass.getNameIdentifier().replace(myJavaFacade.getElementFactory().createIdentifier("NewName"));
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
aClass.getNameIdentifier().replace(myJavaFacade.getElementFactory().createIdentifier("NewName"));
|
||||
}
|
||||
});
|
||||
|
||||
assertEquals("pack.NewName", aClass.getQualifiedName());
|
||||
}
|
||||
|
||||
@@ -637,13 +643,25 @@ public class SrcRepositoryUseTest extends PsiTestCase{
|
||||
assertNotNull(aClass);
|
||||
|
||||
PsiField field = aClass.getFields()[0];
|
||||
aClass.getNameIdentifier().replace(myJavaFacade.getElementFactory().createIdentifier("NewName"));
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
aClass.getNameIdentifier().replace(myJavaFacade.getElementFactory().createIdentifier("NewName"));
|
||||
}
|
||||
});
|
||||
|
||||
assertTrue(field.isValid());
|
||||
}
|
||||
|
||||
public void testModification2() throws Exception {
|
||||
PsiClass aClass = myJavaFacade.findClass("pack.MyClass2", GlobalSearchScope.allScope(myProject));
|
||||
PsiUtil.setModifierProperty(aClass, PsiModifier.FINAL, true);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PsiUtil.setModifierProperty(aClass, PsiModifier.FINAL, true);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
PsiClass aClass2 = myJavaFacade.findClass("pack.MyClass2", GlobalSearchScope.allScope(myProject));
|
||||
assertEquals(aClass, aClass2);
|
||||
@@ -656,9 +674,21 @@ public class SrcRepositoryUseTest extends PsiTestCase{
|
||||
|
||||
BlockSupport blockSupport = ServiceManager.getService(myProject, BlockSupport.class);
|
||||
final PsiFile psiFile = aClass.getContainingFile();
|
||||
blockSupport.reparseRange(psiFile, classRange.getStartOffset(), classRange.getEndOffset(), "");
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
blockSupport.reparseRange(psiFile, classRange.getStartOffset(), classRange.getEndOffset(), "");
|
||||
}
|
||||
});
|
||||
|
||||
LOG.assertTrue(!aClass.isValid());
|
||||
blockSupport.reparseRange(psiFile, classRange.getStartOffset(), classRange.getStartOffset(), text);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
blockSupport.reparseRange(psiFile, classRange.getStartOffset(), classRange.getStartOffset(), text);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
aClass = myJavaFacade.findClass("pack.MyInterface1", GlobalSearchScope.allScope(myProject));
|
||||
PsiElement[] children = aClass.getChildren();
|
||||
@@ -751,7 +781,12 @@ public class SrcRepositoryUseTest extends PsiTestCase{
|
||||
PsiMethod[] methods = nonAnonClass.getMethods();
|
||||
assertEquals(1, methods.length);
|
||||
PsiTypeElement newType = myJavaFacade.getElementFactory().createTypeElement(PsiType.FLOAT);
|
||||
methods[0].getReturnTypeElement().replace(newType);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
methods[0].getReturnTypeElement().replace(newType);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testParentIdAssertOnExternalChange() throws Exception {
|
||||
|
||||
+6
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -64,12 +64,12 @@ public class FindClassTest extends PsiTestCase {
|
||||
VirtualFile rootVFile =
|
||||
LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/'));
|
||||
|
||||
myPrjDir1 = rootVFile.createChildDirectory(null, "prj1");
|
||||
mySrcDir1 = myPrjDir1.createChildDirectory(null, "src1");
|
||||
myPrjDir1 = createChildDirectory(rootVFile, "prj1");
|
||||
mySrcDir1 = createChildDirectory(myPrjDir1, "src1");
|
||||
|
||||
myPackDir = mySrcDir1.createChildDirectory(null, "p");
|
||||
VirtualFile file1 = myPackDir.createChildData(null, "A.java");
|
||||
VfsUtil.saveText(file1, "package p; public class A{ public void foo(); }");
|
||||
myPackDir = createChildDirectory(mySrcDir1, "p");
|
||||
VirtualFile file1 = createChildData(myPackDir, "A.java");
|
||||
setFileText(file1, "package p; public class A{ public void foo(); }");
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
|
||||
PsiTestUtil.addContentRoot(myModule, myPrjDir1);
|
||||
|
||||
+10
-10
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,7 +21,6 @@ import com.intellij.ide.todo.TodoConfiguration;
|
||||
import com.intellij.ide.todo.TodoIndexPatternProvider;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -70,14 +69,14 @@ public class IdCacheTest extends CodeInsightTestCase{
|
||||
}
|
||||
|
||||
public void testUpdateCache1() throws Exception {
|
||||
myRootDir.createChildData(null, "4.java");
|
||||
createChildData(myRootDir, "4.java");
|
||||
Thread.sleep(1000);
|
||||
checkCache(CacheManager.SERVICE.getInstance(myProject), TodoCacheManager.SERVICE.getInstance(myProject));
|
||||
}
|
||||
|
||||
public void testUpdateCache2() throws Exception {
|
||||
VirtualFile child = myRootDir.findChild("1.java");
|
||||
VfsUtil.saveText(child, "xxx");
|
||||
setFileText(child, "xxx");
|
||||
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
@@ -100,7 +99,7 @@ public class IdCacheTest extends CodeInsightTestCase{
|
||||
|
||||
public void testUpdateCache3() throws Exception {
|
||||
VirtualFile child = myRootDir.findChild("1.java");
|
||||
child.delete(null);
|
||||
delete(child);
|
||||
|
||||
final CacheManager cache2 = CacheManager.SERVICE.getInstance(myProject);
|
||||
final TodoCacheManager todocache2 = TodoCacheManager.SERVICE.getInstance(myProject);
|
||||
@@ -118,7 +117,7 @@ public class IdCacheTest extends CodeInsightTestCase{
|
||||
}
|
||||
|
||||
public void testUpdateCacheNoTodo() throws Exception {
|
||||
myRootDir.createChildData(null, "4.java");
|
||||
createChildData(myRootDir, "4.java");
|
||||
final GlobalSearchScope scope = GlobalSearchScope.projectScope(myProject);
|
||||
final CacheManager cache = CacheManager.SERVICE.getInstance(myProject);
|
||||
checkResult(new String[]{"1.java", "2.java"}, convert(cache.getFilesWithWord("b", UsageSearchContext.ANY, scope, false)));
|
||||
@@ -150,7 +149,8 @@ public class IdCacheTest extends CodeInsightTestCase{
|
||||
|
||||
checkCache(cache, todocache);
|
||||
|
||||
VfsUtil.saveText(child, "xxx");
|
||||
setFileText(child, "xxx");
|
||||
setFileText(child, "xxx");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
final GlobalSearchScope scope = GlobalSearchScope.projectScope(myProject);
|
||||
@@ -173,7 +173,7 @@ public class IdCacheTest extends CodeInsightTestCase{
|
||||
checkCache(cache, todocache);
|
||||
|
||||
VirtualFile child = myRootDir.findChild("1.java");
|
||||
child.delete(null);
|
||||
delete(child);
|
||||
|
||||
final GlobalSearchScope scope = GlobalSearchScope.projectScope(myProject);
|
||||
checkResult(new String[]{}, convert(cache.getFilesWithWord("xxx", UsageSearchContext.ANY, scope, false)));
|
||||
@@ -193,8 +193,8 @@ public class IdCacheTest extends CodeInsightTestCase{
|
||||
final TodoCacheManager todocache = TodoCacheManager.SERVICE.getInstance(myProject);
|
||||
checkCache(cache, todocache);
|
||||
|
||||
VirtualFile child = myRootDir.createChildData(null, "4.java");
|
||||
VfsUtil.saveText(child, "xxx //todo");
|
||||
VirtualFile child = createChildData(myRootDir, "4.java");
|
||||
setFileText(child, "xxx //todo");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
final GlobalSearchScope scope = GlobalSearchScope.projectScope(myProject);
|
||||
|
||||
Vendored
+8
-8
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,7 +19,6 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
@@ -47,14 +46,15 @@ public class SameSourceRootInTwoModulesTest extends PsiTestCase {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
VirtualFile rootVFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/'));
|
||||
VirtualFile rootVFile =
|
||||
LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/'));
|
||||
|
||||
myPrjDir1 = rootVFile.createChildDirectory(null, "prj1");
|
||||
mySrcDir1 = myPrjDir1.createChildDirectory(null, "src1");
|
||||
myPrjDir1 = createChildDirectory(rootVFile, "prj1");
|
||||
mySrcDir1 = createChildDirectory(myPrjDir1, "src1");
|
||||
|
||||
myPackDir = mySrcDir1.createChildDirectory(null, "p");
|
||||
VirtualFile file1 = myPackDir.createChildData(null, "A.java");
|
||||
VfsUtil.saveText(file1, "package p; public class A{ public void foo(); }");
|
||||
myPackDir = createChildDirectory(mySrcDir1, "p");
|
||||
VirtualFile file1 = createChildData(myPackDir, "A.java");
|
||||
setFileText(file1, "package p; public class A{ public void foo(); }");
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
|
||||
PsiTestUtil.addContentRoot(myModule, myPrjDir1);
|
||||
|
||||
Vendored
+6
-18
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,10 +15,8 @@
|
||||
*/
|
||||
package com.intellij.psi.impl.cache.impl;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
@@ -40,21 +38,11 @@ public class SourceRootAddedAsLibraryRootTest extends PsiTestCase {
|
||||
super.setUp();
|
||||
|
||||
final File root = createTempDirectory();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
VirtualFile rootVFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/'));
|
||||
VirtualFile rootVFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(root.getAbsolutePath().replace(File.separatorChar, '/'));
|
||||
|
||||
myDir = rootVFile.createChildDirectory(null, "contentAndLibrary");
|
||||
myDir = createChildDirectory(rootVFile, "contentAndLibrary");
|
||||
|
||||
PsiTestUtil.addSourceRoot(myModule, myDir);
|
||||
}
|
||||
catch (IOException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
PsiTestUtil.addSourceRoot(myModule, myDir);
|
||||
}
|
||||
|
||||
private void changeRoots() {
|
||||
@@ -69,8 +57,8 @@ public class SourceRootAddedAsLibraryRootTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
private void touchFileSync() throws IOException {
|
||||
myVFile = myDir.createChildData(null, "A.java");
|
||||
VfsUtil.saveText(myVFile, "package p; public class A{ public void foo(); }");
|
||||
myVFile = createChildData(myDir, "A.java");
|
||||
setFileText(myVFile, "package p; public class A{ public void foo(); }");
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileTypes.FileTypeManager;
|
||||
import com.intellij.openapi.fileTypes.ex.FileTypeManagerEx;
|
||||
import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.PsiTreeChangeEventImpl;
|
||||
@@ -62,30 +62,26 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
VirtualFile rootVFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(root);
|
||||
VirtualFile rootVFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(root);
|
||||
|
||||
myPrjDir1 = rootVFile.createChildDirectory(null, "prj1");
|
||||
mySrcDir1 = myPrjDir1.createChildDirectory(null, "src1");
|
||||
mySrcDir2 = myPrjDir1.createChildDirectory(null, "src2");
|
||||
myPrjDir1 = createChildDirectory(rootVFile, "prj1");
|
||||
mySrcDir1 = createChildDirectory(myPrjDir1, "src1");
|
||||
mySrcDir2 = createChildDirectory(myPrjDir1, "src2");
|
||||
|
||||
myPrjDir2 = rootVFile.createChildDirectory(null, "prj2");
|
||||
mySrcDir3 = myPrjDir2;
|
||||
myPrjDir2 = createChildDirectory(rootVFile, "prj2");
|
||||
mySrcDir3 = myPrjDir2;
|
||||
|
||||
|
||||
myClsDir1 = myPrjDir1.createChildDirectory(null, "cls1");
|
||||
myClsDir1 = createChildDirectory(myPrjDir1, "cls1");
|
||||
|
||||
myIgnoredDir = mySrcDir1.createChildDirectory(null, "CVS");
|
||||
myIgnoredDir = createChildDirectory(mySrcDir1, "CVS");
|
||||
|
||||
PsiTestUtil.addContentRoot(myModule, myPrjDir1);
|
||||
PsiTestUtil.addSourceRoot(myModule, mySrcDir1);
|
||||
PsiTestUtil.addSourceRoot(myModule, mySrcDir2);
|
||||
PsiTestUtil.addContentRoot(myModule, myPrjDir2);
|
||||
ModuleRootModificationUtil.addModuleLibrary(myModule, myClsDir1.getUrl());
|
||||
PsiTestUtil.addSourceRoot(myModule, mySrcDir3);
|
||||
} catch (IOException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
PsiTestUtil.addContentRoot(myModule, myPrjDir1);
|
||||
PsiTestUtil.addSourceRoot(myModule, mySrcDir1);
|
||||
PsiTestUtil.addSourceRoot(myModule, mySrcDir2);
|
||||
PsiTestUtil.addContentRoot(myModule, myPrjDir2);
|
||||
ModuleRootModificationUtil.addModuleLibrary(myModule, myClsDir1.getUrl());
|
||||
PsiTestUtil.addSourceRoot(myModule, mySrcDir3);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -96,7 +92,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
PsiDirectory psiDir = fileManager.findDirectory(myPrjDir1);
|
||||
myPrjDir1.createChildData(null, "a.txt");
|
||||
createChildData(myPrjDir1, "a.txt");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -111,7 +107,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
PsiDirectory psiDir = fileManager.findDirectory(myPrjDir1);
|
||||
myPrjDir1.createChildDirectory(null, "aaa");
|
||||
createChildDirectory(myPrjDir1, "aaa");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -121,7 +117,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testDeleteFile() throws Exception {
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
PsiFile psiFile = fileManager.findFile(file);//it's important to hold the reference
|
||||
@@ -129,7 +125,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.delete(null);
|
||||
delete(file);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -139,7 +135,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testDeleteDirectory() throws Exception {
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "aaa");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "aaa");
|
||||
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file);
|
||||
@@ -147,7 +143,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.delete(null);
|
||||
delete(file);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -158,7 +154,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameFile() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
PsiDirectory directory = fileManager.findDirectory(myPrjDir1);
|
||||
@@ -167,7 +163,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "b.txt");
|
||||
rename(file, "b.txt");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -178,7 +174,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameFileWithoutDir() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
@@ -206,7 +202,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "b.txt");
|
||||
rename(file, "b.txt");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -217,13 +213,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameFileChangingExtension() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "b.xml");
|
||||
rename(file, "b.xml");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -234,13 +230,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameFileToIgnored() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "CVS");
|
||||
rename(file, "CVS");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -252,13 +248,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameFileFromIgnored() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "CVS");
|
||||
VirtualFile file = createChildData(myPrjDir1, "CVS");
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file.getParent());
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "aaa.txt");
|
||||
rename(file, "aaa.txt");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -269,13 +265,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameDirectory_WithPsiDir() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "dir1");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "dir1");
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "dir2");
|
||||
rename(file, "dir2");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -286,7 +282,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameDirectory_WithoutPsiDir() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "dir1");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "dir1");
|
||||
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
|
||||
@@ -295,7 +291,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "dir2");
|
||||
rename(file, "dir2");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -306,13 +302,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameDirectoryToIgnored() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "dir1");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "dir1");
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "CVS");
|
||||
rename(file, "CVS");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -324,13 +320,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testRenameDirectoryFromIgnored() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "CVS");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "CVS");
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file.getParent());
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.rename(null, "dir");
|
||||
rename(file, "dir");
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -341,13 +337,20 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testMakeFileReadOnly() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
final EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(file, true);
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(file, true);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
final String expected =
|
||||
"beforePropertyChange writable\n" +
|
||||
@@ -360,18 +363,24 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
}.assertCompleted(listener.getEventsString());
|
||||
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(file, false);
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(file, false);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testMoveFile() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, myPrjDir1.getParent());
|
||||
move(file, myPrjDir1.getParent());
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -382,13 +391,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testMoveFileToIgnoredDir() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, myIgnoredDir);
|
||||
move(file, myIgnoredDir);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -399,12 +408,12 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testMoveFileFromIgnoredDir() throws Exception {
|
||||
VirtualFile file = myIgnoredDir.createChildData(null, "a.txt");
|
||||
VirtualFile file = createChildData(myIgnoredDir, "a.txt");
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, myPrjDir1);
|
||||
move(file, myPrjDir1);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -414,13 +423,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testMoveFileInsideIgnoredDir() throws Exception {
|
||||
VirtualFile file = myIgnoredDir.createChildData(null, "a.txt");
|
||||
VirtualFile subdir = myIgnoredDir.createChildDirectory(null, "subdir");
|
||||
VirtualFile file = createChildData(myIgnoredDir, "a.txt");
|
||||
VirtualFile subdir = createChildDirectory(myIgnoredDir, "subdir");
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, subdir);
|
||||
move(file, subdir);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected = "";
|
||||
@@ -429,13 +438,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testMoveDirectory() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "dir");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "dir");
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, myPrjDir1.getParent());
|
||||
move(file, myPrjDir1.getParent());
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -446,13 +455,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testMoveDirectoryToIgnored() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildDirectory(null, "dir");
|
||||
VirtualFile file = createChildDirectory(myPrjDir1, "dir");
|
||||
PsiDirectory psiDirectory = fileManager.findDirectory(file);
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, myIgnoredDir);
|
||||
move(file, myIgnoredDir);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -463,12 +472,12 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testMoveDirectoryFromIgnored() throws Exception {
|
||||
VirtualFile file = myIgnoredDir.createChildDirectory(null, "dir");
|
||||
VirtualFile file = createChildDirectory(myIgnoredDir, "dir");
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, myPrjDir1);
|
||||
move(file, myPrjDir1);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected =
|
||||
@@ -478,13 +487,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testMoveDirectoryInsideIgnored() throws Exception {
|
||||
VirtualFile file = myIgnoredDir.createChildDirectory(null, "dir");
|
||||
VirtualFile subdir = myIgnoredDir.createChildDirectory(null, "subdir");
|
||||
VirtualFile file = createChildDirectory(myIgnoredDir, "dir");
|
||||
VirtualFile subdir = createChildDirectory(myIgnoredDir, "subdir");
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
file.move(null, subdir);
|
||||
move(file, subdir);
|
||||
|
||||
String string = listener.getEventsString();
|
||||
String expected = "";
|
||||
@@ -493,8 +502,8 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
|
||||
public void testChangeFile() throws Exception {
|
||||
FileManager fileManager = myPsiManager.getFileManager();
|
||||
VirtualFile file = myPrjDir1.createChildData(null, "a.txt");
|
||||
VfsUtil.saveText(file, "aaa");
|
||||
VirtualFile file = createChildData(myPrjDir1, "a.txt");
|
||||
setFileText(file, "aaa");
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
PsiFile psiFile = fileManager.findFile(file);
|
||||
psiFile.getText();
|
||||
@@ -502,7 +511,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
|
||||
VfsUtil.saveText(file, "bbb");
|
||||
setFileText(file, "bbb");
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
|
||||
/*
|
||||
@@ -520,7 +529,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testAddExcludeRoot() throws IOException {
|
||||
final VirtualFile dir = myPrjDir1.createChildDirectory(null, "aaa");
|
||||
final VirtualFile dir = createChildDirectory(myPrjDir1, "aaa");
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
@@ -536,7 +545,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
|
||||
public void testAddSourceRoot() throws IOException {
|
||||
final VirtualFile dir = myPrjDir1.createChildDirectory(null, "aaa");
|
||||
final VirtualFile dir = createChildDirectory(myPrjDir1, "aaa");
|
||||
|
||||
EventsTestListener listener = new EventsTestListener();
|
||||
myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
@@ -579,7 +588,7 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
}
|
||||
};
|
||||
getPsiManager().addPsiTreeChangeListener(listener,getTestRootDisposable());
|
||||
virtualFile.rename(this, "b.xml");
|
||||
rename(virtualFile, "b.xml");
|
||||
}
|
||||
|
||||
String newText;
|
||||
@@ -698,10 +707,22 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
this.newText = newText;
|
||||
original = getFile().getText();
|
||||
Document document = PsiDocumentManager.getInstance(getProject()).getDocument(getFile());
|
||||
document.setText(newText);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.setText(newText);
|
||||
}
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
|
||||
document.setText(original);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.setText(original);
|
||||
}
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
}
|
||||
finally {
|
||||
@@ -783,7 +804,13 @@ public class PsiEventsTest extends PsiTestCase {
|
||||
Document document = documentManager.getDocument(getFile());
|
||||
assertTrue(documentManager.isCommitted(document));
|
||||
|
||||
document.setText("");
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.setText("");
|
||||
}
|
||||
});
|
||||
|
||||
documentManager.commitAllDocuments();
|
||||
assertTrue(documentManager.isCommitted(document));
|
||||
}
|
||||
|
||||
+142
-76
@@ -21,6 +21,7 @@ import com.intellij.ide.highlighter.HtmlFileType;
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.ide.highlighter.XmlFileType;
|
||||
import com.intellij.lang.FileASTNode;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
@@ -35,7 +36,6 @@ import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.util.Segment;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.PostprocessReformattingAspect;
|
||||
@@ -58,7 +58,10 @@ import org.junit.Assert;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.ref.SoftReference;
|
||||
import java.util.*;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@PlatformTestCase.WrapInCommand
|
||||
@@ -83,7 +86,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
|
||||
int offset = aClass.getTextOffset();
|
||||
document.insertString(offset, "/**/");
|
||||
insertString(document, offset, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
@@ -92,6 +95,15 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
assertTrue(element.isValid());
|
||||
}
|
||||
|
||||
private static void insertString(Document document, int offset, String s) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.insertString(offset, s);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// This test is unfair. If pointer would be asked for getElement() between commits it'll never restore again anyway.
|
||||
//
|
||||
public void testChangeInDocumentTwice() {
|
||||
@@ -102,9 +114,9 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
|
||||
int offset = aClass.getTextOffset();
|
||||
document.insertString(offset, "/*");
|
||||
insertString(document, offset, "/*");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
document.insertString(offset + 2, "*/");
|
||||
insertString(document, offset + 2, "*/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
@@ -121,10 +133,10 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
|
||||
int offset = aClass.getTextOffset();
|
||||
document.insertString(offset, "/**/");
|
||||
insertString(document, offset, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
document.insertString(offset, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
insertString(document, offset, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
assertNotNull(element);
|
||||
@@ -140,11 +152,11 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
|
||||
int offset = aClass.getTextOffset();
|
||||
document.insertString(offset, "/******/");
|
||||
insertString(document, offset, "/******/");
|
||||
|
||||
pointer.getElement();
|
||||
|
||||
document.insertString(offset, "/**/");
|
||||
insertString(document, offset, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
@@ -154,28 +166,33 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
}
|
||||
|
||||
public void testRetrieveOnUncommittedDocument() {
|
||||
PsiClass aClass = myJavaFacade.findClass("AClass",GlobalSearchScope.allScope(getProject()));
|
||||
assertNotNull(aClass);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PsiClass aClass = myJavaFacade.findClass("AClass", GlobalSearchScope.allScope(getProject()));
|
||||
assertNotNull(aClass);
|
||||
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
document.insertString(0, "/******/");
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
document.insertString(0, "/******/");
|
||||
|
||||
SmartPointerEx pointer = (SmartPointerEx)createPointer(aClass.getNameIdentifier());
|
||||
SmartPointerEx pointer = (SmartPointerEx)createPointer(aClass.getNameIdentifier());
|
||||
|
||||
//noinspection UnusedAssignment
|
||||
aClass = null;
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
assertNull(pointer.getCachedElement());
|
||||
//noinspection UnusedAssignment
|
||||
aClass = null;
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
assertNull(pointer.getCachedElement());
|
||||
|
||||
assertNotNull(pointer.getElement());
|
||||
assertNotNull(pointer.getElement());
|
||||
|
||||
document.insertString(0, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
document.insertString(0, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
assertNotNull(element);
|
||||
assertTrue(element.getParent() instanceof PsiClass);
|
||||
assertTrue(element.isValid());
|
||||
PsiElement element = pointer.getElement();
|
||||
assertNotNull(element);
|
||||
assertTrue(element.getParent() instanceof PsiClass);
|
||||
assertTrue(element.isValid());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testNoAstLoadingWithoutDocumentChanges() {
|
||||
@@ -206,7 +223,13 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
assertEquals(myFile.getFirstChild(), pointer.getElement());
|
||||
|
||||
Document document = myFile.getViewProvider().getDocument();
|
||||
document.deleteString(0, document.getTextLength());
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.deleteString(0, document.getTextLength());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
assertEquals(myFile.getFirstChild(), pointer.getElement());
|
||||
@@ -224,7 +247,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
Document document = PsiDocumentManager.getInstance(myProject).getDocument(aClass.getContainingFile());
|
||||
|
||||
int offset = aClass.getTextOffset();
|
||||
document.insertString(offset, "/**/");
|
||||
insertString(document, offset, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
@@ -241,7 +264,13 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
createPointer(aClass.getNameIdentifier());
|
||||
final PsiComment javadoc =
|
||||
JavaPsiFacade.getInstance(aClass.getProject()).getElementFactory().createCommentFromText("/** javadoc */", aClass);
|
||||
aClass.getParent().addBefore(javadoc, aClass);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
aClass.getParent().addBefore(javadoc, aClass);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
final PsiIdentifier elt = pointer.getElement();
|
||||
assertNotNull(elt);
|
||||
@@ -259,8 +288,8 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
Document testDocument = PsiDocumentManager.getInstance(myProject).getDocument(typeElement.getContainingFile());
|
||||
assertNotSame(aClassDocument, testDocument);
|
||||
|
||||
aClassDocument.insertString(aClass.getTextOffset(), "/**/");
|
||||
testDocument.insertString(typeElement.getTextOffset(), "/**/");
|
||||
insertString(aClassDocument, aClass.getTextOffset(), "/**/");
|
||||
insertString(testDocument, typeElement.getTextOffset(), "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = typePointer.getElement();
|
||||
@@ -291,7 +320,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
EditorEventMulticaster multicaster = EditorFactory.getInstance().getEventMulticaster();
|
||||
multicaster.addDocumentListener(listener);
|
||||
try {
|
||||
document.insertString(offset, "/******/");
|
||||
insertString(document, offset, "/******/");
|
||||
}
|
||||
finally {
|
||||
multicaster.removeDocumentListener(listener);
|
||||
@@ -299,7 +328,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
|
||||
pointer[0].getElement();
|
||||
|
||||
document.insertString(0, "/**/");
|
||||
insertString(document, 0, "/**/");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiElement element = pointer[0].getElement();
|
||||
@@ -328,12 +357,12 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
assertNull(psiFile);
|
||||
*/
|
||||
|
||||
document.insertString(0, "class Foo{}\n");
|
||||
insertString(document, 0, "class Foo{}\n");
|
||||
|
||||
PsiElement element = pointer.getElement();
|
||||
assertEquals(aClass, element);
|
||||
|
||||
document.insertString(0, "/**/");
|
||||
insertString(document, 0, "/**/");
|
||||
psiDocumentManager.commitAllDocuments();
|
||||
|
||||
if (aClass.isValid()) {
|
||||
@@ -351,8 +380,8 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
}
|
||||
|
||||
public void testReplaceFile() throws IOException {
|
||||
VirtualFile vfile = myRoot.createChildData(this, "X.java");
|
||||
VfsUtil.saveText(vfile, "public class X { public int X; }");
|
||||
VirtualFile vfile = createChildData(myRoot, "X.java");
|
||||
setFileText(vfile, "public class X { public int X; }");
|
||||
|
||||
PsiClass aClass = myJavaFacade.findClass("X", GlobalSearchScope.allScope(getProject()));
|
||||
assertNotNull(aClass);
|
||||
@@ -379,8 +408,8 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
}
|
||||
|
||||
public void testCreatePointerDoesNotLoadPsiTree() throws IOException {
|
||||
VirtualFile vfile = myRoot.createChildData(this, "X.java");
|
||||
VfsUtil.saveText(vfile, "public class X { public int X; }");
|
||||
VirtualFile vfile = createChildData(myRoot, "X.java");
|
||||
setFileText(vfile, "public class X { public int X; }");
|
||||
|
||||
PsiClass aClass = myJavaFacade.findClass("X", GlobalSearchScope.allScope(getProject()));
|
||||
assertNotNull(aClass);
|
||||
@@ -401,7 +430,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
|
||||
PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myProject);
|
||||
Document document = documentManager.getDocument(file);
|
||||
document.insertString(0, "/** asdasd */");
|
||||
insertString(document, 0, "/** asdasd */");
|
||||
documentManager.commitAllDocuments();
|
||||
|
||||
// loaded tree
|
||||
@@ -515,10 +544,10 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
}
|
||||
|
||||
public void testSmartPointersSurvivePsiFileUnload() throws IOException {
|
||||
final VirtualFile vfile = myRoot.createChildData(this, "X.txt");
|
||||
final VirtualFile vfile = createChildData(myRoot, "X.txt");
|
||||
String xxx = "xxx";
|
||||
String text = xxx + " " + xxx + " " + xxx;
|
||||
VfsUtil.saveText(vfile, text);
|
||||
setFileText(vfile, text);
|
||||
PsiFile psiFile = PsiManager.getInstance(getProject()).findFile(vfile);
|
||||
assertTrue(String.valueOf(psiFile), psiFile instanceof PsiPlainTextFile);
|
||||
SmartPointerManagerImpl manager = getPointerManager();
|
||||
@@ -538,7 +567,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
FileDocumentManager.getInstance().getDocument(vfile).insertString(0, " ");
|
||||
insertString(FileDocumentManager.getInstance().getDocument(vfile), 0, " ");
|
||||
}
|
||||
});
|
||||
assertEquals(range1.shiftRight(1), pointer1.getRange());
|
||||
@@ -568,7 +597,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
final SmartPsiElementPointer<XmlTag> selectPointer = createPointer(select);
|
||||
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), () -> {
|
||||
getEditor().getDocument().insertString(getEditor().getCaretModel().getOffset(), "<a></a>");
|
||||
insertString(getEditor().getDocument(), getEditor().getCaretModel().getOffset(), "<a></a>");
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
@@ -601,8 +630,8 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), () -> {
|
||||
int offset = getEditor().getCaretModel().getOffset();
|
||||
getEditor().getDocument().insertString(offset, " <ul class=\"nav navbar-nav navbar-right\">\n" +
|
||||
" </ul>\n");
|
||||
insertString(getEditor().getDocument(), offset, " <ul class=\"nav navbar-nav navbar-right\">\n" +
|
||||
" </ul>\n");
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
@@ -623,7 +652,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
getEditor().getDocument().insertString(0, "import java.util.Map;\n");
|
||||
insertString(getEditor().getDocument(), 0, "import java.util.Map;\n");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -677,13 +706,18 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
final Document document = file.getViewProvider().getDocument();
|
||||
assertNotNull(document);
|
||||
|
||||
PlatformTestUtil.startPerformanceTest("smart pointer range update", 10000, () -> {
|
||||
for (int i = 0; i < 10000; i++) {
|
||||
document.insertString(i * 20 + 100, "x\n");
|
||||
assertFalse(PsiDocumentManager.getInstance(myProject).isCommitted(document));
|
||||
assertEquals(range, pointer.getRange());
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PlatformTestUtil.startPerformanceTest("smart pointer range update", 10000, () -> {
|
||||
for (int i = 0; i < 10000; i++) {
|
||||
document.insertString(i * 20 + 100, "x\n");
|
||||
assertFalse(PsiDocumentManager.getInstance(myProject).isCommitted(document));
|
||||
assertEquals(range, pointer.getRange());
|
||||
}
|
||||
}).cpuBound().useLegacyScaling().assertTiming();
|
||||
}
|
||||
}).cpuBound().useLegacyScaling().assertTiming();
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
assertEquals(range, pointer.getRange());
|
||||
@@ -697,8 +731,14 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
SmartPsiFileRange range1 = getPointerManager().createSmartPsiFileRangePointer(myFile, TextRange.create(0, 2));
|
||||
SmartPsiFileRange range2 = getPointerManager().createSmartPsiFileRangePointer(myFile, TextRange.create(1, 3));
|
||||
|
||||
document.deleteString(0, 1);
|
||||
document.deleteString(1, 2);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.deleteString(0, 1);
|
||||
document.deleteString(1, 2);
|
||||
}
|
||||
});
|
||||
|
||||
assertEquals(TextRange.create(0, 1), range1.getRange());
|
||||
assertEquals(TextRange.create(0, 1), range2.getRange());
|
||||
|
||||
@@ -706,7 +746,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
assertEquals(TextRange.create(0, 1), range1.getRange());
|
||||
assertEquals(TextRange.create(0, 1), range2.getRange());
|
||||
|
||||
document.insertString(0, "a");
|
||||
insertString(document, 0, "a");
|
||||
assertEquals(TextRange.create(1, 2), range1.getRange());
|
||||
assertEquals(TextRange.create(1, 2), range2.getRange());
|
||||
|
||||
@@ -731,10 +771,12 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
assertNull(((SmartPointerEx) pointer2).getCachedElement());
|
||||
|
||||
TextRange range = file.getClasses()[1].getTextRange();
|
||||
document.moveText(range.getStartOffset(), range.getEndOffset(), 0);
|
||||
|
||||
System.out.println(pointer1.getRange());
|
||||
System.out.println(pointer2.getRange());
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.moveText(range.getStartOffset(), range.getEndOffset(), 0);
|
||||
}
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
@@ -746,7 +788,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
PsiJavaFile file = (PsiJavaFile)myJavaFacade.findClass("AClass", GlobalSearchScope.allScope(getProject())).getContainingFile().copy();
|
||||
SmartPsiFileRange pointer = getPointerManager().createSmartPsiFileRangePointer(file, TextRange.create(1, 2));
|
||||
|
||||
file.getViewProvider().getDocument().insertString(0, " ");
|
||||
insertString(file.getViewProvider().getDocument(), 0, " ");
|
||||
|
||||
assertEquals(TextRange.create(2, 3), pointer.getRange());
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
@@ -762,8 +804,14 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
TextRange originalRange = method.getTextRange();
|
||||
SmartPsiElementPointer pointer = createPointer(method);
|
||||
|
||||
EditorModificationUtil.insertStringAtCaret(myEditor, " void m() {\n" +
|
||||
" }\n");
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
EditorModificationUtil.insertStringAtCaret(myEditor, " void m() {\n" +
|
||||
" }\n");
|
||||
}
|
||||
});
|
||||
|
||||
PsiDocumentManager.getInstance(myProject).commitDocument(myEditor.getDocument());
|
||||
PsiElement element = pointer.getElement();
|
||||
assertNotNull(element);
|
||||
@@ -779,7 +827,13 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
assertNull(((SmartPointerEx) pointer).getCachedElement());
|
||||
|
||||
file.getClasses()[1].delete();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
file.getClasses()[1].delete();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
assertNotNull(pointer.getElement());
|
||||
}
|
||||
@@ -825,7 +879,14 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
assertNull(pointer.getCachedElement());
|
||||
|
||||
ref = PsiTreeUtil.findElementOfClassAtOffset(file, file.getText().indexOf("Bar"), PsiJavaCodeReferenceElement.class, false);
|
||||
ref.handleElementRename("BarImpl");
|
||||
final PsiJavaCodeReferenceElement finalRef = ref;
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
finalRef.handleElementRename("BarImpl");
|
||||
}
|
||||
});
|
||||
|
||||
assertNotNull(pointer.getElement());
|
||||
}
|
||||
|
||||
@@ -843,7 +904,7 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
PlatformTestUtil.tryGcSoftlyReachableObjects();
|
||||
assertNull(((SmartPointerEx) pointer).getCachedElement());
|
||||
|
||||
file.getViewProvider().getDocument().insertString(0, " ");
|
||||
insertString(file.getViewProvider().getDocument(), 0, " ");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
assertNotNull(pointer.getElement());
|
||||
@@ -855,19 +916,24 @@ public class SmartPsiElementPointersTest extends CodeInsightTestCase {
|
||||
List<XmlTag> tags = ContainerUtil.newArrayList(PsiTreeUtil.findChildrenOfType(file.getDocument(), XmlTag.class));
|
||||
List<SmartPsiElementPointer> pointers = tags.stream().map(this::createPointer).collect(Collectors.toList());
|
||||
Random random = new Random();
|
||||
PlatformTestUtil.startPerformanceTest("smart pointer range update after PSI change", 21000, () -> {
|
||||
for (int i = 0; i < tags.size(); i++) {
|
||||
XmlTag tag = tags.get(i);
|
||||
SmartPsiElementPointer pointer = pointers.get(i);
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getRange()).getLength());
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getPsiRange()).getLength());
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
PlatformTestUtil.startPerformanceTest("smart pointer range update after PSI change", 21000, () -> {
|
||||
for (int i = 0; i < tags.size(); i++) {
|
||||
XmlTag tag = tags.get(i);
|
||||
SmartPsiElementPointer pointer = pointers.get(i);
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getRange()).getLength());
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getPsiRange()).getLength());
|
||||
|
||||
tag.setName("bar" + random.nextInt(20));
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getRange()).getLength());
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getPsiRange()).getLength());
|
||||
tag.setName("bar" + random.nextInt(20));
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getRange()).getLength());
|
||||
assertEquals(tag.getName().length(), TextRange.create(pointer.getPsiRange()).getLength());
|
||||
}
|
||||
PostprocessReformattingAspect.getInstance(myProject).doPostponedFormatting();
|
||||
}).cpuBound().useLegacyScaling().assertTiming();
|
||||
}
|
||||
PostprocessReformattingAspect.getInstance(myProject).doPostponedFormatting();
|
||||
}).cpuBound().useLegacyScaling().assertTiming();
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+24
-13
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.intellij.psi.impl.source.tree.java;
|
||||
|
||||
import com.intellij.codeInsight.CodeInsightTestCase;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ex.PathManagerEx;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
@@ -60,12 +61,17 @@ public class BindToElementTest extends CodeInsightTestCase {
|
||||
final PsiJavaCodeReferenceElement referenceElement = PsiTreeUtil.getParentOfType(element, PsiJavaCodeReferenceElement.class);
|
||||
final PsiClass aClassA = JavaPsiFacade.getInstance(myProject).findClass("p2.A", GlobalSearchScope.moduleScope(myModule));
|
||||
assertNotNull(aClassA);
|
||||
try {
|
||||
referenceElement.bindToElement(aClassA);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
referenceElement.bindToElement(aClassA);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -80,12 +86,17 @@ public class BindToElementTest extends CodeInsightTestCase {
|
||||
assertNotNull(aClassA);
|
||||
final PsiElementFactory factory = myJavaFacade.getElementFactory();
|
||||
final PsiClassType type = factory.createType(aClassA);
|
||||
try {
|
||||
typeElement.replace(factory.createTypeElement(type));
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
typeElement.replace(factory.createTypeElement(type));
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,6 +19,8 @@ import com.intellij.JavaTestUtil;
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.ide.impl.ProjectUtil;
|
||||
import com.intellij.ide.todo.TodoConfiguration;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
@@ -29,7 +31,6 @@ import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.ex.ProjectRootManagerEx;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.JavaPsiFacadeEx;
|
||||
@@ -88,7 +89,14 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
PsiDirectory root = ProjectRootUtil.getAllContentRoots(myProject) [0];
|
||||
|
||||
PsiFile file = PsiFileFactory.getInstance(myProject).createFileFromText("New.java", JavaFileType.INSTANCE, "class A{ Object o;}");
|
||||
file = (PsiFile)root.add(file);
|
||||
final PsiFile finalFile = file;
|
||||
file = new WriteAction<PsiFile>() {
|
||||
@Override
|
||||
protected void run(Result<PsiFile> result) throws Throwable {
|
||||
PsiFile res = (PsiFile)root.add(finalFile);
|
||||
result.setResult(res);
|
||||
}
|
||||
}.execute().throwException().getResultObject();
|
||||
assertNotNull(file);
|
||||
|
||||
PsiClass objectClass = myJavaFacade.findClass(CommonClassNames.JAVA_LANG_OBJECT, GlobalSearchScope.allScope(getProject()));
|
||||
@@ -115,7 +123,7 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
|
||||
VirtualFile file = root.findChild("1.java");
|
||||
assertNotNull(file);
|
||||
file.delete(null);
|
||||
delete(file);
|
||||
|
||||
PsiClass stringClass = myJavaFacade.findClass("java.lang.String", GlobalSearchScope.allScope(getProject()));
|
||||
assertNotNull(stringClass);
|
||||
@@ -127,7 +135,7 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
|
||||
VirtualFile file = root.findChild("1.java");
|
||||
assertNotNull(file);
|
||||
VfsUtil.saveText(file, "class A{ Object o;}");
|
||||
setFileText(file, "class A{ Object o;}");
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
|
||||
PsiClass objectClass = myJavaFacade.findClass(CommonClassNames.JAVA_LANG_OBJECT, GlobalSearchScope.allScope(getProject()));
|
||||
@@ -135,11 +143,6 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
checkUsages(objectClass, new String[]{"1.java"});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return !getTestName(false).equals("ExternalFileModificationWhileProjectClosed");
|
||||
}
|
||||
|
||||
public void testExternalFileModificationWhileProjectClosed() throws Exception {
|
||||
VirtualFile root = ProjectRootManager.getInstance(myProject).getContentRoots()[0];
|
||||
|
||||
@@ -207,7 +210,7 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
|
||||
VirtualFile file = root.findChild("aDir");
|
||||
assertNotNull(file);
|
||||
file.delete(null);
|
||||
delete(file);
|
||||
|
||||
PsiClass threadClass = myJavaFacade.findClass("java.lang.Thread", GlobalSearchScope.allScope(getProject()));
|
||||
assertNotNull(threadClass);
|
||||
@@ -242,8 +245,8 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
new WriteCommandAction.Simple(getProject()) {
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
VirtualFile newFile = dir.createChildData(null, "New.java");
|
||||
VfsUtil.saveText(newFile, "class A{ Exception e;} //todo");
|
||||
VirtualFile newFile = createChildData(dir, "New.java");
|
||||
setFileText(newFile, "class A{ Exception e;} //todo");
|
||||
}
|
||||
}.execute().throwException();
|
||||
|
||||
@@ -270,8 +273,8 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
new WriteCommandAction.Simple(getProject()) {
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
VirtualFile newFile = dir.createChildData(null, "New.java");
|
||||
VfsUtil.saveText(newFile, "class A{ Exception e;} //todo");
|
||||
VirtualFile newFile = createChildData(dir, "New.java");
|
||||
setFileText(newFile, "class A{ Exception e;} //todo");
|
||||
}
|
||||
}.execute().throwException();
|
||||
|
||||
@@ -297,8 +300,8 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
protected void run() throws Throwable {
|
||||
PsiTestUtil.addContentRoot(myModule, root);
|
||||
|
||||
VirtualFile newFile = root.createChildData(null, "New.java");
|
||||
VfsUtil.saveText(newFile, "class A{ Exception e;} //todo");
|
||||
VirtualFile newFile = createChildData(root, "New.java");
|
||||
setFileText(newFile, "class A{ Exception e;} //todo");
|
||||
}
|
||||
}.execute().throwException();
|
||||
|
||||
@@ -322,8 +325,8 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
new WriteCommandAction.Simple(getProject()) {
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
VirtualFile newFile = root.createChildData(null, "New.java");
|
||||
VfsUtil.saveText(newFile, "class A{ Exception e;} //todo");
|
||||
VirtualFile newFile = createChildData(root, "New.java");
|
||||
setFileText(newFile, "class A{ Exception e;} //todo");
|
||||
}
|
||||
}.execute().throwException();
|
||||
|
||||
@@ -354,8 +357,8 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
protected void run() throws Throwable {
|
||||
PsiTestUtil.addSourceRoot(myModule, root);
|
||||
|
||||
VirtualFile newFile = root.createChildData(null, "New.java");
|
||||
VfsUtil.saveText(newFile, "class A{ Exception e;} //todo");
|
||||
VirtualFile newFile = createChildData(root, "New.java");
|
||||
setFileText(newFile, "class A{ Exception e;} //todo");
|
||||
}
|
||||
}.execute().throwException();
|
||||
|
||||
@@ -389,8 +392,8 @@ public class UpdateCacheTest extends PsiTestCase {
|
||||
new WriteCommandAction.Simple(getProject()) {
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
VirtualFile newFile = root.createChildData(null, "New.java");
|
||||
VfsUtil.saveText(newFile, "class A{ Exception e;} //todo");
|
||||
VirtualFile newFile = createChildData(root, "New.java");
|
||||
setFileText(newFile, "class A{ Exception e;} //todo");
|
||||
}
|
||||
}.execute().throwException();
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,6 +17,7 @@ package com.intellij.refactoring;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.CodeInsightTestCase;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
@@ -114,11 +115,23 @@ public class CopyClassTest extends CodeInsightTestCase {
|
||||
}
|
||||
|
||||
final VirtualFile targetVDir = rootDir.findChild("p2");
|
||||
CopyClassesHandler.doCopyClasses(map, null, myPsiManager.findDirectory(targetVDir), myProject);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
CopyClassesHandler.doCopyClasses(map, null, myPsiManager.findDirectory(targetVDir), myProject);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
String rootAfter = root + "/after";
|
||||
VirtualFile rootDir2 = LocalFileSystem.getInstance().findFileByPath(rootAfter.replace(File.separatorChar, '/'));
|
||||
myProject.getComponent(PostprocessReformattingAspect.class).doPostponedFormatting();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myProject.getComponent(PostprocessReformattingAspect.class).doPostponedFormatting();
|
||||
}
|
||||
});
|
||||
|
||||
PlatformTestUtil.assertDirectoriesEqual(rootDir2, rootDir);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,8 +18,4 @@ package com.intellij.refactoring;
|
||||
import com.intellij.codeInsight.CodeInsightTestCase;
|
||||
|
||||
public abstract class RefactoringTestCase extends CodeInsightTestCase {
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,18 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.roots;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -10,6 +25,7 @@ import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.testFramework.IdeaTestCase;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -56,39 +72,39 @@ public class ManagingContentRootFoldersTest extends IdeaTestCase {
|
||||
}
|
||||
|
||||
public void testCreationOfSourceFolderWithFile() throws IOException {
|
||||
VirtualFile dir = root.createChildDirectory(null, "src");
|
||||
VirtualFile dir = createSrc();
|
||||
String url = dir.getUrl();
|
||||
|
||||
ContentFolder f = entry.addSourceFolder(dir, false);
|
||||
assertEquals(dir, f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
|
||||
dir.delete(null);
|
||||
delete(dir);
|
||||
assertNull(f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
|
||||
dir = root.createChildDirectory(null, "src");
|
||||
dir = createSrc();
|
||||
assertEquals(dir, f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
}
|
||||
|
||||
|
||||
public void testCreationOfSourceFolderWithUrl() throws IOException {
|
||||
VirtualFile dir = root.createChildDirectory(null, "src");
|
||||
VirtualFile dir = createSrc();
|
||||
String url = dir.getUrl();
|
||||
dir.delete(null);
|
||||
delete(dir);
|
||||
|
||||
ContentFolder f = entry.addSourceFolder(url, false);
|
||||
assertNull(f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
|
||||
dir = root.createChildDirectory(null, "src");
|
||||
dir = createSrc();
|
||||
assertEquals(dir, f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
}
|
||||
|
||||
public void testCreationOfSourceFolderWithUrlWhenFileExists() throws IOException {
|
||||
VirtualFile dir = root.createChildDirectory(null, "src");
|
||||
VirtualFile dir = createSrc();
|
||||
String url = dir.getUrl();
|
||||
|
||||
ContentFolder f = entry.addSourceFolder(url, false);
|
||||
@@ -97,38 +113,43 @@ public class ManagingContentRootFoldersTest extends IdeaTestCase {
|
||||
}
|
||||
|
||||
public void testCreationOfExcludedFolderWithFile() throws IOException {
|
||||
VirtualFile dir = root.createChildDirectory(null, "src");
|
||||
VirtualFile dir = createSrc();
|
||||
String url = dir.getUrl();
|
||||
|
||||
ContentFolder f = entry.addExcludeFolder(dir);
|
||||
assertEquals(dir, f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
|
||||
dir.delete(null);
|
||||
delete(dir);
|
||||
assertNull(f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
|
||||
dir = root.createChildDirectory(null, "src");
|
||||
dir = createSrc();
|
||||
assertEquals(dir, f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private VirtualFile createSrc() throws IOException {
|
||||
return createChildDirectory(root, "src");
|
||||
}
|
||||
|
||||
public void testCreationOfExcludedFolderWithUrl() throws IOException {
|
||||
VirtualFile dir = root.createChildDirectory(null, "src");
|
||||
VirtualFile dir = createSrc();
|
||||
String url = dir.getUrl();
|
||||
dir.delete(null);
|
||||
delete(dir);
|
||||
|
||||
ContentFolder f = entry.addExcludeFolder(url);
|
||||
assertNull(f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
|
||||
dir = root.createChildDirectory(null, "src");
|
||||
dir = createSrc();
|
||||
assertEquals(dir, f.getFile());
|
||||
assertEquals(url, f.getUrl());
|
||||
}
|
||||
|
||||
public void testCreationOfExcludedFolderWithUrlWhenFileExists() throws IOException {
|
||||
VirtualFile dir = root.createChildDirectory(null, "src");
|
||||
VirtualFile dir = createSrc();
|
||||
String url = dir.getUrl();
|
||||
|
||||
ContentFolder f = entry.addExcludeFolder(url);
|
||||
|
||||
@@ -43,7 +43,7 @@ public class ManagingContentRootsTest extends IdeaTestCase {
|
||||
}
|
||||
|
||||
public void testCreationOfContentRootWithFile() throws IOException {
|
||||
VirtualFile root = dir.createChildDirectory(null, "root");
|
||||
VirtualFile root = createChildDirectory(dir, "root");
|
||||
String url = root.getUrl();
|
||||
|
||||
PsiTestUtil.addContentRoot(myModule, root);
|
||||
@@ -51,29 +51,29 @@ public class ManagingContentRootsTest extends IdeaTestCase {
|
||||
|
||||
assertEquals(root, findContentEntry(url).getFile());
|
||||
|
||||
root.delete(null);
|
||||
delete(root);
|
||||
assertNotNull(findContentEntry(url));
|
||||
|
||||
root = dir.createChildDirectory(null, "root");
|
||||
root = createChildDirectory(dir, "root");
|
||||
assertEquals(root, findContentEntry(url).getFile());
|
||||
}
|
||||
|
||||
public void testCreationOfContentRootWithUrl() throws IOException {
|
||||
VirtualFile root = dir.createChildDirectory(null, "root");
|
||||
VirtualFile root = createChildDirectory(dir, "root");
|
||||
String url = root.getUrl();
|
||||
String path = root.getPath();
|
||||
root.delete(null);
|
||||
delete(root);
|
||||
|
||||
addContentRoot(path);
|
||||
|
||||
assertNotNull(findContentEntry(url));
|
||||
|
||||
root = dir.createChildDirectory(null, "root");
|
||||
root = createChildDirectory(dir, "root");
|
||||
assertEquals(root, findContentEntry(url).getFile());
|
||||
}
|
||||
|
||||
public void testCreationOfContentRootWithUrlWhenFileExists() throws IOException {
|
||||
VirtualFile root = dir.createChildDirectory(null, "root");
|
||||
VirtualFile root = createChildDirectory(dir, "root");
|
||||
addContentRoot(root.getPath());
|
||||
assertEquals(root, findContentEntry(root.getUrl()).getFile());
|
||||
}
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.roots;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
@@ -7,6 +23,7 @@ import com.intellij.openapi.projectRoots.SdkModificator;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.vfs.JarFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.testFramework.IdeaTestUtil;
|
||||
@@ -96,16 +113,21 @@ public abstract class ModuleRootManagerTestCase extends ModuleTestCase {
|
||||
}
|
||||
|
||||
protected Library createLibrary(final String name, final @Nullable VirtualFile classesRoot, final @Nullable VirtualFile sourceRoot) {
|
||||
final Library library = LibraryTablesRegistrar.getInstance().getLibraryTable(myProject).createLibrary(name);
|
||||
final Library.ModifiableModel model = library.getModifiableModel();
|
||||
if (classesRoot != null) {
|
||||
model.addRoot(classesRoot, OrderRootType.CLASSES);
|
||||
}
|
||||
if (sourceRoot != null) {
|
||||
model.addRoot(sourceRoot, OrderRootType.SOURCES);
|
||||
}
|
||||
model.commit();
|
||||
return library;
|
||||
return ApplicationManager.getApplication().runWriteAction(new Computable<Library>() {
|
||||
@Override
|
||||
public Library compute() {
|
||||
final Library library = LibraryTablesRegistrar.getInstance().getLibraryTable(myProject).createLibrary(name);
|
||||
final Library.ModifiableModel model = library.getModifiableModel();
|
||||
if (classesRoot != null) {
|
||||
model.addRoot(classesRoot, OrderRootType.CLASSES);
|
||||
}
|
||||
if (sourceRoot != null) {
|
||||
model.addRoot(sourceRoot, OrderRootType.SOURCES);
|
||||
}
|
||||
model.commit();
|
||||
return library;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected Library createJDomLibrary() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +20,10 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.StdModuleTypes;
|
||||
import com.intellij.openapi.module.impl.ModuleEx;
|
||||
import com.intellij.openapi.module.impl.scopes.LibraryScope;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.DependencyScope;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.ModuleRootModificationUtil;
|
||||
import com.intellij.openapi.roots.OrderEnumerator;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -139,7 +142,7 @@ public class ModuleScopesTest extends ModuleTestCase {
|
||||
|
||||
VirtualFile root = myFixture.findOrCreateDir("c");
|
||||
PsiTestUtil.addSourceContentToRoots(c, root);
|
||||
VirtualFile file = root.createChildData(this, "x.txt");
|
||||
VirtualFile file = createChildData(root, "x.txt");
|
||||
|
||||
GlobalSearchScope deps = m.getModuleWithDependentsScope();
|
||||
assertTrue(deps.contains(file));
|
||||
@@ -164,7 +167,7 @@ public class ModuleScopesTest extends ModuleTestCase {
|
||||
PsiTestUtil.addSourceContentToRoots(b, bRoot);
|
||||
VirtualFile cRoot = myFixture.findOrCreateDir("c");
|
||||
PsiTestUtil.addSourceContentToRoots(c, cRoot);
|
||||
VirtualFile file = cRoot.createChildData(this, "x.txt");
|
||||
VirtualFile file = createChildData(cRoot, "x.txt");
|
||||
|
||||
GlobalSearchScope deps = c.getModuleContentWithDependenciesScope();
|
||||
assertTrue(deps.contains(file));
|
||||
@@ -278,7 +281,7 @@ public class ModuleScopesTest extends ModuleTestCase {
|
||||
VirtualFile lib = myFixture.findOrCreateDir("lib");
|
||||
PsiTestUtil.addContentRoot(myModule, lib);
|
||||
|
||||
VirtualFile file = lib.createChildData(this, "a.txt");
|
||||
VirtualFile file = createChildData(lib, "a.txt");
|
||||
addLibrary(myModule, DependencyScope.COMPILE);
|
||||
assertTrue(myModule.getModuleWithDependenciesAndLibrariesScope(false).contains(file));
|
||||
}
|
||||
|
||||
@@ -170,7 +170,12 @@ public class MultiModuleEditingTest extends ModuleTestCase {
|
||||
assertSame(moduleA, moduleManager.findModuleByName("a"));
|
||||
assertEquals("c", moduleModel.getNewName(moduleA));
|
||||
assertSame(moduleA, moduleModel.getModuleToBeRenamed("c"));
|
||||
moduleModel.commit();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
moduleModel.commit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
assertEquals(1, rootManagerB.getDependencies().length);
|
||||
|
||||
@@ -54,11 +54,6 @@ public class RootsChangedTest extends ModuleTestCase {
|
||||
connection.subscribe(ProjectTopics.PROJECT_ROOTS, myModuleRootListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void testEventsAfterFileModifications() throws Exception {
|
||||
File root = new File(FileUtil.getTempDirectory());
|
||||
|
||||
|
||||
@@ -1,14 +1,33 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.roots.libraries;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
import com.intellij.openapi.roots.ModuleRootManager;
|
||||
import com.intellij.openapi.roots.NativeLibraryOrderRootType;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx;
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryTableBase;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTable;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.roots.ModuleRootManagerTestCase;
|
||||
@@ -27,7 +46,12 @@ import java.util.Collections;
|
||||
public class LibraryTest extends ModuleRootManagerTestCase {
|
||||
public void testModification() throws Exception {
|
||||
final LibraryTable libraryTable = LibraryTablesRegistrar.getInstance().getLibraryTable();
|
||||
final Library library = libraryTable.createLibrary("NewLibrary");
|
||||
final Library library = ApplicationManager.getApplication().runWriteAction(new Computable<Library>() {
|
||||
@Override
|
||||
public Library compute() {
|
||||
return libraryTable.createLibrary("NewLibrary");
|
||||
}
|
||||
});
|
||||
final boolean[] listenerNotifiedOnChange = new boolean[1];
|
||||
library.getRootProvider().addRootSetChangedListener(wrapper -> listenerNotifiedOnChange[0] = true);
|
||||
final Library.ModifiableModel model1 = library.getModifiableModel();
|
||||
@@ -83,10 +107,19 @@ public class LibraryTest extends ModuleRootManagerTestCase {
|
||||
assertNull(model.getLibraryByName("a"));
|
||||
assertSame(a, table.getLibraryByName("b"));
|
||||
assertSame(a, model.getLibraryByName("b"));
|
||||
model.commit();
|
||||
commit(model);
|
||||
assertSame(a, table.getLibraryByName("b"));
|
||||
}
|
||||
|
||||
private static void commit(LibraryTable.ModifiableModel model) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
model.commit();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testFindLibraryByNameAfterChainedRename() {
|
||||
Library a = createLibrary("a", null, null);
|
||||
Library b = createLibrary("b", null, null);
|
||||
@@ -140,7 +173,13 @@ public class LibraryTest extends ModuleRootManagerTestCase {
|
||||
|
||||
public void testNativePathSerialization() {
|
||||
LibraryTable table = getLibraryTable();
|
||||
Library library = table.createLibrary("native");
|
||||
Library library = new WriteAction<Library>() {
|
||||
@Override
|
||||
protected void run(Result<Library> result) throws Throwable {
|
||||
Library res = table.createLibrary("native");
|
||||
result.setResult(res);
|
||||
}
|
||||
}.execute().throwException().getResultObject();
|
||||
Library.ModifiableModel model = library.getModifiableModel();
|
||||
model.addRoot("file://native-lib-root", NativeLibraryOrderRootType.getInstance());
|
||||
commit(model);
|
||||
@@ -160,7 +199,12 @@ public class LibraryTest extends ModuleRootManagerTestCase {
|
||||
|
||||
public void testJarDirectoriesSerialization() {
|
||||
LibraryTable table = getLibraryTable();
|
||||
Library library = table.createLibrary("jarDirs");
|
||||
Library library = ApplicationManager.getApplication().runWriteAction(new Computable<Library>() {
|
||||
@Override
|
||||
public Library compute() {
|
||||
return table.createLibrary("jarDirs");
|
||||
}
|
||||
});
|
||||
Library.ModifiableModel model = library.getModifiableModel();
|
||||
model.addJarDirectory("file://jar-dir", false, OrderRootType.CLASSES);
|
||||
model.addJarDirectory("file://jar-dir-src", false, OrderRootType.SOURCES);
|
||||
|
||||
@@ -95,11 +95,6 @@ import java.util.List;
|
||||
public abstract class DaemonAnalyzerTestCase extends CodeInsightTestCase {
|
||||
private VirtualFileFilter myVirtualFileFilter = new FileTreeAccessFilter();
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -183,8 +183,14 @@ public abstract class ProjectWizardTestCase<T extends AbstractProjectWizard> ext
|
||||
});
|
||||
}
|
||||
|
||||
protected void addSdk(Sdk sdk) {
|
||||
ProjectJdkTable.getInstance().addJdk(sdk);
|
||||
protected void addSdk(final Sdk sdk) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ProjectJdkTable.getInstance().addJdk(sdk);
|
||||
}
|
||||
});
|
||||
|
||||
mySdks.add(sdk);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -108,8 +108,4 @@ public abstract class BaseProjectViewTestCase extends TestSourceBasedTestCase {
|
||||
return PathManagerEx.getTestDataPath(getClass());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -88,9 +88,4 @@ public abstract class MultiFileTestCase extends CodeInsightTestCase {
|
||||
protected interface PerformAction {
|
||||
void performAction(VirtualFile rootDir, VirtualFile rootAfter) throws Exception;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,9 +247,4 @@ public abstract class InspectionTestCase extends PsiTestCase {
|
||||
protected String getTestDataPath() {
|
||||
return PathManagerEx.getTestDataPath() + "/inspection/";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected final boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,15 +62,11 @@ public abstract class PsiTestCase extends ModuleTestCase {
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
try {
|
||||
myPsiManager = null;
|
||||
myFile = null;
|
||||
myTestDataBefore = null;
|
||||
myTestDataAfter = null;
|
||||
}
|
||||
finally {
|
||||
super.tearDown();
|
||||
}
|
||||
myPsiManager = null;
|
||||
myFile = null;
|
||||
myTestDataBefore = null;
|
||||
myTestDataAfter = null;
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.testFramework;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ex.PathManagerEx;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
@@ -69,7 +70,14 @@ public abstract class ResolveTestCase extends PsiTestCase {
|
||||
if (existing != null) {
|
||||
myDocument = FileDocumentManager.getInstance().getDocument(existing);
|
||||
assertNotNull(myDocument);
|
||||
myDocument.setText(fileText);
|
||||
final String finalFileText = fileText;
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myDocument.setText(finalFileText);
|
||||
}
|
||||
});
|
||||
|
||||
myFile = PsiManager.getInstance(getProject()).findFile(existing);
|
||||
assertNotNull(myFile);
|
||||
assertEquals(fileText, myFile.getText());
|
||||
|
||||
@@ -40,17 +40,6 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
public class JobUtilTest extends PlatformTestCase {
|
||||
private static final AtomicInteger COUNT = new AtomicInteger();
|
||||
|
||||
//@Override
|
||||
//protected void setUp() throws Exception {
|
||||
// super.setUp();
|
||||
// ((ApplicationImpl)ApplicationManager.getApplication()).stopMeasuringWriteActionPauses(myTestRootDisposable);
|
||||
//}
|
||||
//
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void testUnbalancedTaskJobUtilPerformance() {
|
||||
List<Integer> things = new ArrayList<Integer>(Collections.<Integer>nCopies(10000, null));
|
||||
int sum = 0;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,7 +20,9 @@ package com.intellij.history.integration;
|
||||
import com.intellij.history.LocalHistory;
|
||||
import com.intellij.history.core.revisions.Revision;
|
||||
import com.intellij.history.utils.RunnableAdapter;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.vfs.JarFileSystem;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -36,20 +38,26 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
public void testProcessingCommands() throws Exception {
|
||||
final VirtualFile[] f = new VirtualFile[1];
|
||||
|
||||
CommandProcessor.getInstance().executeCommand(myProject, new RunnableAdapter() {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void doRun() throws IOException {
|
||||
f[0] = myRoot.createChildData(null, "f1.txt");
|
||||
f[0].setBinaryContent(new byte[]{1});
|
||||
f[0].setBinaryContent(new byte[]{2});
|
||||
public void run() {
|
||||
CommandProcessor.getInstance().executeCommand(myProject, new RunnableAdapter() {
|
||||
@Override
|
||||
public void doRun() throws IOException {
|
||||
f[0] = createChildData(myRoot, "f1.txt");
|
||||
f[0].setBinaryContent(new byte[]{1});
|
||||
f[0].setBinaryContent(new byte[]{2});
|
||||
}
|
||||
}, "name", null);
|
||||
}
|
||||
}, "name", null);
|
||||
});
|
||||
|
||||
|
||||
assertEquals(2, getRevisionsFor(f[0]).size());
|
||||
}
|
||||
|
||||
public void testPuttingUserLabel() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
|
||||
LocalHistory.getInstance().putUserLabel(myProject, "global");
|
||||
|
||||
@@ -67,7 +75,7 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testPuttingSystemLabel() throws IOException {
|
||||
VirtualFile f = myRoot.createChildData(null, "file.txt");
|
||||
VirtualFile f = createChildData(myRoot, "file.txt");
|
||||
|
||||
assertEquals(2, getRevisionsFor(f).size());
|
||||
assertEquals(2, getRevisionsFor(myRoot).size());
|
||||
@@ -84,7 +92,7 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testPuttingLabelWithUnsavedDocuments() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
setContent(f, "1");
|
||||
|
||||
setDocumentTextFor(f, "2");
|
||||
@@ -109,7 +117,7 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testDoNotRegisterSameUnsavedDocumentContentTwice() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
setContent(f, "1");
|
||||
|
||||
setDocumentTextFor(f, "2");
|
||||
@@ -126,8 +134,8 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testIsUnderControl() throws Exception {
|
||||
VirtualFile f1 = myRoot.createChildData(null, "file.txt");
|
||||
VirtualFile f2 = myRoot.createChildData(null, "file.hprof");
|
||||
VirtualFile f1 = createChildData(myRoot, "file.txt");
|
||||
VirtualFile f2 = createChildData(myRoot, "file.hprof");
|
||||
|
||||
assertTrue(LocalHistory.getInstance().isUnderControl(f1));
|
||||
assertFalse(LocalHistory.getInstance().isUnderControl(f2));
|
||||
@@ -135,12 +143,18 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
|
||||
public void testDoNotRegisterChangesNotInLocalFS() throws Exception {
|
||||
File f = new File(myRoot.getPath(), "f.jar");
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
JarOutputStream jar = new JarOutputStream(new FileOutputStream(f));
|
||||
|
||||
jar.putNextEntry(new JarEntry("file.txt"));
|
||||
jar.write(1);
|
||||
jar.closeEntry();
|
||||
jar.close();
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
VirtualFile vfile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(f);
|
||||
assertNotNull(vfile);
|
||||
@@ -150,15 +164,22 @@ public class BasicsTest extends IntegrationTestCase {
|
||||
|
||||
assertEquals(2, getRevisionsFor(myRoot).size());
|
||||
|
||||
jar = new JarOutputStream(new FileOutputStream(f));
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
JarOutputStream jar = new JarOutputStream(new FileOutputStream(f));
|
||||
|
||||
JarEntry e = new JarEntry("file.txt");
|
||||
e.setTime(f.lastModified() + 10000);
|
||||
jar.putNextEntry(e);
|
||||
jar.write(2);
|
||||
jar.closeEntry();
|
||||
jar.close();
|
||||
f.setLastModified(f.lastModified() + 10000);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
JarEntry e = new JarEntry("file.txt");
|
||||
e.setTime(f.lastModified() + 10000);
|
||||
jar.putNextEntry(e);
|
||||
jar.write(2);
|
||||
jar.closeEntry();
|
||||
jar.close();
|
||||
f.setLastModified(f.lastModified() + 10000);
|
||||
|
||||
LocalFileSystem.getInstance().refreshWithoutFileWatcher(false);
|
||||
JarFileSystem.getInstance().refreshWithoutFileWatcher(false);
|
||||
|
||||
+2
-2
@@ -147,7 +147,7 @@ public class ExternalChangesAndRefreshingTest extends IntegrationTestCase {
|
||||
public void testDeletionOfFilteredDirectoryExternallyDoesNotThrowExceptionDuringRefresh() throws Exception {
|
||||
int before = getRevisionsFor(myRoot).size();
|
||||
|
||||
myRoot.createChildDirectory(this, FILTERED_DIR_NAME);
|
||||
createChildDirectory(myRoot, FILTERED_DIR_NAME);
|
||||
String path = Paths.appended(myRoot.getPath(), FILTERED_DIR_NAME);
|
||||
|
||||
FileUtil.delete(new File(path));
|
||||
@@ -171,7 +171,7 @@ public class ExternalChangesAndRefreshingTest extends IntegrationTestCase {
|
||||
addExcludedDir(classesPath);
|
||||
final VirtualFile classesDir = LocalFileSystem.getInstance().findFileByPath(classesPath);
|
||||
assertNotNull(classesDir);
|
||||
classesDir.getParent().delete(this);
|
||||
delete(classesDir.getParent());
|
||||
|
||||
FileUtil.copyDir(targetDir, new File(myRoot.getPath(), "target"));
|
||||
VirtualFileManager.getInstance().syncRefresh(); // shouldn't throw
|
||||
|
||||
+27
-15
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -23,7 +23,9 @@ import com.intellij.history.core.changes.StructuralChange;
|
||||
import com.intellij.history.core.revisions.Revision;
|
||||
import com.intellij.history.core.tree.Entry;
|
||||
import com.intellij.history.utils.RunnableAdapter;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.*;
|
||||
@@ -119,10 +121,10 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createFile("file.txt");
|
||||
assertEquals(2, getRevisionsFor(f).size());
|
||||
|
||||
f.setBinaryContent(new byte[]{1});
|
||||
setBinaryContent(f,new byte[]{1});
|
||||
assertEquals(3, getRevisionsFor(f).size());
|
||||
|
||||
f.setBinaryContent(new byte[]{2});
|
||||
setBinaryContent(f,new byte[]{2});
|
||||
assertEquals(4, getRevisionsFor(f).size());
|
||||
}
|
||||
|
||||
@@ -130,7 +132,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createFile("file.txt");
|
||||
assertEquals(2, getRevisionsFor(f).size());
|
||||
|
||||
f.rename(this, "file2.txt");
|
||||
rename(f, "file2.txt");
|
||||
assertEquals(3, getRevisionsFor(f).size());
|
||||
}
|
||||
|
||||
@@ -155,7 +157,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
addFileListenerDuring(l, new RunnableAdapter() {
|
||||
@Override
|
||||
public void doRun() throws IOException {
|
||||
f.rename(this, "new.txt");
|
||||
rename(f, "new.txt");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -169,7 +171,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createFile("file.hprof");
|
||||
assertEquals(before, getRevisionsFor(myRoot).size());
|
||||
|
||||
f.rename(this, "file.txt");
|
||||
rename(f, "file.txt");
|
||||
assertEquals(before + 1, getRevisionsFor(myRoot).size());
|
||||
|
||||
assertEquals(2, getRevisionsFor(f).size());
|
||||
@@ -181,7 +183,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createFile("file.txt");
|
||||
assertEquals(before + 1, getRevisionsFor(myRoot).size());
|
||||
|
||||
f.rename(this, "file.hprof");
|
||||
rename(f, "file.hprof");
|
||||
assertEquals(before + 2, getRevisionsFor(myRoot).size());
|
||||
}
|
||||
|
||||
@@ -191,7 +193,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createFile(FILTERED_DIR_NAME);
|
||||
assertEquals(before, getRevisionsFor(myRoot).size());
|
||||
|
||||
f.rename(this, "not_filtered");
|
||||
rename(f, "not_filtered");
|
||||
assertEquals(before + 1, getRevisionsFor(myRoot).size());
|
||||
|
||||
assertEquals(2, getRevisionsFor(f).size());
|
||||
@@ -203,7 +205,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createDirectory("not_filtered");
|
||||
assertEquals(before + 1, getRevisionsFor(myRoot).size());
|
||||
|
||||
f.rename(this, FILTERED_DIR_NAME);
|
||||
rename(f, FILTERED_DIR_NAME);
|
||||
assertEquals(before + 2, getRevisionsFor(myRoot).size());
|
||||
}
|
||||
|
||||
@@ -211,10 +213,10 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
VirtualFile f = createFile("f.txt");
|
||||
assertEquals(2, getRevisionsFor(f).size());
|
||||
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(f, true);
|
||||
setReadOnlyAttribute(f, true);
|
||||
assertEquals(3, getRevisionsFor(f).size());
|
||||
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(f, false);
|
||||
setReadOnlyAttribute(f, false);
|
||||
assertEquals(4, getRevisionsFor(f).size());
|
||||
}
|
||||
|
||||
@@ -222,17 +224,27 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
int before = getRevisionsFor(myRoot).size();
|
||||
|
||||
VirtualFile f = createFile("f.hprof");
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(f, true); // shouldn't throw
|
||||
setReadOnlyAttribute(f, true);
|
||||
|
||||
assertEquals(before, getRevisionsFor(myRoot).size());
|
||||
}
|
||||
|
||||
private void setReadOnlyAttribute(VirtualFile f, boolean status) throws IOException {
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
ReadOnlyAttributeUtil.setReadOnlyAttribute(f, status); // shouldn't throw
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void testDeletion() throws Exception {
|
||||
VirtualFile f = createDirectory("f.txt");
|
||||
|
||||
int before = getRevisionsFor(myRoot).size();
|
||||
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
assertEquals(before + 1, getRevisionsFor(myRoot).size());
|
||||
}
|
||||
|
||||
@@ -240,7 +252,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
int before = getRevisionsFor(myRoot).size();
|
||||
|
||||
VirtualFile f = createDirectory(FILTERED_DIR_NAME);
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
assertEquals(before, getRevisionsFor(myRoot).size());
|
||||
}
|
||||
|
||||
@@ -259,7 +271,7 @@ public class FileListeningTest extends IntegrationTestCase {
|
||||
|
||||
final VirtualFile vDir1 = LocalFileSystem.getInstance().findFileByPath(dir1);
|
||||
assertNotNull(dir1, vDir1);
|
||||
vDir1.delete(this);
|
||||
delete(vDir1);
|
||||
|
||||
List<Change> changes = getVcs().getChangeListInTests().getChangesInTests().get(0).getChanges();
|
||||
assertEquals(1, changes.size());
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -30,7 +30,7 @@ public class GettingContentAtDateTest extends IntegrationTestCase {
|
||||
@Override
|
||||
protected void setUpInWriteAction() throws Exception {
|
||||
super.setUpInWriteAction();
|
||||
f = myRoot.createChildData(null, "f.txt");
|
||||
f = createChildData(myRoot, "f.txt");
|
||||
}
|
||||
|
||||
public void testContentAtDate() throws Exception {
|
||||
@@ -45,7 +45,7 @@ public class GettingContentAtDateTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testContentAtDateForFilteredFilesIsNull() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.class");
|
||||
VirtualFile f = createChildData(myRoot, "f.class");
|
||||
setContent(f, "1", 1111);
|
||||
|
||||
assertContentAt(1111, null);
|
||||
|
||||
+20
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,9 +16,13 @@
|
||||
|
||||
package com.intellij.history.integration;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
public class IdeaGatewayTest extends IntegrationTestCase {
|
||||
public void testFindingFile() throws Exception {
|
||||
@@ -27,14 +31,25 @@ public class IdeaGatewayTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testGettingDirectory() throws Exception {
|
||||
assertEquals(myRoot, myGateway.findOrCreateFileSafely(myRoot.getPath(), true));
|
||||
assertEquals(myRoot, findOrCreateFileSafely(myRoot.getPath()));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private VirtualFile findOrCreateFileSafely(String path) throws IOException {
|
||||
return ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<VirtualFile, IOException>() {
|
||||
@Override
|
||||
public VirtualFile compute() throws IOException {
|
||||
return myGateway.findOrCreateFileSafely(path, true);
|
||||
}
|
||||
})
|
||||
;
|
||||
}
|
||||
|
||||
public void testCreatingDirectory() throws Exception {
|
||||
String subSubDirPath = myRoot.getPath() + "/subDir/subSubDir";
|
||||
|
||||
assertFalse(new File(subSubDirPath).exists());
|
||||
VirtualFile subDir = myGateway.findOrCreateFileSafely(subSubDirPath, true);
|
||||
VirtualFile subDir = findOrCreateFileSafely(subSubDirPath);
|
||||
|
||||
assertNotNull(subDir);
|
||||
assertEquals(subSubDirPath, subDir.getPath());
|
||||
@@ -46,9 +61,9 @@ public class IdeaGatewayTest extends IntegrationTestCase {
|
||||
String subSubDirPath = myRoot.getPath() + "/subDir/subSubDir";
|
||||
|
||||
assertFalse(new File(subSubDirPath).exists());
|
||||
myRoot.createChildData(this, "subDir");
|
||||
createChildData(myRoot, "subDir");
|
||||
|
||||
VirtualFile subDir = myGateway.findOrCreateFileSafely(subSubDirPath, true);
|
||||
VirtualFile subDir = findOrCreateFileSafely(subSubDirPath);
|
||||
|
||||
assertNotNull(subDir);
|
||||
assertEquals(subSubDirPath, subDir.getPath());
|
||||
|
||||
+7
-2
@@ -114,7 +114,7 @@ public abstract class IntegrationTestCase extends PlatformTestCase {
|
||||
}
|
||||
|
||||
protected void setContent(VirtualFile f, String content, long timestamp) throws IOException {
|
||||
f.setBinaryContent(content.getBytes(CharsetToolkit.UTF8_CHARSET), -1, timestamp);
|
||||
setBinaryContent(f, content.getBytes(CharsetToolkit.UTF8_CHARSET), -1, timestamp,this);
|
||||
}
|
||||
|
||||
protected String createFileExternally(String name) throws IOException {
|
||||
@@ -144,7 +144,12 @@ public abstract class IntegrationTestCase extends PlatformTestCase {
|
||||
protected void setDocumentTextFor(VirtualFile f, String text) {
|
||||
Document document = FileDocumentManager.getInstance().getDocument(f);
|
||||
assertNotNull(f.getPath(), document);
|
||||
document.setText(text);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.setText(text);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected LocalHistoryFacade getVcs() {
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -41,7 +41,7 @@ public abstract class PatchingTestCase extends IntegrationTestCase {
|
||||
|
||||
protected void clearRoot() throws IOException {
|
||||
for (VirtualFile f : myRoot.getChildren()) {
|
||||
f.delete(null);
|
||||
delete(f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-12
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -162,7 +162,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
public void testRevisionsForFileCreatedWithSameNameAsDeletedOne() throws IOException {
|
||||
VirtualFile f = createFile("file.txt", "old");
|
||||
loadContent(f);
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
f = createFile("file.txt", "new");
|
||||
loadContent(f);
|
||||
|
||||
@@ -184,7 +184,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
|
||||
public void testRevisionForDirectoryWithTheSameNameAsDeletedOne() throws IOException {
|
||||
VirtualFile dir = createDirectory("dir");
|
||||
dir.delete(this);
|
||||
delete(dir);
|
||||
dir = createDirectory("dir");
|
||||
|
||||
List<Revision> rr = getRevisionsFor(dir);
|
||||
@@ -194,7 +194,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
public void testRevisionForRestoredDirectoryWithRestoreChildren() throws IOException {
|
||||
VirtualFile dir = createDirectory("dir");
|
||||
createFile("dir/f.txt");
|
||||
dir.delete(this);
|
||||
delete(dir);
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
dir = createDirectory("dir");
|
||||
@@ -215,11 +215,11 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
getVcs().beginChangeSet();
|
||||
VirtualFile f = createFile("f.txt");
|
||||
getVcs().endChangeSet("1");
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
f = createFile("f.txt");
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
getVcs().endChangeSet("2");
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
@@ -227,7 +227,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
getVcs().endChangeSet("3");
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
f = createFile("f.txt");
|
||||
getVcs().endChangeSet("4");
|
||||
|
||||
@@ -243,7 +243,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
public void testRevisionsForFileCreatedInPlaceOfRenamedOne() throws IOException {
|
||||
VirtualFile f = createFile("file1.txt", "content1");
|
||||
loadContent(f);
|
||||
f.rename("file1", "file2.txt");
|
||||
rename(f, "file2.txt");
|
||||
VirtualFile ff = createFile("file1.txt", "content2");
|
||||
loadContent(ff);
|
||||
|
||||
@@ -270,7 +270,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
VirtualFile dir = createDirectory("dir");
|
||||
VirtualFile f = createFile("dir/f.txt");
|
||||
getVcs().beginChangeSet();
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
|
||||
List<Revision> rr = getRevisionsFor(dir);
|
||||
assertEquals(4, rr.size());
|
||||
@@ -279,7 +279,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
public void testGettingEntryFromRevisionInRenamedDir() throws IOException {
|
||||
VirtualFile dir = createDirectory("dir");
|
||||
VirtualFile f = createFile("dir/file.txt");
|
||||
dir.rename("dir", "newDir");
|
||||
rename(dir, "newDir");
|
||||
setContent(f, "xxx");
|
||||
|
||||
List<Revision> rr = getRevisionsFor(f);
|
||||
@@ -329,7 +329,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
public void testNoDifferenceForDirectoryWithEqualContents() throws IOException {
|
||||
VirtualFile dir = createDirectory("dir");
|
||||
VirtualFile f = createFile("dir/file.txt");
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
|
||||
List<Revision> rr = getRevisionsFor(dir);
|
||||
|
||||
@@ -383,7 +383,7 @@ public class RevisionsAndDiffsTest extends IntegrationTestCase {
|
||||
public void testDoNotIncludeLabelsWhenFileDidNotExist() throws Exception {
|
||||
VirtualFile f = createFile("foo.txt");
|
||||
LocalHistory.getInstance().putSystemLabel(myProject, "1", -1);
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
LocalHistory.getInstance().putSystemLabel(myProject, "2", -1);
|
||||
f = createFile("foo.txt");
|
||||
LocalHistory.getInstance().putSystemLabel(myProject, "3", -1);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2010 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -59,7 +59,7 @@ public class VisitingTest extends IntegrationTestCase {
|
||||
VirtualFile dir = createFile("dir");
|
||||
getVcs().endChangeSet(null);
|
||||
getVcs().beginChangeSet();
|
||||
dir.rename(this, "newDir");
|
||||
rename(dir, "newDir");
|
||||
|
||||
assertVisitorLog("begin rename end begin create end begin create end finished ");
|
||||
}
|
||||
|
||||
+23
-23
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -27,7 +27,7 @@ import java.util.List;
|
||||
|
||||
public class PatchCreatorTest extends PatchingTestCase {
|
||||
public void testCreationPatch() throws Exception {
|
||||
myRoot.createChildData(null, "f.txt");
|
||||
createChildData(myRoot, "f.txt");
|
||||
|
||||
createPatchBetweenRevisions(1, 0);
|
||||
clearRoot();
|
||||
@@ -37,9 +37,9 @@ public class PatchCreatorTest extends PatchingTestCase {
|
||||
}
|
||||
|
||||
public void testPatchBetweenTwoOldRevisions() throws Exception {
|
||||
myRoot.createChildData(null, "f1.txt");
|
||||
myRoot.createChildData(null, "f2.txt");
|
||||
myRoot.createChildData(null, "f3.txt");
|
||||
createChildData(myRoot, "f1.txt");
|
||||
createChildData(myRoot, "f2.txt");
|
||||
createChildData(myRoot, "f3.txt");
|
||||
|
||||
createPatchBetweenRevisions(3, 1);
|
||||
clearRoot();
|
||||
@@ -51,13 +51,13 @@ public class PatchCreatorTest extends PatchingTestCase {
|
||||
}
|
||||
|
||||
public void testRename() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
f.setBinaryContent(new byte[]{'x'});
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
setBinaryContent(f,new byte[]{'x'});
|
||||
|
||||
f.rename(null, "ff.txt");
|
||||
rename(f, "ff.txt");
|
||||
|
||||
createPatchBetweenRevisions(1, 0);
|
||||
f.rename(null, "f.txt");
|
||||
rename(f, "f.txt");
|
||||
applyPatch();
|
||||
|
||||
VirtualFile patched = myRoot.findChild("ff.txt");
|
||||
@@ -67,7 +67,7 @@ public class PatchCreatorTest extends PatchingTestCase {
|
||||
}
|
||||
|
||||
public void testReversePatch() throws Exception {
|
||||
myRoot.createChildData(null, "f.txt");
|
||||
createChildData(myRoot, "f.txt");
|
||||
|
||||
createPatchBetweenRevisions(1, 0, true);
|
||||
applyPatch();
|
||||
@@ -76,8 +76,8 @@ public class PatchCreatorTest extends PatchingTestCase {
|
||||
}
|
||||
|
||||
public void testDirectoryCreationWithFiles() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(null, "dir");
|
||||
dir.createChildData(null, "f.txt");
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
createChildData(dir, "f.txt");
|
||||
|
||||
createPatchBetweenRevisions(2, 0, false);
|
||||
clearRoot();
|
||||
@@ -89,16 +89,16 @@ public class PatchCreatorTest extends PatchingTestCase {
|
||||
}
|
||||
|
||||
public void testDirectoryDeletionWithFiles() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(null, "dir");
|
||||
dir.createChildData(null, "f1.txt");
|
||||
dir.createChildData(null, "f2.txt");
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
createChildData(dir, "f1.txt");
|
||||
createChildData(dir, "f2.txt");
|
||||
|
||||
dir.delete(null);
|
||||
delete(dir);
|
||||
createPatchBetweenRevisions(1, 0, false);
|
||||
|
||||
dir = myRoot.createChildDirectory(null, "dir");
|
||||
dir.createChildData(null, "f1.txt");
|
||||
dir.createChildData(null, "f2.txt");
|
||||
dir = createChildDirectory(myRoot, "dir");
|
||||
createChildData(dir, "f1.txt");
|
||||
createChildData(dir, "f2.txt");
|
||||
|
||||
applyPatch();
|
||||
|
||||
@@ -108,14 +108,14 @@ public class PatchCreatorTest extends PatchingTestCase {
|
||||
}
|
||||
|
||||
public void testDirectoryRename() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(null, "dir1");
|
||||
dir.createChildData(null, "f.txt");
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir1");
|
||||
createChildData(dir, "f.txt");
|
||||
|
||||
dir.rename(null, "dir2");
|
||||
rename(dir, "dir2");
|
||||
|
||||
createPatchBetweenRevisions(1, 0);
|
||||
|
||||
dir.rename(null, "dir1");
|
||||
rename(dir, "dir1");
|
||||
|
||||
applyPatch();
|
||||
|
||||
|
||||
+72
-61
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -27,7 +27,7 @@ import java.util.List;
|
||||
|
||||
public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
public void testFileCreation() throws Exception {
|
||||
myRoot.createChildData(this, "foo.txt");
|
||||
createChildData(myRoot, "foo.txt");
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -35,9 +35,9 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testFileDeletion() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{123}, -1, 4000);
|
||||
f.delete(this);
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
setBinaryContent(f, new byte[]{123}, -1, 4000, this);
|
||||
delete(f);
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -48,12 +48,13 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testDirDeletion() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(this, "dir");
|
||||
VirtualFile subdir = dir.createChildDirectory(this, "subdir");
|
||||
VirtualFile f = subdir.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{123}, -1, 4000);
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
VirtualFile subdir = createChildDirectory(dir, "subdir");
|
||||
VirtualFile f = createChildData(subdir, "foo.txt");
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{123}, modificationStamp, 4000, this);
|
||||
|
||||
dir.delete(this);
|
||||
delete(dir);
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -66,11 +67,11 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testDeletionOfFileAndCreationOfDirAtTheSameTime() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
f.delete(this);
|
||||
myRoot.createChildDirectory(this, "foo.txt");
|
||||
delete(f);
|
||||
createChildDirectory(myRoot, "foo.txt");
|
||||
getVcs().endChangeSet(null);
|
||||
|
||||
revertLastChange();
|
||||
@@ -81,11 +82,11 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testDeletionOfDirAndCreationOfFileAtTheSameTime() throws Exception {
|
||||
VirtualFile f = myRoot.createChildDirectory(this, "foo.txt");
|
||||
VirtualFile f = createChildDirectory(myRoot, "foo.txt");
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
f.delete(this);
|
||||
myRoot.createChildData(this, "foo.txt");
|
||||
delete(f);
|
||||
createChildData(myRoot, "foo.txt");
|
||||
getVcs().endChangeSet(null);
|
||||
|
||||
revertLastChange();
|
||||
@@ -96,9 +97,10 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRename() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{123}, -1, 4000);
|
||||
f.rename(this, "bar.txt");
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{123}, modificationStamp, 4000, this);
|
||||
rename(f, "bar.txt");
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -110,13 +112,14 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testMovement() throws Exception {
|
||||
VirtualFile dir1 = myRoot.createChildDirectory(this, "dir1");
|
||||
VirtualFile dir2 = myRoot.createChildDirectory(this, "dir2");
|
||||
VirtualFile dir1 = createChildDirectory(myRoot, "dir1");
|
||||
VirtualFile dir2 = createChildDirectory(myRoot, "dir2");
|
||||
|
||||
VirtualFile f = dir1.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{123}, -1, 4000);
|
||||
VirtualFile f = createChildData(dir1, "foo.txt");
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{123}, modificationStamp, 4000, this);
|
||||
|
||||
f.move(this, dir2);
|
||||
move(f, dir2);
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -128,11 +131,12 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testParentRename() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(this, "dir");
|
||||
VirtualFile f = dir.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{123}, -1, 4000);
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
VirtualFile f = createChildData(dir, "foo.txt");
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{123}, modificationStamp, 4000, this);
|
||||
|
||||
dir.rename(this, "dir2");
|
||||
rename(dir, "dir2");
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -145,13 +149,14 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testParentAndChildRename() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(this, "dir");
|
||||
VirtualFile f = dir.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{123}, -1, 4000);
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
VirtualFile f = createChildData(dir, "foo.txt");
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{123}, modificationStamp, 4000, this);
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
dir.rename(this, "dir2");
|
||||
f.rename(this, "bar.txt");
|
||||
rename(dir, "dir2");
|
||||
rename(f, "bar.txt");
|
||||
getVcs().endChangeSet(null);
|
||||
|
||||
revertLastChange();
|
||||
@@ -167,9 +172,11 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRevertContentChange() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{1}, -1, 1000);
|
||||
f.setBinaryContent(new byte[]{2}, -1, 2000);
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
int modificationStamp1 = -1;
|
||||
setBinaryContent(f, new byte[]{1}, modificationStamp1, 1000, this);
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{2}, modificationStamp, 2000, this);
|
||||
|
||||
revertLastChange();
|
||||
|
||||
@@ -180,15 +187,17 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testContentChangeWhenDirectoryExists() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
f.setBinaryContent(new byte[]{1}, -1, 1000);
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
int modificationStamp1 = -1;
|
||||
setBinaryContent(f, new byte[]{1}, modificationStamp1, 1000, this);
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
f.rename(this, "bar.txt");
|
||||
f.setBinaryContent(new byte[]{2}, -1, 2000);
|
||||
rename(f, "bar.txt");
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{2}, modificationStamp, 2000, this);
|
||||
getVcs().endChangeSet(null);
|
||||
|
||||
myRoot.createChildDirectory(this, "foo.txt");
|
||||
createChildDirectory(myRoot, "foo.txt");
|
||||
|
||||
revertChange(1, 0, 1);
|
||||
|
||||
@@ -201,8 +210,8 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRevertingFromOldRevisionsWhenFileAlreadyDeleted() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
f.delete(this);
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
delete(f);
|
||||
|
||||
revertChange(1);
|
||||
|
||||
@@ -210,9 +219,9 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRevertingFromOldRevisionsWhenFileAlreadyExists() throws Exception {
|
||||
VirtualFile f = myRoot.createChildData(this, "foo.txt");
|
||||
f.delete(this);
|
||||
f = myRoot.createChildData(this, "foo.txt");
|
||||
VirtualFile f = createChildData(myRoot, "foo.txt");
|
||||
delete(f);
|
||||
f = createChildData(myRoot, "foo.txt");
|
||||
|
||||
revertChange(1);
|
||||
|
||||
@@ -220,12 +229,12 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRevertingRenameFromOldRevisionsWhenDirDoesNotExists() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(this, "dir");
|
||||
VirtualFile f = dir.createChildData(this, "foo.txt");
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
VirtualFile f = createChildData(dir, "foo.txt");
|
||||
|
||||
f.rename(this, "bar.txt");
|
||||
rename(f, "bar.txt");
|
||||
|
||||
dir.delete(this);
|
||||
delete(dir);
|
||||
|
||||
revertChange(1);
|
||||
|
||||
@@ -236,14 +245,14 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRevertingMoveFromOldRevisionsWhenDirDoesNotExists() throws Exception {
|
||||
VirtualFile dir1 = myRoot.createChildDirectory(this, "dir1");
|
||||
VirtualFile dir2 = myRoot.createChildDirectory(this, "dir2");
|
||||
VirtualFile f = dir1.createChildData(this, "foo.txt");
|
||||
VirtualFile dir1 = createChildDirectory(myRoot, "dir1");
|
||||
VirtualFile dir2 = createChildDirectory(myRoot, "dir2");
|
||||
VirtualFile f = createChildData(dir1, "foo.txt");
|
||||
|
||||
f.move(this, dir2);
|
||||
move(f, dir2);
|
||||
|
||||
dir1.delete(this);
|
||||
dir2.delete(this);
|
||||
delete(dir1);
|
||||
delete(dir2);
|
||||
|
||||
revertChange(2);
|
||||
|
||||
@@ -254,13 +263,15 @@ public class DifferenceReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testRevertingContentChangeFromOldRevisionsWhenDirDoesNotExists() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(this, "dir");
|
||||
VirtualFile f = dir.createChildData(this, "foo.txt");
|
||||
VirtualFile dir = createChildDirectory(myRoot, "dir");
|
||||
VirtualFile f = createChildData(dir, "foo.txt");
|
||||
|
||||
f.setBinaryContent(new byte[]{1}, -1, 1000);
|
||||
f.setBinaryContent(new byte[]{2}, -1, 2000);
|
||||
int modificationStamp1 = -1;
|
||||
setBinaryContent(f, new byte[]{1}, modificationStamp1, 1000, this);
|
||||
int modificationStamp = -1;
|
||||
setBinaryContent(f, new byte[]{2}, modificationStamp, 2000, this);
|
||||
|
||||
dir.delete(this);
|
||||
delete(dir);
|
||||
|
||||
revertChange(1);
|
||||
|
||||
|
||||
+11
-11
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -38,7 +38,7 @@ public class SelectionReverterTest extends IntegrationTestCase {
|
||||
@Override
|
||||
protected void setUpInWriteAction() throws Exception {
|
||||
super.setUpInWriteAction();
|
||||
f = myRoot.createChildData(null, "f.txt");
|
||||
f = createChildData(myRoot, "f.txt");
|
||||
}
|
||||
|
||||
public void testBasics() throws IOException {
|
||||
@@ -54,8 +54,8 @@ public class SelectionReverterTest extends IntegrationTestCase {
|
||||
" public abstract bar();\n" +
|
||||
"}\n";
|
||||
|
||||
f.setBinaryContent(before.getBytes());
|
||||
f.setBinaryContent(after.getBytes());
|
||||
setBinaryContent(f, before.getBytes());
|
||||
setBinaryContent(f, after.getBytes());
|
||||
|
||||
revertToPreviousRevision(2, 2);
|
||||
|
||||
@@ -72,8 +72,8 @@ public class SelectionReverterTest extends IntegrationTestCase {
|
||||
long time = new Date(2001, 1, 11, 12, 30).getTime();
|
||||
Clock.setTime(time);
|
||||
|
||||
f.setBinaryContent("one".getBytes());
|
||||
f.setBinaryContent("two".getBytes());
|
||||
setBinaryContent(f, "one".getBytes());
|
||||
setBinaryContent(f, "two".getBytes());
|
||||
|
||||
revertToPreviousRevision(0, 0);
|
||||
|
||||
@@ -83,11 +83,11 @@ public class SelectionReverterTest extends IntegrationTestCase {
|
||||
}
|
||||
|
||||
public void testAskingForReadOnlyStatusClearingOnlyForTheSpecifiedFile() throws Exception {
|
||||
myRoot.createChildData(null, "foo1.txt");
|
||||
f.setBinaryContent("one".getBytes());
|
||||
myRoot.createChildData(null, "foo2.txt");
|
||||
f.setBinaryContent("two".getBytes());
|
||||
myRoot.createChildData(null, "foo3.txt");
|
||||
createChildData(myRoot, "foo1.txt");
|
||||
setBinaryContent(f, "one".getBytes());
|
||||
createChildData(myRoot, "foo2.txt");
|
||||
setBinaryContent(f, "two".getBytes());
|
||||
createChildData(myRoot, "foo3.txt");
|
||||
|
||||
final List<VirtualFile> files = new ArrayList<VirtualFile>();
|
||||
myGateway = new IdeaGateway() {
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -31,7 +31,7 @@ import java.util.List;
|
||||
public class DirectoryChangeModelTest extends IntegrationTestCase {
|
||||
public void testNames() throws IOException {
|
||||
VirtualFile f = createDirectory("foo");
|
||||
f.rename(this, "bar");
|
||||
rename(f, "bar");
|
||||
|
||||
List<Revision> revs = getRevisionsFor(f);
|
||||
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -21,9 +21,9 @@ import com.intellij.history.integration.ui.models.DirectoryHistoryDialogModel;
|
||||
|
||||
public class DirectoryHistoryDialogPatchCreationTest extends PatchingTestCase {
|
||||
public void testPatchCreation() throws Exception {
|
||||
myRoot.createChildData(null, "f1.txt");
|
||||
myRoot.createChildData(null, "f2.txt");
|
||||
myRoot.createChildData(null, "f3.txt");
|
||||
createChildData(myRoot, "f1.txt");
|
||||
createChildData(myRoot, "f2.txt");
|
||||
createChildData(myRoot, "f3.txt");
|
||||
|
||||
DirectoryHistoryDialogModel m = new DirectoryHistoryDialogModel(myProject, myGateway, getVcs(), myRoot);
|
||||
assertSize(3, m.getRevisions());
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -32,7 +32,7 @@ public class DirectoryHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testRevertion() throws Exception {
|
||||
myRoot.createChildData(null, "f.txt");
|
||||
createChildData(myRoot, "f.txt");
|
||||
|
||||
HistoryDialogModel m = createModelAndSelectRevision(0);
|
||||
m.createReverter().revert();
|
||||
@@ -41,8 +41,8 @@ public class DirectoryHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testSelectionRevertion() throws Exception {
|
||||
myRoot.createChildData(null, "f1.txt");
|
||||
myRoot.createChildData(null, "f2.txt");
|
||||
createChildData(myRoot, "f1.txt");
|
||||
createChildData(myRoot, "f2.txt");
|
||||
|
||||
DirectoryHistoryDialogModel m = createModelAndSelectRevision(1);
|
||||
DirectoryChange c = (DirectoryChange)m.getChanges().get(0);
|
||||
|
||||
+22
-21
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -33,7 +33,7 @@ import java.util.Date;
|
||||
|
||||
public class FileHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
public void testDialogWorks() throws IOException {
|
||||
VirtualFile file = myRoot.createChildData(null, "f.txt");
|
||||
VirtualFile file = createChildData(myRoot, "f.txt");
|
||||
|
||||
FileHistoryDialog d = new FileHistoryDialog(myProject, myGateway, file);
|
||||
Disposer.dispose(d);
|
||||
@@ -43,13 +43,14 @@ public class FileHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
long leftTime = new Date(2001 - 1900, 1, 3, 12, 0).getTime();
|
||||
long rightTime = new Date(2002 - 1900, 2, 4, 14, 0).getTime();
|
||||
|
||||
VirtualFile f = myRoot.createChildData(null, "old.txt");
|
||||
f.setBinaryContent("old".getBytes(), -1, leftTime);
|
||||
VirtualFile f = createChildData(myRoot, "old.txt");
|
||||
setBinaryContent(f, "old".getBytes(), -1, leftTime, this);
|
||||
|
||||
f.rename(null, "new.txt");
|
||||
f.setBinaryContent("new".getBytes(), -1, rightTime);
|
||||
rename(f, "new.txt");
|
||||
setBinaryContent(f, "new".getBytes(), -1, rightTime, this);
|
||||
|
||||
f.setBinaryContent(new byte[0]); // to create current content to skip.
|
||||
byte[] content = new byte[0];
|
||||
setBinaryContent(f, content);
|
||||
|
||||
FileHistoryDialogModel m = createFileModelAndSelectRevisions(f, 0, 2);
|
||||
assertEquals(FileUtil.toSystemDependentName(f.getPath()), m.getDifferenceModel().getTitle());
|
||||
@@ -61,10 +62,10 @@ public class FileHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testContent() throws IOException {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
f.setBinaryContent("old".getBytes());
|
||||
f.setBinaryContent("new".getBytes());
|
||||
f.setBinaryContent("current".getBytes());
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
setBinaryContent(f, "old".getBytes());
|
||||
setBinaryContent(f, "new".getBytes());
|
||||
setBinaryContent(f, "current".getBytes());
|
||||
|
||||
FileHistoryDialogModel m = createFileModelAndSelectRevisions(f, 0, 1);
|
||||
|
||||
@@ -72,9 +73,9 @@ public class FileHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testContentWhenOnlyOneRevisionSelected() throws IOException {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
f.setBinaryContent("old".getBytes());
|
||||
f.setBinaryContent("new".getBytes());
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
setBinaryContent(f, "old".getBytes());
|
||||
setBinaryContent(f, "new".getBytes());
|
||||
|
||||
FileHistoryDialogModel m = createFileModelAndSelectRevisions(f, 0, 0);
|
||||
|
||||
@@ -82,9 +83,9 @@ public class FileHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testContentForCurrentRevision() throws IOException {
|
||||
VirtualFile f = myRoot.createChildData(null, "f.txt");
|
||||
f.setBinaryContent("old".getBytes());
|
||||
f.setBinaryContent("current".getBytes());
|
||||
VirtualFile f = createChildData(myRoot, "f.txt");
|
||||
setBinaryContent(f, "old".getBytes());
|
||||
setBinaryContent(f, "current".getBytes());
|
||||
|
||||
FileHistoryDialogModel m = createFileModelAndSelectRevisions(f, 0, 0);
|
||||
|
||||
@@ -93,10 +94,10 @@ public class FileHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testRevertion() throws Exception {
|
||||
VirtualFile dir = myRoot.createChildDirectory(null, "oldDir");
|
||||
VirtualFile f = dir.createChildData(null, "old.txt");
|
||||
f.rename(null, "new.txt");
|
||||
dir.rename(null, "newDir");
|
||||
VirtualFile dir = createChildDirectory(myRoot, "oldDir");
|
||||
VirtualFile f = createChildData(dir, "old.txt");
|
||||
rename(f, "new.txt");
|
||||
rename(dir, "newDir");
|
||||
|
||||
FileHistoryDialogModel m = createFileModelAndSelectRevisions(f, 1, 1);
|
||||
m.createReverter().revert();
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -42,7 +42,7 @@ public class LocalHistoryActionsTest extends LocalHistoryUITestCase {
|
||||
@Override
|
||||
protected void setUpInWriteAction() throws Exception {
|
||||
super.setUpInWriteAction();
|
||||
f = myRoot.createChildData(null, "f.txt");
|
||||
f = createChildData(myRoot, "f.txt");
|
||||
|
||||
document = FileDocumentManager.getInstance().getDocument(f);
|
||||
document.setText("foo");
|
||||
@@ -70,8 +70,8 @@ public class LocalHistoryActionsTest extends LocalHistoryUITestCase {
|
||||
assertStatus(a, f, true);
|
||||
assertStatus(a, null, false);
|
||||
|
||||
assertStatus(a, myRoot.createChildData(null, "f.hprof"), false);
|
||||
assertStatus(a, myRoot.createChildData(null, "f.xxx"), false);
|
||||
assertStatus(a, createChildData(myRoot, "f.hprof"), false);
|
||||
assertStatus(a, createChildData(myRoot, "f.xxx"), false);
|
||||
}
|
||||
|
||||
public void testLocalHistoryActionDisabledWithoutProject() throws IOException {
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -27,7 +27,7 @@ import java.io.IOException;
|
||||
public class RecentChangeDialogTest extends LocalHistoryUITestCase {
|
||||
public void testDialogWork() throws IOException {
|
||||
getVcs().beginChangeSet();
|
||||
myRoot.createChildData(null, "f.txt");
|
||||
createChildData(myRoot, "f.txt");
|
||||
getVcs().endChangeSet("change");
|
||||
|
||||
RecentChange c = getVcs().getRecentChanges(getRootEntry()).get(0);
|
||||
@@ -45,11 +45,11 @@ public class RecentChangeDialogTest extends LocalHistoryUITestCase {
|
||||
|
||||
public void testRevertChange() throws IOException {
|
||||
getVcs().beginChangeSet();
|
||||
myRoot.createChildData(null, "f1.txt");
|
||||
createChildData(myRoot, "f1.txt");
|
||||
getVcs().endChangeSet("change");
|
||||
|
||||
getVcs().beginChangeSet();
|
||||
myRoot.createChildData(null, "f2.txt");
|
||||
createChildData(myRoot, "f2.txt");
|
||||
getVcs().endChangeSet("another change");
|
||||
|
||||
RecentChange c = getVcs().getRecentChanges(getRootEntry()).get(1);
|
||||
|
||||
+8
-8
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -41,10 +41,10 @@ public class SelectionHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
protected void setUpInWriteAction() throws Exception {
|
||||
super.setUpInWriteAction();
|
||||
|
||||
f = myRoot.createChildData(null, "f.txt");
|
||||
f.setBinaryContent("a\nb\nc\n".getBytes(), -1, 123);
|
||||
f.setBinaryContent("a\nbc\nd\n".getBytes(), -1, 456);
|
||||
f.setBinaryContent("a\nbcd\ne\n".getBytes(), -1, 789);
|
||||
f = createChildData(myRoot, "f.txt");
|
||||
setBinaryContent(f,"a\nb\nc\n".getBytes(), -1, 123,this);
|
||||
setBinaryContent(f,"a\nbc\nd\n".getBytes(), -1, 456,this);
|
||||
setBinaryContent(f,"a\nbcd\ne\n".getBytes(), -1, 789,this);
|
||||
}
|
||||
|
||||
public void testDialogWorks() throws IOException {
|
||||
@@ -53,8 +53,8 @@ public class SelectionHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
}
|
||||
|
||||
public void testTitles() throws IOException {
|
||||
f.rename(null, "ff.txt");
|
||||
f.setBinaryContent(new byte[0]);
|
||||
rename(f, "ff.txt");
|
||||
setBinaryContent(f,new byte[0]);
|
||||
|
||||
initModelOnSecondLineAndSelectRevisions(0, 1);
|
||||
|
||||
@@ -107,7 +107,7 @@ public class SelectionHistoryDialogTest extends LocalHistoryUITestCase {
|
||||
|
||||
public void testDiffForDeletedAndRecreatedFile() throws Exception {
|
||||
byte[] bytes = f.contentsToByteArray();
|
||||
f.delete(this);
|
||||
delete(f);
|
||||
|
||||
f = createFile(f.getName(), new String(bytes));
|
||||
loadContent(f);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.intellij.module;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.module.*;
|
||||
@@ -78,7 +79,13 @@ public class ModulePointerTest extends PlatformTestCase {
|
||||
assertSame(module, pointer.getModule());
|
||||
assertEquals("xxx", pointer.getModuleName());
|
||||
|
||||
modifiableModel.dispose();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
modifiableModel.dispose();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
assertNull(pointer.getModule());
|
||||
assertEquals("xxx", pointer.getModuleName());
|
||||
|
||||
+22
-12
@@ -90,7 +90,14 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
|
||||
public void testGetDocument_CreateNew_ReadOnly() throws Exception {
|
||||
final VirtualFile file = createFile();
|
||||
file.setWritable(false);
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
file.setWritable(false);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
final Document document = myDocumentManager.getDocument(file);
|
||||
assertNotNull(document);
|
||||
assertEquals("test", document.getText());
|
||||
@@ -221,7 +228,12 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
assertEquals("test", new String(file.contentsToByteArray(), CharsetToolkit.UTF8_CHARSET));
|
||||
}
|
||||
finally {
|
||||
myDocumentManager.dropAllUnsavedDocuments();
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myDocumentManager.dropAllUnsavedDocuments();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -347,27 +359,24 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
|
||||
public void testContentChanged_noDocument() throws Exception {
|
||||
final VirtualFile file = createFile();
|
||||
setContent(file, "xxx");
|
||||
setFileText(file, "xxx");
|
||||
assertNull(myDocumentManager.getCachedDocument(file));
|
||||
}
|
||||
|
||||
VirtualFile createFile(String name, String content) throws IOException {
|
||||
private VirtualFile createFile(String name, String content) throws IOException {
|
||||
File file = createTempFile(name, content);
|
||||
VirtualFile virtualFile = LocalFileSystem.getInstance().findFileByIoFile(file);
|
||||
assertNotNull(virtualFile);
|
||||
return virtualFile;
|
||||
}
|
||||
VirtualFile createFile() throws IOException {
|
||||
private VirtualFile createFile() throws IOException {
|
||||
return createFile("test.txt", "test");
|
||||
}
|
||||
void setContent(VirtualFile file, String content) throws IOException {
|
||||
file.setBinaryContent(content.getBytes(CharsetToolkit.UTF8_CHARSET));
|
||||
}
|
||||
|
||||
public void testContentChanged_documentPresent() throws Exception {
|
||||
VirtualFile file = createFile();
|
||||
Document document = myDocumentManager.getDocument(file);
|
||||
setContent(file, "xxx");
|
||||
setFileText(file, "xxx");
|
||||
assertNotNull(file.toString(), document);
|
||||
assertEquals("xxx", document.getText());
|
||||
assertEquals(file.getModificationStamp(), document.getModificationStamp());
|
||||
@@ -376,7 +385,8 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
public void testContentChanged_ignoreEventsFromSelf() throws Exception {
|
||||
final VirtualFile file = createFile("test.txt", "test\rtest");
|
||||
Document document = myDocumentManager.getDocument(file);
|
||||
file.setBinaryContent("xxx".getBytes(CharsetToolkit.UTF8_CHARSET), -1,-1,myDocumentManager);
|
||||
setBinaryContent(file, "xxx".getBytes(CharsetToolkit.UTF8_CHARSET), -1, -1, myDocumentManager);
|
||||
|
||||
assertNotNull(file.toString(), document);
|
||||
assertEquals("test\ntest", document.getText());
|
||||
}
|
||||
@@ -427,7 +437,7 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
|
||||
|
||||
myReloadFromDisk = Boolean.TRUE;
|
||||
setContent(file, "xxx");
|
||||
setFileText(file, "xxx");
|
||||
|
||||
assertEquals("xxx", document.getText());
|
||||
assertEquals(file.getModificationStamp(), document.getModificationStamp());
|
||||
@@ -448,7 +458,7 @@ public class FileDocumentManagerImplTest extends PlatformTestCase {
|
||||
myReloadFromDisk = Boolean.FALSE;
|
||||
long oldDocumentStamp = document.getModificationStamp();
|
||||
|
||||
file.setBinaryContent("xxx".getBytes(CharsetToolkit.UTF8_CHARSET));
|
||||
setBinaryContent(file, "xxx".getBytes(CharsetToolkit.UTF8_CHARSET));
|
||||
|
||||
assertEquals("old test", document.getText());
|
||||
assertEquals(oldDocumentStamp, document.getModificationStamp());
|
||||
|
||||
@@ -615,9 +615,4 @@ public class FileTypesTest extends PlatformTestCase {
|
||||
myFileTypeManager.toLog = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
-5
@@ -80,11 +80,6 @@ public class VirtualFilePointerTest extends PlatformTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static class LoggingListener implements VirtualFilePointerListener {
|
||||
private final ArrayList<String> myLog = new ArrayList<>();
|
||||
|
||||
|
||||
+24
-10
@@ -20,6 +20,7 @@ import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.util.io.FileAttributes;
|
||||
import com.intellij.openapi.util.io.FileSystemUtil;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
@@ -160,11 +161,11 @@ public class LocalFileSystemTest extends PlatformTestCase {
|
||||
VirtualFile toVDir = myFS.findFileByPath(toDir.getPath().replace(File.separatorChar, '/'));
|
||||
assertNotNull(fromVDir);
|
||||
assertNotNull(toVDir);
|
||||
final VirtualFile fileToCopy = fromVDir.createChildData(this, "temp_file");
|
||||
final VirtualFile fileToCopy = createChildData(fromVDir, "temp_file");
|
||||
final byte[] byteContent = {0, 1, 2, 3};
|
||||
fileToCopy.setBinaryContent(byteContent);
|
||||
setBinaryContent(fileToCopy,byteContent);
|
||||
final String newName = "new_temp_file";
|
||||
final VirtualFile copy = fileToCopy.copy(this, toVDir, newName);
|
||||
final VirtualFile copy = copy(fileToCopy, toVDir, newName);
|
||||
assertEquals(newName, copy.getName());
|
||||
assertTrue(Arrays.equals(byteContent, copy.contentsToByteArray()));
|
||||
}
|
||||
@@ -177,11 +178,11 @@ public class LocalFileSystemTest extends PlatformTestCase {
|
||||
VirtualFile toVDir = myFS.findFileByPath(toDir.getPath().replace(File.separatorChar, '/'));
|
||||
assertNotNull(fromVDir);
|
||||
assertNotNull(toVDir);
|
||||
final VirtualFile dirToCopy = fromVDir.createChildDirectory(this, "dir");
|
||||
final VirtualFile file = dirToCopy.createChildData(this, "temp_file");
|
||||
file.setBinaryContent(new byte[]{0, 1, 2, 3});
|
||||
final VirtualFile dirToCopy = createChildDirectory(fromVDir, "dir");
|
||||
final VirtualFile file = createChildData(dirToCopy, "temp_file");
|
||||
setBinaryContent(file,new byte[]{0, 1, 2, 3});
|
||||
final String newName = "dir";
|
||||
final VirtualFile dirCopy = dirToCopy.copy(this, toVDir, newName);
|
||||
final VirtualFile dirCopy = copy(dirToCopy, toVDir, newName);
|
||||
assertEquals(newName, dirCopy.getName());
|
||||
PlatformTestUtil.assertDirectoriesEqual(toVDir, fromVDir);
|
||||
}
|
||||
@@ -291,7 +292,7 @@ public class LocalFileSystemTest extends PlatformTestCase {
|
||||
|
||||
final VirtualFile file = myFS.refreshAndFindFileByIoFile(targetFile);
|
||||
assertNotNull(file);
|
||||
file.setBinaryContent("hello".getBytes(CharsetToolkit.UTF8_CHARSET), 0, 0, requestor);
|
||||
setBinaryContent(file,"hello".getBytes(CharsetToolkit.UTF8_CHARSET), 0, 0, requestor);
|
||||
assertTrue(file.getLength() > 0);
|
||||
|
||||
final VirtualFile check = myFS.refreshAndFindFileByIoFile(hardLinkFile);
|
||||
@@ -698,12 +699,25 @@ public class LocalFileSystemTest extends PlatformTestCase {
|
||||
assertNotNull(vFile);
|
||||
assertWritable(file, vFile, true);
|
||||
|
||||
vFile.setWritable(false);
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
vFile.setWritable(false);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
assertWritable(file, vFile, false);
|
||||
vFile.refresh(false, false);
|
||||
assertWritable(file, vFile, false);
|
||||
|
||||
vFile.setWritable(true);
|
||||
ApplicationManager.getApplication().runWriteAction(new ThrowableComputable<Object, IOException>() {
|
||||
@Override
|
||||
public Object compute() throws IOException {
|
||||
vFile.setWritable(true);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
assertWritable(file, vFile, true);
|
||||
vFile.refresh(false, false);
|
||||
assertWritable(file, vFile, true);
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ public class PersistentFsTest extends PlatformTestCase {
|
||||
int id = ((VirtualFileWithId)vFile).getId();
|
||||
assertEquals(vFile, myFs.findFileById(id));
|
||||
|
||||
vFile.delete(this);
|
||||
delete(vFile);
|
||||
assertNull(myFs.findFileById(id));
|
||||
}
|
||||
|
||||
|
||||
+1
-7
@@ -36,7 +36,6 @@ import com.intellij.openapi.util.ThrowableComputable;
|
||||
import com.intellij.openapi.util.io.FileUtilRt;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.*;
|
||||
@@ -101,11 +100,6 @@ public class PsiDocumentManagerImplTest extends PlatformTestCase {
|
||||
assertSame(document, FileDocumentManager.getInstance().getDocument(vFile));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
private static LightVirtualFile createFile() {
|
||||
return new LightVirtualFile("foo.txt");
|
||||
}
|
||||
@@ -436,7 +430,7 @@ public class PsiDocumentManagerImplTest extends PlatformTestCase {
|
||||
|
||||
private void makeFileTooLarge(final VirtualFile vFile) throws Exception {
|
||||
WriteCommandAction.runWriteCommandAction(myProject, (ThrowableComputable<Object, Exception>)() -> {
|
||||
VfsUtil.saveText(vFile, StringUtil.repeat("a", FileUtilRt.LARGE_FOR_CONTENT_LOADING + 1));
|
||||
setFileText(vFile, StringUtil.repeat("a", FileUtilRt.LARGE_FOR_CONTENT_LOADING + 1));
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
return null;
|
||||
});
|
||||
|
||||
@@ -24,7 +24,7 @@ public class GlobalSearchScopeTest extends PlatformTestCase {
|
||||
public void testUniteDirectorySearchScopeDoesNotSOE() throws Exception {
|
||||
VirtualFile genRoot = getVirtualFile(createTempDir("genSrcRoot"));
|
||||
VirtualFile srcRoot = getVirtualFile(createTempDir("srcRoot"));
|
||||
VirtualFile child = srcRoot.createChildDirectory(this, "child");
|
||||
VirtualFile child = createChildDirectory(srcRoot, "child");
|
||||
GlobalSearchScope childScope = GlobalSearchScopesCore.directoryScope(getProject(), child, true);
|
||||
|
||||
GlobalSearchScope directoryScope = GlobalSearchScopesCore.directoryScope(getProject(), srcRoot, true);
|
||||
@@ -40,7 +40,7 @@ public class GlobalSearchScopeTest extends PlatformTestCase {
|
||||
int N = 1000;
|
||||
VirtualFile[] d = new VirtualFile[N];
|
||||
for (int i=0; i< N;i++) {
|
||||
d[i] = srcRoot.createChildDirectory(this, "d"+i);
|
||||
d[i] = createChildDirectory(srcRoot, "d"+i);
|
||||
GlobalSearchScope united = s.uniteWith(GlobalSearchScopesCore.directoryScope(getProject(), d[i], true));
|
||||
assertNotSame(s, united);
|
||||
s = united;
|
||||
|
||||
@@ -325,9 +325,4 @@ public class IconUtilTest extends PlatformTestCase {
|
||||
}
|
||||
return Collections.singletonList(icon);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-6
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -104,9 +104,4 @@ public class StringBuilderSpinAllocatorTest extends PlatformTestCase {
|
||||
randomField++;
|
||||
return spinTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -34,11 +34,6 @@ import java.util.Set;
|
||||
*/
|
||||
public abstract class IdeResourcesTestCase extends PlatformTestCase {
|
||||
|
||||
@Override
|
||||
protected boolean isRunInWriteAction() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void testFeatureTipsRegistered() {
|
||||
ProductivityFeaturesRegistry registry = ProductivityFeaturesRegistry.getInstance();
|
||||
Set<String> ids = registry.getFeatureIds();
|
||||
|
||||
@@ -716,7 +716,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro
|
||||
}
|
||||
|
||||
protected boolean isRunInWriteAction() {
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -938,7 +938,7 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro
|
||||
}.execute().throwException();
|
||||
}
|
||||
|
||||
public static void setBinaryContent(final VirtualFile file, final byte[] content) {
|
||||
public static void setBinaryContent(@NotNull final VirtualFile file, @NotNull final byte[] content) {
|
||||
new WriteAction() {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
@@ -946,4 +946,12 @@ public abstract class PlatformTestCase extends UsefulTestCase implements DataPro
|
||||
}
|
||||
}.execute().throwException();
|
||||
}
|
||||
public static void setBinaryContent(@NotNull final VirtualFile file, @NotNull final byte[] content, final long newModificationStamp, final long newTimeStamp, final Object requestor) {
|
||||
new WriteAction() {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
file.setBinaryContent(content,newModificationStamp, newTimeStamp,requestor);
|
||||
}
|
||||
}.execute().throwException();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.intellij.testFramework;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
@@ -106,14 +108,19 @@ public class TempFiles {
|
||||
}
|
||||
}
|
||||
|
||||
public VirtualFile createVFile(@NotNull VirtualFile parentDir, @NotNull String name, @NotNull String text) {
|
||||
try {
|
||||
final VirtualFile virtualFile = parentDir.createChildData(this, name);
|
||||
VfsUtil.saveText(virtualFile, text + "\n");
|
||||
return virtualFile;
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
public VirtualFile createVFile(@NotNull final VirtualFile parentDir, @NotNull final String name, @NotNull final String text) {
|
||||
return ApplicationManager.getApplication().runWriteAction(new Computable<VirtualFile>() {
|
||||
@Override
|
||||
public VirtualFile compute() {
|
||||
try {
|
||||
final VirtualFile virtualFile = parentDir.createChildData(this, name);
|
||||
VfsUtil.saveText(virtualFile, text + "\n");
|
||||
return virtualFile;
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.intellij.testFramework;
|
||||
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
@@ -99,14 +100,18 @@ public class VfsTestUtil {
|
||||
UtilKt.deleteFile(file);
|
||||
}
|
||||
|
||||
public static void clearContent(VirtualFile file) {
|
||||
Assert.assertNotNull(file);
|
||||
try {
|
||||
VfsUtil.saveText(file, "");
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
public static void clearContent(@NotNull final VirtualFile file) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
VfsUtil.saveText(file, "");
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
|
||||
+12
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2010 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.intellij.xdebugger;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.LocalFileSystem;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -30,7 +32,7 @@ public class UpdateBreakpointsAfterRenameTest extends XBreakpointsTestCase {
|
||||
public void testRenameFile() throws Exception {
|
||||
final VirtualFile file = createFile("file.txt");
|
||||
XLineBreakpoint<?> b = putBreakpoint(file);
|
||||
file.rename(this, "file2.txt");
|
||||
rename(file, "file2.txt");
|
||||
assertTrue(b.getFileUrl().endsWith("file2.txt"));
|
||||
assertSame(b, getBreakpointManager().findBreakpointAtLine(XDebuggerTestCase.MY_LINE_BREAKPOINT_TYPE, file, 0));
|
||||
}
|
||||
@@ -39,19 +41,24 @@ public class UpdateBreakpointsAfterRenameTest extends XBreakpointsTestCase {
|
||||
final VirtualFile file = createFile("dir/a.txt");
|
||||
final VirtualFile targetDir = createFile("dir2/b.txt").getParent();
|
||||
final XLineBreakpoint<?> b = putBreakpoint(file);
|
||||
file.move(this, targetDir);
|
||||
move(file, targetDir);
|
||||
assertTrue(b.getFileUrl().endsWith("dir2/a.txt"));
|
||||
}
|
||||
|
||||
public void testRenameParentDir() throws Exception {
|
||||
final VirtualFile file = createFile("dir/x.txt");
|
||||
final XLineBreakpoint<?> b = putBreakpoint(file);
|
||||
file.getParent().rename(this, "dir2");
|
||||
rename(file.getParent(), "dir2");
|
||||
assertTrue(b.getFileUrl().endsWith("dir2/x.txt"));
|
||||
}
|
||||
|
||||
private XLineBreakpoint<?> putBreakpoint(final VirtualFile file) {
|
||||
return getBreakpointManager().addLineBreakpoint(XDebuggerTestCase.MY_LINE_BREAKPOINT_TYPE, file.getUrl(), 0, null, false);
|
||||
return ApplicationManager.getApplication().runWriteAction(new Computable<XLineBreakpoint<?>>() {
|
||||
@Override
|
||||
public XLineBreakpoint<?> compute() {
|
||||
return getBreakpointManager().addLineBreakpoint(XDebuggerTestCase.MY_LINE_BREAKPOINT_TYPE, file.getUrl(), 0, null, false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private VirtualFile createFile(String path) {
|
||||
|
||||
+13
-19
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -25,7 +25,6 @@ import org.jdom.Document;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -38,32 +37,32 @@ public class XBreakpointManagerTest extends XBreakpointsTestCase {
|
||||
assertSameElements(getAllBreakpoints(), defaultBreakpoint);
|
||||
|
||||
XLineBreakpoint<MyBreakpointProperties> lineBreakpoint =
|
||||
myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, "url", 239, new MyBreakpointProperties("123"));
|
||||
addLineBreakpoint(myBreakpointManager, "url", 239, new MyBreakpointProperties("123"));
|
||||
|
||||
XBreakpoint<MyBreakpointProperties> breakpoint = myBreakpointManager.addBreakpoint(MY_SIMPLE_BREAKPOINT_TYPE, new MyBreakpointProperties("abc"));
|
||||
XBreakpoint<MyBreakpointProperties> breakpoint = addBreakpoint(myBreakpointManager, new MyBreakpointProperties("abc"));
|
||||
|
||||
assertSameElements(getAllBreakpoints(), breakpoint, lineBreakpoint, defaultBreakpoint);
|
||||
assertSame(lineBreakpoint, assertOneElement(myBreakpointManager.getBreakpoints(MY_LINE_BREAKPOINT_TYPE)));
|
||||
assertSameElements(myBreakpointManager.getBreakpoints(MY_SIMPLE_BREAKPOINT_TYPE), breakpoint, defaultBreakpoint);
|
||||
|
||||
myBreakpointManager.removeBreakpoint(lineBreakpoint);
|
||||
removeBreakPoint(myBreakpointManager, lineBreakpoint);
|
||||
assertSameElements(getAllBreakpoints(), breakpoint, defaultBreakpoint);
|
||||
assertTrue(myBreakpointManager.getBreakpoints(MY_LINE_BREAKPOINT_TYPE).isEmpty());
|
||||
assertSameElements(myBreakpointManager.getBreakpoints(MY_SIMPLE_BREAKPOINT_TYPE), breakpoint, defaultBreakpoint);
|
||||
|
||||
myBreakpointManager.removeBreakpoint(breakpoint);
|
||||
removeBreakPoint(myBreakpointManager, breakpoint);
|
||||
assertSameElements(getAllBreakpoints(), defaultBreakpoint);
|
||||
assertSameElements(myBreakpointManager.getBreakpoints(MY_SIMPLE_BREAKPOINT_TYPE), defaultBreakpoint);
|
||||
}
|
||||
|
||||
public void testSerialize() {
|
||||
XLineBreakpoint<MyBreakpointProperties> breakpoint =
|
||||
myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, "myurl", 239, new MyBreakpointProperties("z1"));
|
||||
addLineBreakpoint(myBreakpointManager, "myurl", 239, new MyBreakpointProperties("z1"));
|
||||
breakpoint.setCondition("cond");
|
||||
breakpoint.setLogExpression("log");
|
||||
breakpoint.setSuspendPolicy(SuspendPolicy.NONE);
|
||||
breakpoint.setLogMessage(true);
|
||||
myBreakpointManager.addBreakpoint(MY_SIMPLE_BREAKPOINT_TYPE, new MyBreakpointProperties("z2"));
|
||||
addBreakpoint(myBreakpointManager, new MyBreakpointProperties("z2"));
|
||||
|
||||
reload();
|
||||
List<XBreakpoint<?>> breakpoints = getAllBreakpoints();
|
||||
@@ -134,27 +133,22 @@ public class XBreakpointManagerTest extends XBreakpointsTestCase {
|
||||
};
|
||||
myBreakpointManager.addBreakpointListener(MY_LINE_BREAKPOINT_TYPE, listener);
|
||||
|
||||
XBreakpoint<MyBreakpointProperties> breakpoint = myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, "url", 239, new MyBreakpointProperties("abc"));
|
||||
myBreakpointManager.addBreakpoint(MY_SIMPLE_BREAKPOINT_TYPE, new MyBreakpointProperties("321"));
|
||||
myBreakpointManager.removeBreakpoint(breakpoint);
|
||||
XBreakpoint<MyBreakpointProperties> breakpoint = addLineBreakpoint(myBreakpointManager, "url", 239, new MyBreakpointProperties("abc"));
|
||||
addBreakpoint(myBreakpointManager, new MyBreakpointProperties("321"));
|
||||
removeBreakPoint(myBreakpointManager, breakpoint);
|
||||
assertEquals("added[abc];removed[abc];", out.toString());
|
||||
|
||||
myBreakpointManager.removeBreakpointListener(MY_LINE_BREAKPOINT_TYPE, listener);
|
||||
out.setLength(0);
|
||||
myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, "url", 239, new MyBreakpointProperties("a"));
|
||||
addLineBreakpoint(myBreakpointManager, "url", 239, new MyBreakpointProperties("a"));
|
||||
assertEquals("", out.toString());
|
||||
}
|
||||
|
||||
public void testRemoveFile() {
|
||||
final VirtualFile file = myTempFiles.createVFile("breakpoint", ".txt");
|
||||
myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, file.getUrl(), 0, null);
|
||||
addLineBreakpoint(myBreakpointManager, file.getUrl(), 0, null);
|
||||
assertOneElement(myBreakpointManager.getBreakpoints(MY_LINE_BREAKPOINT_TYPE));
|
||||
try {
|
||||
file.delete(this);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
delete(file);
|
||||
assertEmpty(myBreakpointManager.getBreakpoints(MY_LINE_BREAKPOINT_TYPE));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -15,16 +15,16 @@
|
||||
*/
|
||||
package com.intellij.xdebugger;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPoint;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.testFramework.PlatformTestCase;
|
||||
import com.intellij.util.xmlb.annotations.Attribute;
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpoint;
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpointProperties;
|
||||
import com.intellij.xdebugger.breakpoints.XBreakpointType;
|
||||
import com.intellij.xdebugger.breakpoints.XLineBreakpointType;
|
||||
import com.intellij.xdebugger.breakpoints.*;
|
||||
import com.intellij.xdebugger.impl.breakpoints.XBreakpointManagerImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
@@ -34,6 +34,39 @@ public abstract class XDebuggerTestCase extends PlatformTestCase {
|
||||
public static final MyLineBreakpointType MY_LINE_BREAKPOINT_TYPE = new MyLineBreakpointType();
|
||||
protected static final MySimpleBreakpointType MY_SIMPLE_BREAKPOINT_TYPE = new MySimpleBreakpointType();
|
||||
|
||||
@NotNull
|
||||
static XBreakpoint<MyBreakpointProperties> addBreakpoint(final XBreakpointManagerImpl breakpointManager,
|
||||
final MyBreakpointProperties abc) {
|
||||
return ApplicationManager.getApplication().runWriteAction(new Computable<XBreakpoint<MyBreakpointProperties>>() {
|
||||
@Override
|
||||
public XBreakpoint<MyBreakpointProperties> compute() {
|
||||
return breakpointManager.addBreakpoint(MY_SIMPLE_BREAKPOINT_TYPE, abc);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static XLineBreakpoint<MyBreakpointProperties> addLineBreakpoint(final XBreakpointManagerImpl breakpointManager, final String url,
|
||||
final int line,
|
||||
final MyBreakpointProperties properties) {
|
||||
return ApplicationManager.getApplication().runWriteAction(new Computable<XLineBreakpoint<MyBreakpointProperties>>() {
|
||||
@Override
|
||||
public XLineBreakpoint<MyBreakpointProperties> compute() {
|
||||
return breakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, url, line, properties);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static void removeBreakPoint(final XBreakpointManagerImpl breakpointManager,
|
||||
final XBreakpoint<?> breakpoint) {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
breakpointManager.removeBreakpoint(breakpoint);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initApplication() throws Exception {
|
||||
super.initApplication();
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -44,7 +44,7 @@ public class XDependentBreakpointsTest extends XBreakpointsTestCase {
|
||||
assertSame(slave, assertOneElement(myDependentBreakpointManager.getSlaveBreakpoints(master)));
|
||||
assertSame(slave, assertOneElement(myDependentBreakpointManager.getAllSlaveBreakpoints()));
|
||||
|
||||
myBreakpointManager.removeBreakpoint(master);
|
||||
removeBreakPoint(myBreakpointManager, master);
|
||||
assertNull(myDependentBreakpointManager.getMasterBreakpoint(slave));
|
||||
assertEmpty(myDependentBreakpointManager.getAllSlaveBreakpoints());
|
||||
}
|
||||
@@ -71,10 +71,10 @@ public class XDependentBreakpointsTest extends XBreakpointsTestCase {
|
||||
}
|
||||
|
||||
private XLineBreakpoint<MyBreakpointProperties> createSlave() {
|
||||
return myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, "file://slave", 2, new MyBreakpointProperties("z-slave"));
|
||||
return addLineBreakpoint(myBreakpointManager, "file://slave", 2, new MyBreakpointProperties("z-slave"));
|
||||
}
|
||||
|
||||
private XLineBreakpoint<MyBreakpointProperties> createMaster() {
|
||||
return myBreakpointManager.addLineBreakpoint(MY_LINE_BREAKPOINT_TYPE, "file://master", 1, new MyBreakpointProperties("z-master"));
|
||||
return addLineBreakpoint(myBreakpointManager, "file://master", 1, new MyBreakpointProperties("z-master"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,16 +16,13 @@
|
||||
package git4idea.push;
|
||||
|
||||
import com.intellij.notification.NotificationType;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.vcs.update.UpdatedFiles;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.testFramework.EdtTestUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import git4idea.GitBranch;
|
||||
import git4idea.GitLocalBranch;
|
||||
import git4idea.GitRemoteBranch;
|
||||
import git4idea.GitStandardRemoteBranch;
|
||||
@@ -36,7 +33,6 @@ import git4idea.test.MockGitRepository;
|
||||
import git4idea.update.GitUpdateResult;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@@ -239,17 +235,7 @@ public class GitPushResultNotificationTest extends GitPlatformTest {
|
||||
EdtTestUtil.runInEdtAndWait(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
root.set(ApplicationManager.getApplication().runWriteAction(new Computable<VirtualFile>() {
|
||||
@Override
|
||||
public VirtualFile compute() {
|
||||
try {
|
||||
return ourProject.getBaseDir().createChildData(null, name);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}));
|
||||
root.set(createChildData(ourProject.getBaseDir(), name));
|
||||
}
|
||||
});
|
||||
return new MockGitRepository(ourProject, root.get());
|
||||
|
||||
+7
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2012 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -19,7 +19,6 @@ package com.intellij.uiDesigner.make;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.PluginPathManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -94,7 +93,12 @@ public class FormSourceCodeGeneratorTest extends PsiTestCase {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
myGenerator.generate(form);
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
myGenerator.generate(form);
|
||||
}
|
||||
});
|
||||
}
|
||||
catch (Exception e) {
|
||||
fail(e.getMessage());
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.intellij.util.xml;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
@@ -125,7 +126,13 @@ public class DomFileDescriptionTest extends DomHardCoreTestCase {
|
||||
final XmlFile file = (XmlFile)createFile("a.xml", "<b>42</b>");
|
||||
|
||||
getDomManager().registerFileDescription(new MockDomFileDescription<MyElement>(MyElement.class, "b", file), myDisposable);
|
||||
file.setName("b.xml");
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
file.setName("b.xml");
|
||||
}
|
||||
});
|
||||
|
||||
assertTrue(getDomManager().isDomFile(file));
|
||||
final XmlFile copy = (XmlFile)file.copy();
|
||||
assertTrue(getDomManager().isDomFile(copy));
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.util.xml;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -56,9 +57,14 @@ public class DomPerformanceTest extends DomHardCoreTestCase{
|
||||
PlatformTestUtil.startPerformanceTest(getTestName(false), 80000, new ThrowableRunnable() {
|
||||
@Override
|
||||
public void run() throws Exception {
|
||||
for (int i = 0; i < 239; i++) {
|
||||
element.addChildElement().copyFrom(child);
|
||||
}
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
for (int i = 0; i < 239; i++) {
|
||||
element.addChildElement().copyFrom(child);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}).cpuBound().attempts(1).useLegacyScaling().assertTiming();
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,11 +17,9 @@ package com.intellij.util.xml;
|
||||
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.xml.XmlFile;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
import com.intellij.util.xml.events.DomEvent;
|
||||
import com.intellij.util.xml.impl.DomFileElementImpl;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -48,14 +46,14 @@ public class DomVirtualFileEventsTest extends DomHardCoreTestCase{
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
final VirtualFile dir = getVirtualFile(createTempDirectory());
|
||||
PsiTestUtil.addSourceContentToRoots(getModule(), dir);
|
||||
addSourceContentToRoots(getModule(), dir);
|
||||
final VirtualFile childData = dir.createChildData(this, "abc.xml");
|
||||
System.gc();
|
||||
System.gc();
|
||||
System.gc();
|
||||
System.gc();
|
||||
assertResultsAndClear();
|
||||
VfsUtil.saveText(childData, "<a/>");
|
||||
setFileText(childData, "<a/>");
|
||||
assertEventCount(0);
|
||||
assertResultsAndClear();
|
||||
}
|
||||
@@ -67,10 +65,10 @@ public class DomVirtualFileEventsTest extends DomHardCoreTestCase{
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
final VirtualFile dir = getVirtualFile(createTempDirectory());
|
||||
PsiTestUtil.addSourceContentToRoots(getModule(), dir);
|
||||
addSourceContentToRoots(getModule(), dir);
|
||||
final VirtualFile childData = dir.createChildData(this, "abc.xml");
|
||||
assertResultsAndClear();
|
||||
VfsUtil.saveText(childData, "<a/>");
|
||||
setFileText(childData, "<a/>");
|
||||
final DomFileElementImpl<DomElement> fileElement = getFileElement(childData);
|
||||
assertResultsAndClear();
|
||||
|
||||
@@ -88,9 +86,9 @@ public class DomVirtualFileEventsTest extends DomHardCoreTestCase{
|
||||
@Override
|
||||
protected void run() throws Throwable {
|
||||
final VirtualFile dir = getVirtualFile(createTempDirectory());
|
||||
PsiTestUtil.addSourceContentToRoots(getModule(), dir);
|
||||
addSourceContentToRoots(getModule(), dir);
|
||||
final VirtualFile data = dir.createChildData(this, "abc.xml");
|
||||
VfsUtil.saveText(data, "<a/>");
|
||||
setFileText(data, "<a/>");
|
||||
PsiDocumentManager.getInstance(getProject()).commitAllDocuments();
|
||||
final DomFileElementImpl<DomElement> fileElement = getFileElement(data);
|
||||
assertEventCount(0);
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
/*
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Created by IntelliJ IDEA.
|
||||
* User: mike
|
||||
@@ -8,6 +24,7 @@
|
||||
*/
|
||||
package com.intellij.codeInsight;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.psi.AbstractReparseTestCase;
|
||||
@@ -154,7 +171,13 @@ public class XmlReparseTest extends AbstractReparseTestCase {
|
||||
private static void removeGarbage(Document document) {
|
||||
int i = document.getText().indexOf(marker);
|
||||
if (i==-1) return;
|
||||
document.replaceString(i,i+marker.length(),"");
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
document.replaceString(i, i + marker.length(), "");
|
||||
}
|
||||
});
|
||||
|
||||
removeGarbage(document);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user