Author: fanningpj
Date: Thu Sep 21 12:15:20 2023
New Revision: 1912456

URL: http://svn.apache.org/viewvc?rev=1912456&view=rev
Log:
[bug-67396] add tests for standalone flag

Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestStreamHelper.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestStreamHelper.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestStreamHelper.java?rev=1912456&r1=1912455&r2=1912456&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestStreamHelper.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/openxml4j/opc/TestStreamHelper.java
 Thu Sep 21 12:15:20 2023
@@ -17,8 +17,17 @@
 
 package org.apache.poi.openxml4j.opc;
 
+import org.apache.commons.compress.archivers.ArchiveEntry;
+import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.ooxml.util.DocumentHelper;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.util.IOUtils;
+import org.apache.poi.xssf.streaming.SXSSFSheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.junit.jupiter.api.Test;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -45,11 +54,69 @@ class TestStreamHelper {
         elRun.appendChild(elText);
         elText.setTextContent("Hello Open XML !");
 
-        try (UnsynchronizedByteArrayOutputStream bos = new 
UnsynchronizedByteArrayOutputStream()) {
+        try (UnsynchronizedByteArrayOutputStream bos = 
UnsynchronizedByteArrayOutputStream.builder().get()) {
             StreamHelper.saveXmlInStream(doc, bos);
             String xml = bos.toString(StandardCharsets.UTF_8);
             assertTrue(xml.contains("standalone=\"yes\""), "xml contains 
standalone=yes?");
             assertTrue(xml.contains("encoding=\"UTF-8\""), "xml contains 
encoding=UTF-8?");
         }
     }
+
+    @Test
+    void testXSSF() throws IOException {
+        try(
+                XSSFWorkbook workbook = new XSSFWorkbook();
+                UnsynchronizedByteArrayOutputStream bos = 
UnsynchronizedByteArrayOutputStream.builder().get()
+        ) {
+            XSSFSheet sheet = workbook.createSheet("testsheet");
+            Cell cell = sheet.createRow(0).createCell(0);
+            cell.setCellValue("test-value");
+            CellStyle style = workbook.createCellStyle();
+            style.setWrapText(true);
+            cell.setCellStyle(style);
+            workbook.write(bos);
+            try(ZipArchiveInputStream zis = new 
ZipArchiveInputStream(bos.toInputStream())) {
+                ArchiveEntry entry;
+                final int maxSize = 1024 * 1024;
+                while((entry = zis.getNextEntry()) != null) {
+                    final int entrySize = (int) entry.getSize();
+                    final byte[] data = (entrySize == -1) ? 
IOUtils.toByteArrayWithMaxLength(zis, maxSize) :
+                            IOUtils.toByteArray(zis, entrySize, maxSize);
+                    final String str = new String(data, 
StandardCharsets.UTF_8);
+                    if (str.contains("standalone")) {
+                        assertTrue(str.contains("standalone=\"yes\""), 
"unexpected XML standalone flag in " + entry.getName());
+                    }
+                }
+            }
+        }
+    }
+
+    @Test
+    void testSXSSF() throws IOException {
+        try(
+                SXSSFWorkbook workbook = new SXSSFWorkbook();
+                UnsynchronizedByteArrayOutputStream bos = 
UnsynchronizedByteArrayOutputStream.builder().get()
+        ) {
+            SXSSFSheet sheet = workbook.createSheet("testsheet");
+            Cell cell = sheet.createRow(0).createCell(0);
+            cell.setCellValue("test-value");
+            CellStyle style = workbook.createCellStyle();
+            style.setWrapText(true);
+            cell.setCellStyle(style);
+            workbook.write(bos);
+            try(ZipArchiveInputStream zis = new 
ZipArchiveInputStream(bos.toInputStream())) {
+                ArchiveEntry entry;
+                final int maxSize = 1024 * 1024;
+                while((entry = zis.getNextEntry()) != null) {
+                    final int entrySize = (int) entry.getSize();
+                    final byte[] data = (entrySize == -1) ? 
IOUtils.toByteArrayWithMaxLength(zis, maxSize) :
+                            IOUtils.toByteArray(zis, entrySize, maxSize);
+                    final String str = new String(data, 
StandardCharsets.UTF_8);
+                    if (str.contains("standalone")) {
+                        assertTrue(str.contains("standalone=\"yes\""), 
"unexpected XML standalone flag in " + entry.getName());
+                    }
+                }
+            }
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to