You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2021/05/14 00:37:53 UTC
svn commit: r1889871 [7/17] - in /poi: site/src/documentation/content/xdocs/
site/src/documentation/content/xdocs/components/ trunk/ trunk/maven/
trunk/osgi/ trunk/osgi/src/test/java/org/apache/poi/osgi/
trunk/poi-examples/src/main/java/org/apache/poi/...
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFPicture.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFPicture.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFPicture.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFPicture.java Fri May 14 00:37:50 2021
@@ -20,6 +20,7 @@ package org.apache.poi.xssf.usermodel;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
import java.io.IOException;
import java.util.List;
@@ -41,6 +42,7 @@ public final class TestXSSFPicture exten
super(XSSFITestDataProvider.instance);
}
+ @Override
protected Picture getPictureShape(Drawing<?> pat, int picIdx) {
return (Picture)((XSSFDrawing)pat).getShapes().get(picIdx);
}
@@ -73,7 +75,7 @@ public final class TestXSSFPicture exten
CTTwoCellAnchor ctShapeHolder = drawing.getCTDrawing().getTwoCellAnchorArray(0);
// STEditAs.ABSOLUTE corresponds to ClientAnchor.DONT_MOVE_AND_RESIZE
- assertEquals(STEditAs.ABSOLUTE, ctShapeHolder.getEditAs());
+ assertSame(STEditAs.ABSOLUTE, ctShapeHolder.getEditAs());
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFVMLDrawing.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFVMLDrawing.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFVMLDrawing.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFVMLDrawing.java Fri May 14 00:37:50 2021
@@ -25,7 +25,6 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigInteger;
@@ -45,6 +44,7 @@ import com.microsoft.schemas.vml.CTShape
import com.microsoft.schemas.vml.STExt;
import com.microsoft.schemas.vml.STStrokeJoinStyle;
import com.microsoft.schemas.vml.impl.CTShapetypeImpl;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.POIDataSamples;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
@@ -62,8 +62,8 @@ class TestXSSFVMLDrawing {
assertEquals(2, items.size());
assertTrue(items.get(0) instanceof CTShapeLayout);
CTShapeLayout layout = (CTShapeLayout)items.get(0);
- assertEquals(STExt.EDIT, layout.getExt());
- assertEquals(STExt.EDIT, layout.getIdmap().getExt());
+ assertSame(STExt.EDIT, layout.getExt());
+ assertSame(STExt.EDIT, layout.getIdmap().getExt());
assertEquals("1", layout.getIdmap().getData());
assertTrue(items.get(1) instanceof CTShapetype);
@@ -72,8 +72,8 @@ class TestXSSFVMLDrawing {
assertEquals(202.0f, type.getSpt(), 0);
assertEquals("m,l,21600r21600,l21600,xe", type.getPath2());
assertEquals("_x0000_t202", type.getId());
- assertEquals(STTrueFalse.T, type.getPathArray(0).getGradientshapeok());
- assertEquals(STConnectType.RECT, type.getPathArray(0).getConnecttype());
+ assertSame(STTrueFalse.T, type.getPathArray(0).getGradientshapeok());
+ assertSame(STConnectType.RECT, type.getPathArray(0).getConnecttype());
CTShape shape = vml.newCommentShape();
items = vml.getItems();
@@ -82,16 +82,16 @@ class TestXSSFVMLDrawing {
assertEquals("#_x0000_t202", shape.getType());
assertEquals("position:absolute; visibility:hidden", shape.getStyle());
assertEquals("#ffffe1", shape.getFillcolor());
- assertEquals(STInsetMode.AUTO, shape.getInsetmode());
+ assertSame(STInsetMode.AUTO, shape.getInsetmode());
assertEquals("#ffffe1", shape.getFillArray(0).getColor());
CTShadow shadow = shape.getShadowArray(0);
- assertEquals(STTrueFalse.T, shadow.getOn());
+ assertSame(STTrueFalse.T, shadow.getOn());
assertEquals("black", shadow.getColor());
- assertEquals(STTrueFalse.T, shadow.getObscured());
- assertEquals(STConnectType.NONE, shape.getPathArray(0).getConnecttype());
+ assertSame(STTrueFalse.T, shadow.getObscured());
+ assertSame(STConnectType.NONE, shape.getPathArray(0).getConnecttype());
assertEquals("mso-direction-alt:auto", shape.getTextboxArray(0).getStyle());
CTClientData cldata = shape.getClientDataArray(0);
- assertEquals(STObjectType.NOTE, cldata.getObjectType());
+ assertSame(STObjectType.NOTE, cldata.getObjectType());
assertEquals(1, cldata.sizeOfMoveWithCellsArray());
assertEquals(1, cldata.sizeOfSizeWithCellsArray());
assertEquals("1, 15, 0, 2, 3, 15, 3, 16", cldata.getAnchorArray(0));
@@ -103,11 +103,11 @@ class TestXSSFVMLDrawing {
assertEquals("[True]", cldata.getVisibleList().toString());
//serialize and read again
- ByteArrayOutputStream out = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream();
vml.write(out);
XSSFVMLDrawing vml2 = new XSSFVMLDrawing();
- vml2.read(new ByteArrayInputStream(out.toByteArray()));
+ vml2.read(out.toInputStream());
List<XmlObject> items2 = vml2.getItems();
assertEquals(3, items2.size());
assertTrue(items2.get(0) instanceof CTShapeLayout);
@@ -208,6 +208,6 @@ class TestXSSFVMLDrawing {
XmlObject xst = objs.get(0);
assertTrue(xst instanceof CTShapetypeImpl);
CTShapetype st = (CTShapetype)xst;
- assertEquals(STStrokeJoinStyle.MITER, st.getStrokeArray(0).getJoinstyle());
+ assertSame(STStrokeJoinStyle.MITER, st.getStrokeArray(0).getJoinstyle());
}
}
\ No newline at end of file
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java Fri May 14 00:37:50 2021
@@ -17,6 +17,11 @@
package org.apache.poi.xssf.usermodel;
+import static org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM;
+import static org.apache.poi.hssf.HSSFTestDataSamples.openSampleFileStream;
+import static org.apache.poi.xssf.XSSFTestDataSamples.openSampleWorkbook;
+import static org.apache.poi.xssf.XSSFTestDataSamples.writeOut;
+import static org.apache.poi.xssf.XSSFTestDataSamples.writeOutAndReadBack;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -27,12 +32,10 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.Iterator;
@@ -72,7 +75,6 @@ import org.apache.poi.util.TempFile;
import org.apache.poi.xddf.usermodel.chart.XDDFBarChartData;
import org.apache.poi.xddf.usermodel.chart.XDDFChartData;
import org.apache.poi.xssf.XSSFITestDataProvider;
-import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.model.StylesTable;
import org.junit.jupiter.api.Test;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCalcPr;
@@ -92,94 +94,87 @@ public final class TestXSSFWorkbook ext
*/
@Test
void saveLoadNew() throws IOException, InvalidFormatException {
- XSSFWorkbook wb1 = new XSSFWorkbook();
-
- //check that the default date system is set to 1900
- CTWorkbookPr pr = wb1.getCTWorkbook().getWorkbookPr();
- assertNotNull(pr);
- assertTrue(pr.isSetDate1904());
- assertFalse(pr.getDate1904(), "XSSF must use the 1900 date system");
-
- Sheet sheet1 = wb1.createSheet("sheet1");
- Sheet sheet2 = wb1.createSheet("sheet2");
- wb1.createSheet("sheet3");
-
- RichTextString rts = wb1.getCreationHelper().createRichTextString("hello world");
-
- sheet1.createRow(0).createCell((short)0).setCellValue(1.2);
- sheet1.createRow(1).createCell((short)0).setCellValue(rts);
- sheet2.createRow(0);
-
- assertEquals(0, wb1.getSheetAt(0).getFirstRowNum());
- assertEquals(1, wb1.getSheetAt(0).getLastRowNum());
- assertEquals(0, wb1.getSheetAt(1).getFirstRowNum());
- assertEquals(0, wb1.getSheetAt(1).getLastRowNum());
- assertEquals(-1, wb1.getSheetAt(2).getFirstRowNum());
- assertEquals(-1, wb1.getSheetAt(2).getLastRowNum());
-
- File file = TempFile.createTempFile("poi-", ".xlsx");
- OutputStream out = new FileOutputStream(file);
- wb1.write(out);
- out.close();
-
- // Check the package contains what we'd expect it to
- OPCPackage pkg = OPCPackage.open(file.toString());
- PackagePart wbRelPart =
- pkg.getPart(PackagingURIHelper.createPartName("/xl/_rels/workbook.xml.rels"));
- assertNotNull(wbRelPart);
- assertTrue(wbRelPart.isRelationshipPart());
- assertEquals(ContentTypes.RELATIONSHIPS_PART, wbRelPart.getContentType());
-
- PackagePart wbPart =
- pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
- // Links to the three sheets, shared strings and styles
- assertTrue(wbPart.hasRelationships());
- assertEquals(5, wbPart.getRelationships().size());
- wb1.close();
-
- // Load back the XSSFWorkbook
- @SuppressWarnings("resource")
- XSSFWorkbook wb2 = new XSSFWorkbook(pkg);
- assertEquals(3, wb2.getNumberOfSheets());
- assertNotNull(wb2.getSheetAt(0));
- assertNotNull(wb2.getSheetAt(1));
- assertNotNull(wb2.getSheetAt(2));
+ File file;
+ try (XSSFWorkbook wb1 = new XSSFWorkbook()) {
- assertNotNull(wb2.getSharedStringSource());
- assertNotNull(wb2.getStylesSource());
+ //check that the default date system is set to 1900
+ CTWorkbookPr pr = wb1.getCTWorkbook().getWorkbookPr();
+ assertNotNull(pr);
+ assertTrue(pr.isSetDate1904());
+ assertFalse(pr.getDate1904(), "XSSF must use the 1900 date system");
+
+ Sheet sheet1 = wb1.createSheet("sheet1");
+ Sheet sheet2 = wb1.createSheet("sheet2");
+ wb1.createSheet("sheet3");
+
+ RichTextString rts = wb1.getCreationHelper().createRichTextString("hello world");
+
+ sheet1.createRow(0).createCell((short) 0).setCellValue(1.2);
+ sheet1.createRow(1).createCell((short) 0).setCellValue(rts);
+ sheet2.createRow(0);
+
+ assertEquals(0, wb1.getSheetAt(0).getFirstRowNum());
+ assertEquals(1, wb1.getSheetAt(0).getLastRowNum());
+ assertEquals(0, wb1.getSheetAt(1).getFirstRowNum());
+ assertEquals(0, wb1.getSheetAt(1).getLastRowNum());
+ assertEquals(-1, wb1.getSheetAt(2).getFirstRowNum());
+ assertEquals(-1, wb1.getSheetAt(2).getLastRowNum());
- assertEquals(0, wb2.getSheetAt(0).getFirstRowNum());
- assertEquals(1, wb2.getSheetAt(0).getLastRowNum());
- assertEquals(0, wb2.getSheetAt(1).getFirstRowNum());
- assertEquals(0, wb2.getSheetAt(1).getLastRowNum());
- assertEquals(-1, wb2.getSheetAt(2).getFirstRowNum());
- assertEquals(-1, wb2.getSheetAt(2).getLastRowNum());
-
- sheet1 = wb2.getSheetAt(0);
- assertEquals(1.2, sheet1.getRow(0).getCell(0).getNumericCellValue(), 0.0001);
- assertEquals("hello world", sheet1.getRow(1).getCell(0).getRichStringCellValue().getString());
+ file = writeOut(wb1, "poi-.xlsx");
+ }
- pkg.close();
+ // Check the package contains what we'd expect it to
+ try (OPCPackage pkg = OPCPackage.open(file.toString())) {
+ PackagePart wbRelPart =
+ pkg.getPart(PackagingURIHelper.createPartName("/xl/_rels/workbook.xml.rels"));
+ assertNotNull(wbRelPart);
+ assertTrue(wbRelPart.isRelationshipPart());
+ assertEquals(ContentTypes.RELATIONSHIPS_PART, wbRelPart.getContentType());
+
+ PackagePart wbPart =
+ pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
+ // Links to the three sheets, shared strings and styles
+ assertTrue(wbPart.hasRelationships());
+ assertEquals(5, wbPart.getRelationships().size());
+
+ // Load back the XSSFWorkbook
+ try (XSSFWorkbook wb2 = new XSSFWorkbook(pkg)) {
+ assertEquals(3, wb2.getNumberOfSheets());
+ assertNotNull(wb2.getSheetAt(0));
+ assertNotNull(wb2.getSheetAt(1));
+ assertNotNull(wb2.getSheetAt(2));
+
+ assertNotNull(wb2.getSharedStringSource());
+ assertNotNull(wb2.getStylesSource());
+
+ assertEquals(0, wb2.getSheetAt(0).getFirstRowNum());
+ assertEquals(1, wb2.getSheetAt(0).getLastRowNum());
+ assertEquals(0, wb2.getSheetAt(1).getFirstRowNum());
+ assertEquals(0, wb2.getSheetAt(1).getLastRowNum());
+ assertEquals(-1, wb2.getSheetAt(2).getFirstRowNum());
+ assertEquals(-1, wb2.getSheetAt(2).getLastRowNum());
+
+ Sheet sheet1 = wb2.getSheetAt(0);
+ assertEquals(1.2, sheet1.getRow(0).getCell(0).getNumericCellValue(), 0.0001);
+ assertEquals("hello world", sheet1.getRow(1).getCell(0).getRichStringCellValue().getString());
+ }
+ }
}
@Test
void existing() throws Exception {
-
- XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
- assertNotNull(workbook.getSharedStringSource());
- assertNotNull(workbook.getStylesSource());
-
- // And check a few low level bits too
- OPCPackage pkg = OPCPackage.open(HSSFTestDataSamples.openSampleFileStream("Formatting.xlsx"));
- PackagePart wbPart =
- pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
-
- // Links to the three sheets, shared, styles and themes
- assertTrue(wbPart.hasRelationships());
- assertEquals(6, wbPart.getRelationships().size());
-
- pkg.close();
- workbook.close();
+ try (XSSFWorkbook workbook = openSampleWorkbook("Formatting.xlsx");
+ OPCPackage pkg = OPCPackage.open(openSampleFileStream("Formatting.xlsx"))) {
+ assertNotNull(workbook.getSharedStringSource());
+ assertNotNull(workbook.getStylesSource());
+
+ // And check a few low level bits too
+ PackagePart wbPart = pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
+
+ // Links to the three sheets, shared, styles and themes
+ assertTrue(wbPart.hasRelationships());
+ assertEquals(6, wbPart.getRelationships().size());
+ }
}
@Test
@@ -230,7 +225,7 @@ public final class TestXSSFWorkbook ext
@Test
void loadSave() throws IOException {
- XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
+ XSSFWorkbook workbook = openSampleWorkbook("Formatting.xlsx");
assertEquals(3, workbook.getNumberOfSheets());
assertEquals("dd/mm/yyyy", workbook.getSheetAt(0).getRow(1).getCell(0).getRichStringCellValue().getString());
assertNotNull(workbook.getSharedStringSource());
@@ -238,7 +233,7 @@ public final class TestXSSFWorkbook ext
// Write out, and check
// Load up again, check all still there
- XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+ XSSFWorkbook wb2 = writeOutAndReadBack(workbook);
assertEquals(3, wb2.getNumberOfSheets());
assertNotNull(wb2.getSheetAt(0));
assertNotNull(wb2.getSheetAt(1));
@@ -257,43 +252,41 @@ public final class TestXSSFWorkbook ext
@Test
void styles() throws IOException {
- XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
-
- StylesTable ss = wb1.getStylesSource();
- assertNotNull(ss);
- StylesTable st = ss;
-
- // Has 8 number formats
- assertEquals(8, st.getNumDataFormats());
- // Has 2 fonts
- assertEquals(2, st.getFonts().size());
- // Has 2 fills
- assertEquals(2, st.getFills().size());
- // Has 1 border
- assertEquals(1, st.getBorders().size());
+ try (XSSFWorkbook wb1 = openSampleWorkbook("Formatting.xlsx")) {
+ StylesTable ss = wb1.getStylesSource();
+ assertNotNull(ss);
+ StylesTable st = ss;
+
+ // Has 8 number formats
+ assertEquals(8, st.getNumDataFormats());
+ // Has 2 fonts
+ assertEquals(2, st.getFonts().size());
+ // Has 2 fills
+ assertEquals(2, st.getFills().size());
+ // Has 1 border
+ assertEquals(1, st.getBorders().size());
- // Add two more styles
- assertEquals(StylesTable.FIRST_CUSTOM_STYLE_ID + 8,
+ // Add two more styles
+ assertEquals(StylesTable.FIRST_CUSTOM_STYLE_ID + 8,
st.putNumberFormat("testFORMAT"));
- assertEquals(StylesTable.FIRST_CUSTOM_STYLE_ID + 8,
+ assertEquals(StylesTable.FIRST_CUSTOM_STYLE_ID + 8,
st.putNumberFormat("testFORMAT"));
- assertEquals(StylesTable.FIRST_CUSTOM_STYLE_ID + 9,
+ assertEquals(StylesTable.FIRST_CUSTOM_STYLE_ID + 9,
st.putNumberFormat("testFORMAT2"));
- assertEquals(10, st.getNumDataFormats());
-
-
- // Save, load back in again, and check
- XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
- wb1.close();
+ assertEquals(10, st.getNumDataFormats());
- ss = wb2.getStylesSource();
- assertNotNull(ss);
- assertEquals(10, st.getNumDataFormats());
- assertEquals(2, st.getFonts().size());
- assertEquals(2, st.getFills().size());
- assertEquals(1, st.getBorders().size());
- wb2.close();
+ // Save, load back in again, and check
+ try (XSSFWorkbook wb2 = writeOutAndReadBack(wb1)) {
+ ss = wb2.getStylesSource();
+ assertNotNull(ss);
+
+ assertEquals(10, st.getNumDataFormats());
+ assertEquals(2, st.getFonts().size());
+ assertEquals(2, st.getFills().size());
+ assertEquals(1, st.getBorders().size());
+ }
+ }
}
@Test
@@ -305,7 +298,7 @@ public final class TestXSSFWorkbook ext
assertEquals(2, sheetId);
//test file with gaps in the sheetId sequence
- try (XSSFWorkbook wbBack = XSSFTestDataSamples.openSampleWorkbook("47089.xlsm")) {
+ try (XSSFWorkbook wbBack = openSampleWorkbook("47089.xlsm")) {
int lastSheetId = (int) wbBack.getSheetAt(wbBack.getNumberOfSheets() - 1).sheet.getSheetId();
sheetId = (int) wbBack.createSheet().sheet.getSheetId();
assertEquals(lastSheetId + 1, sheetId);
@@ -328,15 +321,15 @@ public final class TestXSSFWorkbook ext
assertNotNull(opcProps);
opcProps.setTitleProperty("Testing Bugzilla #47460");
- assertEquals("Apache POI", opcProps.getCreatorProperty().get());
+ assertEquals("Apache POI", opcProps.getCreatorProperty().orElse(""));
opcProps.setCreatorProperty("poi-dev@poi.apache.org");
- XSSFWorkbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertEquals("Apache POI", wbBack.getProperties().getExtendedProperties().getUnderlyingProperties().getApplication());
- opcProps = wbBack.getProperties().getCoreProperties().getUnderlyingProperties();
- assertEquals("Testing Bugzilla #47460", opcProps.getTitleProperty().get());
- assertEquals("poi-dev@poi.apache.org", opcProps.getCreatorProperty().get());
- wbBack.close();
+ try (XSSFWorkbook wbBack = writeOutAndReadBack(workbook)) {
+ assertEquals("Apache POI", wbBack.getProperties().getExtendedProperties().getUnderlyingProperties().getApplication());
+ opcProps = wbBack.getProperties().getCoreProperties().getUnderlyingProperties();
+ assertEquals("Testing Bugzilla #47460", opcProps.getTitleProperty().orElse(""));
+ assertEquals("poi-dev@poi.apache.org", opcProps.getCreatorProperty().orElse(""));
+ }
}
}
@@ -346,36 +339,36 @@ public final class TestXSSFWorkbook ext
*/
@Test
void bug47668() throws Exception {
- XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("47668.xlsx");
- List<XSSFPictureData> allPictures = workbook.getAllPictures();
- assertEquals(1, allPictures.size());
+ try (XSSFWorkbook workbook = openSampleWorkbook("47668.xlsx")) {
+ List<XSSFPictureData> allPictures = workbook.getAllPictures();
+ assertEquals(1, allPictures.size());
- PackagePartName imagePartName = PackagingURIHelper
+ PackagePartName imagePartName = PackagingURIHelper
.createPartName("/xl/media/image1.jpeg");
- PackagePart imagePart = workbook.getPackage().getPart(imagePartName);
- assertNotNull(imagePart);
+ PackagePart imagePart = workbook.getPackage().getPart(imagePartName);
+ assertNotNull(imagePart);
- for (XSSFPictureData pictureData : allPictures) {
- PackagePart picturePart = pictureData.getPackagePart();
- assertSame(imagePart, picturePart);
- }
-
- XSSFSheet sheet0 = workbook.getSheetAt(0);
- XSSFDrawing drawing0 = sheet0.createDrawingPatriarch();
- XSSFPictureData pictureData0 = (XSSFPictureData) drawing0.getRelations().get(0);
- byte[] data0 = pictureData0.getData();
- CRC32 crc0 = new CRC32();
- crc0.update(data0);
-
- XSSFSheet sheet1 = workbook.getSheetAt(1);
- XSSFDrawing drawing1 = sheet1.createDrawingPatriarch();
- XSSFPictureData pictureData1 = (XSSFPictureData) drawing1.getRelations().get(0);
- byte[] data1 = pictureData1.getData();
- CRC32 crc1 = new CRC32();
- crc1.update(data1);
+ for (XSSFPictureData pictureData : allPictures) {
+ PackagePart picturePart = pictureData.getPackagePart();
+ assertSame(imagePart, picturePart);
+ }
- assertEquals(crc0.getValue(), crc1.getValue());
- workbook.close();
+ XSSFSheet sheet0 = workbook.getSheetAt(0);
+ XSSFDrawing drawing0 = sheet0.createDrawingPatriarch();
+ XSSFPictureData pictureData0 = (XSSFPictureData) drawing0.getRelations().get(0);
+ byte[] data0 = pictureData0.getData();
+ CRC32 crc0 = new CRC32();
+ crc0.update(data0);
+
+ XSSFSheet sheet1 = workbook.getSheetAt(1);
+ XSSFDrawing drawing1 = sheet1.createDrawingPatriarch();
+ XSSFPictureData pictureData1 = (XSSFPictureData) drawing1.getRelations().get(0);
+ byte[] data1 = pictureData1.getData();
+ CRC32 crc1 = new CRC32();
+ crc1.update(data1);
+
+ assertEquals(crc0.getValue(), crc1.getValue());
+ }
}
/**
@@ -384,27 +377,26 @@ public final class TestXSSFWorkbook ext
@SuppressWarnings("deprecation")
@Test
void bug47737() throws IOException {
- XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("47737.xlsx");
- assertEquals(2, wb.getNumberOfNames());
- assertNotNull(wb.getCalculationChain());
-
- XSSFName nm0 = wb.getNameAt(0);
- assertTrue(nm0.getCTName().isSetLocalSheetId());
- assertEquals(0, nm0.getCTName().getLocalSheetId());
-
- XSSFName nm1 = wb.getNameAt(1);
- assertTrue(nm1.getCTName().isSetLocalSheetId());
- assertEquals(1, nm1.getCTName().getLocalSheetId());
-
- wb.removeSheetAt(0);
- assertEquals(1, wb.getNumberOfNames());
- XSSFName nm2 = wb.getNameAt(0);
- assertTrue(nm2.getCTName().isSetLocalSheetId());
- assertEquals(0, nm2.getCTName().getLocalSheetId());
- //calculation chain is removed as well
- assertNull(wb.getCalculationChain());
- wb.close();
-
+ try (XSSFWorkbook wb = openSampleWorkbook("47737.xlsx")) {
+ assertEquals(2, wb.getNumberOfNames());
+ assertNotNull(wb.getCalculationChain());
+
+ XSSFName nm0 = wb.getNameAt(0);
+ assertTrue(nm0.getCTName().isSetLocalSheetId());
+ assertEquals(0, nm0.getCTName().getLocalSheetId());
+
+ XSSFName nm1 = wb.getNameAt(1);
+ assertTrue(nm1.getCTName().isSetLocalSheetId());
+ assertEquals(1, nm1.getCTName().getLocalSheetId());
+
+ wb.removeSheetAt(0);
+ assertEquals(1, wb.getNumberOfNames());
+ XSSFName nm2 = wb.getNameAt(0);
+ assertTrue(nm2.getCTName().isSetLocalSheetId());
+ assertEquals(0, nm2.getCTName().getLocalSheetId());
+ //calculation chain is removed as well
+ assertNull(wb.getCalculationChain());
+ }
}
/**
@@ -412,28 +404,28 @@ public final class TestXSSFWorkbook ext
*/
@Test
void bug47813() throws IOException {
- XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("47813.xlsx");
- assertEquals(3, wb1.getNumberOfSheets());
- assertNotNull(wb1.getCalculationChain());
-
- assertEquals("Numbers", wb1.getSheetName(0));
- //the second sheet is of type 'chartsheet'
- assertEquals("Chart", wb1.getSheetName(1));
- assertTrue(wb1.getSheetAt(1) instanceof XSSFChartSheet);
- assertEquals("SomeJunk", wb1.getSheetName(2));
-
- wb1.removeSheetAt(2);
- assertEquals(2, wb1.getNumberOfSheets());
- assertNull(wb1.getCalculationChain());
-
- XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
- assertEquals(2, wb2.getNumberOfSheets());
- assertNull(wb2.getCalculationChain());
+ try (XSSFWorkbook wb1 = openSampleWorkbook("47813.xlsx")) {
+ assertEquals(3, wb1.getNumberOfSheets());
+ assertNotNull(wb1.getCalculationChain());
+
+ assertEquals("Numbers", wb1.getSheetName(0));
+ //the second sheet is of type 'chartsheet'
+ assertEquals("Chart", wb1.getSheetName(1));
+ assertTrue(wb1.getSheetAt(1) instanceof XSSFChartSheet);
+ assertEquals("SomeJunk", wb1.getSheetName(2));
+
+ wb1.removeSheetAt(2);
+ assertEquals(2, wb1.getNumberOfSheets());
+ assertNull(wb1.getCalculationChain());
+
+ try (XSSFWorkbook wb2 = writeOutAndReadBack(wb1)) {
+ assertEquals(2, wb2.getNumberOfSheets());
+ assertNull(wb2.getCalculationChain());
- assertEquals("Numbers", wb2.getSheetName(0));
- assertEquals("Chart", wb2.getSheetName(1));
- wb2.close();
- wb1.close();
+ assertEquals("Numbers", wb2.getSheetName(0));
+ assertEquals("Chart", wb2.getSheetName(1));
+ }
+ }
}
/**
@@ -461,14 +453,14 @@ public final class TestXSSFWorkbook ext
assertNull(wb1.getCellStyleAt((short) 2), "Shouldn't be able to get style at 2 that doesn't exist");
// Save and reload
- try (XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+ try (XSSFWorkbook nwb = writeOutAndReadBack(wb1)) {
assertEquals(2, nwb.getNumCellStyles());
nwb.getCellStyleAt((short) 0);
nwb.getCellStyleAt((short) 1);
assertNull(nwb.getCellStyleAt((short) 2), "Shouldn't be able to get style at 2 that doesn't exist");
// Now with an existing file
- try (XSSFWorkbook wb2 = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx")) {
+ try (XSSFWorkbook wb2 = openSampleWorkbook("sample.xlsx")) {
assertEquals(3, wb2.getNumCellStyles());
wb2.getCellStyleAt((short) 0);
wb2.getCellStyleAt((short) 1);
@@ -501,7 +493,7 @@ public final class TestXSSFWorkbook ext
// calcMode="manual" is unset when forceFormulaRecalculation=true
calcPr.setCalcMode(STCalcMode.MANUAL);
wb.setForceFormulaRecalculation(true);
- assertEquals(STCalcMode.AUTO, calcPr.getCalcMode());
+ assertSame(STCalcMode.AUTO, calcPr.getCalcMode());
assertTrue(wb.getForceFormulaRecalculation());
wb.setForceFormulaRecalculation(false);
@@ -514,26 +506,22 @@ public final class TestXSSFWorkbook ext
@Test
void columnWidthPOI52233() throws Exception {
- XSSFWorkbook workbook = new XSSFWorkbook();
- XSSFSheet sheet = workbook.createSheet();
- XSSFRow row = sheet.createRow(0);
- XSSFCell cell = row.createCell(0);
- cell.setCellValue("hello world");
-
- sheet = workbook.createSheet();
- sheet.setColumnWidth(4, 5000);
- sheet.setColumnWidth(5, 5000);
-
- sheet.groupColumn((short) 4, (short) 5);
-
- accessWorkbook(workbook);
-
- try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) {
- workbook.write(stream);
+ try (XSSFWorkbook workbook = new XSSFWorkbook()) {
+ XSSFSheet sheet = workbook.createSheet();
+ XSSFRow row = sheet.createRow(0);
+ XSSFCell cell = row.createCell(0);
+ cell.setCellValue("hello world");
+
+ sheet = workbook.createSheet();
+ sheet.setColumnWidth(4, 5000);
+ sheet.setColumnWidth(5, 5000);
+
+ sheet.groupColumn((short) 4, (short) 5);
+
+ accessWorkbook(workbook);
+ workbook.write(NULL_OUTPUT_STREAM);
+ accessWorkbook(workbook);
}
-
- accessWorkbook(workbook);
- workbook.close();
}
private void accessWorkbook(XSSFWorkbook workbook) {
@@ -546,136 +534,128 @@ public final class TestXSSFWorkbook ext
@Test
void bug48495() throws IOException {
- Workbook wb = XSSFTestDataSamples.openSampleWorkbook("48495.xlsx");
+ try (Workbook wb = openSampleWorkbook("48495.xlsx")) {
+ assertSheetOrder(wb, "Sheet1");
+
+ Sheet sheet = wb.getSheetAt(0);
+ sheet.shiftRows(2, sheet.getLastRowNum(), 1, true, false);
+ Row newRow = sheet.getRow(2);
+ if (newRow == null) {
+ newRow = sheet.createRow(2);
+ }
+ newRow.createCell(0).setCellValue(" Another Header");
+ wb.cloneSheet(0);
- assertSheetOrder(wb, "Sheet1");
+ assertSheetOrder(wb, "Sheet1", "Sheet1 (2)");
- Sheet sheet = wb.getSheetAt(0);
- sheet.shiftRows(2, sheet.getLastRowNum(), 1, true, false);
- Row newRow = sheet.getRow(2);
- if (newRow == null) {
- newRow = sheet.createRow(2);
- }
- newRow.createCell(0).setCellValue(" Another Header");
- wb.cloneSheet(0);
-
- assertSheetOrder(wb, "Sheet1", "Sheet1 (2)");
-
- // FileOutputStream fileOut = new FileOutputStream("/tmp/bug48495.xlsx");
-// try {
-// wb.write(fileOut);
-// } finally {
-// fileOut.close();
-// }
-
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb);
- assertNotNull(read);
- assertSheetOrder(read, "Sheet1", "Sheet1 (2)");
- read.close();
- wb.close();
+ try (Workbook read = writeOutAndReadBack(wb)) {
+ assertNotNull(read);
+ assertSheetOrder(read, "Sheet1", "Sheet1 (2)");
+ }
+ }
}
@Test
void bug47090a() throws IOException {
- Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
- assertSheetOrder(workbook, "Sheet1", "Sheet2");
- workbook.removeSheetAt(0);
- assertSheetOrder(workbook, "Sheet2");
- workbook.createSheet();
- assertSheetOrder(workbook, "Sheet2", "Sheet1");
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertSheetOrder(read, "Sheet2", "Sheet1");
- read.close();
- workbook.close();
+ try (Workbook workbook = openSampleWorkbook("47090.xlsx")) {
+ assertSheetOrder(workbook, "Sheet1", "Sheet2");
+ workbook.removeSheetAt(0);
+ assertSheetOrder(workbook, "Sheet2");
+ workbook.createSheet();
+ assertSheetOrder(workbook, "Sheet2", "Sheet1");
+ try (Workbook read = writeOutAndReadBack(workbook)) {
+ assertSheetOrder(read, "Sheet2", "Sheet1");
+ }
+ }
}
@Test
void bug47090b() throws IOException {
- Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
- assertSheetOrder(workbook, "Sheet1", "Sheet2");
- workbook.removeSheetAt(1);
- assertSheetOrder(workbook, "Sheet1");
- workbook.createSheet();
- assertSheetOrder(workbook, "Sheet1", "Sheet0"); // Sheet0 because it uses "Sheet" + sheets.size() as starting point!
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertSheetOrder(read, "Sheet1", "Sheet0");
- read.close();
- workbook.close();
+ try (Workbook workbook = openSampleWorkbook("47090.xlsx")) {
+ assertSheetOrder(workbook, "Sheet1", "Sheet2");
+ workbook.removeSheetAt(1);
+ assertSheetOrder(workbook, "Sheet1");
+ workbook.createSheet();
+ assertSheetOrder(workbook, "Sheet1", "Sheet0"); // Sheet0 because it uses "Sheet" + sheets.size() as starting point!
+ try (Workbook read = writeOutAndReadBack(workbook)) {
+ assertSheetOrder(read, "Sheet1", "Sheet0");
+ }
+ }
}
@Test
void bug47090c() throws IOException {
- Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
- assertSheetOrder(workbook, "Sheet1", "Sheet2");
- workbook.removeSheetAt(0);
- assertSheetOrder(workbook, "Sheet2");
- workbook.cloneSheet(0);
- assertSheetOrder(workbook, "Sheet2", "Sheet2 (2)");
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertSheetOrder(read, "Sheet2", "Sheet2 (2)");
- read.close();
- workbook.close();
+ try (Workbook workbook = openSampleWorkbook("47090.xlsx")) {
+ assertSheetOrder(workbook, "Sheet1", "Sheet2");
+ workbook.removeSheetAt(0);
+ assertSheetOrder(workbook, "Sheet2");
+ workbook.cloneSheet(0);
+ assertSheetOrder(workbook, "Sheet2", "Sheet2 (2)");
+ try (Workbook read = writeOutAndReadBack(workbook)) {
+ assertSheetOrder(read, "Sheet2", "Sheet2 (2)");
+ }
+ }
}
@Test
void bug47090d() throws IOException {
- Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
- assertSheetOrder(workbook, "Sheet1", "Sheet2");
- workbook.createSheet();
- assertSheetOrder(workbook, "Sheet1", "Sheet2", "Sheet0");
- workbook.removeSheetAt(0);
- assertSheetOrder(workbook, "Sheet2", "Sheet0");
- workbook.createSheet();
- assertSheetOrder(workbook, "Sheet2", "Sheet0", "Sheet1");
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertSheetOrder(read, "Sheet2", "Sheet0", "Sheet1");
- read.close();
- workbook.close();
+ try (Workbook workbook = openSampleWorkbook("47090.xlsx")) {
+ assertSheetOrder(workbook, "Sheet1", "Sheet2");
+ workbook.createSheet();
+ assertSheetOrder(workbook, "Sheet1", "Sheet2", "Sheet0");
+ workbook.removeSheetAt(0);
+ assertSheetOrder(workbook, "Sheet2", "Sheet0");
+ workbook.createSheet();
+ assertSheetOrder(workbook, "Sheet2", "Sheet0", "Sheet1");
+ try (Workbook read = writeOutAndReadBack(workbook)) {
+ assertSheetOrder(read, "Sheet2", "Sheet0", "Sheet1");
+ }
+ }
}
@Test
void bug51158() throws IOException {
// create a workbook
- final XSSFWorkbook wb1 = new XSSFWorkbook();
- XSSFSheet sheet = wb1.createSheet("Test Sheet");
- XSSFRow row = sheet.createRow(2);
- XSSFCell cell = row.createCell(3);
- cell.setCellValue("test1");
-
- //XSSFCreationHelper helper = workbook.getCreationHelper();
- //cell.setHyperlink(helper.createHyperlink(0));
-
- XSSFComment comment = sheet.createDrawingPatriarch().createCellComment(new XSSFClientAnchor());
- assertNotNull(comment);
- comment.setString("some comment");
+ try (XSSFWorkbook wb1 = new XSSFWorkbook()) {
+ XSSFSheet sheet = wb1.createSheet("Test Sheet");
+ XSSFRow row = sheet.createRow(2);
+ XSSFCell cell = row.createCell(3);
+ cell.setCellValue("test1");
+
+ //XSSFCreationHelper helper = workbook.getCreationHelper();
+ //cell.setHyperlink(helper.createHyperlink(0));
+
+ XSSFComment comment = sheet.createDrawingPatriarch().createCellComment(new XSSFClientAnchor());
+ assertNotNull(comment);
+ comment.setString("some comment");
// CellStyle cs = workbook.createCellStyle();
// cs.setShrinkToFit(false);
// row.createCell(0).setCellStyle(cs);
- // write the first excel file
- XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
- assertNotNull(wb2);
- sheet = wb2.getSheetAt(0);
- row = sheet.getRow(2);
- assertEquals("test1", row.getCell(3).getStringCellValue());
- assertNull(row.getCell(4));
-
- // add a new cell to the sheet
- cell = row.createCell(4);
- cell.setCellValue("test2");
-
- // write the second excel file
- XSSFWorkbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2);
- assertNotNull(wb3);
- sheet = wb3.getSheetAt(0);
- row = sheet.getRow(2);
-
- assertEquals("test1", row.getCell(3).getStringCellValue());
- assertEquals("test2", row.getCell(4).getStringCellValue());
- wb3.close();
- wb2.close();
- wb1.close();
+ // write the first excel file
+ try (XSSFWorkbook wb2 = writeOutAndReadBack(wb1)) {
+ assertNotNull(wb2);
+ sheet = wb2.getSheetAt(0);
+ row = sheet.getRow(2);
+ assertEquals("test1", row.getCell(3).getStringCellValue());
+ assertNull(row.getCell(4));
+
+ // add a new cell to the sheet
+ cell = row.createCell(4);
+ cell.setCellValue("test2");
+
+ // write the second excel file
+ try (XSSFWorkbook wb3 = writeOutAndReadBack(wb2)) {
+ assertNotNull(wb3);
+ sheet = wb3.getSheetAt(0);
+ row = sheet.getRow(2);
+
+ assertEquals("test1", row.getCell(3).getStringCellValue());
+ assertEquals("test2", row.getCell(4).getStringCellValue());
+ }
+ }
+ }
}
@Test
@@ -704,20 +684,20 @@ public final class TestXSSFWorkbook ext
@Test
void bug60509() throws Exception {
- XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("60509.xlsx");
- assertSheetOrder(wb, "Sheet1", "Sheet2", "Sheet3");
- int sheetIndex = wb.getSheetIndex("Sheet1");
- wb.setSheetName(sheetIndex, "Sheet1-Renamed");
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb);
- assertNotNull(read);
- assertSheetOrder(read, "Sheet1-Renamed", "Sheet2", "Sheet3");
- XSSFSheet sheet = (XSSFSheet) read.getSheet("Sheet1-Renamed");
- XDDFChartData.Series series = sheet.getDrawingPatriarch().getCharts().get(0).getChartSeries().get(0).getSeries(0);
- assertTrue(series instanceof XDDFBarChartData.Series, "should be a bar chart data series");
- String formula = series.getCategoryData().getFormula();
- assertTrue(formula.startsWith("'Sheet1-Renamed'!"), "should contain new sheet name");
- read.close();
- wb.close();
+ try (XSSFWorkbook wb = openSampleWorkbook("60509.xlsx")) {
+ assertSheetOrder(wb, "Sheet1", "Sheet2", "Sheet3");
+ int sheetIndex = wb.getSheetIndex("Sheet1");
+ wb.setSheetName(sheetIndex, "Sheet1-Renamed");
+ try (Workbook read = writeOutAndReadBack(wb)) {
+ assertNotNull(read);
+ assertSheetOrder(read, "Sheet1-Renamed", "Sheet2", "Sheet3");
+ XSSFSheet sheet = (XSSFSheet) read.getSheet("Sheet1-Renamed");
+ XDDFChartData.Series series = sheet.getDrawingPatriarch().getCharts().get(0).getChartSeries().get(0).getSeries(0);
+ assertTrue(series instanceof XDDFBarChartData.Series, "should be a bar chart data series");
+ String formula = series.getCategoryData().getFormula();
+ assertTrue(formula.startsWith("'Sheet1-Renamed'!"), "should contain new sheet name");
+ }
+ }
}
private static final int INDEX_NOT_FOUND = -1;
@@ -850,15 +830,14 @@ public final class TestXSSFWorkbook ext
assertEquals(idx2, wb.getFirstVisibleTab());
assertEquals(idx3, wb.getActiveSheetIndex());
- Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
-
- sheet2 = wbBack.getSheetAt(idx2);
- assertNotNull(sheet2);
- sheet3 = wbBack.getSheetAt(idx3);
- assertNotNull(sheet3);
- assertEquals(idx2, wb.getFirstVisibleTab());
- assertEquals(idx3, wb.getActiveSheetIndex());
- wbBack.close();
+ try (Workbook wbBack = writeOutAndReadBack(wb)) {
+ sheet2 = wbBack.getSheetAt(idx2);
+ assertNotNull(sheet2);
+ sheet3 = wbBack.getSheetAt(idx3);
+ assertNotNull(sheet3);
+ assertEquals(idx2, wb.getFirstVisibleTab());
+ assertEquals(idx3, wb.getActiveSheetIndex());
+ }
}
}
@@ -873,42 +852,39 @@ public final class TestXSSFWorkbook ext
allBytes[i] = (byte) (i - 128);
}
- XSSFWorkbook wb1 = new XSSFWorkbook();
- wb1.createSheet();
- wb1.setVBAProject(new ByteArrayInputStream(allBytes));
- file = TempFile.createTempFile("poi-", ".xlsm");
- OutputStream out = new FileOutputStream(file);
- wb1.write(out);
- out.close();
- wb1.close();
+ try (XSSFWorkbook wb1 = new XSSFWorkbook()) {
+ wb1.createSheet();
+ wb1.setVBAProject(new ByteArrayInputStream(allBytes));
+ file = writeOut(wb1, "ooi-.xlsm");
+ }
// Check the package contains what we'd expect it to
- OPCPackage pkg = OPCPackage.open(file.toString());
- PackagePart wbPart = pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
- assertTrue(wbPart.hasRelationships());
- final PackageRelationshipCollection relationships = wbPart.getRelationships().getRelationships(XSSFRelation.VBA_MACROS.getRelation());
- assertEquals(1, relationships.size());
- PackageRelationship relationship = relationships.getRelationship(0);
- assertNotNull(relationship);
- assertEquals(XSSFRelation.VBA_MACROS.getDefaultFileName(), relationship.getTargetURI().toString());
- PackagePart vbaPart = pkg.getPart(PackagingURIHelper.createPartName(XSSFRelation.VBA_MACROS.getDefaultFileName()));
- assertNotNull(vbaPart);
- assertFalse(vbaPart.isRelationshipPart());
- assertEquals(XSSFRelation.VBA_MACROS.getContentType(), vbaPart.getContentType());
- final byte[] fromFile = IOUtils.toByteArray(vbaPart.getInputStream());
- assertArrayEquals(allBytes, fromFile);
-
- // Load back the XSSFWorkbook just to check nothing explodes
- @SuppressWarnings("resource")
- XSSFWorkbook wb2 = new XSSFWorkbook(pkg);
- assertEquals(1, wb2.getNumberOfSheets());
- assertEquals(XSSFWorkbookType.XLSM, wb2.getWorkbookType());
- pkg.close();
+ try (OPCPackage pkg = OPCPackage.open(file.toString())) {
+ PackagePart wbPart = pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
+ assertTrue(wbPart.hasRelationships());
+ final PackageRelationshipCollection relationships = wbPart.getRelationships().getRelationships(XSSFRelation.VBA_MACROS.getRelation());
+ assertEquals(1, relationships.size());
+ PackageRelationship relationship = relationships.getRelationship(0);
+ assertNotNull(relationship);
+ assertEquals(XSSFRelation.VBA_MACROS.getDefaultFileName(), relationship.getTargetURI().toString());
+ PackagePart vbaPart = pkg.getPart(PackagingURIHelper.createPartName(XSSFRelation.VBA_MACROS.getDefaultFileName()));
+ assertNotNull(vbaPart);
+ assertFalse(vbaPart.isRelationshipPart());
+ assertEquals(XSSFRelation.VBA_MACROS.getContentType(), vbaPart.getContentType());
+ final byte[] fromFile = IOUtils.toByteArray(vbaPart.getInputStream());
+ assertArrayEquals(allBytes, fromFile);
+
+ // Load back the XSSFWorkbook just to check nothing explodes
+ try (XSSFWorkbook wb2 = new XSSFWorkbook(pkg)) {
+ assertEquals(1, wb2.getNumberOfSheets());
+ assertEquals(XSSFWorkbookType.XLSM, wb2.getWorkbookType());
+ }
+ }
}
@Test
void testBug54399() throws IOException {
- try (XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("54399.xlsx")) {
+ try (XSSFWorkbook workbook = openSampleWorkbook("54399.xlsx")) {
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
String name = "SheetRenamed" + (i + 1);
@@ -920,14 +896,14 @@ public final class TestXSSFWorkbook ext
}
/**
- * Iterator<XSSFSheet> XSSFWorkbook.iterator was committed in r700472 on 2008-09-30
- * and has been replaced with Iterator<Sheet> XSSFWorkbook.iterator
+ * {@code Iterator<XSSFSheet> XSSFWorkbook.iterator} was committed in r700472 on 2008-09-30
+ * and has been replaced with {@code Iterator<Sheet> XSSFWorkbook.iterator}
*
* In order to make code for looping over sheets in workbooks standard, regardless
* of the type of workbook (HSSFWorkbook, XSSFWorkbook, SXSSFWorkbook), the previously
- * available Iterator<XSSFSheet> iterator and Iterator<XSSFSheet> sheetIterator
- * have been replaced with Iterator<Sheet> {@link Sheet#iterator} and
- * Iterator<Sheet> {@link Workbook#sheetIterator}. This makes iterating over sheets in a workbook
+ * available {@code Iterator<XSSFSheet> iterator} and {@code Iterator<XSSFSheet> sheetIterator}
+ * have been replaced with {@code Iterator<Sheet>} {@link Sheet#iterator} and
+ * {@code Iterator<Sheet>} {@link Workbook#sheetIterator}. This makes iterating over sheets in a workbook
* similar to iterating over rows in a sheet and cells in a row.
*
* Note: this breaks backwards compatibility! Existing codebases will need to
@@ -1054,7 +1030,7 @@ public final class TestXSSFWorkbook ext
assertThrows(IOException.class, () -> {
try {
- XSSFTestDataSamples.writeOutAndReadBack(wb);
+ writeOutAndReadBack(wb);
} catch (RuntimeException e) {
throw e.getCause();
}
@@ -1067,7 +1043,7 @@ public final class TestXSSFWorkbook ext
*/
@Test
void getTable() throws IOException {
- XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithTable.xlsx");
+ XSSFWorkbook wb = openSampleWorkbook("WithTable.xlsx");
XSSFTable table1 = wb.getTable("Tabella1");
assertNotNull(table1, "Tabella1 was not found in workbook");
assertEquals("Tabella1", table1.getName(), "Table name");
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/util/TestEvilUnclosedBRFixingInputStream.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/util/TestEvilUnclosedBRFixingInputStream.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/util/TestEvilUnclosedBRFixingInputStream.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/util/TestEvilUnclosedBRFixingInputStream.java Fri May 14 00:37:50 2021
@@ -20,10 +20,10 @@ package org.apache.poi.xssf.util;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.ReplacingInputStream;
import org.junit.jupiter.api.Test;
@@ -68,23 +68,20 @@ public final class TestEvilUnclosedBRFix
// Vary the buffer size, so that we can end up with the br in the
// overflow or only part in the buffer
for(int i=5; i<orig.length; i++) {
- EvilUnclosedBRFixingInputStream inp = new EvilUnclosedBRFixingInputStream(orig);
-
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- boolean going = true;
- while(going) {
- byte[] b = new byte[i];
- int r = inp.read(b);
- if(r > 0) {
+ try (EvilUnclosedBRFixingInputStream inp = new EvilUnclosedBRFixingInputStream(orig);
+ UnsynchronizedByteArrayOutputStream bout = new UnsynchronizedByteArrayOutputStream()) {
+ for (;;) {
+ byte[] b = new byte[i];
+ int r = inp.read(b);
+ if (r <= 0) {
+ break;
+ }
bout.write(b, 0, r);
- } else {
- going = false;
}
- }
- byte[] result = bout.toByteArray();
- assertArrayEquals(fixed, result);
- inp.close();
+ byte[] result = bout.toByteArray();
+ assertArrayEquals(fixed, result);
+ }
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/XWPFTestDataSamples.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/XWPFTestDataSamples.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/XWPFTestDataSamples.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/XWPFTestDataSamples.java Fri May 14 00:37:50 2021
@@ -16,11 +16,10 @@
==================================================================== */
package org.apache.poi.xwpf;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.POIDataSamples;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
@@ -33,10 +32,9 @@ public class XWPFTestDataSamples {
}
public static XWPFDocument writeOutAndReadBack(XWPFDocument doc) throws IOException {
- ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
+ UnsynchronizedByteArrayOutputStream baos = new UnsynchronizedByteArrayOutputStream(4096);
doc.write(baos);
- ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- return new XWPFDocument(bais);
+ return new XWPFDocument(baos.toInputStream());
}
public static byte[] getImage(String filename) throws IOException {
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestChangeTracking.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestChangeTracking.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestChangeTracking.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestChangeTracking.java Fri May 14 00:37:50 2021
@@ -19,9 +19,9 @@ package org.apache.poi.xwpf.usermodel;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.xwpf.XWPFTestDataSamples;
import org.junit.jupiter.api.Test;
@@ -58,14 +58,14 @@ class TestChangeTracking {
r1.setText("Lorem ipsum dolor sit amet.");
doc.setTrackRevisions(true);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- doc.write(out);
+ try (UnsynchronizedByteArrayOutputStream out = new UnsynchronizedByteArrayOutputStream()) {
+ doc.write(out);
- ByteArrayInputStream inputStream = new ByteArrayInputStream(out.toByteArray());
- XWPFDocument document = new XWPFDocument(inputStream);
- inputStream.close();
-
- assertTrue(document.isTrackRevisions());
+ try (InputStream inputStream = out.toInputStream()) {
+ XWPFDocument document = new XWPFDocument(inputStream);
+ assertTrue(document.isTrackRevisions());
+ }
+ }
}
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java Fri May 14 00:37:50 2021
@@ -16,6 +16,7 @@
==================================================================== */
package org.apache.poi.xwpf.usermodel;
+import static org.apache.poi.xwpf.XWPFTestDataSamples.writeOutAndReadBack;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -23,8 +24,6 @@ import static org.junit.jupiter.api.Asse
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.List;
@@ -170,15 +169,11 @@ class TestXWPFBugs {
@Test
void test59378() throws IOException {
try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("59378.docx")) {
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- doc.write(out);
- out.close();
-
- try (XWPFDocument doc2 = new XWPFDocument(new ByteArrayInputStream(out.toByteArray()))) {
+ try (XWPFDocument doc2 = writeOutAndReadBack(doc)) {
assertNotNull(doc2);
}
- try (XWPFDocument docBack = XWPFTestDataSamples.writeOutAndReadBack(doc)) {
+ try (XWPFDocument docBack = writeOutAndReadBack(doc)) {
assertNotNull(docBack);
}
}
Modified: poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java (original)
+++ poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFRun.java Fri May 14 00:37:50 2021
@@ -16,15 +16,17 @@
==================================================================== */
package org.apache.poi.xwpf.usermodel;
+import static org.apache.poi.xwpf.XWPFTestDataSamples.openSampleDocument;
+import static org.apache.poi.xwpf.XWPFTestDataSamples.writeOutAndReadBack;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.List;
@@ -296,7 +298,7 @@ class TestXWPFRun {
*/
@Test
void testExisting() throws IOException {
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
+ XWPFDocument doc = openSampleDocument("TestDocument.docx");
XWPFParagraph p;
XWPFRun run;
@@ -430,7 +432,7 @@ class TestXWPFRun {
@Test
void testPictureInHeader() throws IOException {
- XWPFDocument sampleDoc = XWPFTestDataSamples.openSampleDocument("headerPic.docx");
+ XWPFDocument sampleDoc = openSampleDocument("headerPic.docx");
XWPFHeaderFooterPolicy policy = sampleDoc.getHeaderFooterPolicy();
XWPFHeader header = policy.getDefaultHeader();
@@ -486,7 +488,7 @@ class TestXWPFRun {
@Test
void testAddPicture() throws Exception {
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
+ XWPFDocument doc = openSampleDocument("TestDocument.docx");
XWPFParagraph p = doc.getParagraphArray(2);
XWPFRun r = p.getRuns().get(0);
@@ -498,7 +500,7 @@ class TestXWPFRun {
assertEquals(1, doc.getAllPictures().size());
assertEquals(1, r.getEmbeddedPictures().size());
- XWPFDocument docBack = XWPFTestDataSamples.writeOutAndReadBack(doc);
+ XWPFDocument docBack = writeOutAndReadBack(doc);
XWPFParagraph pBack = docBack.getParagraphArray(2);
XWPFRun rBack = pBack.getRuns().get(0);
@@ -513,39 +515,39 @@ class TestXWPFRun {
*/
@Test
void testAddPictureInHeader() throws IOException, InvalidFormatException {
- XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx");
- XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);
- XWPFParagraph p = hdr.createParagraph();
- XWPFRun r = p.createRun();
+ try (XWPFDocument doc = openSampleDocument("TestDocument.docx")) {
+ XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);
+ XWPFParagraph p = hdr.createParagraph();
+ XWPFRun r = p.createRun();
- assertEquals(0, hdr.getAllPictures().size());
- assertEquals(0, r.getEmbeddedPictures().size());
+ assertEquals(0, hdr.getAllPictures().size());
+ assertEquals(0, r.getEmbeddedPictures().size());
- r.addPicture(new ByteArrayInputStream(new byte[0]), Document.PICTURE_TYPE_JPEG, "test.jpg", 21, 32);
+ r.addPicture(new ByteArrayInputStream(new byte[0]), Document.PICTURE_TYPE_JPEG, "test.jpg", 21, 32);
- assertEquals(1, hdr.getAllPictures().size());
- assertEquals(1, r.getEmbeddedPictures().size());
+ assertEquals(1, hdr.getAllPictures().size());
+ assertEquals(1, r.getEmbeddedPictures().size());
- XWPFPicture pic = r.getEmbeddedPictures().get(0);
- CTPicture ctPic = pic.getCTPicture();
- CTBlipFillProperties ctBlipFill = ctPic.getBlipFill();
+ XWPFPicture pic = r.getEmbeddedPictures().get(0);
+ CTPicture ctPic = pic.getCTPicture();
+ CTBlipFillProperties ctBlipFill = ctPic.getBlipFill();
- assertNotNull(ctBlipFill);
+ assertNotNull(ctBlipFill);
- CTBlip ctBlip = ctBlipFill.getBlip();
+ CTBlip ctBlip = ctBlipFill.getBlip();
- assertNotNull(ctBlip);
- assertEquals("rId1", ctBlip.getEmbed());
+ assertNotNull(ctBlip);
+ assertEquals("rId1", ctBlip.getEmbed());
- XWPFDocument docBack = XWPFTestDataSamples.writeOutAndReadBack(doc);
- XWPFHeader hdrBack = docBack.getHeaderArray(0);
- XWPFParagraph pBack = hdrBack.getParagraphArray(0);
- XWPFRun rBack = pBack.getRuns().get(0);
+ try (XWPFDocument docBack = writeOutAndReadBack(doc)) {
+ XWPFHeader hdrBack = docBack.getHeaderArray(0);
+ XWPFParagraph pBack = hdrBack.getParagraphArray(0);
+ XWPFRun rBack = pBack.getRuns().get(0);
- assertEquals(1, hdrBack.getAllPictures().size());
- assertEquals(1, rBack.getEmbeddedPictures().size());
- docBack.close();
- doc.close();
+ assertEquals(1, hdrBack.getAllPictures().size());
+ assertEquals(1, rBack.getEmbeddedPictures().size());
+ }
+ }
}
/**
@@ -554,7 +556,7 @@ class TestXWPFRun {
*/
@Test
void testSetFontFamily_52288() throws IOException {
- try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("52288.docx")) {
+ try (XWPFDocument doc = openSampleDocument("52288.docx")) {
doc.getParagraphs().stream()
.flatMap(p -> p.getRuns().stream())
.filter(p -> p != null && p.getText(0) != null)
@@ -565,157 +567,148 @@ class TestXWPFRun {
@Test
void testBug55476() throws IOException, InvalidFormatException {
byte[] image = XWPFTestDataSamples.getImage("abstract1.jpg");
- XWPFDocument document = new XWPFDocument();
+ try (XWPFDocument document = new XWPFDocument()) {
- document.createParagraph().createRun().addPicture(
+ document.createParagraph().createRun().addPicture(
new ByteArrayInputStream(image), Document.PICTURE_TYPE_JPEG, "test.jpg", Units.toEMU(300), Units.toEMU(100));
- XWPFDocument docBack = XWPFTestDataSamples.writeOutAndReadBack(document);
- List<XWPFPicture> pictures = docBack.getParagraphArray(0).getRuns().get(0).getEmbeddedPictures();
- assertEquals(1, pictures.size());
- docBack.close();
-
- /*OutputStream stream = new FileOutputStream("c:\\temp\\55476.docx");
- try {
- document.write(stream);
- } finally {
- stream.close();
- }*/
-
- document.close();
+ try (XWPFDocument docBack = writeOutAndReadBack(document)) {
+ List<XWPFPicture> pictures = docBack.getParagraphArray(0).getRuns().get(0).getEmbeddedPictures();
+ assertEquals(1, pictures.size());
+ }
+ }
}
@Test
void testBug58922() throws IOException {
- XWPFDocument document = new XWPFDocument();
-
- final XWPFRun run = document.createParagraph().createRun();
+ try (XWPFDocument document = new XWPFDocument()) {
+ final XWPFRun run = document.createParagraph().createRun();
- assertEquals(-1, run.getFontSize());
- run.setFontSize(10);
- assertEquals(10, run.getFontSize());
+ assertEquals(-1, run.getFontSize());
- run.setFontSize(Short.MAX_VALUE-1);
- assertEquals(Short.MAX_VALUE-1, run.getFontSize());
+ run.setFontSize(10);
+ assertEquals(10, run.getFontSize());
- run.setFontSize(Short.MAX_VALUE);
- assertEquals(Short.MAX_VALUE, run.getFontSize());
+ run.setFontSize(Short.MAX_VALUE - 1);
+ assertEquals(Short.MAX_VALUE - 1, run.getFontSize());
- run.setFontSize(Short.MAX_VALUE+1);
- assertEquals(Short.MAX_VALUE+1, run.getFontSize());
+ run.setFontSize(Short.MAX_VALUE);
+ assertEquals(Short.MAX_VALUE, run.getFontSize());
- run.setFontSize(Integer.MAX_VALUE-1);
- assertEquals(Integer.MAX_VALUE-1, run.getFontSize());
+ run.setFontSize(Short.MAX_VALUE + 1);
+ assertEquals(Short.MAX_VALUE + 1, run.getFontSize());
- run.setFontSize(Integer.MAX_VALUE);
- assertEquals(Integer.MAX_VALUE, run.getFontSize());
+ run.setFontSize(Integer.MAX_VALUE - 1);
+ assertEquals(Integer.MAX_VALUE - 1, run.getFontSize());
- run.setFontSize(-1);
- assertEquals(-1, run.getFontSize());
+ run.setFontSize(Integer.MAX_VALUE);
+ assertEquals(Integer.MAX_VALUE, run.getFontSize());
+ run.setFontSize(-1);
+ assertEquals(-1, run.getFontSize());
- assertEquals(-1, run.getTextPosition());
- run.setTextPosition(10);
- assertEquals(10, run.getTextPosition());
+ assertEquals(-1, run.getTextPosition());
- run.setTextPosition(Short.MAX_VALUE-1);
- assertEquals(Short.MAX_VALUE-1, run.getTextPosition());
+ run.setTextPosition(10);
+ assertEquals(10, run.getTextPosition());
- run.setTextPosition(Short.MAX_VALUE);
- assertEquals(Short.MAX_VALUE, run.getTextPosition());
+ run.setTextPosition(Short.MAX_VALUE - 1);
+ assertEquals(Short.MAX_VALUE - 1, run.getTextPosition());
- run.setTextPosition(Short.MAX_VALUE+1);
- assertEquals(Short.MAX_VALUE+1, run.getTextPosition());
+ run.setTextPosition(Short.MAX_VALUE);
+ assertEquals(Short.MAX_VALUE, run.getTextPosition());
- run.setTextPosition(Short.MAX_VALUE+1);
- assertEquals(Short.MAX_VALUE+1, run.getTextPosition());
+ run.setTextPosition(Short.MAX_VALUE + 1);
+ assertEquals(Short.MAX_VALUE + 1, run.getTextPosition());
- run.setTextPosition(Integer.MAX_VALUE-1);
- assertEquals(Integer.MAX_VALUE-1, run.getTextPosition());
+ run.setTextPosition(Short.MAX_VALUE + 1);
+ assertEquals(Short.MAX_VALUE + 1, run.getTextPosition());
- run.setTextPosition(Integer.MAX_VALUE);
- assertEquals(Integer.MAX_VALUE, run.getTextPosition());
+ run.setTextPosition(Integer.MAX_VALUE - 1);
+ assertEquals(Integer.MAX_VALUE - 1, run.getTextPosition());
- run.setTextPosition(-1);
- assertEquals(-1, run.getTextPosition());
+ run.setTextPosition(Integer.MAX_VALUE);
+ assertEquals(Integer.MAX_VALUE, run.getTextPosition());
- document.close();
+ run.setTextPosition(-1);
+ assertEquals(-1, run.getTextPosition());
+ }
}
@Test
- void testSetters() {
- XWPFDocument document = new XWPFDocument();
- final XWPFRun run = document.createParagraph().createRun();
-
- // at least trigger some of the setters to ensure classes are included in
- // the poi-ooxml-lite
- run.setBold(true);
- run.setCapitalized(true);
- run.setCharacterSpacing(2);
- assertEquals(2, run.getCharacterSpacing());
- run.setColor("000000");
- run.setDoubleStrikethrough(true);
- run.setEmbossed(true);
- run.setFontFamily("Calibri");
- assertEquals("Calibri", run.getFontFamily());
- run.setFontSize(10);
- assertEquals(10, run.getFontSize());
- run.setImprinted(true);
- run.setItalic(true);
+ void testSetters() throws IOException {
+ try (XWPFDocument document = new XWPFDocument()) {
+ final XWPFRun run = document.createParagraph().createRun();
+
+ // at least trigger some of the setters to ensure classes are included in
+ // the poi-ooxml-lite
+ run.setBold(true);
+ run.setCapitalized(true);
+ run.setCharacterSpacing(2);
+ assertEquals(2, run.getCharacterSpacing());
+ run.setColor("000000");
+ run.setDoubleStrikethrough(true);
+ run.setEmbossed(true);
+ run.setFontFamily("Calibri");
+ assertEquals("Calibri", run.getFontFamily());
+ run.setFontSize(10);
+ assertEquals(10, run.getFontSize());
+ run.setImprinted(true);
+ run.setItalic(true);
+ }
}
@Test
void testSetGetTextScale() throws IOException {
- XWPFDocument document = new XWPFDocument();
- final XWPFRun run = document.createParagraph().createRun();
- assertEquals(100, run.getTextScale());
- run.setTextScale(200);
- assertEquals(200, run.getTextScale());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ final XWPFRun run = document.createParagraph().createRun();
+ assertEquals(100, run.getTextScale());
+ run.setTextScale(200);
+ assertEquals(200, run.getTextScale());
+ }
}
@Test
void testSetGetTextHighlightColor() throws IOException {
- XWPFDocument document = new XWPFDocument();
- final XWPFRun run = document.createParagraph().createRun();
- assertEquals(STHighlightColor.NONE, run.getTextHightlightColor());
- assertFalse(run.isHighlighted());
- run.setTextHighlightColor("darkGreen"); // See 17.18.40 ST_HighlightColor (Text Highlight Colors)
- assertEquals(STHighlightColor.DARK_GREEN, run.getTextHightlightColor());
- assertTrue(run.isHighlighted());
- run.setTextHighlightColor("none");
- assertFalse(run.isHighlighted());
-
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ final XWPFRun run = document.createParagraph().createRun();
+ assertSame(STHighlightColor.NONE, run.getTextHightlightColor());
+ assertFalse(run.isHighlighted());
+ run.setTextHighlightColor("darkGreen"); // See 17.18.40 ST_HighlightColor (Text Highlight Colors)
+ assertSame(STHighlightColor.DARK_GREEN, run.getTextHightlightColor());
+ assertTrue(run.isHighlighted());
+ run.setTextHighlightColor("none");
+ assertFalse(run.isHighlighted());
+ }
}
@Test
void testSetGetVanish() throws IOException {
- XWPFDocument document = new XWPFDocument();
- final XWPFRun run = document.createParagraph().createRun();
- assertFalse(run.isVanish());
- run.setVanish(true);
- assertTrue(run.isVanish());
- run.setVanish(false);
- assertFalse(run.isVanish());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ final XWPFRun run = document.createParagraph().createRun();
+ assertFalse(run.isVanish());
+ run.setVanish(true);
+ assertTrue(run.isVanish());
+ run.setVanish(false);
+ assertFalse(run.isVanish());
+ }
}
@Test
void testSetGetVerticalAlignment() throws IOException {
- XWPFDocument document = new XWPFDocument();
- XWPFRun run = document.createParagraph().createRun();
- assertEquals(STVerticalAlignRun.BASELINE, run.getVerticalAlignment());
- // Reset to a fresh run so we test case of run not having vertical alignment at all
- run = document.createParagraph().createRun();
- run.setVerticalAlignment("subscript");
- assertEquals(STVerticalAlignRun.SUBSCRIPT, run.getVerticalAlignment());
- run.setVerticalAlignment("superscript");
- assertEquals(STVerticalAlignRun.SUPERSCRIPT, run.getVerticalAlignment());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ XWPFRun run = document.createParagraph().createRun();
+ assertSame(STVerticalAlignRun.BASELINE, run.getVerticalAlignment());
+ // Reset to a fresh run so we test case of run not having vertical alignment at all
+ run = document.createParagraph().createRun();
+ run.setVerticalAlignment("subscript");
+ assertSame(STVerticalAlignRun.SUBSCRIPT, run.getVerticalAlignment());
+ run.setVerticalAlignment("superscript");
+ assertSame(STVerticalAlignRun.SUPERSCRIPT, run.getVerticalAlignment());
+ }
}
@Test
@@ -726,82 +719,81 @@ class TestXWPFRun {
XWPFRun run = new XWPFRun(ctRun, irb);
run.setSubscript(VerticalAlign.BASELINE);
- assertEquals(STVerticalAlignRun.BASELINE, rpr.getVertAlignArray(0).getVal());
+ assertSame(STVerticalAlignRun.BASELINE, rpr.getVertAlignArray(0).getVal());
}
@Test
void testSetGetEmphasisMark() throws IOException {
- XWPFDocument document = new XWPFDocument();
- XWPFRun run = document.createParagraph().createRun();
- assertEquals(STEm.NONE, run.getEmphasisMark());
- // Reset to a fresh run so we test case of run not having property at all
- run = document.createParagraph().createRun();
- run.setEmphasisMark("dot");
- assertEquals(STEm.DOT, run.getEmphasisMark());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ XWPFRun run = document.createParagraph().createRun();
+ assertSame(STEm.NONE, run.getEmphasisMark());
+ // Reset to a fresh run so we test case of run not having property at all
+ run = document.createParagraph().createRun();
+ run.setEmphasisMark("dot");
+ assertSame(STEm.DOT, run.getEmphasisMark());
+ }
}
@Test
void testSetGetUnderlineColor() throws IOException {
- XWPFDocument document = new XWPFDocument();
- XWPFRun run = document.createParagraph().createRun();
- assertEquals("auto", run.getUnderlineColor());
- // Reset to a fresh run so we test case of run not having property at all
- run = document.createParagraph().createRun();
- String colorRgb = "C0F1a2";
- run.setUnderlineColor(colorRgb);
- assertEquals(colorRgb.toUpperCase(LocaleUtil.getUserLocale()), run.getUnderlineColor());
- run.setUnderlineColor("auto");
- assertEquals("auto", run.getUnderlineColor());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ XWPFRun run = document.createParagraph().createRun();
+ assertEquals("auto", run.getUnderlineColor());
+ // Reset to a fresh run so we test case of run not having property at all
+ run = document.createParagraph().createRun();
+ String colorRgb = "C0F1a2";
+ run.setUnderlineColor(colorRgb);
+ assertEquals(colorRgb.toUpperCase(LocaleUtil.getUserLocale()), run.getUnderlineColor());
+ run.setUnderlineColor("auto");
+ assertEquals("auto", run.getUnderlineColor());
+ }
}
@Test
void testSetGetUnderlineThemeColor() throws IOException {
- XWPFDocument document = new XWPFDocument();
- XWPFRun run = document.createParagraph().createRun();
- assertEquals(STThemeColor.NONE, run.getUnderlineThemeColor());
- // Reset to a fresh run so we test case of run not having property at all
- run = document.createParagraph().createRun();
- String colorName = "accent4";
- run.setUnderlineThemeColor(colorName);
- assertEquals(STThemeColor.Enum.forString(colorName), run.getUnderlineThemeColor());
- run.setUnderlineThemeColor("none");
- assertEquals(STThemeColor.NONE, run.getUnderlineThemeColor());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ XWPFRun run = document.createParagraph().createRun();
+ assertSame(STThemeColor.NONE, run.getUnderlineThemeColor());
+ // Reset to a fresh run so we test case of run not having property at all
+ run = document.createParagraph().createRun();
+ String colorName = "accent4";
+ run.setUnderlineThemeColor(colorName);
+ assertSame(STThemeColor.Enum.forString(colorName), run.getUnderlineThemeColor());
+ run.setUnderlineThemeColor("none");
+ assertSame(STThemeColor.NONE, run.getUnderlineThemeColor());
+ }
}
@Test
void testSetStyleId() throws IOException {
- XWPFDocument document = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
- final XWPFRun run = document.createParagraph().createRun();
+ try (XWPFDocument document = openSampleDocument("SampleDoc.docx")) {
+ final XWPFRun run = document.createParagraph().createRun();
- String styleId = "bolditalic";
- run.setStyle(styleId);
- String candStyleId = run.getCTR().getRPr().getRStyleArray(0).getVal();
- assertNotNull( candStyleId, "Expected to find a run style ID" );
- assertEquals(styleId, candStyleId);
+ String styleId = "bolditalic";
+ run.setStyle(styleId);
+ String candStyleId = run.getCTR().getRPr().getRStyleArray(0).getVal();
+ assertNotNull(candStyleId, "Expected to find a run style ID");
+ assertEquals(styleId, candStyleId);
- assertEquals(styleId, run.getStyle());
-
- document.close();
+ assertEquals(styleId, run.getStyle());
+ }
}
@Test
void testGetEmptyStyle() throws IOException {
- XWPFDocument document = new XWPFDocument();
- final XWPFRun run = document.createParagraph().createRun();
- assertEquals("", run.getStyle());
-
- run.getCTR().addNewRPr();
- assertEquals("", run.getStyle());
- document.close();
+ try (XWPFDocument document = new XWPFDocument()) {
+ final XWPFRun run = document.createParagraph().createRun();
+ assertEquals("", run.getStyle());
+
+ run.getCTR().addNewRPr();
+ assertEquals("", run.getStyle());
+ }
}
@Test
void testGetDepthWidth() throws IOException, InvalidFormatException {
- try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("TestDocument.docx")) {
+ try (XWPFDocument doc = openSampleDocument("TestDocument.docx")) {
XWPFHeader hdr = doc.createHeader(HeaderFooterType.DEFAULT);
XWPFParagraph p = hdr.createParagraph();
XWPFRun r = p.createRun();
@@ -827,35 +819,28 @@ class TestXWPFRun {
" The quick brown fox",
"\t\tjumped over the lazy dog"
};
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try (XWPFDocument doc = new XWPFDocument();) {
+ try (XWPFDocument doc1 = new XWPFDocument()) {
for(String s : text) {
- XWPFParagraph p1 = doc.createParagraph();
+ XWPFParagraph p1 = doc1.createParagraph();
XWPFRun r1 = p1.createRun();
r1.setText(s);
}
- doc.write(bos);
- bos.flush();
- }
-
- try (
- ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
- XWPFDocument doc = new XWPFDocument(bis)
- ) {
- List<XWPFParagraph> paragraphs = doc.getParagraphs();
- assertEquals(2, paragraphs.size());
- for (int i = 0; i < text.length; i++) {
- XWPFParagraph p1 = paragraphs.get(i);
- String expected = text[i];
- assertEquals(expected, p1.getText());
- CTP ctp = p1.getCTP();
- CTR ctr = ctp.getRArray(0);
- CTText ctText = ctr.getTArray(0);
- // if text has leading whitespace then expect xml-fragment to have xml:space="preserve" set
- // <xml-fragment xml:space="preserve" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
- boolean isWhitespace = Character.isWhitespace(expected.charAt(0));
- assertEquals(isWhitespace, ctText.isSetSpace());
+ try (XWPFDocument doc2 = writeOutAndReadBack(doc1)) {
+ List<XWPFParagraph> paragraphs = doc2.getParagraphs();
+ assertEquals(2, paragraphs.size());
+ for (int i = 0; i < text.length; i++) {
+ XWPFParagraph p1 = paragraphs.get(i);
+ String expected = text[i];
+ assertEquals(expected, p1.getText());
+ CTP ctp = p1.getCTP();
+ CTR ctr = ctp.getRArray(0);
+ CTText ctText = ctr.getTArray(0);
+ // if text has leading whitespace then expect xml-fragment to have xml:space="preserve" set
+ // <xml-fragment xml:space="preserve" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
+ boolean isWhitespace = Character.isWhitespace(expected.charAt(0));
+ assertEquals(isWhitespace, ctText.isSetSpace());
+ }
}
}
}
Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/HDGFLZW.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/HDGFLZW.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/HDGFLZW.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hdgf/HDGFLZW.java Fri May 14 00:37:50 2021
@@ -16,11 +16,11 @@
==================================================================== */
package org.apache.poi.hdgf;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.util.LZWDecompresser;
/**
@@ -53,7 +53,7 @@ public class HDGFLZW extends LZWDecompre
* @throws IOException when the InputStream can't be read
*/
public byte[] compress(InputStream src) throws IOException {
- ByteArrayOutputStream res = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream res = new UnsynchronizedByteArrayOutputStream();
compress(src,res);
return res.toByteArray();
}
Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfFill.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfFill.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfFill.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfFill.java Fri May 14 00:37:50 2021
@@ -26,8 +26,6 @@ import java.awt.geom.AffineTransform;
import java.awt.geom.Area;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
@@ -36,6 +34,7 @@ import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.hemf.draw.HemfDrawProperties;
import org.apache.poi.hemf.draw.HemfGraphics;
import org.apache.poi.hwmf.draw.HwmfGraphics;
@@ -793,14 +792,14 @@ public final class HemfFill {
return (long)undefinedSpace1 + bitmap.init(leis, dibSize);
}
- final ByteArrayOutputStream bos = new ByteArrayOutputStream(cbBmi+cbBits);
+ final UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream(cbBmi+cbBits);
final long cbBmiSrcAct = IOUtils.copy(leis, bos, cbBmi);
assert (cbBmiSrcAct == cbBmi);
leis.skipFully(undefinedSpace2);
final long cbBitsSrcAct = IOUtils.copy(leis, bos, cbBits);
assert (cbBitsSrcAct == cbBits);
- final LittleEndianInputStream leisDib = new LittleEndianInputStream(new ByteArrayInputStream(bos.toByteArray()));
+ final LittleEndianInputStream leisDib = new LittleEndianInputStream(bos.toInputStream());
final int dibSizeAct = bitmap.init(leisDib, dibSize);
assert (dibSizeAct <= dibSize);
return (long)undefinedSpace1 + cbBmi + undefinedSpace2 + cbBits;
Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java?rev=1889871&r1=1889870&r2=1889871&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java Fri May 14 00:37:50 2021
@@ -27,7 +27,6 @@ import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.AbstractMap;
import java.util.Arrays;
@@ -41,6 +40,7 @@ import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
import org.apache.poi.common.usermodel.GenericRecord;
import org.apache.poi.hemf.draw.HemfDrawProperties;
import org.apache.poi.hemf.draw.HemfGraphics;
@@ -399,7 +399,7 @@ public class HemfPlusBrush {
}
public byte[] getRawData(List<? extends EmfPlusObjectData> continuedObjectData) {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream();
try {
bos.write(getBrushBytes());
if (continuedObjectData != null) {
@@ -473,6 +473,7 @@ public class HemfPlusBrush {
public static class EmfPlusHatchBrushData implements EmfPlusBrushData {
private EmfPlusHatchStyle style;
private Color foreColor, backColor;
+ @Override
public long init(LittleEndianInputStream leis, long dataSize) {
style = EmfPlusHatchStyle.valueOf(leis.readInt());
foreColor = readARGB(leis.readInt());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org