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]