You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2022/05/17 13:36:06 UTC
[tika] 01/03: TIKA-3767 -- switch to @TempDir in TikaCLITest
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
commit 46d148fdcd026337344726bfe761b27baf84707d
Author: tallison <ta...@apache.org>
AuthorDate: Tue May 17 09:33:52 2022 -0400
TIKA-3767 -- switch to @TempDir in TikaCLITest
---
.../test/java/org/apache/tika/cli/TikaCLITest.java | 99 +++++++++-------------
1 file changed, 39 insertions(+), 60 deletions(-)
diff --git a/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java b/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
index 91599a649..a2c2bea40 100644
--- a/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
+++ b/tika-app/src/test/java/org/apache/tika/cli/TikaCLITest.java
@@ -24,29 +24,35 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.IOException;
import java.io.PrintStream;
import java.net.URI;
import java.nio.file.Files;
import java.nio.file.Path;
-import org.apache.commons.io.FileUtils;
-import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
import org.apache.tika.exception.TikaException;
+import org.apache.tika.utils.ProcessUtils;
/**
* Tests the Tika's cli
*/
public class TikaCLITest {
- private static final File testDataFile = new File("src/test/resources/test-data");
+ private static final File TEST_DATA_FILE = new File("src/test/resources/test-data");
+
private static Path ASYNC_CONFIG;
+ @TempDir
private static Path ASYNC_OUTPUT_DIR;
- private final URI testDataURI = testDataFile.toURI();
+
+ @TempDir
+ private Path extractDir;
+ private final URI testDataURI = TEST_DATA_FILE.toURI();
/* Test members */
private ByteArrayOutputStream outContent = null;
private ByteArrayOutputStream errContent = null;
@@ -62,31 +68,26 @@ public class TikaCLITest {
"<tikaConfig>" + ASYNC_CONFIG.toAbsolutePath() + "</tikaConfig>" + "</params>" +
"</async>" + "<fetchers>" +
"<fetcher class=\"org.apache.tika.pipes.fetcher.fs.FileSystemFetcher\">" +
- "<params>" + "<name>fsf</name>" + "<basePath>" + testDataFile.getAbsolutePath() +
+ "<params>" + "<name>fsf</name>" + "<basePath>" + TEST_DATA_FILE.getAbsolutePath() +
"</basePath>" + "</params>" + "</fetcher>" + "</fetchers>" + "<emitters>" +
"<emitter class=\"org.apache.tika.pipes.emitter.fs.FileSystemEmitter\">" +
"<params>" + "<name>fse</name>" + "<basePath>" + ASYNC_OUTPUT_DIR.toAbsolutePath() +
"</basePath>" + "</params></emitter>" + "</emitters>" + "<pipesIterator " +
"class=\"org.apache.tika.pipes.pipesiterator.fs.FileSystemPipesIterator\">" +
- "<params>" + "<basePath>" + testDataFile.getAbsolutePath() + "</basePath>" +
+ "<params>" + "<basePath>" + TEST_DATA_FILE.getAbsolutePath() + "</basePath>" +
"<fetcherName>fsf</fetcherName>" + "<emitterName>fse</emitterName>" + "</params>" +
"</pipesIterator>" + "</properties>";
Files.write(ASYNC_CONFIG, xml.getBytes(UTF_8));
}
- @AfterAll
- public static void tearDownClass() throws Exception {
- Files.delete(ASYNC_CONFIG);
- FileUtils.deleteDirectory(ASYNC_OUTPUT_DIR.toFile());
- }
-
- protected static void assertExtracted(File f, String allFiles) {
+ protected static void assertExtracted(Path p, String allFiles) throws IOException {
- assertTrue(f.exists(), "File " + f.getName() + " not found in " + allFiles);
+ assertTrue(Files.exists(p), "File " + p.getFileName() + " not found in " + allFiles);
- assertFalse(f.isDirectory(), "File " + f.getName() + " is a directory!");
+ assertFalse(Files.isDirectory(p), "File " + p.getFileName() + " is a directory!");
- assertTrue(f.length() > 0, "File " + f.getName() + " wasn't extracted with contents");
+ assertTrue(Files.size(p) > 0, "File " + p.getFileName() + " wasn't extracted with " +
+ "contents");
}
/**
@@ -365,52 +366,39 @@ public class TikaCLITest {
private void testExtract(String targetFile, String[] expectedChildrenFileNames,
int expectedLength) throws Exception {
- File tempFile = File.createTempFile("tika-test-", "");
- assertTrue(tempFile.delete());
- assertTrue(tempFile.mkdir());
- try {
- String[] params = {"--extract-dir=" + tempFile.getAbsolutePath(), "-z",
- resourcePrefix + "/" + targetFile};
+ String[] params = {"--extract-dir=" + ProcessUtils.escapeCommandLine(
+ extractDir.toAbsolutePath().toString()), "-z",
+ resourcePrefix + "/" + targetFile};
- TikaCLI.main(params);
+ TikaCLI.main(params);
- String[] tempFileNames = tempFile.list();
- assertNotNull(tempFileNames);
- assertEquals(expectedLength, tempFileNames.length);
- String allFiles = String.join(" : ", tempFileNames);
+ String[] tempFileNames = extractDir.toFile().list();
+ assertNotNull(tempFileNames);
+ assertEquals(expectedLength, tempFileNames.length);
+ String allFiles = String.join(" : ", tempFileNames);
- for (String expectedChildName : expectedChildrenFileNames) {
- assertExtracted(new File(tempFile, expectedChildName), allFiles);
- }
- } finally {
- FileUtils.forceDeleteOnExit(tempFile);
+ for (String expectedChildName : expectedChildrenFileNames) {
+ assertExtracted(extractDir.resolve(expectedChildName), allFiles);
}
}
@Test
public void testExtractTgz() throws Exception {
//TIKA-2564
- File tempFile = File.createTempFile("tika-test-", "");
- assertTrue(tempFile.delete());
- assertTrue(tempFile.mkdir());
- try {
- String[] params = {"--extract-dir=" + tempFile.getAbsolutePath(), "-z",
+ String[] params = {"--extract-dir=" + extractDir.toAbsolutePath(), "-z",
resourcePrefix + "/test-documents.tgz"};
TikaCLI.main(params);
- String[] tempFileNames = tempFile.list();
+ String[] tempFileNames = extractDir.toFile().list();
assertNotNull(tempFileNames);
String allFiles = String.join(" : ", tempFileNames);
- File expectedTAR = new File(tempFile, "test-documents.tar");
+ Path expectedTAR = extractDir.resolve("test-documents.tar");
assertExtracted(expectedTAR, allFiles);
- } finally {
- FileUtils.deleteDirectory(tempFile);
- }
}
// TIKA-920
@@ -438,33 +426,24 @@ public class TikaCLITest {
@Test
public void testExtractInlineImages() throws Exception {
- File tempFile = File.createTempFile("tika-test-", "");
- assertTrue(tempFile.delete());
- assertTrue(tempFile.mkdir());
- // google guava library has better solution
-
- try {
- String[] params = {"--extract-dir=" + tempFile.getAbsolutePath(), "-z",
+ String[] params = {"--extract-dir=" + extractDir.toAbsolutePath(), "-z",
resourcePrefix + "/testPDF_childAttachments.pdf"};
TikaCLI.main(params);
- String[] tempFileNames = tempFile.list();
+ String[] tempFileNames = extractDir.toFile().list();
assertNotNull(tempFileNames);
String allFiles = String.join(" : ", tempFileNames);
- File jpeg = new File(tempFile, "image0.jpg");
+ Path jpeg = extractDir.resolve("image0.jpg");
//tiff isn't extracted without optional image dependency
// File tiff = new File(tempFile, "image1.tif");
- File jobOptions = new File(tempFile, "Press Quality(1).joboptions");
- File doc = new File(tempFile, "Unit10.doc");
+ Path jobOptions = extractDir.resolve("Press Quality(1).joboptions");
+ Path doc = extractDir.resolve("Unit10.doc");
assertExtracted(jpeg, allFiles);
assertExtracted(jobOptions, allFiles);
assertExtracted(doc, allFiles);
- } finally {
- FileUtils.deleteDirectory(tempFile);
- }
}
@Test
@@ -485,7 +464,7 @@ public class TikaCLITest {
@Test
public void testConfig() throws Exception {
String content =
- getParamOutContent("--config=" + testDataFile.toString() + "/tika-config1.xml",
+ getParamOutContent("--config=" + TEST_DATA_FILE.toString() + "/tika-config1.xml",
resourcePrefix + "bad_xml.xml");
assertTrue(content.contains("apple"));
assertTrue(content.contains("org.apache.tika.parser.html.HtmlParser"));
@@ -494,7 +473,7 @@ public class TikaCLITest {
@Test
public void testConfigIgnoreInit() throws Exception {
String content = getParamOutContent(
- "--config=" + testDataFile.toString() + "/TIKA-2389-ignore-init-problems.xml",
+ "--config=" + TEST_DATA_FILE.toString() + "/TIKA-2389-ignore-init-problems.xml",
resourcePrefix + "test_recursive_embedded.docx");
assertTrue(content.contains("embed_1a"));
//TODO: add a real unit test that configures logging to a file to test that nothing is
@@ -561,7 +540,7 @@ public class TikaCLITest {
@Test
public void testConfigSerializationCustomMinimal() throws Exception {
String content =
- getParamOutContent("--config=" + testDataFile.toString() + "/tika-config2.xml",
+ getParamOutContent("--config=" + TEST_DATA_FILE.toString() + "/tika-config2.xml",
"--dump-minimal-config").replaceAll("[\r\n\t ]+", " ");
String expected = "<parser class=\"org.apache.tika.parser.DefaultParser\">" +
@@ -575,7 +554,7 @@ public class TikaCLITest {
@Test
public void testConfigSerializationCustomStatic() throws Exception {
String content =
- getParamOutContent("--config=" + testDataFile.toString() + "/tika-config2.xml",
+ getParamOutContent("--config=" + TEST_DATA_FILE.toString() + "/tika-config2.xml",
"--dump-static-config");
assertFalse(content.contains("org.apache.tika.parser.executable.Executable"));
}