* to the resizeBehaviour\r
* parameter.\r
*/\r
- public void addImageToSheet(String cellNumber, Sheet sheet, Drawing drawing,\r
+ public void addImageToSheet(String cellNumber, Sheet sheet, Drawing<?> drawing,\r
URL imageFile, double reqImageWidthMM, double reqImageHeightMM,\r
int resizeBehaviour) throws IOException, IllegalArgumentException {\r
// Convert the String into column and row indices then chain the\r
* it is of a type that cannot\r
* currently be added to the worksheet.\r
*/\r
- public void addImageToSheet(int colNumber, int rowNumber, Sheet sheet, Drawing drawing,\r
+ public void addImageToSheet(int colNumber, int rowNumber, Sheet sheet, Drawing<?> drawing,\r
URL imageFile, double reqImageWidthMM, double reqImageHeightMM,\r
int resizeBehaviour) throws IOException,\r
IllegalArgumentException {\r
==================================================================== */\r
package org.apache.poi.xssf.usermodel.examples;\r
\r
-import org.apache.poi.ss.usermodel.*;\r
+import java.io.FileOutputStream;\r
+import java.io.IOException;\r
+\r
+import org.apache.poi.ss.usermodel.Cell;\r
+import org.apache.poi.ss.usermodel.ClientAnchor;\r
+import org.apache.poi.ss.usermodel.Comment;\r
+import org.apache.poi.ss.usermodel.CreationHelper;\r
+import org.apache.poi.ss.usermodel.Drawing;\r
+import org.apache.poi.ss.usermodel.Font;\r
+import org.apache.poi.ss.usermodel.IndexedColors;\r
+import org.apache.poi.ss.usermodel.RichTextString;\r
+import org.apache.poi.ss.usermodel.Sheet;\r
+import org.apache.poi.ss.usermodel.Workbook;\r
import org.apache.poi.ss.util.CellAddress;\r
import org.apache.poi.xssf.usermodel.XSSFWorkbook;\r
\r
-import java.io.IOException;\r
-import java.io.FileOutputStream;\r
-\r
/**\r
* Demonstrates how to work with excel cell comments.\r
*\r
Cell cell1 = sheet.createRow(3).createCell(5);\r
cell1.setCellValue("F4");\r
\r
- Drawing drawing = sheet.createDrawingPatriarch();\r
+ Drawing<?> drawing = sheet.createDrawingPatriarch();\r
\r
ClientAnchor anchor = factory.createClientAnchor();\r
\r
Font font = wb.createFont();\r
font.setFontName("Arial");\r
font.setFontHeightInPoints((short)14);\r
- font.setBoldweight(Font.BOLDWEIGHT_BOLD);\r
+ font.setBold(true);\r
font.setColor(IndexedColors.RED.getIndex());\r
str2.applyFont(font);\r
\r
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 {
Sheet sheet = wb.createSheet();
//create drawing
- Drawing drawing = sheet.createDrawingPatriarch();
+ Drawing<?> drawing = sheet.createDrawingPatriarch();
//add a picture shape
ClientAnchor anchor = helper.createClientAnchor();
//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);
import java.io.File;
import java.io.FileInputStream;
+import java.io.IOException;
import java.io.InputStream;
import org.apache.poi.hdgf.HDGFDiagram;
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();
TrailerStream trailerStream = diagram.getTrailerStream();
assertNotNull(trailerStream);
assertTrue(trailerStream.getPointer().getLength() >= 0);
-
+ diagram.close();
poifs.close();
// writing is not yet implemented... handlePOIDocument(diagram);
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 <filename>");
}
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
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;
/**
* @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();
* @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();
* @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();
* @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();
* @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();
* @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();
* @see CellType#ERROR
* @deprecated POI 3.15 beta 3. Use {@link #setCellType(CellType)} instead.
*/
+ @Deprecated
@Removal(version="4.0")
void setCellType(int cellType);
/**
* @return the cell type
* @deprecated POI 3.15. Will return a {@link CellType} enum in the future.
*/
+ @Deprecated
int getCellType();
/**
* on the cached value of the formula
* @deprecated 3.15. Will return a {@link CellType} enum in the future.
*/
+ @Deprecated
int getCachedFormulaResultType();
/**
*
* @return a SpreadsheetML drawing
*/
- Drawing getDrawingPatriarch();
+ Drawing<?> getDrawingPatriarch();
/**
* Creates the top-level drawing patriarch.
*
* @return The new drawing patriarch.
*/
- Drawing createDrawingPatriarch();
+ Drawing<?> createDrawingPatriarch();
/**
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;
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;
@Override
public int getFirstRowNum()
{
- if(_writer.getNumberOfFlushedRows() > 0)
+ if(_writer.getNumberOfFlushedRows() > 0) {
return _writer.getLowestIndexOfFlushedRows();
+ }
return _rows.size() == 0 ? 0 : _rows.firstKey();
}
* @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)
int level = row.getOutlineLevel() + 1;
row.setOutlineLevel(level);
- if(level > outlineLevelRow) outlineLevelRow = level;
+ if(level > outlineLevelRow) {
+ outlineLevelRow = level;
+ }
}
setWorksheetOutlineLevelRow();
CTSheetFormatPr pr = ct.isSetSheetFormatPr() ?
ct.getSheetFormatPr() :
ct.addNewSheetFormatPr();
- if(outlineLevelRow > 0) pr.setOutlineLevelRow((short)outlineLevelRow);
+ if(outlineLevelRow > 0) {
+ pr.setOutlineLevelRow((short)outlineLevelRow);
+ }
}
/**
}
int currentRow = rowIndex;
while (getRow(currentRow) != null) {
- if (getRow(currentRow).getOutlineLevel() < level)
+ if (getRow(currentRow).getOutlineLevel() < level) {
return currentRow + 1;
+ }
currentRow--;
}
return currentRow + 1;
* @return cell comment or <code>null</code> 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)
{
* {@inheritDoc}
*/
@Override
- public Drawing getDrawingPatriarch()
+ public XSSFDrawing getDrawingPatriarch()
{
return _sh.getDrawingPatriarch();
}
* @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());
}
*/
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;
+ }
}
/**
for(Iterator<Map.Entry<Integer,SXSSFRow>> iter=_rows.entrySet().iterator();iter.hasNext();)
{
Map.Entry<Integer,SXSSFRow> entry=iter.next();
- if(entry.getValue()==row)
+ if(entry.getValue()==row) {
return entry.getKey().intValue();
+ }
}
return -1;
}
* @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();
}
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"));
// 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
// 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());
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;
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;
// 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);
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());
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();
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
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;
import com.microsoft.schemas.vml.CTShape;
-/**
- * @author Yegor Kozlov
- */
public final class TestXSSFComment extends BaseTestCellComment {
private static final String TEST_RICHTEXTSTRING = "test richtextstring";
cell.setCellValue("F4");
- Drawing drawing = sheet.createDrawingPatriarch();
+ Drawing<?> drawing = sheet.createDrawingPatriarch();
CreationHelper factory = wb.getCreationHelper();
}
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();
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);
}
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();
// 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();
// Assert
assertTrue(legend.isOverlay());
+
+ wb.close();
}
}
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 org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.xssf.XSSFTestDataSamples;
-import org.apache.poi.xssf.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 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.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");
}
}
- 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);
return null;
}
- public void testNewChart() {
+ @Test
+ public void testNewChart() throws IOException {
Workbook wb = createWorkbookWithChart();
XSSFChart chart = getChartFromWorkbook(wb, "linechart");
assertNotNull(chart);
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);
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);
XSSFRichTextString queryTitle = chart.getTitle();
assertNotNull(queryTitle);
assertEquals(myTitle, queryTitle.toString());
+ wb.close();
}
-
}
==================================================================== */\r
package org.apache.poi.xssf.usermodel.charts;\r
\r
-import junit.framework.TestCase;\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertNotNull;\r
+import static org.junit.Assert.assertTrue;\r
+\r
+import java.io.IOException;\r
\r
import org.apache.poi.ss.usermodel.Chart;\r
import org.apache.poi.ss.usermodel.ClientAnchor;\r
import org.apache.poi.ss.util.CellRangeAddress;\r
import org.apache.poi.ss.util.SheetBuilder;\r
import org.apache.poi.xssf.usermodel.XSSFWorkbook;\r
+import org.junit.Test;\r
\r
/**\r
* Tests for XSSF Line Charts\r
*/\r
-public class TestXSSFLineChartData extends TestCase {\r
+public class TestXSSFLineChartData {\r
\r
private static final Object[][] plotData = {\r
{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"},\r
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}\r
};\r
\r
- public void testOneSeriePlot() throws Exception {\r
+ @Test\r
+ public void testOneSeriePlot() throws IOException {\r
Workbook wb = new XSSFWorkbook();\r
Sheet sheet = new SheetBuilder(wb, plotData).build();\r
- Drawing drawing = sheet.createDrawingPatriarch();\r
+ Drawing<?> drawing = sheet.createDrawingPatriarch();\r
ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30);\r
Chart chart = drawing.createChart(anchor);\r
\r
assertTrue(lineChartData.getSeries().contains(series));\r
\r
chart.plot(lineChartData, bottomAxis, leftAxis);\r
+ wb.close();\r
}\r
}\r
\r
package org.apache.poi.xssf.usermodel.charts;\r
\r
-import junit.framework.TestCase;\r
+import static org.junit.Assert.assertNotNull;\r
+import static org.junit.Assert.assertTrue;\r
\r
-import org.apache.poi.ss.usermodel.*;\r
+import java.io.IOException;\r
+\r
+import org.apache.poi.ss.usermodel.Chart;\r
+import org.apache.poi.ss.usermodel.ClientAnchor;\r
+import org.apache.poi.ss.usermodel.Drawing;\r
+import org.apache.poi.ss.usermodel.Sheet;\r
+import org.apache.poi.ss.usermodel.Workbook;\r
import org.apache.poi.ss.usermodel.charts.ChartLegend;\r
-import org.apache.poi.ss.usermodel.charts.ManualLayout;\r
import org.apache.poi.ss.usermodel.charts.LayoutMode;\r
import org.apache.poi.ss.usermodel.charts.LayoutTarget;\r
-import org.apache.poi.xssf.usermodel.*;\r
-\r
-public final class TestXSSFManualLayout extends TestCase {\r
- \r
+import org.apache.poi.ss.usermodel.charts.ManualLayout;\r
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;\r
+import org.junit.After;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+\r
+public final class TestXSSFManualLayout {\r
+\r
+ private Workbook wb;\r
+ private ManualLayout layout;\r
+ \r
+ @Before\r
+ public void createEmptyLayout() {\r
+ wb = new XSSFWorkbook();\r
+ Sheet sheet = wb.createSheet();\r
+ Drawing<?> drawing = sheet.createDrawingPatriarch();\r
+ ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30);\r
+ Chart chart = drawing.createChart(anchor);\r
+ ChartLegend legend = chart.getOrCreateLegend();\r
+ layout = legend.getManualLayout();\r
+ }\r
+\r
+ @After\r
+ public void closeWB() throws IOException {\r
+ wb.close();\r
+ }\r
+ \r
/*\r
* Accessor methods are not trivial. They use lazy underlying bean\r
* initialization so there can be some errors (NPE, for example).\r
*/\r
- public void testAccessorMethods() throws Exception {\r
+ @Test\r
+ public void testAccessorMethods() {\r
final double newRatio = 1.1;\r
final double newCoordinate = 0.3;\r
final LayoutMode nonDefaultMode = LayoutMode.FACTOR;\r
final LayoutTarget nonDefaultTarget = LayoutTarget.OUTER;\r
\r
- ManualLayout layout = getEmptyLayout();\r
-\r
layout.setWidthRatio(newRatio);\r
assertTrue(layout.getWidthRatio() == newRatio);\r
\r
* Layout must have reasonable default values and must not throw\r
* any exceptions.\r
*/\r
- public void testDefaultValues() throws Exception {\r
- ManualLayout layout = getEmptyLayout();\r
- \r
+ @Test\r
+ public void testDefaultValues() {\r
assertNotNull(layout.getTarget());\r
assertNotNull(layout.getXMode());\r
assertNotNull(layout.getYMode());\r
assertTrue(layout.getWidthRatio() == 0.0);\r
assertTrue(layout.getHeightRatio() == 0.0);\r
}\r
-\r
- private ManualLayout getEmptyLayout() {\r
- Workbook wb = new XSSFWorkbook();\r
- Sheet sheet = wb.createSheet();\r
- Drawing drawing = sheet.createDrawingPatriarch();\r
- ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 0, 1, 1, 10, 30);\r
- Chart chart = drawing.createChart(anchor);\r
- ChartLegend legend = chart.getOrCreateLegend();\r
- return legend.getManualLayout();\r
- }\r
}\r
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;
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);
assertTrue(scatterChartData.getSeries().contains(series));
chart.plot(scatterChartData, bottomAxis, leftAxis);
+ wb.close();
}
}
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;
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());
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
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();
}
}
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<HSLFSlide> _slides;
*/
public PowerPointExtractor(HSLFSlideShowImpl ss) {
super(ss);
- _hslfshow = ss;
- _show = new HSLFSlideShow(_hslfshow);
+ _show = new HSLFSlideShow(ss);
_slides = _show.getSlides();
}
* 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);
}
package org.apache.poi.hdgf.streams;
-import org.apache.poi.hdgf.pointers.Pointer;
-import static org.apache.poi.hdgf.pointers.PointerV6.*;
+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 junit.framework.TestCase;
+import org.apache.poi.hdgf.pointers.Pointer;
-public abstract class StreamTest extends TestCase {
+public abstract class StreamTest {
public static class TestPointer extends Pointer {
private final boolean compressed;
protected boolean hasPointers = false;
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);
// Check
assertNotNull(stream.getPointer());
assertNotNull(stream.getStore());
- assertTrue(stream.getStore() instanceof StreamStore);
assertTrue(stream.getStore() instanceof CompressedStreamStore);
assertTrue(stream instanceof UnknownStream);
}
}
- 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
// Check
assertNotNull(stream.getPointer());
assertNotNull(stream.getStore());
- assertTrue(stream.getStore() instanceof StreamStore);
assertFalse(stream.getStore() instanceof CompressedStreamStore);
assertTrue(stream instanceof UnknownStream);
}
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
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);
trailer.findChildren(contents);
}
- public void testOpen() throws Exception {
- HDGFDiagram dg = new HDGFDiagram(filesystem);
+ @Test
+ public void testOpen() throws IOException {
+ new HDGFDiagram(filesystem).close();
}
}
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;
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);
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);
cs.findChunks();
}
- public void testStrings() {
+ @Test
+ public void testStrings() {
Pointer trailerPtr = ptrFactory.createPointer(contents, trailerPointerAt);
TrailerStream ts = (TrailerStream)
Stream.createStream(trailerPtr, contents, chunkFactory, ptrFactory);
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
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);
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);
package org.apache.poi.hpbf.model;
-import org.apache.poi.hpbf.HPBFDocument;
-import org.apache.poi.POIDataSamples;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
-import junit.framework.TestCase;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.POIDataSamples;
+import org.apache.poi.hpbf.HPBFDocument;
+import org.junit.Test;
-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();
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);
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();
}
}
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;
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;
/**
/**
* 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";
/**
*/
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());
- }
-
- @After
- public void closeResources() throws Exception {
- ppe2.close();
- ppe.close();
+// @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();
+// }
+
+ 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"
"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());
ppe.setSlidesByDefault(true);
ppe.setNotesByDefault(true);
assertEquals(slText[0] + slText[1] + "\n" + ntText[0] + ntText[1], ppe.getText());
+ ppe.close();
}
/**
* @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();
// Slide records were fine
assertTrue(text.startsWith("Using Disease Surveillance and Response"));
+
+ ppe.close();
}
private void ensureTwoStringsTheSame(String exp, String act) {
}
@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<OLEShape> 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();
} 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);
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<OLEShape> 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();
// Check for the chinese only text line
assertContains(text, "\uff8a\uff9d\uff76\uff78");
+ ppe.close();
}
/**
*/
@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) {
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();
-
- ppe = new PowerPointExtractor(slTests.openResourceAsStream("54722.ppt"));
- String text = ppe.getText();
-
- String target = "this\tText\tis\twithin\ta\n" +
+ 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();
+
+ PowerPointExtractor ppe2 = openExtractor("54722.ppt");
+ String text2 = ppe2.getText();
+
+ 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();
}
}
}
@Test
- public void testSimpleExcel3() throws Exception {
+ public void testSimpleExcel3() throws IOException {
OldExcelExtractor extractor = createExtractor("testEXCEL_3.xls");
// Check we can call getText without error
@Test
- public void testSimpleExcel3NoReading() throws Exception {
+ public void testSimpleExcel3NoReading() throws IOException {
OldExcelExtractor extractor = createExtractor("testEXCEL_3.xls");
assertNotNull(extractor);
}
@Test
- public void testSimpleExcel4() throws Exception {
+ public void testSimpleExcel4() throws IOException {
OldExcelExtractor extractor = createExtractor("testEXCEL_4.xls");
// Check we can call getText without error
}
@Test
- public void testSimpleExcel5() throws Exception {
+ public void testSimpleExcel5() throws IOException {
for (String ver : new String[] {"5", "95"}) {
OldExcelExtractor extractor = createExtractor("testEXCEL_"+ver+".xls");
}
@Test
- public void testStrings() throws Exception {
+ public void testStrings() throws IOException {
OldExcelExtractor extractor = createExtractor("testEXCEL_4.xls");
String text = extractor.getText();
}
@Test
- public void testFormattedNumbersExcel4() throws Exception {
+ public void testFormattedNumbersExcel4() throws IOException {
OldExcelExtractor extractor = createExtractor("testEXCEL_4.xls");
String text = extractor.getText();
}
@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();
}
@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);
}
}
- @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 {
}
@Test
- public void testInputStreamNPOIHeader() throws Exception {
+ public void testInputStreamNPOIHeader() throws IOException {
File file = HSSFTestDataSamples.getSampleFile("FormulaRefs.xls");
InputStream stream = new FileInputStream(file);
try {
}
@Test
- public void testNPOIFSFileSystem() throws Exception {
+ public void testNPOIFSFileSystem() throws IOException {
File file = HSSFTestDataSamples.getSampleFile("FormulaRefs.xls");
NPOIFSFileSystem fs = new NPOIFSFileSystem(file);
try {
}
@Test
- public void testDirectoryNode() throws Exception {
+ public void testDirectoryNode() throws IOException {
File file = HSSFTestDataSamples.getSampleFile("FormulaRefs.xls");
NPOIFSFileSystem fs = new NPOIFSFileSystem(file);
try {
}
@Test
- public void testDirectoryNodeInvalidFile() throws Exception {
+ public void testDirectoryNodeInvalidFile() throws IOException {
File file = POIDataSamples.getDocumentInstance().getFile("test.doc");
NPOIFSFileSystem fs = new NPOIFSFileSystem(file);
try {
@Ignore("Calls System.exit()")
@Test
- public void testMainUsage() throws Exception {
+ public void testMainUsage() throws IOException {
PrintStream save = System.err;
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
}
@Test
- public void testMain() throws Exception {
+ public void testMain() throws IOException {
File file = HSSFTestDataSamples.getSampleFile("testEXCEL_3.xls");
PrintStream save = System.out;
try {
}
@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);
==================================================================== */\r
package org.apache.poi.hssf.model;\r
\r
+import static org.apache.poi.poifs.storage.RawDataUtil.decompress;\r
import static org.junit.Assert.assertArrayEquals;\r
import static org.junit.Assert.assertEquals;\r
import static org.junit.Assert.assertNotNull;\r
import java.util.HashMap;\r
import java.util.List;\r
import java.util.Map;\r
-import java.util.zip.GZIPInputStream;\r
-\r
-import javax.xml.bind.DatatypeConverter;\r
\r
import org.apache.poi.ddf.DefaultEscherRecordFactory;\r
import org.apache.poi.ddf.EscherContainerRecord;\r
import org.apache.poi.hssf.usermodel.HSSFTestHelper;\r
import org.apache.poi.hssf.usermodel.HSSFWorkbook;\r
import org.apache.poi.util.HexDump;\r
-import org.apache.poi.util.IOUtils;\r
import org.junit.Test;\r
\r
public class TestDrawingAggregate {\r
assertEquals("different size of drawing data before and after save", dgBytes.length, dgBytesAfterSave.length);\r
assertTrue("drawing data brefpore and after save is different", Arrays.equals(dgBytes, dgBytesAfterSave));\r
}\r
-\r
-\r
- /**\r
- * Decompress previously gziped/base64ed data\r
- *\r
- * @param data the gziped/base64ed data\r
- * @return the raw bytes\r
- * @throws IOException if you copy and pasted the data wrong\r
- */\r
- public static byte[] decompress(String data) throws IOException {\r
- byte[] base64Bytes = DatatypeConverter.parseBase64Binary(data);\r
- return IOUtils.toByteArray(new GZIPInputStream(new ByteArrayInputStream(base64Bytes)));\r
- }\r
- \r
- /**\r
- * Compress raw data for test runs - usually called while debugging :)\r
- *\r
- * @param data the raw data\r
- * @return the gziped/base64ed data as String\r
- * @throws IOException usually not ...\r
- */\r
- public static String compress(byte[] data) throws IOException {\r
- java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();\r
- java.util.zip.GZIPOutputStream gz = new java.util.zip.GZIPOutputStream(bos);\r
- gz.write(data);\r
- gz.finish();\r
- return DatatypeConverter.printBase64Binary(bos.toByteArray()); \r
- }\r
}\r
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
"46 61 68 72 7A 65 75 67 74 79 70"
);
+ @Test
public void testLoad() {
StringRecord record = new StringRecord(TestcaseRecordInputStream.create(0x207, data));
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
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());
RecordInputStream in = TestcaseRecordInputStream.create(ser);
StringRecord sr2 = new StringRecord(in);
assertEquals(sb.toString(), sr2.getString());
+ crIn.close();
}
}
==================================================================== */
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;
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;
/**
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";
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++) {
}
}
- 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();
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);
\r
package org.apache.poi.hssf.usermodel;\r
\r
-import static org.apache.poi.hssf.model.TestDrawingAggregate.decompress;\r
+import static org.apache.poi.poifs.storage.RawDataUtil.decompress;\r
import static org.junit.Assert.assertArrayEquals;\r
import static org.junit.Assert.assertEquals;\r
import static org.junit.Assert.assertTrue;\r
\r
package org.apache.poi.hssf.usermodel;\r
\r
-import static org.apache.poi.hssf.model.TestDrawingAggregate.decompress;\r
+import static org.apache.poi.poifs.storage.RawDataUtil.decompress;\r
import static org.junit.Assert.assertArrayEquals;\r
import static org.junit.Assert.assertEquals;\r
\r
==================================================================== */
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.<br/>
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());
+ }
}
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;
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.
*
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);
+ }
}
/**
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(")");
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);
+ }
}
/**
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);
CreationHelper helper = wb.getCreationHelper();
ClientAnchor anchor = helper.createClientAnchor();
- Drawing drawing = sheet.createDrawingPatriarch();
+ Drawing<?> drawing = sheet.createDrawingPatriarch();
Row row = sheet.createRow(0);
assertEquals(10, row.getRowNum());
for (Cell cell : row) {
- String cellValue = null;
+ String cellValue;
switch (cell.getCellTypeEnum()) {
case STRING:
cellValue = cell.getRichStringCellValue().getString();
case FORMULA:
cellValue = cell.getCellFormula();
break;
+ default:
+ fail("unexpected cell type");
+ return;
}
assertNotNull(cellValue);
cellValue = cellValue.isEmpty() ? null : cellValue;
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);
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());
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);
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);
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);
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) {
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 {
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());
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());
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");
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");
// 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;
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;
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);
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);