diff options
author | Yegor Kozlov <yegor@apache.org> | 2012-10-12 12:55:45 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2012-10-12 12:55:45 +0000 |
commit | 9487a47693d19d53d1cb4ae6ef15f1be79c2754a (patch) | |
tree | 5f0610ef0fbecaa9c70c585e32abc16405c6a459 /src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java | |
parent | 4b17ceb0e5376d7acc3514feabd65a6860841c6c (diff) | |
download | poi-9487a47693d19d53d1cb4ae6ef15f1be79c2754a.tar.gz poi-9487a47693d19d53d1cb4ae6ef15f1be79c2754a.zip |
Bugzilla 53763: avoid style mess when using HSSFOptimiser
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1397548 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java')
-rw-r--r-- | src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java index 6dc5f98e5e..d230185f73 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFOptimiser.java @@ -224,6 +224,7 @@ public final class TestHSSFOptimiser extends TestCase { assertEquals(21, r.getCell(0).getCellValueRecord().getXFIndex()); // cs2 -> 22 assertEquals(22, r.getCell(1).getCellValueRecord().getXFIndex()); + assertEquals(22, r.getCell(1).getCellStyle().getFont(wb).getFontHeight()); // cs3 = cs1 -> 21 assertEquals(21, r.getCell(2).getCellValueRecord().getXFIndex()); // cs4 --> 24 -> 23 @@ -269,4 +270,44 @@ public final class TestHSSFOptimiser extends TestCase { // csD -> cs1 -> 21 assertEquals(21, r.getCell(8).getCellValueRecord().getXFIndex()); } + + public void testOptimiseStylesCheckActualStyles() { + HSSFWorkbook wb = new HSSFWorkbook(); + + // Several styles + assertEquals(21, wb.getNumCellStyles()); + + HSSFCellStyle cs1 = wb.createCellStyle(); + cs1.setBorderBottom(HSSFCellStyle.BORDER_THICK); + + HSSFCellStyle cs2 = wb.createCellStyle(); + cs2.setBorderBottom(HSSFCellStyle.BORDER_DASH_DOT); + + HSSFCellStyle cs3 = wb.createCellStyle(); // = cs1 + cs3.setBorderBottom(HSSFCellStyle.BORDER_THICK); + + assertEquals(24, wb.getNumCellStyles()); + + // Use them + HSSFSheet s = wb.createSheet(); + HSSFRow r = s.createRow(0); + + r.createCell(0).setCellStyle(cs1); + r.createCell(1).setCellStyle(cs2); + r.createCell(2).setCellStyle(cs3); + + assertEquals(21, r.getCell(0).getCellValueRecord().getXFIndex()); + assertEquals(22, r.getCell(1).getCellValueRecord().getXFIndex()); + assertEquals(23, r.getCell(2).getCellValueRecord().getXFIndex()); + + // Optimise + HSSFOptimiser.optimiseCellStyles(wb); + + // Check + assertEquals(23, wb.getNumCellStyles()); + + assertEquals(HSSFCellStyle.BORDER_THICK, r.getCell(0).getCellStyle().getBorderBottom()); + assertEquals(HSSFCellStyle.BORDER_DASH_DOT, r.getCell(1).getCellStyle().getBorderBottom()); + assertEquals(HSSFCellStyle.BORDER_THICK, r.getCell(2).getCellStyle().getBorderBottom()); + } } |