diff options
author | Josh Micich <josh@apache.org> | 2008-09-29 20:38:55 +0000 |
---|---|---|
committer | Josh Micich <josh@apache.org> | 2008-09-29 20:38:55 +0000 |
commit | 8befcb660a84cb5ba93e0ab98c242017f1856e28 (patch) | |
tree | 0a6ee693315cf0281699d64cb0c034c3c2bc3ce8 /src/testcases | |
parent | 8bfd1494141e2fac61069bb3431189565f8c6a39 (diff) | |
download | poi-8befcb660a84cb5ba93e0ab98c242017f1856e28.tar.gz poi-8befcb660a84cb5ba93e0ab98c242017f1856e28.zip |
Merged revisions 700005,700203-700204 via svnmerge from
https://svn.apache.org/repos/asf/poi/trunk
........
r700005 | josh | 2008-09-29 00:27:14 -0700 (Mon, 29 Sep 2008) | 1 line
Fix for bug 45890 - made HSSFSheet.shiftRows also update conditional formats
........
r700203 | josh | 2008-09-29 11:43:53 -0700 (Mon, 29 Sep 2008) | 1 line
Refactoring row-blocks record reading logic in Sheet
........
r700204 | josh | 2008-09-29 11:48:43 -0700 (Mon, 29 Sep 2008) | 1 line
Should have been submitted with c700203 (Refactoring row-blocks record reading logic in Sheet)
........
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@700243 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases')
4 files changed, 52 insertions, 13 deletions
diff --git a/src/testcases/org/apache/poi/hssf/model/TestSheet.java b/src/testcases/org/apache/poi/hssf/model/TestSheet.java index 3bc79299b5..f19af7cb31 100644 --- a/src/testcases/org/apache/poi/hssf/model/TestSheet.java +++ b/src/testcases/org/apache/poi/hssf/model/TestSheet.java @@ -56,6 +56,11 @@ import org.apache.poi.hssf.util.CellRangeAddress; * @author Glen Stampoultzis (glens at apache.org) */ public final class TestSheet extends TestCase { + private static Sheet createSheet(List inRecs) { + return Sheet.createSheet(new RecordStream(inRecs, 0)); + } + + public void testCreateSheet() { // Check we're adding row and cell aggregates List records = new ArrayList(); @@ -63,7 +68,7 @@ public final class TestSheet extends TestCase { records.add( new DimensionsRecord() ); records.add(createWindow2Record()); records.add(EOFRecord.instance); - Sheet sheet = Sheet.createSheet( records, 0, 0 ); + Sheet sheet = createSheet(records); int pos = 0; assertTrue( sheet.records.get(pos++) instanceof BOFRecord ); @@ -187,7 +192,7 @@ public final class TestSheet extends TestCase { records.add(EOFRecord.instance); records.add(merged); - Sheet sheet = Sheet.createSheet(records, 0); + Sheet sheet = createSheet(records); sheet.records.remove(0); //stub object to throw off list INDEX operations @@ -222,7 +227,7 @@ public final class TestSheet extends TestCase { records.add(createWindow2Record()); records.add(EOFRecord.instance); - Sheet sheet = Sheet.createSheet(records, 0); + Sheet sheet = createSheet(records); assertNotNull("Row [2] was skipped", sheet.getRow(2)); } @@ -446,7 +451,7 @@ public final class TestSheet extends TestCase { records.add(new DimensionsRecord()); records.add(createWindow2Record()); records.add(EOFRecord.instance); - Sheet sheet = Sheet.createSheet(records, 0, 0); + Sheet sheet = createSheet(records); // The original bug was due to different logic for collecting records for sizing and // serialization. The code has since been refactored into a single method for visiting diff --git a/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java b/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java index 7a9acb087b..e55876e6f6 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java +++ b/src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java @@ -82,11 +82,9 @@ public final class TestExternalNameRecord extends TestCase { assertTrue(enr.isAutomaticLink());
assertFalse(enr.isBuiltInName());
assertFalse(enr.isIconifiedPictureLink());
- assertFalse(enr.isInValueSection());
assertFalse(enr.isOLELink());
assertFalse(enr.isPicureLink());
assertTrue(enr.isStdDocumentNameIdentifier());
- assertFalse(enr.isValue());
TestcaseRecordInputStream.confirmRecordEncoding(0x0023, dataAutoDocName, enr.serialize());
}
@@ -98,11 +96,9 @@ public final class TestExternalNameRecord extends TestCase { assertFalse(enr.isAutomaticLink());
assertFalse(enr.isBuiltInName());
assertFalse(enr.isIconifiedPictureLink());
- assertFalse(enr.isInValueSection());
assertFalse(enr.isOLELink());
assertFalse(enr.isPicureLink());
assertFalse(enr.isStdDocumentNameIdentifier());
- assertFalse(enr.isValue());
TestcaseRecordInputStream.confirmRecordEncoding(0x0023, dataPlainName, enr.serialize());
}
diff --git a/src/testcases/org/apache/poi/hssf/record/aggregates/TestValueRecordsAggregate.java b/src/testcases/org/apache/poi/hssf/record/aggregates/TestValueRecordsAggregate.java index 5e2fdab49e..c62f725238 100755 --- a/src/testcases/org/apache/poi/hssf/record/aggregates/TestValueRecordsAggregate.java +++ b/src/testcases/org/apache/poi/hssf/record/aggregates/TestValueRecordsAggregate.java @@ -65,7 +65,7 @@ public final class TestValueRecordsAggregate extends TestCase { } private void constructValueRecord(List records) { - RowBlocksReader rbr = new RowBlocksReader(records, 0); + RowBlocksReader rbr = new RowBlocksReader(new RecordStream(records, 0)); SharedValueManager sfrh = rbr.getSharedFormulaManager(); RecordStream rs = rbr.getPlainRecordStream(); while(rs.hasNext()) { diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java index f9e62ffbf9..5d0416fc7c 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java @@ -29,10 +29,8 @@ import org.apache.poi.ss.util.Region; * * @author Dmitriy Kumshayev */ -public final class TestHSSFConditionalFormatting extends TestCase -{ - public void testCreateCF() - { +public final class TestHSSFConditionalFormatting extends TestCase { + public void testCreateCF() { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); String formula = "7"; @@ -150,4 +148,44 @@ public final class TestHSSFConditionalFormatting extends TestCase } assertEquals(2, wb.getNumberOfSheets()); } + + public void testShiftRows() { + + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet sheet = wb.createSheet(); + + HSSFSheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting(); + + HSSFConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule( + ComparisonOperator.BETWEEN, "sum(A10:A15)", "1+sum(B16:B30)"); + HSSFFontFormatting fontFmt = rule1.createFontFormatting(); + fontFmt.setFontStyle(true, false); + + HSSFPatternFormatting patternFmt = rule1.createPatternFormatting(); + patternFmt.setFillBackgroundColor(HSSFColor.YELLOW.index); + HSSFConditionalFormattingRule [] cfRules = { rule1, }; + + CellRangeAddress [] regions = { + new CellRangeAddress(2, 4, 0, 0), // A3:A5 + }; + sheetCF.addConditionalFormatting(regions, cfRules); + + // This row-shift should destroy the CF region + sheet.shiftRows(10, 20, -9); + assertEquals(0, sheetCF.getNumConditionalFormattings()); + + // re-add the CF + sheetCF.addConditionalFormatting(regions, cfRules); + + // This row shift should only affect the formulas + sheet.shiftRows(14, 17, 8); + HSSFConditionalFormatting cf = sheetCF.getConditionalFormattingAt(0); + assertEquals("SUM(A10:A23)", cf.getRule(0).getFormula1()); + assertEquals("1+SUM(B24:B30)", cf.getRule(0).getFormula2()); + + sheet.shiftRows(0, 8, 21); + cf = sheetCF.getConditionalFormattingAt(0); + assertEquals("SUM(A10:A21)", cf.getRule(0).getFormula1()); + assertEquals("1+SUM(#REF!)", cf.getRule(0).getFormula2()); + } } |