summaryrefslogtreecommitdiff
path: root/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java')
-rw-r--r--java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java b/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java
index 8f6956808dea..dd0611f53175 100644
--- a/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java
@@ -1,6 +1,10 @@
package com.intellij.psi;
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.testFramework.LightVirtualFile;
import com.intellij.testFramework.PlatformTestCase;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.testFramework.PsiTestCase;
@@ -30,4 +34,15 @@ public class CodeFragmentsTest extends PsiTestCase{
PlatformTestUtil.tryGcSoftlyReachableObjects();
assertEquals("ab", PsiDocumentManager.getInstance(myProject).getDocument(fragment).getText());
}
+
+ public void testDontRecreateFragmentPsi() {
+ PsiExpressionCodeFragment fragment = JavaCodeFragmentFactory.getInstance(myProject).createExpressionCodeFragment("a", null, null, true);
+ VirtualFile file = fragment.getViewProvider().getVirtualFile();
+ assertInstanceOf(file, LightVirtualFile.class);
+
+ ProjectRootManagerEx.getInstanceEx(getProject()).makeRootsChange(EmptyRunnable.getInstance(), false, true);
+
+ assertSame(fragment, PsiManager.getInstance(myProject).findFile(file));
+ assertTrue(fragment.isValid());
+ }
}