aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/testcases/org
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2021-01-21 21:04:24 +0000
committerPJ Fanning <fanningpj@apache.org>2021-01-21 21:04:24 +0000
commit4013ffa2203cf67a0a8138b641afffdf69a855b2 (patch)
tree671afd1de6445b8e708e373760dcdc08d4999358 /src/ooxml/testcases/org
parent4a632f9389ec85b422692e00f42357246ff8f4d0 (diff)
downloadpoi-4013ffa2203cf67a0a8138b641afffdf69a855b2.tar.gz
poi-4013ffa2203cf67a0a8138b641afffdf69a855b2.zip
[bug-65096] XLSX Streaming XML not correctly reading multiple inline Strings
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885770 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/testcases/org')
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFSheetXMLHandler.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFSheetXMLHandler.java b/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFSheetXMLHandler.java
new file mode 100644
index 0000000000..4e02aadf24
--- /dev/null
+++ b/src/ooxml/testcases/org/apache/poi/xssf/eventusermodel/TestXSSFSheetXMLHandler.java
@@ -0,0 +1,55 @@
+package org.apache.poi.xssf.eventusermodel;
+
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.util.XMLHelper;
+import org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.SheetContentsHandler;
+import org.apache.poi.xssf.usermodel.XSSFComment;
+import org.junit.jupiter.api.Test;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+import java.io.InputStream;
+import java.util.Iterator;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class TestXSSFSheetXMLHandler {
+ private static final POIDataSamples _ssTests = POIDataSamples.getSpreadSheetInstance();
+
+ @Test
+ public void testInlineString() throws Exception {
+ try (OPCPackage xlsxPackage = OPCPackage.open(_ssTests.openResourceAsStream("InlineString.xlsx"))) {
+ final XSSFReader reader = new XSSFReader(xlsxPackage);
+
+ final Iterator<InputStream> iter = reader.getSheetsData();
+
+ try (InputStream stream = iter.next()) {
+ final XMLReader sheetParser = XMLHelper.getSaxParserFactory().newSAXParser().getXMLReader();
+
+ sheetParser.setContentHandler(new XSSFSheetXMLHandler(reader.getStylesTable(),
+ new ReadOnlySharedStringsTable(xlsxPackage), new SheetContentsHandler() {
+
+ int cellCount = 0;
+
+ @Override
+ public void startRow(final int rowNum) {
+ }
+
+ @Override
+ public void endRow(final int rowNum) {
+ }
+
+ @Override
+ public void cell(final String cellReference, final String formattedValue,
+ final XSSFComment comment) {
+ assertEquals("\uD83D\uDE1Cmore text", formattedValue);
+ assertEquals(cellCount++, 0);
+ }
+ }, false));
+
+ sheetParser.parse(new InputSource(stream));
+ }
+ }
+ }
+}