From 1e19690e1828350ec4fc2e16afbe4c98b1f62dcc Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Thu, 14 Apr 2011 18:06:23 +0000 Subject: [PATCH] Add unit test for bug #51037, which seems to be working fine git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1092423 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/usermodel/TestXSSFBugs.java | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) 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 54c5b1632..56e8cc086 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java @@ -35,6 +35,7 @@ import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.FormulaError; import org.apache.poi.ss.usermodel.FormulaEvaluator; +import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Name; import org.apache.poi.ss.usermodel.RichTextString; import org.apache.poi.ss.usermodel.Row; @@ -44,6 +45,7 @@ import org.apache.poi.xssf.XSSFITestDataProvider; import org.apache.poi.xssf.XSSFTestDataSamples; import org.apache.poi.xssf.model.CalculationChain; import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill; +import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet; public final class TestXSSFBugs extends BaseTestBugzillaIssues { @@ -1051,6 +1053,81 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { } } + /** + * Default Column style + */ + public void test51037() throws Exception { + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFSheet s = wb.createSheet(); + + CellStyle defaultStyle = wb.getCellStyleAt((short)0); + assertEquals(0, defaultStyle.getIndex()); + + CellStyle blueStyle = wb.createCellStyle(); + blueStyle.setFillForegroundColor(IndexedColors.AQUA.getIndex()); + blueStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); + assertEquals(1, blueStyle.getIndex()); + + CellStyle pinkStyle = wb.createCellStyle(); + pinkStyle.setFillForegroundColor(IndexedColors.PINK.getIndex()); + pinkStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); + assertEquals(2, pinkStyle.getIndex()); + + // Starts empty + assertEquals(1, s.getCTWorksheet().sizeOfColsArray()); + CTCols cols = s.getCTWorksheet().getColsArray(0); + assertEquals(0, cols.sizeOfColArray()); + + // Add some rows and columns + XSSFRow r1 = s.createRow(0); + XSSFRow r2 = s.createRow(1); + r1.createCell(0); + r1.createCell(2); + r2.createCell(0); + r2.createCell(3); + + // Check no style is there + assertEquals(1, s.getCTWorksheet().sizeOfColsArray()); + assertEquals(0, cols.sizeOfColArray()); + + assertEquals(defaultStyle, s.getColumnStyle(0)); + assertEquals(defaultStyle, s.getColumnStyle(2)); + assertEquals(defaultStyle, s.getColumnStyle(3)); + + + // Apply the styles + s.setDefaultColumnStyle(0, pinkStyle); + s.setDefaultColumnStyle(3, blueStyle); + + // Check + assertEquals(pinkStyle, s.getColumnStyle(0)); + assertEquals(defaultStyle, s.getColumnStyle(2)); + assertEquals(blueStyle, s.getColumnStyle(3)); + + assertEquals(1, s.getCTWorksheet().sizeOfColsArray()); + assertEquals(2, cols.sizeOfColArray()); + + assertEquals(1, cols.getColArray(0).getMin()); + assertEquals(1, cols.getColArray(0).getMax()); + assertEquals(pinkStyle.getIndex(), cols.getColArray(0).getStyle()); + + assertEquals(4, cols.getColArray(1).getMin()); + assertEquals(4, cols.getColArray(1).getMax()); + assertEquals(blueStyle.getIndex(), cols.getColArray(1).getStyle()); + + + // Save, re-load and re-check + wb = XSSFTestDataSamples.writeOutAndReadBack(wb); + s = wb.getSheetAt(0); + defaultStyle = wb.getCellStyleAt(defaultStyle.getIndex()); + blueStyle = wb.getCellStyleAt(blueStyle.getIndex()); + pinkStyle = wb.getCellStyleAt(pinkStyle.getIndex()); + + assertEquals(pinkStyle, s.getColumnStyle(0)); + assertEquals(defaultStyle, s.getColumnStyle(2)); + assertEquals(blueStyle, s.getColumnStyle(3)); + } + /** * Repeatedly writing a file. * Something with the SharedStringsTable currently breaks...