aboutsummaryrefslogtreecommitdiffstats
path: root/poi-ooxml
diff options
context:
space:
mode:
authorDominik Stadler <centic@apache.org>2023-10-07 22:12:12 +0000
committerDominik Stadler <centic@apache.org>2023-10-07 22:12:12 +0000
commita42842841e58e779cdabc5f418aefd4d14254817 (patch)
tree26d7361187a2b55c4e27b8fddc76e941ea64e938 /poi-ooxml
parent42651f6eda8a6c38149ae963447f770441e06ea4 (diff)
downloadpoi-a42842841e58e779cdabc5f418aefd4d14254817.tar.gz
poi-a42842841e58e779cdabc5f418aefd4d14254817.zip
Add some missing schema-files to ooxml-lite
This should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62255 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1912791 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'poi-ooxml')
-rw-r--r--poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java62
1 files changed, 39 insertions, 23 deletions
diff --git a/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java b/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
index 8dd8a70e23..cec4181569 100644
--- a/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
+++ b/poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
@@ -34,6 +34,7 @@ import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.POIDataSamples;
import org.apache.poi.ooxml.POIXMLException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.poifs.crypt.HashAlgorithm;
@@ -226,7 +227,7 @@ public final class TestXSSFReader {
private String getShapesString(XSSFReader.SheetIterator it) {
StringBuilder sb = new StringBuilder();
while (it.hasNext()) {
- it.next();
+ assertNotNull(it.next());
List<XSSFShape> shapes = it.getShapes();
if (shapes != null) {
for (XSSFShape shape : shapes) {
@@ -259,27 +260,27 @@ public final class TestXSSFReader {
}
}
- /**
- * NPE from XSSFReader$SheetIterator.<init> on XLSX files generated by
- * the openpyxl library
- */
- @Test
- void test58747() throws Exception {
- try (OPCPackage pkg = XSSFTestDataSamples.openSamplePackage("58747.xlsx")) {
- ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(pkg);
- assertNotNull(strings);
- XSSFReader reader = new XSSFReader(pkg);
- StylesTable styles = reader.getStylesTable();
- assertNotNull(styles);
-
- XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) reader.getSheetsData();
- assertTrue(iter.hasNext());
- iter.next();
-
- assertFalse(iter.hasNext());
- assertEquals("Orders", iter.getSheetName());
- }
- }
+ /**
+ * NPE from XSSFReader$SheetIterator.<init> on XLSX files generated by
+ * the openpyxl library
+ */
+ @Test
+ void test58747() throws Exception {
+ try (OPCPackage pkg = XSSFTestDataSamples.openSamplePackage("58747.xlsx")) {
+ ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(pkg);
+ assertNotNull(strings);
+ XSSFReader reader = new XSSFReader(pkg);
+ StylesTable styles = reader.getStylesTable();
+ assertNotNull(styles);
+
+ XSSFReader.SheetIterator iter = (XSSFReader.SheetIterator) reader.getSheetsData();
+ assertTrue(iter.hasNext());
+ assertNotNull(iter.next());
+
+ assertFalse(iter.hasNext());
+ assertEquals("Orders", iter.getSheetName());
+ }
+ }
/**
* NPE when sheet has no relationship id in the workbook
@@ -329,6 +330,7 @@ public final class TestXSSFReader {
}
@Disabled("until we fix issue https://bz.apache.org/bugzilla/show_bug.cgi?id=61701")
+ @Test
void test61701() throws Exception {
try(Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("simple-table-named-range.xlsx")) {
Name name = workbook.getName("total");
@@ -353,15 +355,17 @@ public final class TestXSSFReader {
}
@Test
- void testStrictOoxmlNotAllowed() throws Exception {
+ void testStrictOoxmlNotAllowed() {
assertThrows(POIXMLException.class, () -> {
try (OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("sample.strict.xlsx"))) {
XSSFReader reader = new XSSFReader(pkg);
+ assertNotNull(reader);
}
});
assertThrows(POIXMLException.class, () -> {
try (OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("sample.strict.xlsx"))) {
XSSFReader reader = new XSSFReader(pkg, false);
+ assertNotNull(reader);
}
});
}
@@ -435,4 +439,16 @@ public final class TestXSSFReader {
return Base64.getEncoder().encodeToString(md.digest());
}
+
+ @Test
+ public void testMissingLiteFile() throws IOException, OpenXML4JException {
+ try (OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream(
+ "clusterfuzz-testcase-minimized-XLSX2CSVFuzzer-6594557414080512.xlsx"))) {
+ XSSFReader xssfReader = new XSSFReader(pkg);
+ assertThrows(IOException.class,
+ xssfReader::getStylesTable,
+ "The file is broken, but triggers loading of some additional resources which would "
+ + "be missing in the ooxml-lite package otherwise.");
+ }
+ }
}