aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2008-06-18 11:35:04 +0000
committerNick Burch <nick@apache.org>2008-06-18 11:35:04 +0000
commit1f08e18ea8d04bb26b2c2fc52de6fb30e356cf86 (patch)
tree293eda7e0ca08897484619978bb52c1f7a86b40f /src/testcases/org/apache/poi
parent5c27b368a603b7568648ac8dae3c1699217dfb32 (diff)
downloadpoi-1f08e18ea8d04bb26b2c2fc52de6fb30e356cf86.tar.gz
poi-1f08e18ea8d04bb26b2c2fc52de6fb30e356cf86.zip
A partial fix for bug #30978, but something still remains, which seems to be related to changing the ptg
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@669140 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi')
-rw-r--r--src/testcases/org/apache/poi/hssf/data/30978-alt.xlsbin0 -> 14848 bytes
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java62
2 files changed, 62 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/hssf/data/30978-alt.xls b/src/testcases/org/apache/poi/hssf/data/30978-alt.xls
new file mode 100644
index 0000000000..c591582885
--- /dev/null
+++ b/src/testcases/org/apache/poi/hssf/data/30978-alt.xls
Binary files differ
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
index cbe175a0e3..ab247b7c8a 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
@@ -28,7 +28,10 @@ import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.EmbeddedObjectRefSubRecord;
+import org.apache.poi.hssf.record.NameRecord;
+import org.apache.poi.hssf.record.formula.DeletedArea3DPtg;
import org.apache.poi.hssf.util.Region;
import org.apache.poi.util.TempFile;
@@ -989,4 +992,63 @@ public final class TestBugs extends TestCase {
fail();
} catch(FileNotFoundException e) {}
}
+
+ /**
+ * Test that we can delete sheets without
+ * breaking the build in named ranges
+ * used for printing stuff.
+ * Currently broken, as we change the Ptg
+ */
+ public void BROKENtest30978() throws Exception {
+ HSSFWorkbook wb = openSample("30978-alt.xls");
+ assertEquals(1, wb.getNumberOfNames());
+ assertEquals(3, wb.getNumberOfSheets());
+
+ // Check all names fit within range, and use
+ // DeletedArea3DPtg
+ Workbook w = wb.getWorkbook();
+ for(int i=0; i<w.getNumNames(); i++) {
+ NameRecord r = w.getNameRecord(i);
+ assertTrue(r.getIndexToSheet() <= wb.getNumberOfSheets());
+
+ List nd = r.getNameDefinition();
+ assertEquals(1, nd.size());
+ assertTrue(nd.get(0) instanceof DeletedArea3DPtg);
+ }
+
+
+ // Delete the 2nd sheet
+ wb.removeSheetAt(1);
+
+
+ // Re-check
+ assertEquals(1, wb.getNumberOfNames());
+ assertEquals(2, wb.getNumberOfSheets());
+
+ for(int i=0; i<w.getNumNames(); i++) {
+ NameRecord r = w.getNameRecord(i);
+ assertTrue(r.getIndexToSheet() <= wb.getNumberOfSheets());
+
+ List nd = r.getNameDefinition();
+ assertEquals(1, nd.size());
+ assertTrue(nd.get(0) instanceof DeletedArea3DPtg);
+ }
+
+
+ // Save and re-load
+ wb = writeOutAndReadBack(wb);
+ w = wb.getWorkbook();
+
+ assertEquals(1, wb.getNumberOfNames());
+ assertEquals(2, wb.getNumberOfSheets());
+
+ for(int i=0; i<w.getNumNames(); i++) {
+ NameRecord r = w.getNameRecord(i);
+ assertTrue(r.getIndexToSheet() <= wb.getNumberOfSheets());
+
+ List nd = r.getNameDefinition();
+ assertEquals(1, nd.size());
+ assertTrue(nd.get(0) instanceof DeletedArea3DPtg);
+ }
+ }
}