diff options
Diffstat (limited to 'java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java')
-rw-r--r-- | java/java-tests/testSrc/com/intellij/psi/CodeFragmentsTest.java | 15 |
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()); + } } |