From 668f479cf61ebfcd74f88f3cc467e9c9ee41623a Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Fri, 20 May 2011 20:46:55 +0000 Subject: [PATCH] Test that shows that bug #51222 is a themes colour problem git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1125559 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/usermodel/TestXSSFBugs.java | 41 ++++++++++++++++++ test-data/spreadsheet/51222.xlsx | Bin 0 -> 8543 bytes 2 files changed, 41 insertions(+) create mode 100644 test-data/spreadsheet/51222.xlsx 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 fca1643653..05365a8dba 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java @@ -1173,4 +1173,45 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues { // Complex file // TODO } + + /** + * Colours and styles when the list has gaps in it + */ + public void test51222() throws Exception { + XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("51222.xlsx"); + XSSFSheet s = wb.getSheetAt(0); + + XSSFCell cA4_EEECE1 = s.getRow(3).getCell(0); + XSSFCell cA5_1F497D = s.getRow(4).getCell(0); + + // Check the text + assertEquals("A4", cA4_EEECE1.getRichStringCellValue().getString()); + assertEquals("A5", cA5_1F497D.getRichStringCellValue().getString()); + + // Check the styles assigned to them + assertEquals(4, cA4_EEECE1.getCTCell().getS()); + assertEquals(5, cA5_1F497D.getCTCell().getS()); + + // Check we look up the correct style + assertEquals(4, cA4_EEECE1.getCellStyle().getIndex()); + assertEquals(5, cA5_1F497D.getCellStyle().getIndex()); + + // Check the fills on them at the low level + assertEquals(5, cA4_EEECE1.getCellStyle().getCoreXf().getFillId()); + assertEquals(6, cA5_1F497D.getCellStyle().getCoreXf().getFillId()); + + // These should reference themes 2 and 3 + assertEquals(2, wb.getStylesSource().getFillAt(5).getCTFill().getPatternFill().getFgColor().getTheme()); + assertEquals(3, wb.getStylesSource().getFillAt(6).getCTFill().getPatternFill().getFgColor().getTheme()); + + // Ensure we get the right colours for these themes + // TODO fix +// assertEquals("FFEEECE1", wb.getTheme().getThemeColor(2).getARGBHex()); +// assertEquals("FF1F497D", wb.getTheme().getThemeColor(3).getARGBHex()); + + // Finally check the colours on the styles + // TODO fix +// assertEquals("FFEEECE1", cA4_EEECE1.getCellStyle().getFillForegroundXSSFColor().getARGBHex()); +// assertEquals("FF1F497D", cA5_1F497D.getCellStyle().getFillForegroundXSSFColor().getARGBHex()); + } } diff --git a/test-data/spreadsheet/51222.xlsx b/test-data/spreadsheet/51222.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..562154caf833e1f41a08312c3f72e921ffefb9fb GIT binary patch literal 8543 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