From a7706b3fdfbbdd397ec03d11635f7e3056b6864d Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Sun, 15 Jan 2017 23:08:47 +0000 Subject: [PATCH] fix eclipse warnings - close resources / type generics cleanup sources - add parenthesis to statements git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1778955 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/ss/examples/AddDimensionedImage.java | 4 +- .../xssf/usermodel/examples/CellComments.java | 21 +- .../examples/WorkingWithPictures.java | 26 +- .../apache/poi/stress/HDGFFileHandler.java | 5 +- .../poi/hssf/extractor/OldExcelExtractor.java | 7 +- .../org/apache/poi/ss/usermodel/Cell.java | 11 +- .../org/apache/poi/ss/usermodel/Sheet.java | 4 +- .../apache/poi/xssf/streaming/SXSSFSheet.java | 40 ++- .../poi/xssf/model/TestCommentsTable.java | 6 +- .../poi/xssf/usermodel/TestXSSFBugs.java | 19 +- .../poi/xssf/usermodel/TestXSSFComment.java | 15 +- .../poi/xssf/usermodel/TestXSSFSheet.java | 12 +- .../usermodel/charts/TestXSSFChartLegend.java | 42 ++- .../usermodel/charts/TestXSSFChartTitle.java | 53 ++- .../charts/TestXSSFLineChartData.java | 15 +- .../charts/TestXSSFManualLayout.java | 61 ++-- .../charts/TestXSSFScatterChartData.java | 15 +- .../poi/xwpf/TestDocumentProtection.java | 59 ++-- .../hslf/extractor/PowerPointExtractor.java | 7 +- .../apache/poi/hdgf/streams/StreamTest.java | 9 +- .../poi/hdgf/streams/TestStreamBasics.java | 103 +++--- .../poi/hdgf/streams/TestStreamBugs.java | 34 +- .../poi/hdgf/streams/TestStreamComplex.java | 46 ++- .../poi/hpbf/model/TestEscherParts.java | 49 +-- .../poi/hslf/extractor/TestExtractor.java | 302 +++++++++--------- .../hssf/extractor/TestOldExcelExtractor.java | 80 +++-- .../poi/hssf/model/TestDrawingAggregate.java | 33 +- .../poi/hssf/record/TestStringRecord.java | 32 +- .../poi/hssf/usermodel/TestHSSFComment.java | 11 +- .../poi/hssf/usermodel/TestPolygon.java | 2 +- .../apache/poi/hssf/usermodel/TestText.java | 2 +- .../apache/poi/poifs/storage/RawDataUtil.java | 33 ++ .../ss/usermodel/BaseTestBugzillaIssues.java | 57 ++-- .../apache/poi/ss/usermodel/BaseTestCell.java | 6 +- .../poi/ss/usermodel/BaseTestCellComment.java | 12 +- .../poi/ss/usermodel/BaseTestPicture.java | 2 +- .../poi/ss/usermodel/BaseTestSheet.java | 4 +- .../poi/ss/usermodel/BaseTestWorkbook.java | 5 +- 38 files changed, 703 insertions(+), 541 deletions(-) diff --git a/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java b/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java index a9099f575..227216df0 100644 --- a/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java +++ b/src/examples/src/org/apache/poi/ss/examples/AddDimensionedImage.java @@ -269,7 +269,7 @@ public class AddDimensionedImage { * to the resizeBehaviour * parameter. */ - public void addImageToSheet(String cellNumber, Sheet sheet, Drawing drawing, + public void addImageToSheet(String cellNumber, Sheet sheet, Drawing drawing, URL imageFile, double reqImageWidthMM, double reqImageHeightMM, int resizeBehaviour) throws IOException, IllegalArgumentException { // Convert the String into column and row indices then chain the @@ -329,7 +329,7 @@ public class AddDimensionedImage { * it is of a type that cannot * currently be added to the worksheet. */ - public void addImageToSheet(int colNumber, int rowNumber, Sheet sheet, Drawing drawing, + public void addImageToSheet(int colNumber, int rowNumber, Sheet sheet, Drawing drawing, URL imageFile, double reqImageWidthMM, double reqImageHeightMM, int resizeBehaviour) throws IOException, IllegalArgumentException { diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CellComments.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CellComments.java index a94e58a34..ffc3ff523 100644 --- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/CellComments.java +++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/CellComments.java @@ -16,13 +16,22 @@ ==================================================================== */ package org.apache.poi.xssf.usermodel.examples; -import org.apache.poi.ss.usermodel.*; +import java.io.FileOutputStream; +import java.io.IOException; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.ClientAnchor; +import org.apache.poi.ss.usermodel.Comment; +import org.apache.poi.ss.usermodel.CreationHelper; +import org.apache.poi.ss.usermodel.Drawing; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.RichTextString; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.CellAddress; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import java.io.IOException; -import java.io.FileOutputStream; - /** * Demonstrates how to work with excel cell comments. * @@ -44,7 +53,7 @@ public class CellComments { Cell cell1 = sheet.createRow(3).createCell(5); cell1.setCellValue("F4"); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = factory.createClientAnchor(); @@ -63,7 +72,7 @@ public class CellComments { Font font = wb.createFont(); font.setFontName("Arial"); font.setFontHeightInPoints((short)14); - font.setBoldweight(Font.BOLDWEIGHT_BOLD); + font.setBold(true); font.setColor(IndexedColors.RED.getIndex()); str2.applyFont(font); diff --git a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java index e7aeaaac1..34735b7c8 100644 --- a/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java +++ b/src/examples/src/org/apache/poi/xssf/usermodel/examples/WorkingWithPictures.java @@ -17,20 +17,23 @@ package org.apache.poi.xssf.usermodel.examples; -import org.apache.poi.xssf.usermodel.*; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.util.IOUtils; - -import java.io.IOException; -import java.io.InputStream; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; +import org.apache.poi.ss.usermodel.ClientAnchor; +import org.apache.poi.ss.usermodel.CreationHelper; +import org.apache.poi.ss.usermodel.Drawing; +import org.apache.poi.ss.usermodel.Picture; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.util.IOUtils; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + /** * Demonstrates how to insert pictures in a SpreadsheetML document - * - * @author Yegor Kozlov */ public class WorkingWithPictures { public static void main(String[] args) throws IOException { @@ -50,7 +53,7 @@ public class WorkingWithPictures { Sheet sheet = wb.createSheet(); //create drawing - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); //add a picture shape ClientAnchor anchor = helper.createClientAnchor(); @@ -63,7 +66,10 @@ public class WorkingWithPictures { //save workbook String file = "picture.xls"; - if(wb instanceof XSSFWorkbook) file += "x"; // NOSONAR + if(wb instanceof XSSFWorkbook) + { + file += "x"; // NOSONAR + } OutputStream fileOut = new FileOutputStream(file); try { wb.write(fileOut); diff --git a/src/integrationtest/org/apache/poi/stress/HDGFFileHandler.java b/src/integrationtest/org/apache/poi/stress/HDGFFileHandler.java index eb0e1b6c0..758a3ad29 100644 --- a/src/integrationtest/org/apache/poi/stress/HDGFFileHandler.java +++ b/src/integrationtest/org/apache/poi/stress/HDGFFileHandler.java @@ -21,6 +21,7 @@ import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import org.apache.poi.hdgf.HDGFDiagram; @@ -32,7 +33,7 @@ import org.junit.Test; public class HDGFFileHandler extends POIFSFileHandler { @Override - public void handleFile(InputStream stream) throws Exception { + public void handleFile(InputStream stream) throws IOException { POIFSFileSystem poifs = new POIFSFileSystem(stream); HDGFDiagram diagram = new HDGFDiagram(poifs); Stream[] topLevelStreams = diagram.getTopLevelStreams(); @@ -44,7 +45,7 @@ public class HDGFFileHandler extends POIFSFileHandler { TrailerStream trailerStream = diagram.getTrailerStream(); assertNotNull(trailerStream); assertTrue(trailerStream.getPointer().getLength() >= 0); - + diagram.close(); poifs.close(); // writing is not yet implemented... handlePOIDocument(diagram); diff --git a/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java b/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java index 3d6bc3515..922db321c 100644 --- a/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java +++ b/src/java/org/apache/poi/hssf/extractor/OldExcelExtractor.java @@ -161,7 +161,7 @@ public class OldExcelExtractor implements Closeable { prepare(); } - public static void main(String[] args) throws Exception { + public static void main(String[] args) throws IOException { if (args.length < 1) { System.err.println("Use:"); System.err.println(" OldExcelExtractor "); @@ -173,8 +173,9 @@ public class OldExcelExtractor implements Closeable { } private void prepare() { - if (! ris.hasNextRecord()) - throw new IllegalArgumentException("File contains no records!"); + if (! ris.hasNextRecord()) { + throw new IllegalArgumentException("File contains no records!"); + } ris.nextRecord(); // Work out what version we're dealing with diff --git a/src/java/org/apache/poi/ss/usermodel/Cell.java b/src/java/org/apache/poi/ss/usermodel/Cell.java index a6f4f6387..7b1637eeb 100644 --- a/src/java/org/apache/poi/ss/usermodel/Cell.java +++ b/src/java/org/apache/poi/ss/usermodel/Cell.java @@ -19,11 +19,11 @@ package org.apache.poi.ss.usermodel; import java.util.Calendar; import java.util.Date; +import java.util.Map; import org.apache.poi.ss.formula.FormulaParseException; import org.apache.poi.ss.util.CellAddress; import org.apache.poi.ss.util.CellRangeAddress; -import org.apache.poi.util.Internal; import org.apache.poi.util.Removal; /** @@ -47,6 +47,7 @@ public interface Cell { * @see #getCellType() * @deprecated POI 3.15 beta 3. Use {@link CellType#NUMERIC} instead. */ + @Deprecated @Removal(version="4.0") int CELL_TYPE_NUMERIC = 0; //CellType.NUMERIC.getCode(); @@ -56,6 +57,7 @@ public interface Cell { * @see #getCellType() * @deprecated POI 3.15 beta 3. Use {@link CellType#STRING} instead. */ + @Deprecated @Removal(version="4.0") int CELL_TYPE_STRING = 1; //CellType.STRING.getCode(); @@ -65,6 +67,7 @@ public interface Cell { * @see #getCellType() * @deprecated POI 3.15 beta 3. Use {@link CellType#FORMULA} instead. */ + @Deprecated @Removal(version="4.0") int CELL_TYPE_FORMULA = 2; //CellType.FORMULA.getCode(); @@ -74,6 +77,7 @@ public interface Cell { * @see #getCellType() * @deprecated POI 3.15 beta 3. Use {@link CellType#BLANK} instead. */ + @Deprecated @Removal(version="4.0") int CELL_TYPE_BLANK = 3; //CellType.BLANK.getCode(); @@ -83,6 +87,7 @@ public interface Cell { * @see #getCellType() * @deprecated POI 3.15 beta 3. Use {@link CellType#BOOLEAN} instead. */ + @Deprecated @Removal(version="4.0") int CELL_TYPE_BOOLEAN = 4; //CellType.BOOLEAN.getCode(); @@ -92,6 +97,7 @@ public interface Cell { * @see #getCellType() * @deprecated POI 3.15 beta 3. Use {@link CellType#ERROR} instead. */ + @Deprecated @Removal(version="4.0") int CELL_TYPE_ERROR = 5; //CellType.ERROR.getCode(); @@ -143,6 +149,7 @@ public interface Cell { * @see CellType#ERROR * @deprecated POI 3.15 beta 3. Use {@link #setCellType(CellType)} instead. */ + @Deprecated @Removal(version="4.0") void setCellType(int cellType); /** @@ -169,6 +176,7 @@ public interface Cell { * @return the cell type * @deprecated POI 3.15. Will return a {@link CellType} enum in the future. */ + @Deprecated int getCellType(); /** @@ -192,6 +200,7 @@ public interface Cell { * on the cached value of the formula * @deprecated 3.15. Will return a {@link CellType} enum in the future. */ + @Deprecated int getCachedFormulaResultType(); /** diff --git a/src/java/org/apache/poi/ss/usermodel/Sheet.java b/src/java/org/apache/poi/ss/usermodel/Sheet.java index 4c171ff2c..e21aeafd8 100644 --- a/src/java/org/apache/poi/ss/usermodel/Sheet.java +++ b/src/java/org/apache/poi/ss/usermodel/Sheet.java @@ -972,7 +972,7 @@ public interface Sheet extends Iterable { * * @return a SpreadsheetML drawing */ - Drawing getDrawingPatriarch(); + Drawing getDrawingPatriarch(); /** * Creates the top-level drawing patriarch. @@ -982,7 +982,7 @@ public interface Sheet extends Iterable { * * @return The new drawing patriarch. */ - Drawing createDrawingPatriarch(); + Drawing createDrawingPatriarch(); /** diff --git a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java index 2c9fb6e37..6f85aad49 100644 --- a/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java +++ b/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFSheet.java @@ -33,7 +33,6 @@ import org.apache.poi.ss.usermodel.CellRange; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.DataValidation; import org.apache.poi.ss.usermodel.DataValidationHelper; -import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.Footer; import org.apache.poi.ss.usermodel.Header; import org.apache.poi.ss.usermodel.PrintSetup; @@ -51,6 +50,7 @@ import org.apache.poi.util.Removal; import org.apache.poi.xssf.usermodel.XSSFColor; import org.apache.poi.xssf.usermodel.XSSFComment; import org.apache.poi.xssf.usermodel.XSSFDataValidation; +import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFHyperlink; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetFormatPr; @@ -207,8 +207,9 @@ public class SXSSFSheet implements Sheet @Override public int getFirstRowNum() { - if(_writer.getNumberOfFlushedRows() > 0) + if(_writer.getNumberOfFlushedRows() > 0) { return _writer.getLowestIndexOfFlushedRows(); + } return _rows.size() == 0 ? 0 : _rows.firstKey(); } @@ -875,6 +876,7 @@ public class SXSSFSheet implements Sheet * @param denominator The denominator for the zoom magnification. * @deprecated 2015-11-23 (circa POI 3.14beta1). Use {@link #setZoom(int)} instead. */ + @Deprecated @Removal(version="3.16") @Override public void setZoom(int numerator, int denominator) @@ -1293,7 +1295,9 @@ public class SXSSFSheet implements Sheet int level = row.getOutlineLevel() + 1; row.setOutlineLevel(level); - if(level > outlineLevelRow) outlineLevelRow = level; + if(level > outlineLevelRow) { + outlineLevelRow = level; + } } setWorksheetOutlineLevelRow(); @@ -1328,7 +1332,9 @@ public class SXSSFSheet implements Sheet CTSheetFormatPr pr = ct.isSetSheetFormatPr() ? ct.getSheetFormatPr() : ct.addNewSheetFormatPr(); - if(outlineLevelRow > 0) pr.setOutlineLevelRow((short)outlineLevelRow); + if(outlineLevelRow > 0) { + pr.setOutlineLevelRow((short)outlineLevelRow); + } } /** @@ -1397,8 +1403,9 @@ public class SXSSFSheet implements Sheet } int currentRow = rowIndex; while (getRow(currentRow) != null) { - if (getRow(currentRow).getOutlineLevel() < level) + if (getRow(currentRow).getOutlineLevel() < level) { return currentRow + 1; + } currentRow--; } return currentRow + 1; @@ -1626,6 +1633,8 @@ public class SXSSFSheet implements Sheet * @return cell comment or null if not found * @deprecated as of 2015-11-23 (circa POI 3.14beta1). Use {@link #getCellComment(CellAddress)} instead. */ + @Deprecated + @Removal(version="3.16") @Override public XSSFComment getCellComment(int row, int column) { @@ -1691,7 +1700,7 @@ public class SXSSFSheet implements Sheet * {@inheritDoc} */ @Override - public Drawing getDrawingPatriarch() + public XSSFDrawing getDrawingPatriarch() { return _sh.getDrawingPatriarch(); } @@ -1702,9 +1711,9 @@ public class SXSSFSheet implements Sheet * @return The new drawing patriarch. */ @Override - public Drawing createDrawingPatriarch() + public SXSSFDrawing createDrawingPatriarch() { - return new SXSSFDrawing((SXSSFWorkbook)getWorkbook(), _sh.createDrawingPatriarch()); + return new SXSSFDrawing(getWorkbook(), _sh.createDrawingPatriarch()); } @@ -1868,8 +1877,12 @@ public class SXSSFSheet implements Sheet */ public void flushRows(int remaining) throws IOException { - while(_rows.size() > remaining) flushOneRow(); - if (remaining == 0) allFlushed = true; + while(_rows.size() > remaining) { + flushOneRow(); + } + if (remaining == 0) { + allFlushed = true; + } } /** @@ -1907,8 +1920,9 @@ public class SXSSFSheet implements Sheet for(Iterator> iter=_rows.entrySet().iterator();iter.hasNext();) { Map.Entry entry=iter.next(); - if(entry.getValue()==row) + if(entry.getValue()==row) { return entry.getKey().intValue(); + } } return -1; } @@ -1918,7 +1932,9 @@ public class SXSSFSheet implements Sheet * @return true if the file was deleted, false if it wasn't. */ boolean dispose() throws IOException { - if (!allFlushed) flushRows(); + if (!allFlushed) { + flushRows(); + } return _writer.dispose(); } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java b/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java index 1c03b9731..4ebd5387d 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/model/TestCommentsTable.java @@ -144,7 +144,7 @@ public class TestCommentsTable { Cell c1r2s2 = r2s2.createCell(1); assertNull(c1r2s2.getCellComment()); - Drawing dg = sheet2.createDrawingPatriarch(); + Drawing dg = sheet2.createDrawingPatriarch(); Comment cc2 = dg.createCellComment(new XSSFClientAnchor()); cc2.setAuthor("Also POI"); cc2.setString(new XSSFRichTextString("A new comment")); @@ -256,7 +256,7 @@ public class TestCommentsTable { // NOTE - only occurs if a comment is placed in A1 first Cell A1 = getCell(sheet, 0, 0); //Cell A1 = getCell(sheet, 2, 2); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); setComment(sheet, A1, drawing, "for A1", helper, anchor); // find comment in A1 before we set the comment in B2 @@ -282,7 +282,7 @@ public class TestCommentsTable { // Set the comment on a sheet // - private static void setComment(Sheet sheet, Cell cell, Drawing drawing, String commentText, CreationHelper helper, ClientAnchor anchor) { + private static void setComment(Sheet sheet, Cell cell, Drawing drawing, String commentText, CreationHelper helper, ClientAnchor anchor) { System.out.println("Setting col: " + cell.getColumnIndex() + " and row " + cell.getRowIndex()); anchor.setCol1(cell.getColumnIndex()); anchor.setCol2(cell.getColumnIndex()); diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java index 6cf7003ce..decd3b6b3 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java @@ -25,7 +25,14 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.io.*; +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.InputStream; +import java.io.OutputStream; import java.util.Arrays; import java.util.Calendar; import java.util.HashMap; @@ -57,6 +64,7 @@ import org.apache.poi.openxml4j.opc.PackagingURIHelper; import org.apache.poi.openxml4j.util.ZipSecureFile; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.ss.formula.WorkbookEvaluator; import org.apache.poi.ss.formula.eval.ErrorEval; import org.apache.poi.ss.formula.eval.NumberEval; @@ -1277,7 +1285,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { // Try to add comments to Sheet 1 CreationHelper factory = wb1.getCreationHelper(); - Drawing drawing = sh1.createDrawingPatriarch(); + Drawing drawing = sh1.createDrawingPatriarch(); ClientAnchor anchor = factory.createClientAnchor(); anchor.setCol1(0); @@ -1336,8 +1344,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { Name name = wb.getName("Intekon.ProdCodes"); assertEquals("'Abc,1'!$A$1:$A$2", name.getRefersToFormula()); - @SuppressWarnings("deprecation") - AreaReference ref = new AreaReference(name.getRefersToFormula()); + AreaReference ref = new AreaReference(name.getRefersToFormula(), SpreadsheetVersion.EXCEL2007); assertEquals(0, ref.getFirstCell().getRow()); assertEquals(0, ref.getFirstCell().getCol()); assertEquals(1, ref.getLastCell().getRow()); @@ -2312,7 +2319,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { assertNotNull(orig); Sheet sheet = wb.cloneSheet(0); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); for (XSSFShape shape : ((XSSFDrawing) drawing).getShapes()) { if (shape instanceof XSSFPicture) { XSSFPictureData pictureData = ((XSSFPicture) shape).getPictureData(); @@ -2991,7 +2998,7 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { XSSFColor color = new XSSFColor(java.awt.Color.RED); XSSFCellStyle style = workbook.createCellStyle(); style.setFillForegroundColor(color); - style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); + style.setFillPattern(CellStyle.SOLID_FOREGROUND); cell.setCellStyle(style); // Everything is fine at this point, cell is red diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java index dac2095ae..fd153a77a 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFComment.java @@ -18,9 +18,15 @@ package org.apache.poi.xssf.usermodel; import static org.apache.poi.xssf.usermodel.XSSFRelation.NS_SPREADSHEETML; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.fail; -import java.io.*; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.ss.usermodel.BaseTestCellComment; @@ -48,9 +54,6 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRPrElt; import com.microsoft.schemas.vml.CTShape; -/** - * @author Yegor Kozlov - */ public final class TestXSSFComment extends BaseTestCellComment { private static final String TEST_RICHTEXTSTRING = "test richtextstring"; @@ -274,7 +277,7 @@ public final class TestXSSFComment extends BaseTestCellComment { cell.setCellValue("F4"); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); CreationHelper factory = wb.getCreationHelper(); diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java index ee84e503b..27bfe5b2a 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java @@ -1955,7 +1955,7 @@ public final class TestXSSFSheet extends BaseTestXSheet { } private void addComments(CreationHelper helper, Sheet sheet) { - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); for (int i = 0; i < 2; i++) { ClientAnchor anchor = helper.createClientAnchor(); @@ -1968,11 +1968,13 @@ public final class TestXSSFSheet extends BaseTestXSheet { comment.setString(helper.createRichTextString("BugTesting")); Row row = sheet.getRow(0 + i); - if (row == null) - row = sheet.createRow(0 + i); + if (row == null) { + row = sheet.createRow(0 + i); + } Cell cell = row.getCell(0); - if (cell == null) - cell = row.createCell(0); + if (cell == null) { + cell = row.createCell(0); + } cell.setCellComment(comment); } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java index 02aabad05..524b421da 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartLegend.java @@ -17,38 +17,47 @@ package org.apache.poi.xssf.usermodel.charts; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; -import org.apache.poi.ss.usermodel.*; +import java.io.IOException; + +import org.apache.poi.ss.usermodel.Chart; +import org.apache.poi.ss.usermodel.ClientAnchor; +import org.apache.poi.ss.usermodel.Drawing; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.charts.ChartLegend; import org.apache.poi.ss.usermodel.charts.LegendPosition; -import org.apache.poi.xssf.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.Test; /** * Tests ChartLegend - * - * @author Martin Andersson - * @author Cedric dot Walter at gmail dot com */ -public final class TestXSSFChartLegend extends TestCase { - - public void testLegendPositionAccessMethods() throws Exception { +public final class TestXSSFChartLegend { + @Test + public void testLegendPositionAccessMethods() throws IOException { Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); Chart chart = drawing.createChart(anchor); ChartLegend legend = chart.getOrCreateLegend(); legend.setPosition(LegendPosition.TOP_RIGHT); assertEquals(LegendPosition.TOP_RIGHT, legend.getPosition()); + + wb.close(); } - public void test_setOverlay_defaultChartLegend_expectOverlayInitialValueSetToFalse() { + @Test + public void test_setOverlay_defaultChartLegend_expectOverlayInitialValueSetToFalse() throws IOException { // Arrange Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); Chart chart = drawing.createChart(anchor); ChartLegend legend = chart.getOrCreateLegend(); @@ -57,13 +66,16 @@ public final class TestXSSFChartLegend extends TestCase { // Assert assertFalse(legend.isOverlay()); + + wb.close(); } - public void test_setOverlay_chartLegendSetToTrue_expectOverlayInitialValueSetToTrue() { + @Test + public void test_setOverlay_chartLegendSetToTrue_expectOverlayInitialValueSetToTrue() throws IOException { // Arrange Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); Chart chart = drawing.createChart(anchor); ChartLegend legend = chart.getOrCreateLegend(); @@ -73,5 +85,7 @@ public final class TestXSSFChartLegend extends TestCase { // Assert assertTrue(legend.isOverlay()); + + wb.close(); } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartTitle.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartTitle.java index de0574930..08d1f179d 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartTitle.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFChartTitle.java @@ -17,19 +17,43 @@ package org.apache.poi.xssf.usermodel.charts; -import junit.framework.TestCase; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.ss.usermodel.charts.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import java.io.IOException; +import java.util.List; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Chart; +import org.apache.poi.ss.usermodel.ClientAnchor; +import org.apache.poi.ss.usermodel.Drawing; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.charts.AxisCrosses; +import org.apache.poi.ss.usermodel.charts.AxisPosition; +import org.apache.poi.ss.usermodel.charts.ChartAxis; +import org.apache.poi.ss.usermodel.charts.ChartDataSource; +import org.apache.poi.ss.usermodel.charts.ChartLegend; +import org.apache.poi.ss.usermodel.charts.DataSources; +import org.apache.poi.ss.usermodel.charts.LegendPosition; +import org.apache.poi.ss.usermodel.charts.LineChartData; +import org.apache.poi.ss.usermodel.charts.ValueAxis; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.XSSFTestDataSamples; -import org.apache.poi.xssf.usermodel.*; - -import java.util.List; +import org.apache.poi.xssf.usermodel.XSSFChart; +import org.apache.poi.xssf.usermodel.XSSFDrawing; +import org.apache.poi.xssf.usermodel.XSSFRichTextString; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.Test; /** * Test get/set chart title. */ -public class TestXSSFChartTitle extends TestCase { +public class TestXSSFChartTitle { private Workbook createWorkbookWithChart() { Workbook wb = new XSSFWorkbook(); Sheet sheet = wb.createSheet("linechart"); @@ -47,7 +71,7 @@ public class TestXSSFChartTitle extends TestCase { } } - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 0, 5, 10, 15); Chart chart = drawing.createChart(anchor); @@ -91,7 +115,8 @@ public class TestXSSFChartTitle extends TestCase { return null; } - public void testNewChart() { + @Test + public void testNewChart() throws IOException { Workbook wb = createWorkbookWithChart(); XSSFChart chart = getChartFromWorkbook(wb, "linechart"); assertNotNull(chart); @@ -101,9 +126,11 @@ public class TestXSSFChartTitle extends TestCase { XSSFRichTextString queryTitle = chart.getTitle(); assertNotNull(queryTitle); assertEquals(myTitle, queryTitle.toString()); + wb.close(); } - public void testExistingChartWithTitle() { + @Test + public void testExistingChartWithTitle() throws IOException { Workbook wb = XSSFTestDataSamples.openSampleWorkbook("chartTitle_withTitle.xlsx"); XSSFChart chart = getChartFromWorkbook(wb, "Sheet1"); assertNotNull(chart); @@ -115,9 +142,11 @@ public class TestXSSFChartTitle extends TestCase { XSSFRichTextString queryTitle = chart.getTitle(); assertNotNull(queryTitle); assertEquals(myTitle, queryTitle.toString()); + wb.close(); } - public void testExistingChartNoTitle() { + @Test + public void testExistingChartNoTitle() throws IOException { Workbook wb = XSSFTestDataSamples.openSampleWorkbook("chartTitle_noTitle.xlsx"); XSSFChart chart = getChartFromWorkbook(wb, "Sheet1"); assertNotNull(chart); @@ -127,6 +156,6 @@ public class TestXSSFChartTitle extends TestCase { XSSFRichTextString queryTitle = chart.getTitle(); assertNotNull(queryTitle); assertEquals(myTitle, queryTitle.toString()); + wb.close(); } - } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFLineChartData.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFLineChartData.java index cf7fd78ed..2bfb06bf8 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFLineChartData.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFLineChartData.java @@ -16,7 +16,11 @@ ==================================================================== */ package org.apache.poi.xssf.usermodel.charts; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; import org.apache.poi.ss.usermodel.Chart; import org.apache.poi.ss.usermodel.ClientAnchor; @@ -32,21 +36,23 @@ import org.apache.poi.ss.usermodel.charts.LineChartSeries; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.SheetBuilder; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.Test; /** * Tests for XSSF Line Charts */ -public class TestXSSFLineChartData extends TestCase { +public class TestXSSFLineChartData { private static final Object[][] plotData = { {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}, {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} }; - public void testOneSeriePlot() throws Exception { + @Test + public void testOneSeriePlot() throws IOException { Workbook wb = new XSSFWorkbook(); Sheet sheet = new SheetBuilder(wb, plotData).build(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); Chart chart = drawing.createChart(anchor); @@ -65,5 +71,6 @@ public class TestXSSFLineChartData extends TestCase { assertTrue(lineChartData.getSeries().contains(series)); chart.plot(lineChartData, bottomAxis, leftAxis); + wb.close(); } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFManualLayout.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFManualLayout.java index 8b5e8d92a..97438c067 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFManualLayout.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFManualLayout.java @@ -17,29 +17,57 @@ package org.apache.poi.xssf.usermodel.charts; -import junit.framework.TestCase; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; -import org.apache.poi.ss.usermodel.*; +import java.io.IOException; + +import org.apache.poi.ss.usermodel.Chart; +import org.apache.poi.ss.usermodel.ClientAnchor; +import org.apache.poi.ss.usermodel.Drawing; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.charts.ChartLegend; -import org.apache.poi.ss.usermodel.charts.ManualLayout; import org.apache.poi.ss.usermodel.charts.LayoutMode; import org.apache.poi.ss.usermodel.charts.LayoutTarget; -import org.apache.poi.xssf.usermodel.*; +import org.apache.poi.ss.usermodel.charts.ManualLayout; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; -public final class TestXSSFManualLayout extends TestCase { - +public final class TestXSSFManualLayout { + + private Workbook wb; + private ManualLayout layout; + + @Before + public void createEmptyLayout() { + wb = new XSSFWorkbook(); + Sheet sheet = wb.createSheet(); + Drawing drawing = sheet.createDrawingPatriarch(); + ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); + Chart chart = drawing.createChart(anchor); + ChartLegend legend = chart.getOrCreateLegend(); + layout = legend.getManualLayout(); + } + + @After + public void closeWB() throws IOException { + wb.close(); + } + /* * Accessor methods are not trivial. They use lazy underlying bean * initialization so there can be some errors (NPE, for example). */ - public void testAccessorMethods() throws Exception { + @Test + public void testAccessorMethods() { final double newRatio = 1.1; final double newCoordinate = 0.3; final LayoutMode nonDefaultMode = LayoutMode.FACTOR; final LayoutTarget nonDefaultTarget = LayoutTarget.OUTER; - ManualLayout layout = getEmptyLayout(); - layout.setWidthRatio(newRatio); assertTrue(layout.getWidthRatio() == newRatio); @@ -73,9 +101,8 @@ public final class TestXSSFManualLayout extends TestCase { * Layout must have reasonable default values and must not throw * any exceptions. */ - public void testDefaultValues() throws Exception { - ManualLayout layout = getEmptyLayout(); - + @Test + public void testDefaultValues() { assertNotNull(layout.getTarget()); assertNotNull(layout.getXMode()); assertNotNull(layout.getYMode()); @@ -90,14 +117,4 @@ public final class TestXSSFManualLayout extends TestCase { assertTrue(layout.getWidthRatio() == 0.0); assertTrue(layout.getHeightRatio() == 0.0); } - - private ManualLayout getEmptyLayout() { - Workbook wb = new XSSFWorkbook(); - Sheet sheet = wb.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); - ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); - Chart chart = drawing.createChart(anchor); - ChartLegend legend = chart.getOrCreateLegend(); - return legend.getManualLayout(); - } } diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFScatterChartData.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFScatterChartData.java index e041e891c..79dc71c8d 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFScatterChartData.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/charts/TestXSSFScatterChartData.java @@ -17,7 +17,11 @@ package org.apache.poi.xssf.usermodel.charts; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; import org.apache.poi.ss.usermodel.Chart; import org.apache.poi.ss.usermodel.ClientAnchor; @@ -33,21 +37,23 @@ import org.apache.poi.ss.usermodel.charts.ScatterChartSeries; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.SheetBuilder; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.junit.Test; /** * Tests for XSSFScatterChartData. */ -public final class TestXSSFScatterChartData extends TestCase { +public final class TestXSSFScatterChartData { private static final Object[][] plotData = { {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}, { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} }; - public void testOneSeriePlot() throws Exception { + @Test + public void testOneSeriePlot() throws IOException { Workbook wb = new XSSFWorkbook(); Sheet sheet = new SheetBuilder(wb, plotData).build(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30); Chart chart = drawing.createChart(anchor); @@ -66,5 +72,6 @@ public final class TestXSSFScatterChartData extends TestCase { assertTrue(scatterChartData.getSeries().contains(series)); chart.plot(scatterChartData, bottomAxis, leftAxis); + wb.close(); } } diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/TestDocumentProtection.java b/src/ooxml/testcases/org/apache/poi/xwpf/TestDocumentProtection.java index 67ad79422..550a0c18c 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/TestDocumentProtection.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/TestDocumentProtection.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; import org.apache.poi.poifs.crypt.CryptoFunctions; import org.apache.poi.poifs.crypt.HashAlgorithm; @@ -35,48 +36,53 @@ import org.junit.Test; public class TestDocumentProtection { @Test - public void testShouldReadEnforcementProperties() throws Exception { + public void testShouldReadEnforcementProperties() throws IOException { XWPFDocument documentWithoutDocumentProtectionTag = XWPFTestDataSamples.openSampleDocument("documentProtection_no_protection.docx"); assertFalse(documentWithoutDocumentProtectionTag.isEnforcedReadonlyProtection()); assertFalse(documentWithoutDocumentProtectionTag.isEnforcedFillingFormsProtection()); assertFalse(documentWithoutDocumentProtectionTag.isEnforcedCommentsProtection()); assertFalse(documentWithoutDocumentProtectionTag.isEnforcedTrackedChangesProtection()); + documentWithoutDocumentProtectionTag.close(); XWPFDocument documentWithoutEnforcement = XWPFTestDataSamples.openSampleDocument("documentProtection_no_protection_tag_existing.docx"); assertFalse(documentWithoutEnforcement.isEnforcedReadonlyProtection()); assertFalse(documentWithoutEnforcement.isEnforcedFillingFormsProtection()); assertFalse(documentWithoutEnforcement.isEnforcedCommentsProtection()); assertFalse(documentWithoutEnforcement.isEnforcedTrackedChangesProtection()); + documentWithoutEnforcement.close(); XWPFDocument documentWithReadonlyEnforcement = XWPFTestDataSamples.openSampleDocument("documentProtection_readonly_no_password.docx"); assertTrue(documentWithReadonlyEnforcement.isEnforcedReadonlyProtection()); assertFalse(documentWithReadonlyEnforcement.isEnforcedFillingFormsProtection()); assertFalse(documentWithReadonlyEnforcement.isEnforcedCommentsProtection()); assertFalse(documentWithReadonlyEnforcement.isEnforcedTrackedChangesProtection()); + documentWithReadonlyEnforcement.close(); XWPFDocument documentWithFillingFormsEnforcement = XWPFTestDataSamples.openSampleDocument("documentProtection_forms_no_password.docx"); assertTrue(documentWithFillingFormsEnforcement.isEnforcedFillingFormsProtection()); assertFalse(documentWithFillingFormsEnforcement.isEnforcedReadonlyProtection()); assertFalse(documentWithFillingFormsEnforcement.isEnforcedCommentsProtection()); assertFalse(documentWithFillingFormsEnforcement.isEnforcedTrackedChangesProtection()); + documentWithFillingFormsEnforcement.close(); XWPFDocument documentWithCommentsEnforcement = XWPFTestDataSamples.openSampleDocument("documentProtection_comments_no_password.docx"); assertFalse(documentWithCommentsEnforcement.isEnforcedFillingFormsProtection()); assertFalse(documentWithCommentsEnforcement.isEnforcedReadonlyProtection()); assertTrue(documentWithCommentsEnforcement.isEnforcedCommentsProtection()); assertFalse(documentWithCommentsEnforcement.isEnforcedTrackedChangesProtection()); + documentWithCommentsEnforcement.close(); XWPFDocument documentWithTrackedChangesEnforcement = XWPFTestDataSamples.openSampleDocument("documentProtection_trackedChanges_no_password.docx"); assertFalse(documentWithTrackedChangesEnforcement.isEnforcedFillingFormsProtection()); assertFalse(documentWithTrackedChangesEnforcement.isEnforcedReadonlyProtection()); assertFalse(documentWithTrackedChangesEnforcement.isEnforcedCommentsProtection()); assertTrue(documentWithTrackedChangesEnforcement.isEnforcedTrackedChangesProtection()); - + documentWithTrackedChangesEnforcement.close(); } @Test - public void testShouldEnforceForReadOnly() throws Exception { + public void testShouldEnforceForReadOnly() throws IOException { // XWPFDocument document = createDocumentFromSampleFile("test-data/document/documentProtection_no_protection.docx"); XWPFDocument document = XWPFTestDataSamples.openSampleDocument("documentProtection_no_protection.docx"); assertFalse(document.isEnforcedReadonlyProtection()); @@ -84,81 +90,89 @@ public class TestDocumentProtection { document.enforceReadonlyProtection(); assertTrue(document.isEnforcedReadonlyProtection()); + document.close(); } @Test - public void testShouldEnforceForFillingForms() throws Exception { + public void testShouldEnforceForFillingForms() throws IOException { XWPFDocument document = XWPFTestDataSamples.openSampleDocument("documentProtection_no_protection.docx"); assertFalse(document.isEnforcedFillingFormsProtection()); document.enforceFillingFormsProtection(); assertTrue(document.isEnforcedFillingFormsProtection()); + document.close(); } @Test - public void testShouldEnforceForComments() throws Exception { + public void testShouldEnforceForComments() throws IOException { XWPFDocument document = XWPFTestDataSamples.openSampleDocument("documentProtection_no_protection.docx"); assertFalse(document.isEnforcedCommentsProtection()); document.enforceCommentsProtection(); assertTrue(document.isEnforcedCommentsProtection()); + document.close(); } @Test - public void testShouldEnforceForTrackedChanges() throws Exception { + public void testShouldEnforceForTrackedChanges() throws IOException { XWPFDocument document = XWPFTestDataSamples.openSampleDocument("documentProtection_no_protection.docx"); assertFalse(document.isEnforcedTrackedChangesProtection()); document.enforceTrackedChangesProtection(); assertTrue(document.isEnforcedTrackedChangesProtection()); + document.close(); } @Test - public void testShouldUnsetEnforcement() throws Exception { + public void testShouldUnsetEnforcement() throws IOException { XWPFDocument document = XWPFTestDataSamples.openSampleDocument("documentProtection_readonly_no_password.docx"); assertTrue(document.isEnforcedReadonlyProtection()); document.removeProtectionEnforcement(); assertFalse(document.isEnforcedReadonlyProtection()); + document.close(); } @Test - public void testIntegration() throws Exception { - XWPFDocument doc = new XWPFDocument(); + public void testIntegration() throws IOException { + XWPFDocument doc1 = new XWPFDocument(); - XWPFParagraph p1 = doc.createParagraph(); + XWPFParagraph p1 = doc1.createParagraph(); XWPFRun r1 = p1.createRun(); r1.setText("Lorem ipsum dolor sit amet."); - doc.enforceCommentsProtection(); + doc1.enforceCommentsProtection(); File tempFile = TempFile.createTempFile("documentProtectionFile", ".docx"); FileOutputStream out = new FileOutputStream(tempFile); - doc.write(out); + doc1.write(out); out.close(); FileInputStream inputStream = new FileInputStream(tempFile); - XWPFDocument document = new XWPFDocument(inputStream); + XWPFDocument doc2 = new XWPFDocument(inputStream); inputStream.close(); - assertTrue(document.isEnforcedCommentsProtection()); + assertTrue(doc2.isEnforcedCommentsProtection()); + doc2.close(); + doc1.close(); } @Test - public void testUpdateFields() throws Exception { + public void testUpdateFields() throws IOException { XWPFDocument doc = new XWPFDocument(); assertFalse(doc.isEnforcedUpdateFields()); doc.enforceUpdateFields(); assertTrue(doc.isEnforcedUpdateFields()); + doc.close(); } @Test - public void bug56076_read() throws Exception { + public void bug56076_read() throws IOException { // test legacy xored-hashed password assertEquals("64CEED7E", CryptoFunctions.xorHashPassword("Example")); // check leading 0 @@ -168,15 +182,18 @@ public class TestDocumentProtection { XWPFDocument document = XWPFTestDataSamples.openSampleDocument("bug56076.docx"); boolean isValid = document.validateProtectionPassword("Example"); assertTrue(isValid); + document.close(); } @Test - public void bug56076_write() throws Exception { + public void bug56076_write() throws IOException { // test document write protection with password - XWPFDocument document = new XWPFDocument(); - document.enforceCommentsProtection("Example", HashAlgorithm.sha512); - document = XWPFTestDataSamples.writeOutAndReadBack(document); - boolean isValid = document.validateProtectionPassword("Example"); + XWPFDocument doc1 = new XWPFDocument(); + doc1.enforceCommentsProtection("Example", HashAlgorithm.sha512); + XWPFDocument doc2 = XWPFTestDataSamples.writeOutAndReadBack(doc1); + doc1.close(); + boolean isValid = doc2.validateProtectionPassword("Example"); assertTrue(isValid); + doc2.close(); } } diff --git a/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java b/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java index 8085482ec..7e09764e1 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java +++ b/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java @@ -54,7 +54,6 @@ import org.apache.poi.util.POILogger; public final class PowerPointExtractor extends POIOLE2TextExtractor { private static final POILogger LOG = POILogFactory.getLogger(PowerPointExtractor.class); - private final HSLFSlideShowImpl _hslfshow; private final HSLFSlideShow _show; private final List _slides; @@ -147,8 +146,7 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor { */ public PowerPointExtractor(HSLFSlideShowImpl ss) { super(ss); - _hslfshow = ss; - _show = new HSLFSlideShow(_hslfshow); + _show = new HSLFSlideShow(ss); _slides = _show.getSlides(); } @@ -184,7 +182,8 @@ public final class PowerPointExtractor extends POIOLE2TextExtractor { * Fetches all the slide text from the slideshow, but not the notes, unless * you've called setSlidesByDefault() and setNotesByDefault() to change this */ - public String getText() { + @Override + public String getText() { return getText(_slidesByDefault, _notesByDefault, _commentsByDefault, _masterByDefault); } diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/StreamTest.java b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/StreamTest.java index f29adb7f0..eeb55a56c 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/StreamTest.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/StreamTest.java @@ -17,12 +17,13 @@ package org.apache.poi.hdgf.streams; +import static org.apache.poi.hdgf.pointers.PointerV6.getNumPointersOffsetV6; +import static org.apache.poi.hdgf.pointers.PointerV6.getNumPointersV6; +import static org.apache.poi.hdgf.pointers.PointerV6.getPostNumPointersSkipV6; + import org.apache.poi.hdgf.pointers.Pointer; -import static org.apache.poi.hdgf.pointers.PointerV6.*; -import junit.framework.TestCase; - -public abstract class StreamTest extends TestCase { +public abstract class StreamTest { public static class TestPointer extends Pointer { private final boolean compressed; protected boolean hasPointers = false; diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBasics.java b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBasics.java index 26c91d0d1..436286c07 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBasics.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBasics.java @@ -17,73 +17,45 @@ package org.apache.poi.hdgf.streams; +import static org.apache.poi.poifs.storage.RawDataUtil.decompress; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; + import org.apache.poi.hdgf.pointers.Pointer; +import org.junit.BeforeClass; +import org.junit.Test; public final class TestStreamBasics extends StreamTest { - /** The header from when compressedStream is decompressed */ - public static final byte[] compressedStreamDCHeader = new byte[] { - -60, 2, 0, 0 - }; - public static final byte[] compressedStream = new byte[] { - 123, -60, 2, -21, -16, 1, 0, 0, -72, -13, -16, 78, -32, -5, 1, - 0, 3, -21, -16, 10, 5, 4, -21, -16, 21, 9, -21, -16, 103, -21, - -16, 34, -36, -1, 52, 15, 70, 15, 120, 88, 15, -7, -2, -28, -9, - -123, 21, 0, 44, -122, 1, -4, 104, 15, -24, -13, 40, -98, 32, - 78, 102, -67, -1, -2, -30, 64, 40, -67, -113, -73, 116, -98, - -85, 2, 66, 123, 9, 109, -85, 2, -89, 14, -56, -69, -83, -79, - -34, -3, 120, 110, 75, -9, -10, 20, -6, -25, -12, 22, -21, -16, - -12, -81, 67, 1, -128, -70, -21, -16, 84, -21, -16, 70, 0, 23, - -21, -16, 76, 47, -40, 79, 1, -44, -21, -16, 32, 3, 18, 12, 17, - -43, -68, 17, 16, -8, 21, 22, -1, -21, -16, -84, -1, -35, 79, - -9, -10, 96, 0, 46, -21, -16, 44, -39, -41, 79, 1, 119, -13, - -16, -106, -13, -16, 84, 0, 125, 26, -21, -16, 68, -38, 79, 1, - 17, 10, 0, -97, 50, 10, 0, 0, -42, -108, 15, 118, 31, 0, -3, 29, - -21, -16, -100, -25, 79, 1, -18, 97, -36, 76, 16, -21, -16, 86, - 0, 36, -5, 1, -5, 79, 63, 1, -124, 98, 0, 0, 28, 3, 20, -34, -3, - 125, 33, -21, -16, 100, -4, 79, 1, -92, -91, 16, -22, 24, 19, 41, - -21, -16, -44, -59, 16, 108, 100, 0, -21, 0, 71, -105, 18, 39, 85, - 17, -3, 79, 1, 95, -108, 113, 0, 0, 104, 3, 18, 49, 49, 17, -1, 64, - 85, 1, 0, 114, 0, 0, -93, -36, -21, -16, 100, 31, 0, 0, -40, -21, - -16, -92, 66, 127, 85, 1, 98, 119, 0, 0, -48, 79, 18, -3, 50, -17, - 1, 67, 85, 1, 81, -127, 0, -41, 0, 14, 6, 4, 17, 63, -63, 17, 68, - 85, -65, 1, 30, -120, 0, 0, 42, 79, 18, 68, 126, -21, -16, -76, 69, - 85, 1, 102, -119, 72, 37, 0, 97, 33 }; - public static final byte[] uncompressedStream = new byte[] { - 0, 1, 0, 0, -72, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, - 0, 9, 0, 0, 0, 103, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -123, 21, 0, 44, -123, 21, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, -98, 32, 78, 102, -67, - -2, -30, 64, 40, -67, -113, -73, 116, -67, -2, -30, 64, 40, 66, - 123, 9, 109, -67, -2, -30, 64, 40, -98, 32, 78, 102, -67, -2, -30, - 64, 40, -67, -113, -73, 116, -67, -2, -30, 64, -56, -83, -79, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 110, 75, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, -12, -81, 67, - 1, -128, 0, 0, 0, 84, 0, 0, 0, 70, 0, 23, 0, 0, 0, 76, -40, 79, 1, - -44, 0, 0, 0, 32, 0, 0, 0, 84, 0, 23, 0, 0, 0, -68, -40, 79, 1, -8, - 0, 0, 0, 32, 0, 0, 0, 84, 0, -1, 0, 0, 0, -84, -1, 79, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 96, 0, 46, 0, 0, 0, 44, -39, 79, 1, 119, 1, 0, 0, - -106, 1, 0, 0, 84, 0, 26, 0, 0, 0, 68, -38, 79, 1, 17, 3, 0, 0, - 50, 10, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 0, 0, 0, -100, -25, 79, 1, -18, 97, 0, 0, -106, 0, 0, 0, 86, 0, - 36, 0, 0, 0, -12, -5, 79, 1, -124, 98, 0, 0, 28, 0, 0, 0, 84, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 100, - -4, 79, 1, -92, 98, 0, 0, 32, 0, 0, 0, 84, 0, 41, 0, 0, 0, -44, -4, - 79, 1, 108, 100, 0, 0, 71, 0, 0, 0, 86, 0, 39, 0, 0, 0, 68, -3, 79, - 1, -108, 113, 0, 0, 104, 0, 0, 0, 84, 0, 49, 0, 0, 0, -84, 64, 85, - 1, 0, 114, 0, 0, -93, 0, 0, 0, -42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -40, 0, 0, 0, -92, 66, 85, 1, 98, 119, - 0, 0, -48, 1, 0, 0, 84, 0, 50, 0, 0, 0, 20, 67, 85, 1, 81, -127, - 0, 0, 14, 6, 0, 0, 84, 0, 63, 0, 0, 0, 100, 68, 85, 1, 30, -120, - 0, 0, 42, 1, 0, 0, 84, 0, 68, 0, 0, 0, -76, 69, 85, 1, 102, -119, - 0, 0, 42, 1, 0, 0, 84, 0, 0, 0, 0, 0 - }; + private static byte[] compressedStream, uncompressedStream; + @BeforeClass + public static void init() throws IOException { + compressedStream = decompress( + "H4sIAAAAAAAAAAFTAaz+e8QC6/ABAAC48/BO4PsBAAPr8AoFBOvwFQnr8Gfr8CLc/zQPRg94WA/5/u"+ + "T3hRUALIYB/GgP6PMoniBOZr3//uJAKL2Pt3SeqwJCewltqwKnDsi7rbHe/XhuS/f2FPrn9Bbr8PSv"+ + "QwGAuuvwVOvwRgAX6/BML9hPAdTr8CADEgwR1bwREPgVFv/r8Kz/3U/39mAALuvwLNnXTwF38/CW8/"+ + "BUAH0a6/BE2k8BEQoAnzIKAADWlA92HwD9HevwnOdPAe5h3EwQ6/BWACT7AftPPwGEYgAAHAMU3v19"+ + "IevwZPxPAaSlEOoYEynr8NTFEGxkAOsAR5cSJ1UR/U8BX5RxAABoAxIxMRH/QFUBAHIAAKPc6/BkHw"+ + "AA2OvwpEJ/VQFidwAA0E8S/TLvAUNVAVGBANcADgYEET/BEURVvwEeiAAAKk8SRH7r8LRFVQFmiUgl"+ + "AGEhwtTYaVMBAAA=" + ); + + uncompressedStream = decompress( + "H4sIAAAAAAAAAGNgZGDYAcSogJGBGUjCMAsQcwJxOhAroSulEkB2Qqsogw4I41KrMU/BL23vv0cOGn"+ + "v7t5eAGU7VnLlgBobUibUb0fVX5HnDrROB0mJA/GW9M2MDkA4BYjcGcSDpc8Of8QqQVgCLgkT2AEV+"+ + "wEX+A8k1//3hpiUw6AFJnZv+jOVAsWmMIDVSQBGXW/6MgsCgNOJiYLhGVHjIAvGc5/6M7xKB5gDZYQ"+ + "wqIBf+9mdsSWJgkIG6Eh0oAnHKH3/GJUkwF2oCyStAkZwUBgZ3sDnqIPf89WecUsjAkAFWYwjyhUMo"+ + "I0MRA8NiBuwuvAHES5xCGZPKGRgugP1lBAo951DGwEYGBj42kIg9yHaXUEa5DgYGLbAaF6DIFtdQxr"+ + "ROmAgIAAD6SJPAdAIAAA==" + ); + } + + + @Test public void testCompressedStream() { // Create a fake pointer Pointer ptr = new TestPointer(true, 0, compressedStream.length, -1, (short)-1); @@ -93,7 +65,6 @@ public final class TestStreamBasics extends StreamTest { // Check assertNotNull(stream.getPointer()); assertNotNull(stream.getStore()); - assertTrue(stream.getStore() instanceof StreamStore); assertTrue(stream.getStore() instanceof CompressedStreamStore); assertTrue(stream instanceof UnknownStream); @@ -108,7 +79,8 @@ public final class TestStreamBasics extends StreamTest { } } - public void testUncompressedStream() { + @Test + public void testUncompressedStream() { // Create a fake pointer Pointer ptr = new TestPointer(false, 0, uncompressedStream.length, -1, (short)-1); // Now the stream @@ -117,7 +89,6 @@ public final class TestStreamBasics extends StreamTest { // Check assertNotNull(stream.getPointer()); assertNotNull(stream.getStore()); - assertTrue(stream.getStore() instanceof StreamStore); assertFalse(stream.getStore() instanceof CompressedStreamStore); assertTrue(stream instanceof UnknownStream); } diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java index 0377b248a..006021b01 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamBugs.java @@ -17,15 +17,18 @@ package org.apache.poi.hdgf.streams; +import java.io.IOException; import java.io.InputStream; +import org.apache.poi.POIDataSamples; import org.apache.poi.hdgf.HDGFDiagram; import org.apache.poi.hdgf.chunks.ChunkFactory; import org.apache.poi.hdgf.pointers.Pointer; import org.apache.poi.hdgf.pointers.PointerFactory; -import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; -import org.apache.poi.POIDataSamples; +import org.apache.poi.util.IOUtils; +import org.junit.Before; +import org.junit.Test; /** * Tests for bugs with streams @@ -36,33 +39,35 @@ public final class TestStreamBugs extends StreamTest { private PointerFactory ptrFactory; private POIFSFileSystem filesystem; - @Override - protected void setUp() throws Exception { + @Before + public void setUp() throws IOException { ptrFactory = new PointerFactory(11); chunkFactory = new ChunkFactory(11); InputStream is = POIDataSamples.getDiagramInstance().openResourceAsStream("44594.vsd"); filesystem = new POIFSFileSystem(is); - - DocumentEntry docProps = - (DocumentEntry)filesystem.getRoot().getEntry("VisioDocument"); + is.close(); // Grab the document stream - contents = new byte[docProps.getSize()]; - filesystem.createDocumentInputStream("VisioDocument").read(contents); + InputStream is2 = filesystem.createDocumentInputStream("VisioDocument"); + contents = IOUtils.toByteArray(is2); + is2.close(); } - public void testGetTrailer() { + @Test + public void testGetTrailer() { Pointer trailerPointer = ptrFactory.createPointer(contents, 0x24); Stream.createStream(trailerPointer, contents, chunkFactory, ptrFactory); } - public void TOIMPLEMENTtestGetCertainChunks() { + @SuppressWarnings("unused") + public void TOIMPLEMENTtestGetCertainChunks() { int offsetA = 3708; int offsetB = 3744; } - public void testGetChildren() { + @Test + public void testGetChildren() { Pointer trailerPointer = ptrFactory.createPointer(contents, 0x24); TrailerStream trailer = (TrailerStream) Stream.createStream(trailerPointer, contents, chunkFactory, ptrFactory); @@ -97,7 +102,8 @@ public final class TestStreamBugs extends StreamTest { trailer.findChildren(contents); } - public void testOpen() throws Exception { - HDGFDiagram dg = new HDGFDiagram(filesystem); + @Test + public void testOpen() throws IOException { + new HDGFDiagram(filesystem).close(); } } diff --git a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java index d1092e2bb..c601a0643 100644 --- a/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java +++ b/src/scratchpad/testcases/org/apache/poi/hdgf/streams/TestStreamComplex.java @@ -17,15 +17,24 @@ package org.apache.poi.hdgf.streams; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import java.io.IOException; import java.io.InputStream; +import org.apache.poi.POIDataSamples; import org.apache.poi.hdgf.chunks.Chunk; import org.apache.poi.hdgf.chunks.ChunkFactory; import org.apache.poi.hdgf.pointers.Pointer; import org.apache.poi.hdgf.pointers.PointerFactory; -import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; -import org.apache.poi.POIDataSamples; +import org.apache.poi.util.IOUtils; +import org.junit.Before; +import org.junit.Test; public final class TestStreamComplex extends StreamTest { private byte[] contents; @@ -34,26 +43,28 @@ public final class TestStreamComplex extends StreamTest { private ChunkFactory chunkFactory; private PointerFactory ptrFactory; - @Override - protected void setUp() throws Exception { + @Before + public void setUp() throws IOException { ptrFactory = new PointerFactory(11); chunkFactory = new ChunkFactory(11); InputStream is = POIDataSamples.getDiagramInstance().openResourceAsStream("Test_Visio-Some_Random_Text.vsd"); POIFSFileSystem filesystem = new POIFSFileSystem(is); - - DocumentEntry docProps = - (DocumentEntry)filesystem.getRoot().getEntry("VisioDocument"); + is.close(); // Grab the document stream - contents = new byte[docProps.getSize()]; - filesystem.createDocumentInputStream("VisioDocument").read(contents); + InputStream is2 = filesystem.createDocumentInputStream("VisioDocument"); + contents = IOUtils.toByteArray(is2); + is2.close(); + + filesystem.close(); } /** * Test creating the trailer, but not looking for children */ - public void testTrailer() { + @Test + public void testTrailer() { // Find the trailer Pointer trailerPtr = ptrFactory.createPointer(contents, trailerPointerAt); @@ -74,7 +85,8 @@ public final class TestStreamComplex extends StreamTest { assertEquals(0xff, ts.getChildPointers()[3].getType()); } - public void testChunks() { + @Test + public void testChunks() { Pointer trailerPtr = ptrFactory.createPointer(contents, trailerPointerAt); TrailerStream ts = (TrailerStream) Stream.createStream(trailerPtr, contents, chunkFactory, ptrFactory); @@ -94,7 +106,8 @@ public final class TestStreamComplex extends StreamTest { cs.findChunks(); } - public void testStrings() { + @Test + public void testStrings() { Pointer trailerPtr = ptrFactory.createPointer(contents, trailerPointerAt); TrailerStream ts = (TrailerStream) Stream.createStream(trailerPtr, contents, chunkFactory, ptrFactory); @@ -110,7 +123,8 @@ public final class TestStreamComplex extends StreamTest { assertTrue(stream instanceof StringsStream); } - public void testPointerToStrings() { + @Test + public void testPointerToStrings() { // The stream at 0x347f has strings // The stream at 0x4312 has a pointer to 0x347f // The stream at 0x44d3 has a pointer to 0x4312 @@ -154,7 +168,8 @@ public final class TestStreamComplex extends StreamTest { assertTrue(s4312.getPointedToStreams()[1] instanceof StringsStream); } - public void testTrailerContents() { + @Test + public void testTrailerContents() { Pointer trailerPtr = ptrFactory.createPointer(contents, trailerPointerAt); TrailerStream ts = (TrailerStream) Stream.createStream(trailerPtr, contents, chunkFactory, ptrFactory); @@ -205,7 +220,8 @@ public final class TestStreamComplex extends StreamTest { assertTrue(s8451.getPointedToStreams()[1] instanceof StringsStream); } - public void testChunkWithText() { + @Test + public void testChunkWithText() { // Parent ChunkStream is at 0x7194 // This is one of the last children of the trailer Pointer trailerPtr = ptrFactory.createPointer(contents, trailerPointerAt); diff --git a/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java b/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java index 72d8274ed..28e1eeca6 100644 --- a/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java +++ b/src/scratchpad/testcases/org/apache/poi/hpbf/model/TestEscherParts.java @@ -17,18 +17,24 @@ package org.apache.poi.hpbf.model; -import org.apache.poi.hpbf.HPBFDocument; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; +import java.io.InputStream; + import org.apache.poi.POIDataSamples; +import org.apache.poi.hpbf.HPBFDocument; +import org.junit.Test; -import junit.framework.TestCase; - -public final class TestEscherParts extends TestCase { +public final class TestEscherParts { private static final POIDataSamples _samples = POIDataSamples.getPublisherInstance(); - public void testBasics() throws Exception { - HPBFDocument doc = new HPBFDocument( - _samples.openResourceAsStream("Sample.pub") - ); + @Test + public void testBasics() throws IOException { + InputStream is = _samples.openResourceAsStream("Sample.pub"); + HPBFDocument doc = new HPBFDocument(is); + is.close(); EscherStm es = doc.getEscherStm(); EscherDelayStm eds = doc.getEscherDelayStm(); @@ -40,15 +46,17 @@ public final class TestEscherParts extends TestCase { assertEquals(0, eds.getEscherRecords().length); // TODO - check the contents + doc.close(); } - public void testComplex() throws Exception { - HPBFDocument doc = new HPBFDocument( - _samples.openResourceAsStream("SampleBrochure.pub") - ); + @Test + public void testComplex() throws Exception { + InputStream is = _samples.openResourceAsStream("SampleBrochure.pub"); + HPBFDocument doc1 = new HPBFDocument(is); + is.close(); - EscherStm es = doc.getEscherStm(); - EscherDelayStm eds = doc.getEscherDelayStm(); + EscherStm es = doc1.getEscherStm(); + EscherDelayStm eds = doc1.getEscherDelayStm(); assertNotNull(es); assertNotNull(eds); @@ -57,20 +65,21 @@ public final class TestEscherParts extends TestCase { assertEquals(19, eds.getEscherRecords().length); // TODO - check contents - + doc1.close(); // Now do another complex file - doc = new HPBFDocument( - _samples.openResourceAsStream("SampleNewsletter.pub") - ); + InputStream is2 = _samples.openResourceAsStream("SampleNewsletter.pub"); + HPBFDocument doc2 = new HPBFDocument(is2); + is2.close(); - es = doc.getEscherStm(); - eds = doc.getEscherDelayStm(); + es = doc2.getEscherStm(); + eds = doc2.getEscherDelayStm(); assertNotNull(es); assertNotNull(eds); assertEquals(51, es.getEscherRecords().length); assertEquals(92, eds.getEscherRecords().length); + doc2.close(); } } diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java index 8ab30ee97..d62e95484 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TestExtractor.java @@ -25,6 +25,9 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; import java.util.List; @@ -36,10 +39,9 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; +import org.apache.poi.poifs.filesystem.OPOIFSFileSystem; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.util.IOUtils; -import org.junit.After; -import org.junit.Before; import org.junit.Test; /** @@ -49,13 +51,11 @@ public final class TestExtractor { /** * Extractor primed on the 2 page basic test data */ - private PowerPointExtractor ppe; private static final String expectText = "This is a test title\nThis is a test subtitle\nThis is on page 1\nThis is the title on page 2\nThis is page two\nIt has several blocks of text\nNone of them have formatting\n"; /** * Extractor primed on the 1 page but text-box'd test data */ - private PowerPointExtractor ppe2; private static final String expectText2 = "Hello, World!!!\nI am just a poor boy\nThis is Times New Roman\nPlain Text \n"; /** @@ -63,49 +63,59 @@ public final class TestExtractor { */ private static POIDataSamples slTests = POIDataSamples.getSlideShowInstance(); - @Before - public void setUp() throws Exception { - ppe = new PowerPointExtractor(slTests.getFile("basic_test_ppt_file.ppt").getCanonicalPath()); - ppe2 = new PowerPointExtractor(slTests.getFile("with_textbox.ppt").getCanonicalPath()); - } +// @Before +// public void setUp() throws Exception { +// ppe = new PowerPointExtractor(slTests.getFile("basic_test_ppt_file.ppt").getCanonicalPath()); +// ppe2 = new PowerPointExtractor(slTests.getFile("with_textbox.ppt").getCanonicalPath()); +// } - @After - public void closeResources() throws Exception { - ppe2.close(); - ppe.close(); - } +// @After +// public void closeResources() throws Exception { +// ppe2.close(); +// ppe.close(); +// } + private PowerPointExtractor openExtractor(String fileName) throws IOException { + InputStream is = slTests.openResourceAsStream(fileName); + try { + return new PowerPointExtractor(is); + } finally { + is.close(); + } + } + @Test - public void testReadSheetText() { + public void testReadSheetText() throws IOException { // Basic 2 page example - String sheetText = ppe.getText(); - - ensureTwoStringsTheSame(expectText, sheetText); - + PowerPointExtractor ppe = openExtractor("basic_test_ppt_file.ppt"); + ensureTwoStringsTheSame(expectText, ppe.getText()); + ppe.close(); // 1 page example with text boxes - sheetText = ppe2.getText(); - - ensureTwoStringsTheSame(expectText2, sheetText); + PowerPointExtractor ppe2 = openExtractor("with_textbox.ppt"); + ensureTwoStringsTheSame(expectText2, ppe2.getText()); + ppe2.close(); } @Test - public void testReadNoteText() { + public void testReadNoteText() throws IOException { // Basic 2 page example + PowerPointExtractor ppe = openExtractor("basic_test_ppt_file.ppt"); String notesText = ppe.getNotes(); String expText = "These are the notes for page 1\nThese are the notes on page two, again lacking formatting\n"; - ensureTwoStringsTheSame(expText, notesText); + ppe.close(); // Other one doesn't have notes + PowerPointExtractor ppe2 = openExtractor("with_textbox.ppt"); notesText = ppe2.getNotes(); expText = ""; - ensureTwoStringsTheSame(expText, notesText); + ppe2.close(); } @Test - public void testReadBoth() { + public void testReadBoth() throws IOException { String[] slText = new String[]{ "This is a test title\nThis is a test subtitle\nThis is on page 1\n", "This is the title on page 2\nThis is page two\nIt has several blocks of text\nNone of them have formatting\n" @@ -115,6 +125,7 @@ public final class TestExtractor { "These are the notes on page two, again lacking formatting\n" }; + PowerPointExtractor ppe = openExtractor("basic_test_ppt_file.ppt"); ppe.setSlidesByDefault(true); ppe.setNotesByDefault(false); assertEquals(slText[0] + slText[1], ppe.getText()); @@ -126,6 +137,7 @@ public final class TestExtractor { ppe.setSlidesByDefault(true); ppe.setNotesByDefault(true); assertEquals(slText[0] + slText[1] + "\n" + ntText[0] + ntText[1], ppe.getText()); + ppe.close(); } /** @@ -135,9 +147,8 @@ public final class TestExtractor { * @throws Exception */ @Test - public void testMissingCoreRecords() throws Exception { - ppe.close(); - ppe = new PowerPointExtractor(slTests.openResourceAsStream("missing_core_records.ppt")); + public void testMissingCoreRecords() throws IOException { + PowerPointExtractor ppe = openExtractor("missing_core_records.ppt"); String text = ppe.getText(true, false); String nText = ppe.getNotes(); @@ -150,6 +161,8 @@ public final class TestExtractor { // Slide records were fine assertTrue(text.startsWith("Using Disease Surveillance and Response")); + + ppe.close(); } private void ensureTwoStringsTheSame(String exp, String act) { @@ -163,49 +176,37 @@ public final class TestExtractor { } @Test - public void testExtractFromEmbeded() throws Exception { - POIFSFileSystem fs = new POIFSFileSystem( - POIDataSamples.getSpreadSheetInstance().openResourceAsStream("excel_with_embeded.xls") - ); - HSLFSlideShowImpl ss; - - DirectoryNode dirA = (DirectoryNode) - fs.getRoot().getEntry("MBD0000A3B6"); - DirectoryNode dirB = (DirectoryNode) - fs.getRoot().getEntry("MBD0000A3B3"); - - assertNotNull(dirA.getEntry("PowerPoint Document")); - assertNotNull(dirB.getEntry("PowerPoint Document")); + public void testExtractFromEmbeded() throws IOException { + InputStream is = POIDataSamples.getSpreadSheetInstance().openResourceAsStream("excel_with_embeded.xls"); + POIFSFileSystem fs = new POIFSFileSystem(is); + DirectoryNode root = fs.getRoot(); + PowerPointExtractor ppe1 = assertExtractFromEmbedded(root, "MBD0000A3B6", "Sample PowerPoint file\nThis is the 1st file\nNot much too it\n"); + PowerPointExtractor ppe2 = assertExtractFromEmbedded(root, "MBD0000A3B3", "Sample PowerPoint file\nThis is the 2nd file\nNot much too it either\n"); + ppe2.close(); + ppe1.close(); + fs.close(); + } + + private PowerPointExtractor assertExtractFromEmbedded(DirectoryNode root, String entryName, String expected) + throws IOException { + DirectoryNode dir = (DirectoryNode)root.getEntry(entryName); + assertTrue(dir.hasEntry("PowerPoint Document")); // Check the first file - ss = new HSLFSlideShowImpl(dirA); - ppe.close(); - ppe = new PowerPointExtractor(ss); - assertEquals("Sample PowerPoint file\nThis is the 1st file\nNot much too it\n", - ppe.getText(true, false) - ); - - // And the second - ss = new HSLFSlideShowImpl(dirB); - ppe.close(); - ppe = new PowerPointExtractor(ss); - assertEquals("Sample PowerPoint file\nThis is the 2nd file\nNot much too it either\n", - ppe.getText(true, false) - ); - fs.close(); + HSLFSlideShowImpl ppt = new HSLFSlideShowImpl(dir); + PowerPointExtractor ppe = new PowerPointExtractor(ppt); + assertEquals(expected, ppe.getText(true, false)); + return ppe; } /** * A powerpoint file with embeded powerpoint files */ - @SuppressWarnings("unused") @Test - public void testExtractFromOwnEmbeded() throws Exception { - String path = "ppt_with_embeded.ppt"; - ppe.close(); - ppe = new PowerPointExtractor(POIDataSamples.getSlideShowInstance().openResourceAsStream(path)); + public void testExtractFromOwnEmbeded() throws IOException { + PowerPointExtractor ppe = openExtractor("ppt_with_embeded.ppt"); List shapes = ppe.getOLEShapes(); - assertEquals("Expected 6 ole shapes in " + path, 6, shapes.size()); + assertEquals("Expected 6 ole shapes", 6, shapes.size()); int num_ppt = 0, num_doc = 0, num_xls = 0; for (OLEShape ole : shapes) { String name = ole.getInstanceName(); @@ -217,6 +218,7 @@ public final class TestExtractor { } else if ("Document".equals(name)) { HWPFDocument doc = new HWPFDocument(data); num_doc++; + doc.close(); } else if ("Presentation".equals(name)) { num_ppt++; HSLFSlideShow ppt = new HSLFSlideShow(data); @@ -227,153 +229,147 @@ public final class TestExtractor { assertEquals("Expected 2 embedded Word Documents", 2, num_doc); assertEquals("Expected 2 embedded Excel Spreadsheets", 2, num_xls); assertEquals("Expected 2 embedded PowerPoint Presentations", 2, num_ppt); + ppe.close(); } /** * A powerpoint file with embeded powerpoint files */ @Test - public void test52991() throws Exception { - String path = "badzip.ppt"; - ppe.close(); - ppe = new PowerPointExtractor(POIDataSamples.getSlideShowInstance().openResourceAsStream(path)); - List shapes = ppe.getOLEShapes(); - - for (OLEShape shape : shapes) { + public void test52991() throws IOException { + PowerPointExtractor ppe = openExtractor("badzip.ppt"); + for (OLEShape shape : ppe.getOLEShapes()) { IOUtils.copy(shape.getObjectData().getData(), new ByteArrayOutputStream()); } + ppe.close(); } /** * From bug #45543 */ @Test - public void testWithComments() throws Exception { - ppe.close(); - ppe = new PowerPointExtractor(slTests.openResourceAsStream("WithComments.ppt")); - - String text = ppe.getText(); + public void testWithComments() throws IOException { + PowerPointExtractor ppe1 = openExtractor("WithComments.ppt"); + String text = ppe1.getText(); assertFalse("Comments not in by default", text.contains("This is a test comment")); - ppe.setCommentsByDefault(true); + ppe1.setCommentsByDefault(true); - text = ppe.getText(); + text = ppe1.getText(); assertContains(text, "This is a test comment"); + ppe1.close(); // And another file - ppe.close(); - ppe = new PowerPointExtractor(slTests.openResourceAsStream("45543.ppt")); - - text = ppe.getText(); + PowerPointExtractor ppe2 = openExtractor("45543.ppt"); + text = ppe2.getText(); assertFalse("Comments not in by default", text.contains("testdoc")); - ppe.setCommentsByDefault(true); + ppe2.setCommentsByDefault(true); - text = ppe.getText(); + text = ppe2.getText(); assertContains(text, "testdoc"); + ppe2.close(); } /** * From bug #45537 */ @Test - public void testHeaderFooter() throws Exception { + public void testHeaderFooter() throws IOException { String text; // With a header on the notes - HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("45537_Header.ppt")); - HSLFSlideShow ss = new HSLFSlideShow(hslf); - assertNotNull(ss.getNotesHeadersFooters()); - assertEquals("testdoc test phrase", ss.getNotesHeadersFooters().getHeaderText()); - ppe.close(); + InputStream is1 = slTests.openResourceAsStream("45537_Header.ppt"); + HSLFSlideShow ppt1 = new HSLFSlideShow(is1); + is1.close(); + assertNotNull(ppt1.getNotesHeadersFooters()); + assertEquals("testdoc test phrase", ppt1.getNotesHeadersFooters().getHeaderText()); - ppe = new PowerPointExtractor(hslf); + PowerPointExtractor ppe1 = new PowerPointExtractor(ppt1.getSlideShowImpl()); - text = ppe.getText(); + text = ppe1.getText(); assertFalse("Header shouldn't be there by default\n" + text, text.contains("testdoc")); assertFalse("Header shouldn't be there by default\n" + text, text.contains("test phrase")); - ppe.setNotesByDefault(true); - text = ppe.getText(); + ppe1.setNotesByDefault(true); + text = ppe1.getText(); assertContains(text, "testdoc"); assertContains(text, "test phrase"); - ss.close(); + ppe1.close(); + ppt1.close(); // And with a footer, also on notes - hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("45537_Footer.ppt")); - ss = new HSLFSlideShow(hslf); - assertNotNull(ss.getNotesHeadersFooters()); - assertEquals("testdoc test phrase", ss.getNotesHeadersFooters().getFooterText()); - ppe.close(); + InputStream is2 = slTests.openResourceAsStream("45537_Footer.ppt"); + HSLFSlideShow ppt2 = new HSLFSlideShow(is2); + is2.close(); + + assertNotNull(ppt2.getNotesHeadersFooters()); + assertEquals("testdoc test phrase", ppt2.getNotesHeadersFooters().getFooterText()); + ppt2.close(); - ppe = new PowerPointExtractor(slTests.openResourceAsStream("45537_Footer.ppt")); + PowerPointExtractor ppe2 = openExtractor("45537_Footer.ppt"); - text = ppe.getText(); + text = ppe2.getText(); assertFalse("Header shouldn't be there by default\n" + text, text.contains("testdoc")); assertFalse("Header shouldn't be there by default\n" + text, text.contains("test phrase")); - ppe.setNotesByDefault(true); - text = ppe.getText(); + ppe2.setNotesByDefault(true); + text = ppe2.getText(); assertContains(text, "testdoc"); assertContains(text, "test phrase"); + ppe2.close(); } @SuppressWarnings("unused") @Test - public void testSlideMasterText() throws Exception { + public void testSlideMasterText() throws IOException { String masterTitleText = "This is the Master Title"; String masterRandomText = "This text comes from the Master Slide"; String masterFooterText = "Footer from the master slide"; - HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithMaster.ppt")); - ppe.close(); - - ppe = new PowerPointExtractor(hslf); + PowerPointExtractor ppe = openExtractor("WithMaster.ppt"); + ppe.setMasterByDefault(true); String text = ppe.getText(); - //assertContains(text, masterTitleText); // TODO Is this available in PPT? - //assertContains(text, masterRandomText); // TODO Extract + assertContains(text, masterRandomText); assertContains(text, masterFooterText); + ppe.close(); } @Test - public void testMasterText() throws Exception { - ppe.close(); - ppe = new PowerPointExtractor(slTests.openResourceAsStream("master_text.ppt")); + public void testMasterText() throws IOException { + PowerPointExtractor ppe1 = openExtractor("master_text.ppt"); // Initially not there - String text = ppe.getText(); + String text = ppe1.getText(); assertFalse(text.contains("Text that I added to the master slide")); // Enable, shows up - ppe.setMasterByDefault(true); - text = ppe.getText(); + ppe1.setMasterByDefault(true); + text = ppe1.getText(); assertTrue(text.contains("Text that I added to the master slide")); // Make sure placeholder text does not come out assertFalse(text.contains("Click to edit Master")); + ppe1.close(); // Now with another file only containing master text // Will always show up + PowerPointExtractor ppe2 = openExtractor("WithMaster.ppt"); String masterText = "Footer from the master slide"; - HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("WithMaster.ppt")); - ppe.close(); - ppe = new PowerPointExtractor(hslf); - - text = ppe.getText(); + text = ppe2.getText(); assertContainsIgnoreCase(text, "master"); assertContains(text, masterText); + ppe2.close(); } /** * Bug #54880 Chinese text not extracted properly */ @Test - public void testChineseText() throws Exception { - HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("54880_chinese.ppt")); - ppe.close(); - ppe = new PowerPointExtractor(hslf); + public void testChineseText() throws IOException { + PowerPointExtractor ppe = openExtractor("54880_chinese.ppt"); String text = ppe.getText(); @@ -388,6 +384,7 @@ public final class TestExtractor { // Check for the chinese only text line assertContains(text, "\uff8a\uff9d\uff76\uff78"); + ppe.close(); } /** @@ -396,12 +393,15 @@ public final class TestExtractor { */ @SuppressWarnings("resource") @Test - public void testDifferentPOIFS() throws Exception { + public void testDifferentPOIFS() throws IOException { // Open the two filesystems - DirectoryNode[] files = new DirectoryNode[2]; - files[0] = (new POIFSFileSystem(slTests.openResourceAsStream("basic_test_ppt_file.ppt"))).getRoot(); - NPOIFSFileSystem npoifsFileSystem = new NPOIFSFileSystem(slTests.getFile("basic_test_ppt_file.ppt")); - files[1] = npoifsFileSystem.getRoot(); + File pptFile = slTests.getFile("basic_test_ppt_file.ppt"); + InputStream is1 = new FileInputStream(pptFile); + OPOIFSFileSystem opoifs = new OPOIFSFileSystem(is1); + is1.close(); + NPOIFSFileSystem npoifs = new NPOIFSFileSystem(pptFile); + + DirectoryNode[] files = { opoifs.getRoot(), npoifs.getRoot() }; // Open directly for (DirectoryNode dir : files) { @@ -409,48 +409,48 @@ public final class TestExtractor { assertEquals(expectText, extractor.getText()); } - // Open via a HWPFDocument + // Open via a HSLFSlideShow for (DirectoryNode dir : files) { HSLFSlideShowImpl slideshow = new HSLFSlideShowImpl(dir); PowerPointExtractor extractor = new PowerPointExtractor(slideshow); assertEquals(expectText, extractor.getText()); + extractor.close(); + slideshow.close(); } - npoifsFileSystem.close(); + npoifs.close(); } @Test public void testTable() throws Exception { -// ppe = new PowerPointExtractor(slTests.openResourceAsStream("54111.ppt")); -// String text = ppe.getText(); -// String target = "TH Cell 1\tTH Cell 2\tTH Cell 3\tTH Cell 4\n"+ -// "Row 1, Cell 1\tRow 1, Cell 2\tRow 1, Cell 3\tRow 1, Cell 4\n"+ -// "Row 2, Cell 1\tRow 2, Cell 2\tRow 2, Cell 3\tRow 2, Cell 4\n"+ -// "Row 3, Cell 1\tRow 3, Cell 2\tRow 3, Cell 3\tRow 3, Cell 4\n"+ -// "Row 4, Cell 1\tRow 4, Cell 2\tRow 4, Cell 3\tRow 4, Cell 4\n"+ -// "Row 5, Cell 1\tRow 5, Cell 2\tRow 5, Cell 3\tRow 5, Cell 4\n"; -// assertTrue(text.contains(target)); - ppe.close(); + PowerPointExtractor ppe1 = openExtractor("54111.ppt"); + String text1 = ppe1.getText(); + String target1 = "TH Cell 1\tTH Cell 2\tTH Cell 3\tTH Cell 4\n"+ + "Row 1, Cell 1\tRow 1, Cell 2\tRow 1, Cell 3\tRow 1, Cell 4\n"+ + "Row 2, Cell 1\tRow 2, Cell 2\tRow 2, Cell 3\tRow 2, Cell 4\n"+ + "Row 3, Cell 1\tRow 3, Cell 2\tRow 3, Cell 3\tRow 3, Cell 4\n"+ + "Row 4, Cell 1\tRow 4, Cell 2\tRow 4, Cell 3\tRow 4, Cell 4\n"+ + "Row 5, Cell 1\tRow 5, Cell 2\tRow 5, Cell 3\tRow 5, Cell 4\n"; + assertTrue(text1.contains(target1)); + ppe1.close(); - ppe = new PowerPointExtractor(slTests.openResourceAsStream("54722.ppt")); - String text = ppe.getText(); + PowerPointExtractor ppe2 = openExtractor("54722.ppt"); + String text2 = ppe2.getText(); - String target = "this\tText\tis\twithin\ta\n" + + String target2 = "this\tText\tis\twithin\ta\n" + "table\t1\t2\t3\t4"; - assertTrue(text.contains(target)); + assertTrue(text2.contains(target2)); + ppe2.close(); } // bug 60003 @Test public void testExtractMasterSlideFooterText() throws Exception { - HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(slTests.openResourceAsStream("60003.ppt")); - ppe.close(); - - ppe = new PowerPointExtractor(hslf); + PowerPointExtractor ppe = openExtractor("60003.ppt"); ppe.setMasterByDefault(true); String text = ppe.getText(); assertContains(text, "Prague"); - hslf.close(); + ppe.close(); } } diff --git a/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java b/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java index c46867d2e..659f76902 100644 --- a/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java +++ b/src/testcases/org/apache/poi/hssf/extractor/TestOldExcelExtractor.java @@ -52,7 +52,7 @@ public final class TestOldExcelExtractor { } @Test - public void testSimpleExcel3() throws Exception { + public void testSimpleExcel3() throws IOException { OldExcelExtractor extractor = createExtractor("testEXCEL_3.xls"); // Check we can call getText without error @@ -78,7 +78,7 @@ public final class TestOldExcelExtractor { @Test - public void testSimpleExcel3NoReading() throws Exception { + public void testSimpleExcel3NoReading() throws IOException { OldExcelExtractor extractor = createExtractor("testEXCEL_3.xls"); assertNotNull(extractor); @@ -86,7 +86,7 @@ public final class TestOldExcelExtractor { } @Test - public void testSimpleExcel4() throws Exception { + public void testSimpleExcel4() throws IOException { OldExcelExtractor extractor = createExtractor("testEXCEL_4.xls"); // Check we can call getText without error @@ -108,7 +108,7 @@ public final class TestOldExcelExtractor { } @Test - public void testSimpleExcel5() throws Exception { + public void testSimpleExcel5() throws IOException { for (String ver : new String[] {"5", "95"}) { OldExcelExtractor extractor = createExtractor("testEXCEL_"+ver+".xls"); @@ -135,7 +135,7 @@ public final class TestOldExcelExtractor { } @Test - public void testStrings() throws Exception { + public void testStrings() throws IOException { OldExcelExtractor extractor = createExtractor("testEXCEL_4.xls"); String text = extractor.getText(); @@ -156,7 +156,7 @@ public final class TestOldExcelExtractor { } @Test - public void testFormattedNumbersExcel4() throws Exception { + public void testFormattedNumbersExcel4() throws IOException { OldExcelExtractor extractor = createExtractor("testEXCEL_4.xls"); String text = extractor.getText(); @@ -177,7 +177,7 @@ public final class TestOldExcelExtractor { } @Test - public void testFormattedNumbersExcel5() throws Exception { + public void testFormattedNumbersExcel5() throws IOException { for (String ver : new String[] {"5", "95"}) { OldExcelExtractor extractor = createExtractor("testEXCEL_"+ver+".xls"); String text = extractor.getText(); @@ -204,7 +204,7 @@ public final class TestOldExcelExtractor { } @Test - public void testFromFile() throws Exception { + public void testFromFile() throws IOException { for (String ver : new String[] {"4", "5", "95"}) { String filename = "testEXCEL_"+ver+".xls"; File f = HSSFTestDataSamples.getSampleFile(filename); @@ -218,47 +218,39 @@ public final class TestOldExcelExtractor { } } - @Test - public void testOpenInvalidFile() throws Exception { + @Test(expected=OfficeXmlFileException.class) + public void testOpenInvalidFile1() throws IOException { // a file that exists, but is a different format - try { - createExtractor("WithVariousData.xlsx"); - fail("Should catch Exception here"); - } catch (OfficeXmlFileException e) { - // expected here - } - + createExtractor("WithVariousData.xlsx"); + } + + + @Test(expected=RecordFormatException.class) + public void testOpenInvalidFile2() throws IOException { // a completely different type of file - try { - createExtractor("48936-strings.txt"); - fail("Should catch Exception here"); - } catch (RecordFormatException e) { - // expected here - } + createExtractor("48936-strings.txt"); + } + @Test(expected=FileNotFoundException.class) + public void testOpenInvalidFile3() throws IOException { // a POIFS file which is not a Workbook + InputStream is = POIDataSamples.getDocumentInstance().openResourceAsStream("47304.doc"); try { - new OldExcelExtractor(POIDataSamples.getDocumentInstance().getFile("47304.doc")); - fail("Should catch Exception here"); - } catch (FileNotFoundException e) { - // expected here + new OldExcelExtractor(is).close(); + } finally { + is.close(); } } - @Test - public void testOpenNonExistingFile() throws Exception { + @Test(expected=EmptyFileException.class) + public void testOpenNonExistingFile() throws IOException { // a file that exists, but is a different format - try { - OldExcelExtractor extractor = new OldExcelExtractor(new File("notexistingfile.xls")); - extractor.close(); - fail("Should catch Exception here"); - } catch (EmptyFileException e) { - // expected here - } + OldExcelExtractor extractor = new OldExcelExtractor(new File("notexistingfile.xls")); + extractor.close(); } @Test - public void testInputStream() throws Exception { + public void testInputStream() throws IOException { File file = HSSFTestDataSamples.getSampleFile("testEXCEL_3.xls"); InputStream stream = new FileInputStream(file); try { @@ -272,7 +264,7 @@ public final class TestOldExcelExtractor { } @Test - public void testInputStreamNPOIHeader() throws Exception { + public void testInputStreamNPOIHeader() throws IOException { File file = HSSFTestDataSamples.getSampleFile("FormulaRefs.xls"); InputStream stream = new FileInputStream(file); try { @@ -284,7 +276,7 @@ public final class TestOldExcelExtractor { } @Test - public void testNPOIFSFileSystem() throws Exception { + public void testNPOIFSFileSystem() throws IOException { File file = HSSFTestDataSamples.getSampleFile("FormulaRefs.xls"); NPOIFSFileSystem fs = new NPOIFSFileSystem(file); try { @@ -296,7 +288,7 @@ public final class TestOldExcelExtractor { } @Test - public void testDirectoryNode() throws Exception { + public void testDirectoryNode() throws IOException { File file = HSSFTestDataSamples.getSampleFile("FormulaRefs.xls"); NPOIFSFileSystem fs = new NPOIFSFileSystem(file); try { @@ -308,7 +300,7 @@ public final class TestOldExcelExtractor { } @Test - public void testDirectoryNodeInvalidFile() throws Exception { + public void testDirectoryNodeInvalidFile() throws IOException { File file = POIDataSamples.getDocumentInstance().getFile("test.doc"); NPOIFSFileSystem fs = new NPOIFSFileSystem(file); try { @@ -324,7 +316,7 @@ public final class TestOldExcelExtractor { @Ignore("Calls System.exit()") @Test - public void testMainUsage() throws Exception { + public void testMainUsage() throws IOException { PrintStream save = System.err; try { ByteArrayOutputStream out = new ByteArrayOutputStream(); @@ -341,7 +333,7 @@ public final class TestOldExcelExtractor { } @Test - public void testMain() throws Exception { + public void testMain() throws IOException { File file = HSSFTestDataSamples.getSampleFile("testEXCEL_3.xls"); PrintStream save = System.out; try { @@ -362,7 +354,7 @@ public final class TestOldExcelExtractor { } @Test - public void testEncryptionException() throws Exception { + public void testEncryptionException() throws IOException { //test file derives from Common Crawl File file = HSSFTestDataSamples.getSampleFile("60284.xls"); OldExcelExtractor ex = new OldExcelExtractor(file); diff --git a/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java b/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java index 70e7c7db6..2f929a06f 100644 --- a/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java +++ b/src/testcases/org/apache/poi/hssf/model/TestDrawingAggregate.java @@ -16,6 +16,7 @@ ==================================================================== */ package org.apache.poi.hssf.model; +import static org.apache.poi.poifs.storage.RawDataUtil.decompress; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -32,9 +33,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.zip.GZIPInputStream; - -import javax.xml.bind.DatatypeConverter; import org.apache.poi.ddf.DefaultEscherRecordFactory; import org.apache.poi.ddf.EscherContainerRecord; @@ -59,7 +57,6 @@ import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFTestHelper; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.util.HexDump; -import org.apache.poi.util.IOUtils; import org.junit.Test; public class TestDrawingAggregate { @@ -946,32 +943,4 @@ public class TestDrawingAggregate { assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length); assertTrue("drawing data brefpore and after save is different", Arrays.equals(dgBytes, dgBytesAfterSave)); } - - - /** - * Decompress previously gziped/base64ed data - * - * @param data the gziped/base64ed data - * @return the raw bytes - * @throws IOException if you copy and pasted the data wrong - */ - public static byte[] decompress(String data) throws IOException { - byte[] base64Bytes = DatatypeConverter.parseBase64Binary(data); - return IOUtils.toByteArray(new GZIPInputStream(new ByteArrayInputStream(base64Bytes))); - } - - /** - * Compress raw data for test runs - usually called while debugging :) - * - * @param data the raw data - * @return the gziped/base64ed data as String - * @throws IOException usually not ... - */ - public static String compress(byte[] data) throws IOException { - java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream(); - java.util.zip.GZIPOutputStream gz = new java.util.zip.GZIPOutputStream(bos); - gz.write(data); - gz.finish(); - return DatatypeConverter.printBase64Binary(bos.toByteArray()); - } } diff --git a/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java b/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java index ec7b84c69..c73493cb3 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java +++ b/src/testcases/org/apache/poi/hssf/record/TestStringRecord.java @@ -18,22 +18,22 @@ package org.apache.poi.hssf.record; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.IOException; + import org.apache.poi.util.HexRead; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndianByteArrayInputStream; -import org.apache.poi.util.LittleEndianInput; - -import junit.framework.AssertionFailedError; -import junit.framework.TestCase; +import org.junit.Test; /** * Tests the serialization and deserialization of the StringRecord * class works correctly. Test data taken directly from a real * Excel file. - * - * @author Glen Stampoultzis (glens at apache.org) */ -public final class TestStringRecord extends TestCase { +public final class TestStringRecord { private static final byte[] data = HexRead.readFromString( "0B 00 " + // length "00 " + // option @@ -41,6 +41,7 @@ public final class TestStringRecord extends TestCase { "46 61 68 72 7A 65 75 67 74 79 70" ); + @Test public void testLoad() { StringRecord record = new StringRecord(TestcaseRecordInputStream.create(0x207, data)); @@ -49,17 +50,20 @@ public final class TestStringRecord extends TestCase { assertEquals( 18, record.getRecordSize() ); } - public void testStore() { + @Test + public void testStore() { StringRecord record = new StringRecord(); record.setString("Fahrzeugtyp"); byte [] recordBytes = record.serialize(); assertEquals(recordBytes.length - 4, data.length); - for (int i = 0; i < data.length; i++) - assertEquals("At offset " + i, data[i], recordBytes[i+4]); + for (int i = 0; i < data.length; i++) { + assertEquals("At offset " + i, data[i], recordBytes[i+4]); + } } - public void testContinue() { + @Test + public void testContinue() throws IOException { int MAX_BIFF_DATA = RecordInputStream.MAX_RECORD_DATA_SIZE; int TEXT_LEN = MAX_BIFF_DATA + 1000; // deliberately over-size String textChunk = "ABCDEGGHIJKLMNOP"; // 16 chars @@ -74,15 +78,14 @@ public final class TestStringRecord extends TestCase { byte[] ser = sr.serialize(); assertEquals(StringRecord.sid, LittleEndian.getUShort(ser, 0)); if (LittleEndian.getUShort(ser, 2) > MAX_BIFF_DATA) { - throw new AssertionFailedError( - "StringRecord should have been split with a continue record"); + fail("StringRecord should have been split with a continue record"); } // Confirm expected size of first record, and ushort strLen. assertEquals(MAX_BIFF_DATA, LittleEndian.getUShort(ser, 2)); assertEquals(TEXT_LEN, LittleEndian.getUShort(ser, 4)); // Confirm first few bytes of ContinueRecord - LittleEndianInput crIn = new LittleEndianByteArrayInputStream(ser, (MAX_BIFF_DATA + 4)); + LittleEndianByteArrayInputStream crIn = new LittleEndianByteArrayInputStream(ser, (MAX_BIFF_DATA + 4)); int nCharsInFirstRec = MAX_BIFF_DATA - (2 + 1); // strLen, optionFlags int nCharsInSecondRec = TEXT_LEN - nCharsInFirstRec; assertEquals(ContinueRecord.sid, crIn.readUShort()); @@ -95,5 +98,6 @@ public final class TestStringRecord extends TestCase { RecordInputStream in = TestcaseRecordInputStream.create(ser); StringRecord sr2 = new StringRecord(in); assertEquals(sb.toString(), sr2.getString()); + crIn.close(); } } diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java index 9e40695b4..f8162fcf2 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java @@ -16,7 +16,7 @@ ==================================================================== */ package org.apache.poi.hssf.usermodel; -import static org.apache.poi.hssf.model.TestDrawingAggregate.decompress; +import static org.apache.poi.poifs.storage.RawDataUtil.decompress; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -41,6 +41,7 @@ import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.RichTextString; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.junit.Test; /** @@ -102,7 +103,7 @@ public final class TestHSSFComment extends BaseTestCellComment { public void testBug56380InsertComments() throws Exception { HSSFWorkbook workbook = new HSSFWorkbook(); Sheet sheet = workbook.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); int noOfRows = 1025; String comment = "c"; @@ -139,7 +140,7 @@ public final class TestHSSFComment extends BaseTestCellComment { HSSFWorkbook workbook = new HSSFWorkbook(); try { Sheet sheet = workbook.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); String comment = "c"; for(int rowNum = 0;rowNum < 258;rowNum++) { @@ -179,7 +180,7 @@ public final class TestHSSFComment extends BaseTestCellComment { } } - private Comment insertComment(Drawing drawing, Cell cell, String message) { + private Comment insertComment(Drawing drawing, Cell cell, String message) { CreationHelper factory = cell.getSheet().getWorkbook().getCreationHelper(); ClientAnchor anchor = factory.createClientAnchor(); @@ -272,7 +273,7 @@ public final class TestHSSFComment extends BaseTestCellComment { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sh = wb.createSheet(); HSSFPatriarch patriarch = sh.createDrawingPatriarch(); - int idx = wb.addPicture(new byte[]{1,2,3}, HSSFWorkbook.PICTURE_TYPE_PNG); + int idx = wb.addPicture(new byte[]{1,2,3}, Workbook.PICTURE_TYPE_PNG); HSSFComment comment = patriarch.createCellComment(new HSSFClientAnchor()); comment.setColumn(5); diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestPolygon.java b/src/testcases/org/apache/poi/hssf/usermodel/TestPolygon.java index 6174a5ff3..1b9ad1ffa 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestPolygon.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestPolygon.java @@ -17,7 +17,7 @@ package org.apache.poi.hssf.usermodel; -import static org.apache.poi.hssf.model.TestDrawingAggregate.decompress; +import static org.apache.poi.poifs.storage.RawDataUtil.decompress; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestText.java b/src/testcases/org/apache/poi/hssf/usermodel/TestText.java index c8203d8d4..cb8f1d4bd 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestText.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestText.java @@ -17,7 +17,7 @@ package org.apache.poi.hssf.usermodel; -import static org.apache.poi.hssf.model.TestDrawingAggregate.decompress; +import static org.apache.poi.poifs.storage.RawDataUtil.decompress; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; diff --git a/src/testcases/org/apache/poi/poifs/storage/RawDataUtil.java b/src/testcases/org/apache/poi/poifs/storage/RawDataUtil.java index 487c8eb80..f3ae3b087 100644 --- a/src/testcases/org/apache/poi/poifs/storage/RawDataUtil.java +++ b/src/testcases/org/apache/poi/poifs/storage/RawDataUtil.java @@ -16,11 +16,17 @@ ==================================================================== */ package org.apache.poi.poifs.storage; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.util.Arrays; +import java.util.zip.GZIPInputStream; + +import javax.xml.bind.DatatypeConverter; import org.apache.poi.util.HexDump; import org.apache.poi.util.HexRead; +import org.apache.poi.util.IOUtils; /** * Test utility class.
@@ -81,4 +87,31 @@ public final class RawDataUtil { throw new RuntimeException("different"); } } + + /** + * Decompress previously gziped/base64ed data + * + * @param data the gziped/base64ed data + * @return the raw bytes + * @throws IOException if you copy and pasted the data wrong + */ + public static byte[] decompress(String data) throws IOException { + byte[] base64Bytes = DatatypeConverter.parseBase64Binary(data); + return IOUtils.toByteArray(new GZIPInputStream(new ByteArrayInputStream(base64Bytes))); + } + + /** + * Compress raw data for test runs - usually called while debugging :) + * + * @param data the raw data + * @return the gziped/base64ed data as String + * @throws IOException usually not ... + */ + public static String compress(byte[] data) throws IOException { + java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream(); + java.util.zip.GZIPOutputStream gz = new java.util.zip.GZIPOutputStream(bos); + gz.write(data); + gz.finish(); + return DatatypeConverter.printBase64Binary(bos.toByteArray()); + } } diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java index a1f296355..52f8b72b2 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java @@ -17,6 +17,23 @@ package org.apache.poi.ss.usermodel; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.awt.font.FontRenderContext; +import java.awt.font.TextAttribute; +import java.awt.font.TextLayout; +import java.awt.geom.Rectangle2D; +import java.io.IOException; +import java.text.AttributedString; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.ITestDataProvider; import org.apache.poi.ss.SpreadsheetVersion; @@ -30,18 +47,6 @@ import org.junit.Assume; import org.junit.Ignore; import org.junit.Test; -import java.awt.font.FontRenderContext; -import java.awt.font.TextAttribute; -import java.awt.font.TextLayout; -import java.awt.geom.Rectangle2D; -import java.io.IOException; -import java.text.AttributedString; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.*; - /** * A base class for bugzilla issues that can be described in terms of common ss interfaces. * @@ -70,8 +75,9 @@ public abstract class BaseTestBugzillaIssues { public static void assertAlmostEquals(double expected, double actual, float factor) { double diff = Math.abs(expected - actual); double fuzz = expected * factor; - if (diff > fuzz) + if (diff > fuzz) { fail(actual + " not within " + fuzz + " of " + expected); + } } /** @@ -359,7 +365,9 @@ public abstract class BaseTestBugzillaIssues { fmla.append(name); fmla.append("("); for(int i=0; i < maxArgs; i++){ - if(i > 0) fmla.append(','); + if(i > 0) { + fmla.append(','); + } fmla.append("A1"); } fmla.append(")"); @@ -512,9 +520,15 @@ public abstract class BaseTestBugzillaIssues { private static void copyAttributes(Font font, AttributedString str, int endIdx) { str.addAttribute(TextAttribute.FAMILY, font.getFontName(), 0, endIdx); str.addAttribute(TextAttribute.SIZE, (float)font.getFontHeightInPoints()); - if (font.getBold()) str.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, 0, endIdx); - if (font.getItalic() ) str.addAttribute(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE, 0, endIdx); - if (font.getUnderline() == Font.U_SINGLE ) str.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, 0, endIdx); + if (font.getBold()) { + str.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, 0, endIdx); + } + if (font.getItalic() ) { + str.addAttribute(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE, 0, endIdx); + } + if (font.getUnderline() == Font.U_SINGLE ) { + str.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, 0, endIdx); + } } /** @@ -1063,7 +1077,7 @@ public abstract class BaseTestBugzillaIssues { CreationHelper factory = wb.getCreationHelper(); Sheet sheet = wb.createSheet(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = factory.createClientAnchor(); Cell cell0 = sheet.createRow(0).createCell(0); @@ -1513,7 +1527,7 @@ public abstract class BaseTestBugzillaIssues { CreationHelper helper = wb.getCreationHelper(); ClientAnchor anchor = helper.createClientAnchor(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); Row row = sheet.createRow(0); @@ -1677,7 +1691,7 @@ public abstract class BaseTestBugzillaIssues { assertEquals(10, row.getRowNum()); for (Cell cell : row) { - String cellValue = null; + String cellValue; switch (cell.getCellTypeEnum()) { case STRING: cellValue = cell.getRichStringCellValue().getString(); @@ -1685,6 +1699,9 @@ public abstract class BaseTestBugzillaIssues { case FORMULA: cellValue = cell.getCellFormula(); break; + default: + fail("unexpected cell type"); + return; } assertNotNull(cellValue); cellValue = cellValue.isEmpty() ? null : cellValue; diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java index be097d348..0bec60ded 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestCell.java @@ -253,7 +253,7 @@ public abstract class BaseTestCell { Font f = wb1.createFont(); f.setFontHeightInPoints((short) 20); f.setColor(IndexedColors.RED.getIndex()); - f.setBoldweight(Font.BOLDWEIGHT_BOLD); + f.setBold(true); f.setFontName("Arial Unicode MS"); cs.setFillBackgroundColor((short)3); cs.setFont(f); @@ -718,7 +718,7 @@ public abstract class BaseTestCell { assertFalse(style.getHidden()); assertEquals(0, style.getIndention()); assertEquals(0, style.getFontIndex()); - assertEquals(0, style.getAlignment()); + assertEquals(HorizontalAlignment.GENERAL, style.getAlignmentEnum()); assertEquals(0, style.getDataFormat()); assertEquals(false, style.getWrapText()); @@ -1004,7 +1004,7 @@ public abstract class BaseTestCell { anchor.setRow1(row.getRowNum()); anchor.setRow2(row.getRowNum()+3); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); Comment comment = drawing.createCellComment(anchor); RichTextString str = factory.createRichTextString("Hello, World!"); comment.setString(str); diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestCellComment.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestCellComment.java index 17de8cf4a..535094ff0 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestCellComment.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestCellComment.java @@ -77,7 +77,7 @@ public abstract class BaseTestCellComment { assertNull(cell.getCellComment()); assertNull(sheet.getCellComment(new CellAddress(cellRow, cellColumn))); - Drawing patr = sheet.createDrawingPatriarch(); + Drawing patr = sheet.createDrawingPatriarch(); ClientAnchor anchor = factory.createClientAnchor(); anchor.setCol1(2); anchor.setCol2(5); @@ -261,7 +261,7 @@ public abstract class BaseTestCellComment { Cell cell = sheet.createRow(3).createCell(5); cell.setCellValue("F4"); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = factory.createClientAnchor(); Comment comment = drawing.createCellComment(anchor); @@ -294,7 +294,7 @@ public abstract class BaseTestCellComment { Cell cell = row.createCell(5); CreationHelper factory = wb.getCreationHelper(); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); double r_mul, c_mul; if (sheet instanceof HSSFSheet) { @@ -365,7 +365,7 @@ public abstract class BaseTestCellComment { Workbook wb = _testDataProvider.createWorkbook(); Sheet sh = wb.createSheet(); CreationHelper factory = wb.getCreationHelper(); - Drawing patriarch = sh.createDrawingPatriarch(); + Drawing patriarch = sh.createDrawingPatriarch(); patriarch.createCellComment(factory.createClientAnchor()); try { @@ -388,7 +388,7 @@ public abstract class BaseTestCellComment { Workbook wb = _testDataProvider.createWorkbook(); Sheet sh = wb.createSheet(); CreationHelper factory = wb.getCreationHelper(); - Drawing patriarch = sh.createDrawingPatriarch(); + Drawing patriarch = sh.createDrawingPatriarch(); Comment comment = patriarch.createCellComment(factory.createClientAnchor()); assertEquals(CellAddress.A1, comment.getAddress()); @@ -402,7 +402,7 @@ public abstract class BaseTestCellComment { Workbook wb = _testDataProvider.createWorkbook(); Sheet sh = wb.createSheet(); CreationHelper factory = wb.getCreationHelper(); - Drawing patriarch = sh.createDrawingPatriarch(); + Drawing patriarch = sh.createDrawingPatriarch(); Comment comment = patriarch.createCellComment(factory.createClientAnchor()); assertEquals(CellAddress.A1, comment.getAddress()); diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestPicture.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestPicture.java index e573e79ae..d7c68940c 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestPicture.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestPicture.java @@ -105,7 +105,7 @@ public abstract class BaseTestPicture { private void handleResize(Workbook wb, Sheet sheet, Row row) throws IOException { - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); CreationHelper createHelper = wb.getCreationHelper(); final byte[] bytes = HSSFITestDataProvider.instance.getTestDataFileContent("logoKarmokar4.png"); diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java index 65db96886..4e7179109 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java @@ -1141,7 +1141,7 @@ public abstract class BaseTestSheet { public void getCellComment() throws IOException { Workbook workbook = _testDataProvider.createWorkbook(); Sheet sheet = workbook.createSheet(); - Drawing dg = sheet.createDrawingPatriarch(); + Drawing dg = sheet.createDrawingPatriarch(); Comment comment = dg.createCellComment(workbook.getCreationHelper().createClientAnchor()); Cell cell = sheet.createRow(9).createCell(2); comment.setAuthor("test C10 author"); @@ -1165,7 +1165,7 @@ public abstract class BaseTestSheet { // a sheet with no cell comments should return an empty map (not null or raise NPE). assertEquals(Collections.emptyMap(), sheet.getCellComments()); - Drawing dg = sheet.createDrawingPatriarch(); + Drawing dg = sheet.createDrawingPatriarch(); ClientAnchor anchor = workbook.getCreationHelper().createClientAnchor(); int nRows = 5; diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java index e6e7f676e..9222f6043 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java @@ -33,7 +33,6 @@ import java.io.OutputStream; import java.util.ConcurrentModificationException; import java.util.Iterator; -import org.apache.poi.POIDataSamples; import org.apache.poi.hssf.HSSFTestDataSamples; import org.apache.poi.ss.ITestDataProvider; import org.apache.poi.ss.usermodel.ClientAnchor.AnchorType; @@ -908,7 +907,7 @@ public abstract class BaseTestWorkbook { Sheet sheet = wb.createSheet("Main Sheet"); Row row0 = sheet.createRow(0); Row row1 = sheet.createRow(1); - Cell cell = row1.createCell(0); + row1.createCell(0); row0.createCell(1); row1.createCell(0); row1.createCell(1); @@ -916,7 +915,7 @@ public abstract class BaseTestWorkbook { byte[] pictureData = _testDataProvider.getTestDataFileContent("logoKarmokar4.png"); int handle = wb.addPicture(pictureData, Workbook.PICTURE_TYPE_PNG); - Drawing drawing = sheet.createDrawingPatriarch(); + Drawing drawing = sheet.createDrawingPatriarch(); CreationHelper helper = wb.getCreationHelper(); ClientAnchor anchor = helper.createClientAnchor(); anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);