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

Reply via email to