From f06e06ef12df9c75dc50fd3baf8a9837a3750192 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Fri, 23 Aug 2013 18:56:11 +0000 Subject: [PATCH] Add testcase which tries to reproduce Bug 48495, but seems to be fixed now. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1516981 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/usermodel/TestXSSFWorkbook.java | 34 ++++++++++++++++++ .../poi/hssf/usermodel/TestHSSFWorkbook.java | 13 ------- .../poi/ss/usermodel/BaseTestWorkbook.java | 13 +++++++ test-data/spreadsheet/48495.xlsx | Bin 0 -> 8869 bytes 4 files changed, 47 insertions(+), 13 deletions(-) create mode 100644 test-data/spreadsheet/48495.xlsx diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java index 96eaef5719..ec6ab23745 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java @@ -37,7 +37,9 @@ import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.IndexedColors; 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.apache.poi.util.TempFile; import org.apache.poi.xssf.XSSFITestDataProvider; import org.apache.poi.xssf.XSSFTestDataSamples; @@ -494,4 +496,36 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook { assertEquals("hello world", workbook.getSheetAt(0).getRow(0).getCell(0).getStringCellValue()); assertEquals(2048, workbook.getSheetAt(0).getColumnWidth(0)); // <-works } + + + public void testBug48495() { + try { + Workbook wb = XSSFTestDataSamples.openSampleWorkbook("48495.xlsx"); + + assertSheetOrder(wb, "Sheet1"); + + Sheet sheet = wb.getSheetAt(0); + sheet.shiftRows(2, sheet.getLastRowNum(), 1, true, false); + Row newRow = sheet.getRow(2); + if (newRow == null) newRow = sheet.createRow(2); + newRow.createCell(0).setCellValue(" Another Header"); + wb.cloneSheet(0); + + assertSheetOrder(wb, "Sheet1", "Sheet1 (2)"); + + // FileOutputStream fileOut = new FileOutputStream("/tmp/bug48495.xlsx"); +// try { +// wb.write(fileOut); +// } finally { +// fileOut.close(); +// } + + Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb); + assertNotNull(read); + assertSheetOrder(read, "Sheet1", "Sheet1 (2)"); + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println("Done"); + } } diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java index 6d49827bf6..1927727e42 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java @@ -965,17 +965,4 @@ public final class TestHSSFWorkbook extends BaseTestWorkbook { HSSFWorkbook read = HSSFTestDataSamples.writeOutAndReadBack(wb); assertSheetOrder(read, "Invoice", "Deferred", "Received", "Digest"); } - - private void assertSheetOrder(HSSFWorkbook wb, String... sheets) { - StringBuilder sheetNames = new StringBuilder(); - for(int i = 0;i < wb.getNumberOfSheets();i++) { - sheetNames.append(wb.getSheetAt(i).getSheetName()).append(","); - } - assertEquals("Had: " + sheetNames.toString(), - sheets.length, wb.getNumberOfSheets()); - for(int i = 0;i < wb.getNumberOfSheets();i++) { - assertEquals("Had: " + sheetNames.toString(), - sheets[i], wb.getSheetAt(i).getSheetName()); - } - } } diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java index b2357f947e..ce96c3fe17 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestWorkbook.java @@ -604,4 +604,17 @@ public abstract class BaseTestWorkbook extends TestCase { assertEquals(cellB.getStringCellValue(), evaluator.evaluate(cellA).getStringValue()); } } + + protected void assertSheetOrder(Workbook wb, String... sheets) { + StringBuilder sheetNames = new StringBuilder(); + for(int i = 0;i < wb.getNumberOfSheets();i++) { + sheetNames.append(wb.getSheetAt(i).getSheetName()).append(","); + } + assertEquals("Had: " + sheetNames.toString(), + sheets.length, wb.getNumberOfSheets()); + for(int i = 0;i < wb.getNumberOfSheets();i++) { + assertEquals("Had: " + sheetNames.toString(), + sheets[i], wb.getSheetAt(i).getSheetName()); + } + } } diff --git a/test-data/spreadsheet/48495.xlsx b/test-data/spreadsheet/48495.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..73bc28b8e5f3a8b8f1d101d26078ca617a7ce623 GIT binary patch literal 8869 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 O6aE3gX>3dLqxV0L%qpe; literal 0 HcmV?d00001 -- 2.39.5