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
The following commit(s) were added to refs/heads/main by this push:
new ed51a5d TIKA-3624 -- add unit test for 3624
ed51a5d is described below
commit ed51a5dac96ec69f791733f314bac8975ad471b8
Author: tallison <[email protected]>
AuthorDate: Fri Dec 17 13:00:11 2021 -0500
TIKA-3624 -- add unit test for 3624
---
.../tika/server/core/resource/UnpackerResource.java | 3 ++-
.../java/org/apache/tika/server/core/CXFTestBase.java | 18 ++++++++++++++++++
.../tika/server/standard/UnpackerResourceTest.java | 5 +++--
3 files changed, 23 insertions(+), 3 deletions(-)
diff --git
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
index a59a2d6..7fbb800 100644
---
a/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
+++
b/tika-server/tika-server-core/src/main/java/org/apache/tika/server/core/resource/UnpackerResource.java
@@ -69,8 +69,9 @@ import org.apache.tika.sax.RichTextContentHandler;
@Path("/unpack")
public class UnpackerResource {
public static final String TEXT_FILENAME = "__TEXT__";
+ public static final String META_FILENAME = "__METADATA__";
+
private static final long MAX_ATTACHMENT_BYTES = 100 * 1024 * 1024;
- private static final String META_FILENAME = "__METADATA__";
private static final Logger LOG =
LoggerFactory.getLogger(UnpackerResource.class);
diff --git
a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
index 05131c9..91430c0 100644
---
a/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
+++
b/tika-server/tika-server-core/src/test/java/org/apache/tika/server/core/CXFTestBase.java
@@ -26,6 +26,7 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
@@ -189,6 +190,23 @@ public abstract class CXFTestBase {
return bos.toString(UTF_8.name());
}
+ protected String readArchiveMetadataAndText(InputStream inputStream)
throws IOException {
+ Path tempFile = writeTemporaryArchiveFile(inputStream, "zip");
+ ZipFile zip = new ZipFile(tempFile.toFile());
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ zip.getEntry(UnpackerResource.META_FILENAME);
+
IOUtils.copy(zip.getInputStream(zip.getEntry(UnpackerResource.META_FILENAME)),
bos);
+ String metadata = new String(bos.toByteArray(), UTF_8);
+
+ bos = new ByteArrayOutputStream();
+ zip.getEntry(UnpackerResource.TEXT_FILENAME);
+
IOUtils.copy(zip.getInputStream(zip.getEntry(UnpackerResource.TEXT_FILENAME)),
bos);
+ String txt = new String(bos.toByteArray(), UTF_8);
+ zip.close();
+ Files.delete(tempFile);
+ return metadata + "\n\n" + txt;
+ }
+
protected Map<String, String> readArchiveFromStream(ArchiveInputStream zip)
throws IOException {
Map<String, String> data = new HashMap<>();
diff --git
a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java
b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java
index 2ace75d..af157b9 100644
---
a/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java
+++
b/tika-server/tika-server-standard/src/test/java/org/apache/tika/server/standard/UnpackerResourceTest.java
@@ -200,9 +200,10 @@ public class UnpackerResourceTest extends CXFTestBase {
.header(CONTENT_TYPE,
APPLICATION_XML).accept("application/zip")
.put(ClassLoader.getSystemResourceAsStream("test-documents/test.doc"));
- String responseMsg = readArchiveText((InputStream)
response.getEntity());
+ String responseMsg = readArchiveMetadataAndText((InputStream)
response.getEntity());
assertNotNull(responseMsg);
- assertTrue(responseMsg.contains("test"));
+ assertContains("test", responseMsg);
+ assertContains("dc:creator,Maxim Valyanskiy", responseMsg);
}
@Test