aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases
diff options
context:
space:
mode:
authorJosh Micich <josh@apache.org>2008-09-29 20:38:55 +0000
committerJosh Micich <josh@apache.org>2008-09-29 20:38:55 +0000
commit8befcb660a84cb5ba93e0ab98c242017f1856e28 (patch)
tree0a6ee693315cf0281699d64cb0c034c3c2bc3ce8 /src/testcases
parent8bfd1494141e2fac61069bb3431189565f8c6a39 (diff)
downloadpoi-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')
-rw-r--r--src/testcases/org/apache/poi/hssf/model/TestSheet.java13
-rw-r--r--src/testcases/org/apache/poi/hssf/record/TestExternalNameRecord.java4
-rwxr-xr-xsrc/testcases/org/apache/poi/hssf/record/aggregates/TestValueRecordsAggregate.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java46
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());
+ }
}