diff options
author | Dominik Stadler <centic@apache.org> | 2023-10-07 22:12:12 +0000 |
---|---|---|
committer | Dominik Stadler <centic@apache.org> | 2023-10-07 22:12:12 +0000 |
commit | a42842841e58e779cdabc5f418aefd4d14254817 (patch) | |
tree | 26d7361187a2b55c4e27b8fddc76e941ea64e938 /poi-ooxml | |
parent | 42651f6eda8a6c38149ae963447f770441e06ea4 (diff) | |
download | poi-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.java | 62 |
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."); + } + } } |