aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Stadler <centic@apache.org>2015-09-20 20:16:17 +0000
committerDominik Stadler <centic@apache.org>2015-09-20 20:16:17 +0000
commiteb6cc7eca19f55e07e4cac9bf8ebdea30573440e (patch)
tree9dc2cf57b6c8b7713381f416db3e6a2048f7ebe4
parent387b34f7a18a9ef5497dc52e882c1c3b132e48fc (diff)
downloadpoi-eb6cc7eca19f55e07e4cac9bf8ebdea30573440e.tar.gz
poi-eb6cc7eca19f55e07e4cac9bf8ebdea30573440e.zip
Bug 58333: Apply patch to verify behavior on row-index before and after the limits set by the specification
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1704186 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java5
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java6
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java7
-rw-r--r--src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java25
4 files changed, 42 insertions, 1 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java
index ad3c443830..53c9cff792 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFSheet.java
@@ -24,6 +24,7 @@ import static org.junit.Assert.fail;
import java.io.IOException;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.BaseTestSheet;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
@@ -146,6 +147,10 @@ public class TestSXSSFSheet extends BaseTestSheet {
} finally {
wb.close();
}
+ }
+ @Test
+ public void createRowAfterLastRow() {
+ createRowAfterLastRow(SpreadsheetVersion.EXCEL2007);
}
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
index 785af694d1..8e77b2c499 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
@@ -33,6 +33,7 @@ import org.apache.poi.POIXMLException;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.poifs.crypt.CryptoFunctions;
import org.apache.poi.poifs.crypt.HashAlgorithm;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.AutoFilter;
import org.apache.poi.ss.usermodel.BaseTestSheet;
import org.apache.poi.ss.usermodel.Cell;
@@ -994,6 +995,11 @@ public final class TestXSSFSheet extends BaseTestSheet {
assertEquals(3, xrow[2].getR());
}
+
+ @Test
+ public void createRowAfterLastRow() {
+ createRowAfterLastRow(SpreadsheetVersion.EXCEL2007);
+ }
@Test
public void setAutoFilter() {
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
index f47a11efdc..4b7d8491be 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
@@ -57,6 +57,7 @@ import org.apache.poi.hssf.record.WSBoolRecord;
import org.apache.poi.hssf.record.WindowTwoRecord;
import org.apache.poi.hssf.record.aggregates.WorksheetProtectionBlock;
import org.apache.poi.hssf.usermodel.RecordInspector.RecordCollector;
+import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.formula.ptg.Area3DPtg;
import org.apache.poi.ss.formula.ptg.Ptg;
import org.apache.poi.ss.usermodel.AutoFilter;
@@ -84,7 +85,11 @@ public final class TestHSSFSheet extends BaseTestSheet {
public TestHSSFSheet() {
super(HSSFITestDataProvider.instance);
}
-
+
+ @Test
+ public void createRowAfterLastRow() {
+ createRowAfterLastRow(SpreadsheetVersion.EXCEL97);
+ }
/**
* Test for Bugzilla #29747.
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
index 55f9795e31..1608006852 100644
--- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
+++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestSheet.java
@@ -87,6 +87,31 @@ public abstract class BaseTestSheet {
assertSame(row2_ovrewritten, row2_ovrewritten_ref);
assertEquals(100.0, row2_ovrewritten_ref.getCell(0).getNumericCellValue(), 0.0);
}
+
+ @Test
+ public void createRowBeforeFirstRow() {
+ final Workbook workbook = _testDataProvider.createWorkbook();
+ final Sheet sh = workbook.createSheet();
+ sh.createRow(0);
+ try {
+ sh.createRow(-1);
+ fail("Negative rows not allowed");
+ } catch (final IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ protected void createRowAfterLastRow(SpreadsheetVersion version) {
+ final Workbook workbook = _testDataProvider.createWorkbook();
+ final Sheet sh = workbook.createSheet();
+ sh.createRow(version.getLastRowIndex());
+ try {
+ sh.createRow(version.getLastRowIndex() + 1);
+ fail("Row number must be between 0 and " + version.getLastColumnIndex());
+ } catch (final IllegalArgumentException e) {
+ // expected
+ }
+ }
@Test