Throwing FileComparisonFailure enables opening test data file in diff dialog right from the test console
This commit is contained in:
@@ -27,10 +27,9 @@ import com.intellij.execution.process.ProcessOutputTypes;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.test.Tmpdir;
|
||||
import org.junit.ComparisonFailure;
|
||||
import org.junit.Rule;
|
||||
@@ -123,9 +122,8 @@ public abstract class KotlinIntegrationTestBase {
|
||||
fail("No .expected file " + expectedFile);
|
||||
}
|
||||
else {
|
||||
String goldContent = FileUtil.loadFile(expectedFile, CharsetToolkit.UTF8, true);
|
||||
try {
|
||||
assertEquals(goldContent, normalizedContent);
|
||||
JetTestUtils.assertEqualsToFile(expectedFile, normalizedContent);
|
||||
actualFile.delete();
|
||||
}
|
||||
catch (ComparisonFailure e) {
|
||||
|
||||
@@ -23,12 +23,14 @@ import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.ShutDownTracker;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.psi.PsiFileFactory;
|
||||
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
||||
import com.intellij.rt.execution.junit.FileComparisonFailure;
|
||||
import com.intellij.testFramework.LightVirtualFile;
|
||||
import junit.framework.TestCase;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -380,12 +382,15 @@ public class JetTestUtils {
|
||||
FileUtil.writeToFile(expectedFile, actual);
|
||||
Assert.fail("Expected data file did not exist. Generating: " + expectedFile);
|
||||
}
|
||||
String expected = FileUtil.loadFile(expectedFile, true);
|
||||
String expected = FileUtil.loadFile(expectedFile, CharsetToolkit.UTF8, true);
|
||||
|
||||
// compare with hard copy: make sure nothing is lost in output
|
||||
Assert.assertEquals("Expected and actual namespaces differ from " + expectedFile.getName(),
|
||||
StringUtil.convertLineSeparators(expected),
|
||||
StringUtil.convertLineSeparators(actual));
|
||||
String expectedText = StringUtil.convertLineSeparators(expected);
|
||||
String actualText = StringUtil.convertLineSeparators(actual);
|
||||
if (!Comparing.equal(expectedText, actualText)) {
|
||||
throw new FileComparisonFailure("Expected and actual namespaces differ from " + expectedFile.getName(),
|
||||
expected, actual, expectedFile.getAbsolutePath());
|
||||
}
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.jetbrains.jet.cfg;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -147,9 +146,8 @@ public class JetControlFlowTest extends JetLiteFixture {
|
||||
FileUtil.writeToFile(expectedInstructionsFile, instructionDump.toString());
|
||||
fail("No expected instructions for " + name + " generated result is written into " + expectedInstructionsFileName);
|
||||
}
|
||||
String expectedInstructions = StringUtil.convertLineSeparators(FileUtil.loadFile(expectedInstructionsFile));
|
||||
|
||||
assertEquals(expectedInstructions, instructionDump.toString());
|
||||
JetTestUtils.assertEqualsToFile(expectedInstructionsFile, instructionDump.toString());
|
||||
|
||||
// StringBuilder graphDump = new StringBuilder();
|
||||
// for (Pseudocode pseudocode : pseudocodes) {
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ public abstract class AbstractDiagnosticsTestWithEagerResolve extends AbstractJe
|
||||
ok &= testFile.getActualText(bindingContext, actualText);
|
||||
}
|
||||
|
||||
assertEquals(expectedText, actualText.toString());
|
||||
assertSameLinesWithFile(testDataFile.getAbsolutePath(), actualText.toString());
|
||||
|
||||
assertTrue("Diagnostics mismatch. See the output above", ok);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.modules.xml;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import junit.framework.TestCase;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation;
|
||||
import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity;
|
||||
import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
@@ -56,6 +57,6 @@ public abstract class AbstractModuleXmlParserTest extends TestCase {
|
||||
fail("Expected data file does not exist. A new file created: " + txtFile);
|
||||
}
|
||||
|
||||
assertEquals(FileUtil.loadFile(txtFile, true), actual);
|
||||
JetTestUtils.assertEqualsToFile(txtFile, actual);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
package org.jetbrains.jet.modules.xml;
|
||||
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
import junit.framework.TestCase;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.JetTestUtils;
|
||||
@@ -43,8 +41,7 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
|
||||
Arrays.asList(new File("s1"), new File("s2")),
|
||||
false,
|
||||
Collections.<File>emptySet()).asText().toString();
|
||||
String expected = FileUtil.loadFile(new File("idea/testData/modules.xml/basic.xml"));
|
||||
UsefulTestCase.assertSameLines(expected, actual);
|
||||
JetTestUtils.assertEqualsToFile(new File("idea/testData/modules.xml/basic.xml"), actual);
|
||||
}
|
||||
|
||||
public void testFiltered() throws Exception {
|
||||
@@ -61,8 +58,7 @@ public class KotlinModuleXmlGeneratorTest extends TestCase {
|
||||
Arrays.asList(new File("s1"), new File("s2")),
|
||||
false,
|
||||
Collections.singleton(new File("cp1"))).asText().toString();
|
||||
String expected = FileUtil.loadFile(new File("idea/testData/modules.xml/filtered.xml"));
|
||||
UsefulTestCase.assertSameLines(expected, actual);
|
||||
JetTestUtils.assertEqualsToFile(new File("idea/testData/modules.xml/filtered.xml"), actual);
|
||||
}
|
||||
|
||||
public void testMultiple() throws Exception {
|
||||
|
||||
+1
-4
@@ -18,9 +18,7 @@ package org.jetbrains.jet.plugin.refactoring.changeSignature;
|
||||
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.refactoring.BaseRefactoringProcessor;
|
||||
@@ -217,8 +215,7 @@ public class JetChangeSignatureTest extends LightCodeInsightTestCase {
|
||||
List<String> messages = new ArrayList<String>(e.getMessages());
|
||||
Collections.sort(messages);
|
||||
File conflictsFile = new File(getTestDataPath() + getTestName(false) + "Messages.txt");
|
||||
String fileText = FileUtil.loadFile(conflictsFile, CharsetToolkit.UTF8, true);
|
||||
assertEquals(fileText, StringUtil.join(messages, "\n"));
|
||||
assertSameLinesWithFile(conflictsFile.getAbsolutePath(), StringUtil.join(messages, "\n"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,12 +18,9 @@ package org.jetbrains.jet.safeDelete;
|
||||
|
||||
import com.intellij.codeInsight.TargetElementUtilBase;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiParameter;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.BaseRefactoringProcessor;
|
||||
import com.intellij.refactoring.safeDelete.SafeDeleteHandler;
|
||||
@@ -133,8 +130,7 @@ public abstract class AbstractJetSafeDeleteTest extends LightCodeInsightFixtureT
|
||||
try {
|
||||
SafeDeleteHandler.invoke(getProject(), new PsiElement[] {element}, null, true, null);
|
||||
for (int j = 0; j < filePaths.length; j++) {
|
||||
String expectedText = FileUtil.loadFile(new File(filePaths[j] + ".after"));
|
||||
assertEquals(StringUtil.convertLineSeparators(expectedText), editors[j].getDocument().getText());
|
||||
assertSameLinesWithFile(new File(filePaths[j] + ".after").getAbsolutePath(), editors[j].getDocument().getText());
|
||||
}
|
||||
}
|
||||
catch (BaseRefactoringProcessor.ConflictsInTestsException e) {
|
||||
@@ -142,8 +138,7 @@ public abstract class AbstractJetSafeDeleteTest extends LightCodeInsightFixtureT
|
||||
Collections.sort(messages);
|
||||
|
||||
File messageFile = new File(path + ".messages");
|
||||
String expectedMessage = FileUtil.loadFile(messageFile, CharsetToolkit.UTF8, true);
|
||||
assertEquals(expectedMessage, StringUtil.join(messages, "\n"));
|
||||
assertSameLinesWithFile(messageFile.getAbsolutePath(), StringUtil.join(messages, "\n"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user