summaryrefslogtreecommitdiff
path: root/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java')
-rw-r--r--java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java b/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
index 096547c4f4db..61414ab0b416 100644
--- a/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
+++ b/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java
@@ -260,4 +260,20 @@ public class MiscPsiTest extends LightCodeInsightFixtureTestCase {
assertEquals("some.unknown.Foo<? extends String>", type.getCanonicalText());
}
+ public void testNoPsiModificationsInUncommittedDocument() {
+ final PsiJavaFile file = (PsiJavaFile)myFixture.addFileToProject("a.java", "class A{}");
+ Document document = file.getViewProvider().getDocument();
+ document.insertString(0, " ");
+
+ PsiClass psiClass = file.getClasses()[0];
+ try {
+ psiClass.addBefore(PsiParserFacade.SERVICE.getInstance(getProject()).createWhiteSpaceFromText(" "), psiClass.getLBrace());
+ fail();
+ }
+ catch (IllegalStateException e) {
+ assertEquals("Attempt to modify PSI for non-committed Document!", e.getMessage());
+ }
+ assertEquals("class A{}", psiClass.getText());
+ assertEquals(" class A{}", document.getText());
+ }
}