From ee8781d7b52f13b1991ee2bd843e4006ed600983 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Mon, 5 Sep 2022 14:38:55 +0000 Subject: [PATCH] extend tests git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1903883 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/ss/tests/util/TestXSSFCellUtil.java | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java b/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java index d9aba70e50..58b93c6047 100644 --- a/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java +++ b/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtil.java @@ -123,4 +123,86 @@ class TestXSSFCellUtil extends BaseTestCellUtil { assertEquals(FillPatternType.NO_FILL, cell.getCellStyle().getFillPattern()); } } + + @Test + public void testBug66052WithWorkaround() throws IOException, DecoderException { + + try (Workbook workbook = new XSSFWorkbook()) { + + final Sheet sheet = workbook.createSheet("Sheet"); + final Row row = sheet.createRow(0); + final Cell cell = row.createCell(0); + final XSSFColor color = new XSSFColor(Hex.decodeHex("FFAAAA")); + + assertNull(cell.getCellStyle().getFillForegroundColorColor()); + assertNull(cell.getCellStyle().getFillBackgroundColorColor()); + + { + Map properties = new LinkedHashMap<>(); + + properties.put(CellUtil.FILL_FOREGROUND_COLOR_COLOR, color); + properties.put(CellUtil.FILL_BACKGROUND_COLOR_COLOR, null); // WORKAROUND + properties.put(CellUtil.FILL_PATTERN, FillPatternType.SOLID_FOREGROUND); + + CellUtil.setCellStyleProperties(cell, properties); + } + + assertNotNull(cell.getCellStyle().getFillForegroundColorColor()); + assertNull(cell.getCellStyle().getFillBackgroundColorColor()); + + { + Map properties = new LinkedHashMap<>(); + + properties.put(CellUtil.FILL_FOREGROUND_COLOR_COLOR, null); + properties.put(CellUtil.FILL_BACKGROUND_COLOR_COLOR, null); // WORKAROUND + properties.put(CellUtil.FILL_PATTERN, FillPatternType.NO_FILL); + + CellUtil.setCellStyleProperties(cell, properties); + } + + assertNull(cell.getCellStyle().getFillForegroundColorColor()); + assertNull(cell.getCellStyle().getFillBackgroundColorColor()); + } + } + + @Test + public void testBug66052WithoutWorkaround() throws IOException, DecoderException { + + try (Workbook workbook = new XSSFWorkbook()) { + + final Sheet sheet = workbook.createSheet("Sheet"); + final Row row = sheet.createRow(0); + final Cell cell = row.createCell(0); + final XSSFColor color = new XSSFColor(Hex.decodeHex("FFAAAA")); + + assertNull(cell.getCellStyle().getFillForegroundColorColor()); + assertNull(cell.getCellStyle().getFillBackgroundColorColor()); + + { + Map properties = new LinkedHashMap<>(); + + properties.put(CellUtil.FILL_FOREGROUND_COLOR_COLOR, color); + properties.put(CellUtil.FILL_PATTERN, FillPatternType.SOLID_FOREGROUND); + + CellUtil.setCellStyleProperties(cell, properties); + } + + assertEquals(color, cell.getCellStyle().getFillForegroundColorColor()); + assertEquals(IndexedColors.AUTOMATIC.getIndex(), + ((XSSFColor) cell.getCellStyle().getFillBackgroundColorColor()).getIndex()); + + { + Map properties = new LinkedHashMap<>(); + + properties.put(CellUtil.FILL_FOREGROUND_COLOR_COLOR, null); + properties.put(CellUtil.FILL_PATTERN, FillPatternType.NO_FILL); + + CellUtil.setCellStyleProperties(cell, properties); + } + + assertNull(cell.getCellStyle().getFillForegroundColorColor()); + assertEquals(IndexedColors.AUTOMATIC.getIndex(), + ((XSSFColor) cell.getCellStyle().getFillBackgroundColorColor()).getIndex()); + } + } } \ No newline at end of file -- 2.39.5