From 1efb644446b1285fa183570d607207fe123f2871 Mon Sep 17 00:00:00 2001 From: Maxim Kropotov Date: Wed, 24 May 2017 16:46:03 +0300 Subject: [PATCH] throw FileComparisonFailure in CodeInsightTestCase.checkResultByFile to make testdata editable --- .../codeInsight/CodeInsightTestCase.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java b/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java index 5111b4f81126..9e687131b83d 100644 --- a/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java +++ b/java/testFramework/src/com/intellij/codeInsight/CodeInsightTestCase.java @@ -41,6 +41,7 @@ import com.intellij.openapi.fileTypes.FileTypeManager; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.*; @@ -51,6 +52,7 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.PsiPackage; import com.intellij.psi.impl.source.PostprocessReformattingAspect; import com.intellij.psi.search.ProjectScope; +import com.intellij.rt.execution.junit.FileComparisonFailure; import com.intellij.testFramework.*; import com.intellij.util.ArrayUtil; import com.intellij.util.containers.ContainerUtil; @@ -459,25 +461,24 @@ public abstract class CodeInsightTestCase extends PsiTestCase { VirtualFile vFile = findVirtualFile(filePath); VfsTestUtil.assertFilePathEndsWithCaseSensitivePath(vFile, filePath); - String ft; + String expectedText; try { - ft = VfsUtilCore.loadText(vFile); + expectedText = VfsUtilCore.loadText(vFile); } catch (IOException e) { throw new RuntimeException(e); } - String fileText = StringUtil.convertLineSeparators(ft); - Document document = EditorFactory.getInstance().createDocument(fileText); + expectedText = StringUtil.convertLineSeparators(expectedText); + Document document = EditorFactory.getInstance().createDocument(expectedText); EditorTestUtil.CaretAndSelectionState caretState = EditorTestUtil.extractCaretAndSelectionMarkers(document); - String newFileText = document.getText(); - String newFileText1 = newFileText; + expectedText = document.getText(); if (stripTrailingSpaces) { - Document document1 = EditorFactory.getInstance().createDocument(newFileText); + Document document1 = EditorFactory.getInstance().createDocument(expectedText); ((DocumentImpl)document1).stripTrailingSpaces(getProject()); - newFileText1 = document1.getText(); + expectedText = document1.getText(); } if (myEditor instanceof EditorWindow) { @@ -485,10 +486,11 @@ public abstract class CodeInsightTestCase extends PsiTestCase { } myFile = PsiDocumentManager.getInstance(getProject()).getPsiFile(myEditor.getDocument()); - String text = myFile.getText(); - text = StringUtil.convertLineSeparators(text); + String actualText = StringUtil.convertLineSeparators(myFile.getText()); - assertEquals("Text mismatch in file " + filePath, newFileText1, text); + if (!Comparing.equal(expectedText, actualText)) { + throw new FileComparisonFailure("Text mismatch in file " + filePath, expectedText, actualText, vFile.getPath()); + } EditorTestUtil.verifyCaretAndSelectionState(myEditor, caretState); }