Modified:
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/AbstractPtgTestCase.java
URL:
http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/AbstractPtgTestCase.java?rev=618325&r1=618324&r2=618325&view=diff
==============================================================================
---
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/AbstractPtgTestCase.java
(original)
+++
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/AbstractPtgTestCase.java
Mon Feb 4 08:55:43 2008
@@ -26,6 +26,7 @@
import junit.framework.TestCase;
+import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
@@ -34,7 +35,7 @@
*
* @author Daniel Noll (daniel at nuix dot com dot au)
*/
-public class AbstractPtgTestCase extends TestCase
+public abstract class AbstractPtgTestCase extends TestCase
{
/** Directory containing the test data. */
private static String dataDir = System.getProperty("HSSF.testdata.path");
@@ -46,7 +47,7 @@
* @return the loaded workbook.
* @throws IOException if an error occurs loading the workbook.
*/
- protected static HSSFWorkbook loadWorkbook(String filename)
+ protected static final HSSFWorkbook loadWorkbook(String filename)
throws IOException {
File file = new File(dataDir, filename);
InputStream stream = new BufferedInputStream(new
FileInputStream(file));
@@ -59,4 +60,18 @@
stream.close();
}
}
+
+ /**
+ * Creates a new Workbook and adds one sheet with the specified name
+ */
+ protected static final Workbook createWorkbookWithSheet(String sheetName) {
+
+ Workbook book = Workbook.createWorkbook();
+ // this creates sheet if it doesn't exist
+ book.checkExternSheet(0);
+ // TODO - this call alone does not create the sheet even though
the javadoc says it does
+ book.setSheetName(0, sheetName);
+ return book;
+ }
+
}
Propchange:
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/record/formula/TestFuncPtg.java
('svn:executable' removed)
Modified:
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
URL:
http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java?rev=618325&r1=618324&r2=618325&view=diff
==============================================================================
---
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
(original)
+++
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
Mon Feb 4 08:55:43 2008
@@ -1008,9 +1008,45 @@
wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
assertTrue("No Exceptions while reading file", true);
-
}
+ /**
+ * Bug 42618: RecordFormatException reading a file containing
+ * =CHOOSE(2,A2,A3,A4)
+ * TODO - support getCellFormula too!
+ */
+ public void test42618() throws Exception {
+ FileInputStream in = new FileInputStream(new File(cwd,
"SimpleWithChoose.xls"));
+ HSSFWorkbook wb = new HSSFWorkbook(in);
+ in.close();
+
+ assertTrue("No Exceptions while reading file", true);
+
+ //serialize and read again
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+ out.close();
+
+ wb = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ assertTrue("No Exceptions while reading file", true);
+
+ // Check we detect the string properly too
+ HSSFSheet s = wb.getSheetAt(0);
+
+ // Textual value
+ HSSFRow r1 = s.getRow(0);
+ HSSFCell c1 = r1.getCell((short)1);
+ assertEquals("=CHOOSE(2,A2,A3,A4)",
c1.getRichStringCellValue().toString());
+
+ // Formula Value
+ HSSFRow r2 = s.getRow(1);
+ HSSFCell c2 = r2.getCell((short)1);
+ assertEquals(25, (int)c2.getNumericCellValue());
+
+ // This will blow up with a
+ // "EmptyStackException"
+ //assertEquals("=CHOOSE(2,A2,A3,A4)", c2.getCellFormula());
+ }
}
Modified:
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
URL:
http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java?rev=618325&r1=618324&r2=618325&view=diff
==============================================================================
---
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
(original)
+++
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFCell.java
Mon Feb 4 08:55:43 2008
@@ -19,25 +19,20 @@
package org.apache.poi.hssf.usermodel;
-import junit.framework.TestCase;
-
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
-import org.apache.poi.hssf.model.Sheet;
-import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.BOFRecord;
-import org.apache.poi.hssf.record.EOFRecord;
-import org.apache.poi.hssf.util.CellReference;
-import org.apache.poi.hssf.util.HSSFColor;
-import org.apache.poi.util.TempFile;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-
-import java.util.List;
-import java.util.Iterator;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.model.Sheet;
+import org.apache.poi.hssf.record.HyperlinkRecord;
+import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.util.TempFile;
/**
* Tests various functionity having to do with HSSFCell. For instance support
for
@@ -308,7 +303,54 @@
assertTrue("Bottom Border", (cs.getBorderBottom() == (short)1));
in.close();
- }
+ }
+
+ /**
+ * Test reading hyperlinks
+ */
+ public void testWithHyperlink() throws Exception {
+ String dir = System.getProperty("HSSF.testdata.path");
+ File f = new File(dir, "WithHyperlink.xls");
+ HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(f));
+
+ HSSFSheet sheet = wb.getSheetAt(0);
+ HSSFCell cell = sheet.getRow(4).getCell((short)0);
+ HSSFHyperlink link = cell.getHyperlink();
+ assertNotNull(link);
+
+ assertEquals("Foo", link.getLabel());
+ assertEquals("http://poi.apache.org/", link.getAddress());
+ assertEquals(4, link.getRow());
+ assertEquals(0, link.getColumn());
+ }
+
+ /**
+ * Test reading hyperlinks
+ */
+ public void testWithTwoHyperlinks() throws Exception {
+ String dir = System.getProperty("HSSF.testdata.path");
+ File f = new File(dir, "WithTwoHyperLinks.xls");
+ HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(f));
+
+ HSSFSheet sheet = wb.getSheetAt(0);
+
+ HSSFCell cell1 = sheet.getRow(4).getCell((short)0);
+ HSSFHyperlink link1 = cell1.getHyperlink();
+ assertNotNull(link1);
+ assertEquals("Foo", link1.getLabel());
+ assertEquals("http://poi.apache.org/", link1.getAddress());
+ assertEquals(4, link1.getRow());
+ assertEquals(0, link1.getColumn());
+
+ HSSFCell cell2 = sheet.getRow(8).getCell((short)1);
+ HSSFHyperlink link2 = cell2.getHyperlink();
+ assertNotNull(link2);
+ assertEquals("Bar", link2.getLabel());
+ assertEquals("http://poi.apache.org/", link2.getAddress());
+ assertEquals(8, link2.getRow());
+ assertEquals(1, link2.getColumn());
+
+ }
/*tests the toString() method of HSSFCell*/
public void testToString() throws Exception {
Modified:
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
URL:
http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java?rev=618325&r1=618324&r2=618325&view=diff
==============================================================================
---
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
(original)
+++
poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestNamedRange.java
Mon Feb 4 08:55:43 2008
@@ -351,7 +351,7 @@
String retrievedPrintArea = workbook.getPrintArea(0);
assertNotNull("Print Area not defined for first sheet",
retrievedPrintArea);
- assertEquals(reference, retrievedPrintArea);
+ assertEquals("'" + sheetName + "'!$A$1:$B$1", retrievedPrintArea);
}
@@ -370,7 +370,7 @@
String retrievedPrintArea = workbook.getPrintArea(0);
assertNotNull("Print Area not defined for first sheet",
retrievedPrintArea);
- assertEquals(sheetName+"!"+reference, retrievedPrintArea);
+ assertEquals("'" + sheetName + "'!" + reference,
retrievedPrintArea);
}
@@ -437,7 +437,7 @@
String retrievedPrintArea = workbook.getPrintArea(0);
assertNotNull("Print Area not defined for first sheet",
retrievedPrintArea);
- assertEquals("References Match", reference, retrievedPrintArea);
+ assertEquals("References Match", "'" + sheetName +
"'!$A$1:$B$1", retrievedPrintArea);
}
@@ -449,9 +449,9 @@
{
HSSFWorkbook workbook = new HSSFWorkbook();
- HSSFSheet sheet = workbook.createSheet("Sheet 1");
- sheet = workbook.createSheet("Sheet 2");
- sheet = workbook.createSheet("Sheet 3");
+ HSSFSheet sheet = workbook.createSheet("Sheet1");
+ sheet = workbook.createSheet("Sheet2");
+ sheet = workbook.createSheet("Sheet3");
String sheetName = workbook.getSheetName(0);
String reference = null;
@@ -508,9 +508,30 @@
String retrievedPrintArea = workbook.getPrintArea(0);
assertNotNull("Print Area not defined for first sheet",
retrievedPrintArea);
- assertEquals(reference, retrievedPrintArea);
+ assertEquals("'" + sheetName + "'!$A$1:$B$1",
retrievedPrintArea);
}
-
+
+
+ /**
+ * Tests the parsing of union area expressions, and re-display in the
presence of sheet names
+ * with special characters.
+ */
+ public void testPrintAreaUnion(){
+ HSSFWorkbook workbook = new HSSFWorkbook();
+ HSSFSheet sheet = workbook.createSheet("Test Print Area");
+ String sheetName = workbook.getSheetName(0);
+
+
+ String reference = sheetName + "!$A$1:$B$1, " +
sheetName + "!$D$1:$F$2";
+ String expResult = "'" + sheetName + "'!$A$1:$B$1,'" +
sheetName + "'!$D$1:$F$2";
+ workbook.setPrintArea(0, reference);
+
+ String retrievedPrintArea = workbook.getPrintArea(0);
+
+ assertNotNull("Print Area not defined for first sheet",
retrievedPrintArea);
+ assertEquals(expResult, retrievedPrintArea);
+ }
+
/**
* Verifies an existing print area is deleted
*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]