throw FileComparisonFailure in CodeInsightTestCase.checkResultByFile to make testdata editable

This commit is contained in:
Maxim Kropotov
2017-05-25 12:59:54 +03:00
parent fabc3a7ee8
commit 1efb644446
@@ -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);
}