X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix%2Ftest%2FConversionTest.java;h=4fe1653d4a81f08965dc8e5f4b54b5b0fb7c4e83;hb=3cc0baccd18b3ad71955364d99754f982d7532a7;hp=92aca369d899eda7858828ce9378271478e654f5;hpb=86d49dbc7c3eca665b7823b5de49bb73a31c7722;p=fanfix.git diff --git a/src/be/nikiroo/fanfix/test/ConversionTest.java b/src/be/nikiroo/fanfix/test/ConversionTest.java index 92aca36..4fe1653 100644 --- a/src/be/nikiroo/fanfix/test/ConversionTest.java +++ b/src/be/nikiroo/fanfix/test/ConversionTest.java @@ -6,7 +6,10 @@ import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -25,6 +28,7 @@ class ConversionTest extends TestLauncher { private File expectedDir; private File resultDir; private List realTypes; + private Map> skipCompare; public ConversionTest(String[] args) { super("Conversion", args); @@ -69,6 +73,15 @@ class ConversionTest extends TestLauncher { resultDir = new File("test/result/"); tempFiles = new TempFiles("Fanfix-ConversionTest"); + + skipCompare = new HashMap>(); + skipCompare.put("epb.ncx", + Arrays.asList(" ", + " ")); + skipCompare.put(".info", + Arrays.asList("CREATION_DATE=", "SUBJECT=", "URL=", "UUID=")); + skipCompare.put("URL", Arrays.asList("file:/")); } @Override @@ -85,7 +98,8 @@ class ConversionTest extends TestLauncher { + type.getDefaultExtension(false)); // Check conversion: - compareFiles(this, expectedDir, resultDir, type, null); + compareFiles(this, expectedDir, resultDir, type, "Generate " + + type); // LATEX not supported as input if (BasicOutput.OutputType.LATEX.equals(type)) { @@ -97,7 +111,8 @@ class ConversionTest extends TestLauncher { File crossDir = tempFiles.createTempDir("cross-result"); generate(this, target, crossDir, crossType); compareFiles(this, resultDir, crossDir, crossType, - crossType); + "Cross compare " + crossType + " generated from " + + type); } } }; @@ -152,15 +167,15 @@ class ConversionTest extends TestLauncher { } private void compareFiles(TestCase testCase, File expectedDir, - File resultDir, final BasicOutput.OutputType typeToCompare, - final BasicOutput.OutputType sourceType) throws Exception { - + File resultDir, final BasicOutput.OutputType limitTiFiles, + final String errMess) throws Exception { FilenameFilter filter = null; - if (typeToCompare != null) { + if (limitTiFiles != null) { filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return name.startsWith(typeToCompare.toString()); + return name.toLowerCase().startsWith( + limitTiFiles.toString().toLowerCase()); } }; } @@ -170,22 +185,20 @@ class ConversionTest extends TestLauncher { List expectedFiles = Arrays.asList(expectedDir.list(filter)); expectedFiles.sort(null); - testCase.assertEquals("The resulting file names are not expected", - expectedFiles, resultFiles); + testCase.assertEquals(errMess, expectedFiles, resultFiles); for (int i = 0; i < resultFiles.size(); i++) { File expected = new File(expectedDir, expectedFiles.get(i)); File result = new File(resultDir, resultFiles.get(i)); - testCase.assertEquals( - "Type mismatch: expected a " - + (expected.isDirectory() ? "directory" : "file") - + ", received a " - + (result.isDirectory() ? "directory" : "file"), + testCase.assertEquals(errMess + ": type mismatch: expected a " + + (expected.isDirectory() ? "directory" : "file") + + ", received a " + + (result.isDirectory() ? "directory" : "file"), expected.isDirectory(), result.isDirectory()); if (expected.isDirectory()) { - compareFiles(testCase, expected, result, null, sourceType); + compareFiles(testCase, expected, result, null, errMess); continue; } @@ -197,7 +210,7 @@ class ConversionTest extends TestLauncher { + "[zip-content]"); unzip(expected, tmpExpected); unzip(result, tmpResult); - compareFiles(testCase, tmpExpected, tmpResult, null, sourceType); + compareFiles(testCase, tmpExpected, tmpResult, null, errMess); } else { List expectedLines = Arrays.asList(IOUtils .readSmallFile(expected).split("\n")); @@ -215,13 +228,14 @@ class ConversionTest extends TestLauncher { String resultLine = resultLines.get(j); boolean skip = false; - for (String skipStart : new String[] { "CREATION_DATE=", - "SUBJECT=", "URL=", "UUID=" }) { - if (name.endsWith(".info") - && expectedLine.startsWith(skipStart) - && resultLine.startsWith(skipStart)) { - // TODO: check the format? - skip = true; + for (Entry> skipThose : skipCompare + .entrySet()) { + for (String skipStart : skipThose.getValue()) { + if (name.endsWith(skipThose.getKey()) + && expectedLine.startsWith(skipStart) + && resultLine.startsWith(skipStart)) { + skip = true; + } } } @@ -229,9 +243,9 @@ class ConversionTest extends TestLauncher { continue; } - testCase.assertEquals("Line " + (j + 1) + " (" + sourceType - + ") is not the same in file " + name, - expectedLine, resultLine); + testCase.assertEquals(errMess + ": line " + (j + 1) + + " is not the same in file " + name, expectedLine, + resultLine); } } }