You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2008/04/07 14:52:00 UTC
svn commit: r645483 [4/7] - in /poi/branches/ooxml: ./
src/documentation/content/xdocs/ src/java/org/apache/poi/hssf/record/
src/java/org/apache/poi/hssf/record/cf/
src/java/org/apache/poi/hssf/usermodel/ src/java/org/apache/poi/util/
src/testcases/org...
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestFormulas.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,7 +14,6 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.usermodel;
@@ -27,6 +25,7 @@
import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.util.TempFile;
@@ -34,64 +33,62 @@
* @author Andrew C. Oliver (acoliver at apache dot org)
* @author Avik Sengupta
*/
+public final class TestFormulas extends TestCase {
-public class TestFormulas
-extends TestCase {
- public TestFormulas(String s) {
- super(s);
+ private static HSSFWorkbook openSample(String sampleFileName) {
+ return HSSFTestDataSamples.openSampleWorkbook(sampleFileName);
}
-
+
/**
* Add 1+1 -- WHoohoo!
*/
-
+
public void testBasicAddIntegers()
throws Exception {
-
- short rownum = 0;
+
File file = TempFile.createTempFile("testFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
r = s.createRow((short)1);
c = r.createCell((short)1);
c.setCellFormula(1 + "+" + 1);
-
+
wb.write(out);
out.close();
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
r = s.getRow((short)1);
c = r.getCell((short)1);
-
+
assertTrue("Formula is as expected",("1+1".equals(c.getCellFormula())));
in.close();
}
-
+
/**
* Add various integers
*/
-
+
public void testAddIntegers()
throws Exception {
binomialOperator("+");
}
-
+
/**
* Multiply various integers
*/
-
+
public void testMultplyIntegers()
throws Exception {
binomialOperator("*");
}
-
+
/**
* Subtract various integers
*/
@@ -99,7 +96,7 @@
throws Exception {
binomialOperator("-");
}
-
+
/**
* Subtract various integers
*/
@@ -107,7 +104,7 @@
throws Exception {
binomialOperator("/");
}
-
+
/**
* Exponentialize various integers;
*/
@@ -119,36 +116,36 @@
/**
* Concatinate two numbers 1&2 = 12
*/
- public void testConcatIntegers()
+ public void testConcatIntegers()
throws Exception {
binomialOperator("&");
}
-
+
/**
* tests 1*2+3*4
*/
- public void testOrderOfOperationsMultiply()
+ public void testOrderOfOperationsMultiply()
throws Exception {
orderTest("1*2+3*4");
}
-
+
/**
* tests 1*2+3^4
*/
- public void testOrderOfOperationsPower()
+ public void testOrderOfOperationsPower()
throws Exception {
orderTest("1*2+3^4");
}
-
+
/**
* Tests that parenthesis are obeyed
*/
- public void testParenthesis()
+ public void testParenthesis()
throws Exception {
orderTest("(1*3)+2+(1+2)*(3^4)^5");
}
-
- public void testReferencesOpr()
+
+ public void testReferencesOpr()
throws Exception {
String[] operation = new String[] {
"+", "-", "*", "/", "^", "&"
@@ -157,7 +154,7 @@
operationRefTest(operation[k]);
}
}
-
+
/**
* Tests creating a file with floating point in a formula.
*
@@ -167,32 +164,31 @@
floatTest("*");
floatTest("/");
}
-
+
private void floatTest(String operator)
throws Exception {
- short rownum = 0;
File file = TempFile.createTempFile("testFormulaFloat",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
-
+
r = s.createRow((short)0);
c = r.createCell((short)1);
c.setCellFormula(""+Float.MIN_VALUE + operator + Float.MIN_VALUE);
-
+
for (short x = 1; x < Short.MAX_VALUE && x > 0; x=(short)(x*2) ) {
r = s.createRow((short) x);
-
+
for (short y = 1; y < 256 && y > 0; y= (short) (y +2)) {
-
+
c = r.createCell((short) y);
c.setCellFormula("" + x+"."+y + operator + y +"."+x);
-
-
+
+
}
}
if (s.getLastRowNum() < Short.MAX_VALUE) {
@@ -205,21 +201,20 @@
assertTrue("file exists",file.exists());
out=null;wb=null; //otherwise we get out of memory error!
floatVerify(operator,file);
-
+
}
-
+
private void floatVerify(String operator, File file)
throws Exception {
- short rownum = 0;
-
+
FileInputStream in = new FileInputStream(file);
HSSFWorkbook wb = new HSSFWorkbook(in);
HSSFSheet s = wb.getSheetAt(0);
HSSFRow r = null;
HSSFCell c = null;
-
- // dont know how to check correct result .. for the moment, we just verify that the file can be read.
-
+
+ // dont know how to check correct result .. for the moment, we just verify that the file can be read.
+
for (short x = 1; x < Short.MAX_VALUE && x > 0; x=(short)(x*2)) {
r = s.getRow((short) x);
@@ -227,40 +222,40 @@
c = r.getCell((short) y);
assertTrue("got a formula",c.getCellFormula()!=null);
-
+
assertTrue("loop Formula is as expected "+x+"."+y+operator+y+"."+x+"!="+c.getCellFormula(),(
(""+x+"."+y+operator+y+"."+x).equals(c.getCellFormula()) ));
-
+
}
}
-
+
in.close();
assertTrue("file exists",file.exists());
}
-
- public void testAreaSum()
+
+ public void testAreaSum()
throws Exception {
areaFunctionTest("SUM");
}
-
- public void testAreaAverage()
+
+ public void testAreaAverage()
throws Exception {
areaFunctionTest("AVERAGE");
}
-
- public void testRefArraySum()
+
+ public void testRefArraySum()
throws Exception {
refArrayFunctionTest("SUM");
}
-
- public void testAreaArraySum()
+
+ public void testAreaArraySum()
throws Exception {
refAreaArrayFunctionTest("SUM");
}
-
-
- private void operationRefTest(String operator)
+
+
+ private void operationRefTest(String operator)
throws Exception {
File file = TempFile.createTempFile("testFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
@@ -268,17 +263,17 @@
HSSFSheet s = wb.createSheet();
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
r = s.createRow((short)0);
c = r.createCell((short)1);
c.setCellFormula("A2" + operator + "A3");
-
+
for (short x = 1; x < Short.MAX_VALUE && x > 0; x=(short)(x*2)) {
r = s.createRow((short) x);
- for (short y = 1; y < 256 && y > 0; y++) {
-
+ for (short y = 1; y < 256 && y > 0; y++) {
+
String ref=null;
String ref2=null;
short refx1=0;
@@ -292,7 +287,7 @@
refx1=(short)(x-4);
refx2=(short)(x-3);
}
-
+
if (y+50 < 255) {
refy1=(short)(y+50);
refy2=(short)(y+49);
@@ -300,7 +295,7 @@
refy1=(short)(y-4);
refy2=(short)(y-3);
}
-
+
c = r.getCell((short) y);
CellReference cr= new CellReference(refx1,refy1, false, false);
ref=cr.formatAsString();
@@ -309,39 +304,38 @@
c = r.createCell((short) y);
c.setCellFormula("" + ref + operator + ref2);
-
-
+
+
}
}
-
+
//make sure we do the maximum value of the Int operator
if (s.getLastRowNum() < Short.MAX_VALUE) {
r = s.createRow((short)0);
c = r.createCell((short)0);
c.setCellFormula("" + "B1" + operator + "IV255");
}
-
+
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
operationalRefVerify(operator,file);
}
-
+
/**
* Opens the sheet we wrote out by binomialOperator and makes sure the formulas
* all match what we expect (x operator y)
*/
private void operationalRefVerify(String operator, File file)
throws Exception {
- short rownum = 0;
-
+
FileInputStream in = new FileInputStream(file);
HSSFWorkbook wb = new HSSFWorkbook(in);
HSSFSheet s = wb.getSheetAt(0);
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
r = s.getRow((short)0);
c = r.getCell((short)1);
@@ -350,12 +344,12 @@
( ("A2"+operator+"A3").equals(c.getCellFormula())
));
-
+
for (short x = 1; x < Short.MAX_VALUE && x > 0; x=(short)(x*2)) {
r = s.getRow((short) x);
- for (short y = 1; y < 256 && y > 0; y++) {
-
+ for (short y = 1; y < 256 && y > 0; y++) {
+
String ref=null;
String ref2=null;
short refx1=0;
@@ -369,7 +363,7 @@
refx1=(short)(x-4);
refx2=(short)(x-3);
}
-
+
if (y+50 < 255) {
refy1=(short)(y+50);
refy2=(short)(y+49);
@@ -383,36 +377,36 @@
ref=cr.formatAsString();
cr=new CellReference(refx2,refy2, false, false);
ref2=cr.formatAsString();
-
-
+
+
assertTrue("loop Formula is as expected "+ref+operator+ref2+"!="+c.getCellFormula(),(
(""+ref+operator+ref2).equals(c.getCellFormula())
)
);
-
-
+
+
}
}
-
+
//test our maximum values
r = s.getRow((short)0);
c = r.getCell((short)0);
-
+
assertTrue("maxval Formula is as expected",(
("B1"+operator+"IV255").equals(c.getCellFormula())
)
);
-
+
in.close();
assertTrue("file exists",file.exists());
}
-
-
+
+
/**
* tests order wrting out == order writing in for a given formula
- */
- private void orderTest(String formula)
+ */
+ private void orderTest(String formula)
throws Exception {
File file = TempFile.createTempFile("testFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
@@ -420,12 +414,12 @@
HSSFSheet s = wb.createSheet();
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
r = s.createRow((short)0);
c = r.createCell((short)1);
c.setCellFormula(formula);
-
+
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
@@ -433,17 +427,17 @@
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
-
+
//get our minimum values
r = s.getRow((short)0);
c = r.getCell((short)1);
assertTrue("minval Formula is as expected",
formula.equals(c.getCellFormula())
);
-
+
in.close();
}
-
+
/**
* All multi-binomial operator tests use this to create a worksheet with a
* huge set of x operator y formulas. Next we call binomialVerify and verify
@@ -451,19 +445,18 @@
*/
private void binomialOperator(String operator)
throws Exception {
- short rownum = 0;
File file = TempFile.createTempFile("testFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
r = s.createRow((short)0);
c = r.createCell((short)1);
c.setCellFormula(1 + operator + 1);
-
+
for (short x = 1; x < Short.MAX_VALUE && x > 0; x=(short)(x*2)) {
r = s.createRow((short) x);
@@ -471,45 +464,44 @@
c = r.createCell((short) y);
c.setCellFormula("" + x + operator + y);
-
+
}
}
-
+
//make sure we do the maximum value of the Int operator
if (s.getLastRowNum() < Short.MAX_VALUE) {
r = s.createRow((short)0);
c = r.createCell((short)0);
c.setCellFormula("" + Short.MAX_VALUE + operator + Short.MAX_VALUE);
}
-
+
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
-
+
binomialVerify(operator,file);
}
-
+
/**
* Opens the sheet we wrote out by binomialOperator and makes sure the formulas
* all match what we expect (x operator y)
*/
private void binomialVerify(String operator, File file)
throws Exception {
- short rownum = 0;
-
+
FileInputStream in = new FileInputStream(file);
HSSFWorkbook wb = new HSSFWorkbook(in);
HSSFSheet s = wb.getSheetAt(0);
HSSFRow r = null;
HSSFCell c = null;
-
+
//get our minimum values
r = s.getRow((short)0);
c = r.getCell((short)1);
assertTrue("minval Formula is as expected 1"+operator+"1 != "+c.getCellFormula(),
( ("1"+operator+"1").equals(c.getCellFormula())
));
-
+
for (short x = 1; x < Short.MAX_VALUE && x > 0; x=(short)(x*2)) {
r = s.getRow((short) x);
@@ -521,35 +513,34 @@
(""+x+operator+y).equals(c.getCellFormula())
)
);
-
-
+
+
}
}
-
+
//test our maximum values
r = s.getRow((short)0);
c = r.getCell((short)0);
-
-
+
+
assertTrue("maxval Formula is as expected",(
(""+Short.MAX_VALUE+operator+Short.MAX_VALUE).equals(c.getCellFormula())
)
);
-
+
in.close();
assertTrue("file exists",file.exists());
}
-
-
+
+
/**
* Writes a function then tests to see if its correct
*
*/
- public void areaFunctionTest(String function)
+ public void areaFunctionTest(String function)
throws Exception {
-
- short rownum = 0;
+
File file = TempFile.createTempFile("testFormulaAreaFunction"+function,".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -567,27 +558,26 @@
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)0);
-
+
assertTrue("function ="+function+"(A2:A3)",
( (function+"(A2:A3)").equals((function+"(A2:A3)")) )
);
in.close();
}
-
+
/**
* Writes a function then tests to see if its correct
*
*/
- public void refArrayFunctionTest(String function)
+ public void refArrayFunctionTest(String function)
throws Exception {
-
- short rownum = 0;
+
File file = TempFile.createTempFile("testFormulaArrayFunction"+function,".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -605,28 +595,27 @@
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)0);
-
+
assertTrue("function ="+function+"(A2,A3)",
( (function+"(A2,A3)").equals(c.getCellFormula()) )
);
in.close();
}
-
-
+
+
/**
* Writes a function then tests to see if its correct
*
*/
- public void refAreaArrayFunctionTest(String function)
+ public void refAreaArrayFunctionTest(String function)
throws Exception {
-
- short rownum = 0;
+
File file = TempFile.createTempFile("testFormulaAreaArrayFunction"+function,".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -645,26 +634,26 @@
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)0);
-
+
assertTrue("function ="+function+"(A2:A4,B2:B4)",
( (function+"(A2:A4,B2:B4)").equals(c.getCellFormula()) )
);
-
+
c=r.getCell((short) 1);
assertTrue("function ="+function+"($A$2:$A4,B$2:B4)",
( (function+"($A$2:$A4,B$2:B4)").equals(c.getCellFormula()) )
);
in.close();
}
-
-
-
+
+
+
public void testAbsRefs() throws Exception {
File file = TempFile.createTempFile("testFormulaAbsRef",".xls");
FileOutputStream out = new FileOutputStream(file);
@@ -686,11 +675,11 @@
c.setCellFormula("$A$3+$A$2");
c=r.createCell( (short) 4);
c.setCellFormula("SUM($A$3,$A$2)");
-
+
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
@@ -707,12 +696,10 @@
assertTrue("SUM($A$3,$A$2)", ("SUM($A$3,$A$2)").equals(c.getCellFormula()));
in.close();
}
-
+
public void testSheetFunctions()
throws IOException
{
- String filename = System.getProperty("HSSF.testdata.path");
-
File file = TempFile.createTempFile("testSheetFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -722,7 +709,7 @@
r = s.createRow((short)0);
c = r.createCell((short)0);c.setCellValue(1);
c = r.createCell((short)1);c.setCellValue(2);
-
+
s = wb.createSheet("B");
r = s.createRow((short)0);
c=r.createCell((short)0); c.setCellFormula("AVERAGE(A!A1:B1)");
@@ -730,9 +717,9 @@
c=r.createCell((short)2); c.setCellFormula("A!$A$1+A!$B1");
wb.write(out);
out.close();
-
+
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheet("B");
@@ -743,7 +730,7 @@
assertTrue("expected: A!A1+A!B1 got: "+c.getCellFormula(), ("A!A1+A!B1").equals(c.getCellFormula()));
in.close();
}
-
+
public void testRVAoperands() throws Exception {
File file = TempFile.createTempFile("testFormulaRVA",".xls");
FileOutputStream out = new FileOutputStream(file);
@@ -767,26 +754,24 @@
c.setCellFormula("POWER(A2,A3)");
c=r.createCell( (short) 5);
c.setCellFormula("SIN(A2)");
-
+
c=r.createCell( (short) 6);
c.setCellFormula("SUM(A2:A3)");
-
+
c=r.createCell( (short) 7);
c.setCellFormula("SUM(A2,A3)");
-
+
r = s.createRow((short) 1);c=r.createCell( (short) 0); c.setCellValue(2.0);
r = s.createRow((short) 2);c=r.createCell( (short) 0); c.setCellValue(3.0);
-
+
wb.write(out);
out.close();
assertTrue("file exists",file.exists());
}
-
+
public void testStringFormulas()
throws IOException
{
- String readFilename = System.getProperty("HSSF.testdata.path");
-
File file = TempFile.createTempFile("testStringFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -797,25 +782,21 @@
c=r.createCell((short)1); c.setCellFormula("UPPER(\"abc\")");
c=r.createCell((short)2); c.setCellFormula("LOWER(\"ABC\")");
c=r.createCell((short)3); c.setCellFormula("CONCATENATE(\" my \",\" name \")");
-
+
wb.write(out);
out.close();
-
- assertTrue("file exists",file.exists());
-
- FileInputStream in = new FileInputStream(readFilename+File.separator+"StringFormulas.xls");
- wb = new HSSFWorkbook(in);
+
+ wb = openSample("StringFormulas.xls");
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)0);
assertTrue("expected: UPPER(\"xyz\") got "+c.getCellFormula(), ("UPPER(\"xyz\")").equals(c.getCellFormula()));
//c = r.getCell((short)1);
//assertTrue("expected: A!A1+A!B1 got: "+c.getCellFormula(), ("A!A1+A!B1").equals(c.getCellFormula()));
- in.close();
}
-
-
-
+
+
+
public void testLogicalFormulas()
throws IOException
{
@@ -829,26 +810,24 @@
r = s.createRow((short)0);
c=r.createCell((short)1); c.setCellFormula("IF(A1<A2,B1,B2)");
-
+
wb.write(out);
out.close();
-
+
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)1);
assertEquals("Formula in cell 1 ","IF(A1<A2,B1,B2)",c.getCellFormula());
- in.close();
+ in.close();
}
-
+
public void testDateFormulas()
throws IOException
{
- String readFilename = System.getProperty("HSSF.testdata.path");
-
File file = TempFile.createTempFile("testDateFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -866,27 +845,25 @@
// assertEquals("Checking hour = " + hour, date.getTime().getTime(),
// HSSFDateUtil.getJavaDate(excelDate).getTime());
-
- for (int k=1; k < 100; k++) {
+
+ for (int k=1; k < 100; k++) {
r=s.createRow((short)k);
- c=r.createCell((short)0);
+ c=r.createCell((short)0);
c.setCellFormula("A"+(k)+"+1");
c.setCellStyle(cellStyle);
}
wb.write(out);
out.close();
-
+
assertTrue("file exists",file.exists());
-
+
}
-
+
public void testIfFormulas()
throws IOException
{
- String readFilename = System.getProperty("HSSF.testdata.path");
-
File file = TempFile.createTempFile("testIfFormula",".xls");
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
@@ -898,24 +875,22 @@
c=r.createCell((short)2); c.setCellValue(2);
c=r.createCell((short)3); c.setCellFormula("MAX(A1:B1)");
c=r.createCell((short)4); c.setCellFormula("IF(A1=D1,\"A1\",\"B1\")");
-
+
wb.write(out);
out.close();
-
+
assertTrue("file exists",file.exists());
-
+
FileInputStream in = new FileInputStream(file);
wb = new HSSFWorkbook(in);
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)4);
-
- assertTrue("expected: IF(A1=D1,\"A1\",\"B1\") got "+c.getCellFormula(), ("IF(A1=D1,\"A1\",\"B1\")").equals(c.getCellFormula()));
+
+ assertTrue("expected: IF(A1=D1,\"A1\",\"B1\") got "+c.getCellFormula(), ("IF(A1=D1,\"A1\",\"B1\")").equals(c.getCellFormula()));
in.close();
-
-
- in = new FileInputStream(readFilename+File.separator+"IfFormulaTest.xls");
- wb = new HSSFWorkbook(in);
+
+ wb = openSample("IfFormulaTest.xls");
s = wb.getSheetAt(0);
r = s.getRow(3);
c = r.getCell((short)0);
@@ -923,118 +898,107 @@
//c = r.getCell((short)1);
//assertTrue("expected: A!A1+A!B1 got: "+c.getCellFormula(), ("A!A1+A!B1").equals(c.getCellFormula()));
in.close();
-
- File simpleIf = TempFile.createTempFile("testSimpleIfFormulaWrite",".xls");
- out = new FileOutputStream(simpleIf);
- wb = new HSSFWorkbook();
- s = wb.createSheet("testSheet1");
- r = null;
- c = null;
- r = s.createRow((short)0);
- c=r.createCell((short)0); c.setCellFormula("IF(1=1,0,1)");
-
- wb.write(out);
- out.close();
- assertTrue("file exists", simpleIf.exists());
-
- assertTrue("length of simpleIf file is zero", (simpleIf.length()>0));
-
- File nestedIf = TempFile.createTempFile("testNestedIfFormula",".xls");
- out = new FileOutputStream(nestedIf);
- wb = new HSSFWorkbook();
- s = wb.createSheet("testSheet1");
- r = null;
- c = null;
- r = s.createRow((short)0);
- c=r.createCell((short)0);
- c.setCellValue(1);
-
- c=r.createCell((short)1);
- c.setCellValue(3);
-
-
- HSSFCell formulaCell=r.createCell((short)3);
-
- r = s.createRow((short)1);
- c=r.createCell((short)0);
- c.setCellValue(3);
-
- c=r.createCell((short)1);
- c.setCellValue(7);
-
- formulaCell.setCellFormula("IF(A1=B1,AVERAGE(A1:B1),AVERAGE(A2:B2))");
-
-
- wb.write(out);
- out.close();
- assertTrue("file exists", nestedIf.exists());
-
- assertTrue("length of nestedIf file is zero", (nestedIf.length()>0));
- }
-
- public void testSumIf()
- throws IOException
- {
- String readFilename = System.getProperty("HSSF.testdata.path");
- String function ="SUMIF(A1:A5,\">4000\",B1:B5)";
-
- File inFile = new File(readFilename+"/sumifformula.xls");
- FileInputStream in = new FileInputStream(inFile);
- HSSFWorkbook wb = new HSSFWorkbook(in);
- in.close();
-
- HSSFSheet s = wb.getSheetAt(0);
- HSSFRow r = s.getRow(0);
- HSSFCell c = r.getCell((short)2);
- assertEquals(function, c.getCellFormula());
-
-
- File file = TempFile.createTempFile("testSumIfFormula",".xls");
- FileOutputStream out = new FileOutputStream(file);
- wb = new HSSFWorkbook();
- s = wb.createSheet();
-
- r = s.createRow((short)0);
- c=r.createCell((short)0); c.setCellValue((double)1000);
- c=r.createCell((short)1); c.setCellValue((double)1);
-
-
- r = s.createRow((short)1);
- c=r.createCell((short)0); c.setCellValue((double)2000);
- c=r.createCell((short)1); c.setCellValue((double)2);
-
- r = s.createRow((short)2);
- c=r.createCell((short)0); c.setCellValue((double)3000);
- c=r.createCell((short)1); c.setCellValue((double)3);
-
- r = s.createRow((short)3);
- c=r.createCell((short)0); c.setCellValue((double)4000);
- c=r.createCell((short)1); c.setCellValue((double)4);
-
- r = s.createRow((short)4);
- c=r.createCell((short)0); c.setCellValue((double)5000);
- c=r.createCell((short)1); c.setCellValue((double)5);
-
- r = s.getRow(0);
- c=r.createCell((short)2); c.setCellFormula(function);
-
- wb.write(out);
- out.close();
-
- assertTrue("sumif file doesnt exists", (file.exists()));
- assertTrue("sumif == 0 bytes", file.length() > 0);
- }
-
- public void testSquareMacro() throws IOException {
- File dir = new File(System.getProperty("HSSF.testdata.path"));
- File xls = new File(dir, "SquareMacro.xls");
- FileInputStream in = new FileInputStream(xls);
- HSSFWorkbook w;
- try {
- w = new HSSFWorkbook(in);
- } finally {
- in.close();
- }
+
+ File simpleIf = TempFile.createTempFile("testSimpleIfFormulaWrite",".xls");
+ out = new FileOutputStream(simpleIf);
+ wb = new HSSFWorkbook();
+ s = wb.createSheet("testSheet1");
+ r = null;
+ c = null;
+ r = s.createRow((short)0);
+ c=r.createCell((short)0); c.setCellFormula("IF(1=1,0,1)");
+
+ wb.write(out);
+ out.close();
+ assertTrue("file exists", simpleIf.exists());
+
+ assertTrue("length of simpleIf file is zero", (simpleIf.length()>0));
+
+ File nestedIf = TempFile.createTempFile("testNestedIfFormula",".xls");
+ out = new FileOutputStream(nestedIf);
+ wb = new HSSFWorkbook();
+ s = wb.createSheet("testSheet1");
+ r = null;
+ c = null;
+ r = s.createRow((short)0);
+ c=r.createCell((short)0);
+ c.setCellValue(1);
+
+ c=r.createCell((short)1);
+ c.setCellValue(3);
+
+
+ HSSFCell formulaCell=r.createCell((short)3);
+
+ r = s.createRow((short)1);
+ c=r.createCell((short)0);
+ c.setCellValue(3);
+
+ c=r.createCell((short)1);
+ c.setCellValue(7);
+
+ formulaCell.setCellFormula("IF(A1=B1,AVERAGE(A1:B1),AVERAGE(A2:B2))");
+
+
+ wb.write(out);
+ out.close();
+ assertTrue("file exists", nestedIf.exists());
+
+ assertTrue("length of nestedIf file is zero", (nestedIf.length()>0));
+ }
+
+ public void testSumIf()
+ throws IOException
+ {
+ String function ="SUMIF(A1:A5,\">4000\",B1:B5)";
+
+ HSSFWorkbook wb = openSample("sumifformula.xls");
+
+ HSSFSheet s = wb.getSheetAt(0);
+ HSSFRow r = s.getRow(0);
+ HSSFCell c = r.getCell((short)2);
+ assertEquals(function, c.getCellFormula());
+
+
+ File file = TempFile.createTempFile("testSumIfFormula",".xls");
+ FileOutputStream out = new FileOutputStream(file);
+ wb = new HSSFWorkbook();
+ s = wb.createSheet();
+
+ r = s.createRow((short)0);
+ c=r.createCell((short)0); c.setCellValue((double)1000);
+ c=r.createCell((short)1); c.setCellValue((double)1);
+
+
+ r = s.createRow((short)1);
+ c=r.createCell((short)0); c.setCellValue((double)2000);
+ c=r.createCell((short)1); c.setCellValue((double)2);
+
+ r = s.createRow((short)2);
+ c=r.createCell((short)0); c.setCellValue((double)3000);
+ c=r.createCell((short)1); c.setCellValue((double)3);
+
+ r = s.createRow((short)3);
+ c=r.createCell((short)0); c.setCellValue((double)4000);
+ c=r.createCell((short)1); c.setCellValue((double)4);
+
+ r = s.createRow((short)4);
+ c=r.createCell((short)0); c.setCellValue((double)5000);
+ c=r.createCell((short)1); c.setCellValue((double)5);
+
+ r = s.getRow(0);
+ c=r.createCell((short)2); c.setCellFormula(function);
+
+ wb.write(out);
+ out.close();
+
+ assertTrue("sumif file doesnt exists", (file.exists()));
+ assertTrue("sumif == 0 bytes", file.length() > 0);
+ }
+
+ public void testSquareMacro() {
+ HSSFWorkbook w = openSample("SquareMacro.xls");
+
HSSFSheet s0 = w.getSheetAt(0);
HSSFRow[] r = {s0.getRow(0), s0.getRow(1)};
@@ -1071,78 +1035,58 @@
assertEquals(4d, d2.getNumericCellValue(), 1e-9);
}
- public void testStringFormulaRead() throws IOException {
- File dir = new File(System.getProperty("HSSF.testdata.path"));
- File xls = new File(dir, "StringFormulas.xls");
- FileInputStream in = new FileInputStream(xls);
- HSSFWorkbook w;
- try {
- w = new HSSFWorkbook(in);
- } finally {
- in.close();
- }
+ public void testStringFormulaRead() {
+ HSSFWorkbook w = openSample("StringFormulas.xls");
HSSFCell c = w.getSheetAt(0).getRow(0).getCell((short)0);
- assertEquals("String Cell value","XYZ",c.getStringCellValue());
+ assertEquals("String Cell value","XYZ",c.getRichStringCellValue().getString());
}
-
+
/** test for bug 34021*/
public void testComplexSheetRefs () throws IOException {
- HSSFWorkbook sb = new HSSFWorkbook();
- HSSFSheet s1 = sb.createSheet("Sheet a.1");
- HSSFSheet s2 = sb.createSheet("Sheet.A");
- s2.createRow(1).createCell((short) 2).setCellFormula("'Sheet a.1'!A1");
- s1.createRow(1).createCell((short) 2).setCellFormula("'Sheet.A'!A1");
- File file = TempFile.createTempFile("testComplexSheetRefs",".xls");
- sb.write(new FileOutputStream(file));
- }
-
- /*Unknown Ptg 3C*/
- public void test27272_1() throws Exception {
- String readFilename = System.getProperty("HSSF.testdata.path");
- File inFile = new File(readFilename+"/27272_1.xls");
- FileInputStream in = new FileInputStream(inFile);
- HSSFWorkbook wb = new HSSFWorkbook(in);
- wb.getSheetAt(0);
- assertEquals("Reference for named range ", "#REF!",wb.getNameAt(0).getReference());
- File outF = File.createTempFile("bug27272_1",".xls");
- wb.write(new FileOutputStream(outF));
- System.out.println("Open "+outF.getAbsolutePath()+" in Excel");
- }
- /*Unknown Ptg 3D*/
- public void test27272_2() throws Exception {
- String readFilename = System.getProperty("HSSF.testdata.path");
- File inFile = new File(readFilename+"/27272_2.xls");
- FileInputStream in = new FileInputStream(inFile);
- HSSFWorkbook wb = new HSSFWorkbook(in);
- assertEquals("Reference for named range ", "#REF!",wb.getNameAt(0).getReference());
- File outF = File.createTempFile("bug27272_2",".xls");
- wb.write(new FileOutputStream(outF));
- System.out.println("Open "+outF.getAbsolutePath()+" in Excel");
- }
-
- /* MissingArgPtg */
- public void testMissingArgPtg() throws Exception {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFCell cell = wb.createSheet("Sheet1").createRow(4).createCell((short) 0);
- cell.setCellFormula("IF(A1=\"A\",1,)");
- }
-
- public void testSharedFormula() throws Exception {
- String readFilename = System.getProperty("HSSF.testdata.path");
- File inFile = new File(readFilename+"/SharedFormulaTest.xls");
- FileInputStream fis = new FileInputStream(inFile);
- HSSFWorkbook wb = new HSSFWorkbook(fis);
-
- assertEquals("A$1*2", wb.getSheetAt(0).getRow(1).getCell((short)1).toString());
- assertEquals("$A11*2", wb.getSheetAt(0).getRow(11).getCell((short)1).toString());
- assertEquals("DZ2*2", wb.getSheetAt(0).getRow(1).getCell((short)128).toString());
- assertEquals("B32770*2", wb.getSheetAt(0).getRow(32768).getCell((short)1).toString());
- }
-
+ HSSFWorkbook sb = new HSSFWorkbook();
+ HSSFSheet s1 = sb.createSheet("Sheet a.1");
+ HSSFSheet s2 = sb.createSheet("Sheet.A");
+ s2.createRow(1).createCell((short) 2).setCellFormula("'Sheet a.1'!A1");
+ s1.createRow(1).createCell((short) 2).setCellFormula("'Sheet.A'!A1");
+ File file = TempFile.createTempFile("testComplexSheetRefs",".xls");
+ sb.write(new FileOutputStream(file));
+ }
+
+ /*Unknown Ptg 3C*/
+ public void test27272_1() throws Exception {
+ HSSFWorkbook wb = openSample("27272_1.xls");
+ wb.getSheetAt(0);
+ assertEquals("Reference for named range ", "#REF!",wb.getNameAt(0).getReference());
+ File outF = File.createTempFile("bug27272_1",".xls");
+ wb.write(new FileOutputStream(outF));
+ System.out.println("Open "+outF.getAbsolutePath()+" in Excel");
+ }
+ /*Unknown Ptg 3D*/
+ public void test27272_2() throws Exception {
+ HSSFWorkbook wb = openSample("27272_2.xls");
+ assertEquals("Reference for named range ", "#REF!",wb.getNameAt(0).getReference());
+ File outF = File.createTempFile("bug27272_2",".xls");
+ wb.write(new FileOutputStream(outF));
+ System.out.println("Open "+outF.getAbsolutePath()+" in Excel");
+ }
+
+ /* MissingArgPtg */
+ public void testMissingArgPtg() throws Exception {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFCell cell = wb.createSheet("Sheet1").createRow(4).createCell((short) 0);
+ cell.setCellFormula("IF(A1=\"A\",1,)");
+ }
+
+ public void testSharedFormula() {
+ HSSFWorkbook wb = openSample("SharedFormulaTest.xls");
+
+ assertEquals("A$1*2", wb.getSheetAt(0).getRow(1).getCell((short)1).toString());
+ assertEquals("$A11*2", wb.getSheetAt(0).getRow(11).getCell((short)1).toString());
+ assertEquals("DZ2*2", wb.getSheetAt(0).getRow(1).getCell((short)128).toString());
+ assertEquals("B32770*2", wb.getSheetAt(0).getRow(32768).getCell((short)1).toString());
+ }
+
public static void main(String [] args) {
- System.out
- .println("Testing org.apache.poi.hssf.usermodel.TestFormulas");
junit.textui.TestRunner.run(TestFormulas.class);
}
-
}
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=645483&r1=645482&r2=645483&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 Apr 7 05:51:50 2008
@@ -17,18 +17,21 @@
package org.apache.poi.hssf.usermodel;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.Date;
import java.util.GregorianCalendar;
import junit.framework.AssertionFailedError;
import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.model.Sheet;
import org.apache.poi.hssf.util.HSSFColor;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.util.TempFile;
/**
@@ -40,12 +43,26 @@
*/
public final class TestHSSFCell extends TestCase {
+ private static HSSFWorkbook openSample(String sampleFileName) {
+ return HSSFTestDataSamples.openSampleWorkbook(sampleFileName);
+ }
+ private static HSSFWorkbook writeOutAndReadBack(HSSFWorkbook original) {
+
+ try {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
+ original.write(baos);
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ return new HSSFWorkbook(bais);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
/**
* test that Boolean and Error types (BoolErrRecord) are supported properly.
*/
public void testBoolErr()
throws java.io.IOException {
- String readFilename = System.getProperty("HSSF.testdata.path");
File file = TempFile.createTempFile("testBoolErr",".xls");
FileOutputStream out = new FileOutputStream(file);
@@ -102,33 +119,24 @@
public void testDateWindowingRead() throws Exception {
GregorianCalendar cal = new GregorianCalendar(2000,0,1); // Jan. 1, 2000
Date date = cal.getTime();
- String path = System.getProperty("HSSF.testdata.path");
// first check a file with 1900 Date Windowing
- String filename = path + "/1900DateWindowing.xls";
- FileInputStream stream = new FileInputStream(filename);
- POIFSFileSystem fs = new POIFSFileSystem(stream);
- HSSFWorkbook workbook = new HSSFWorkbook(fs);
+ HSSFWorkbook workbook = openSample("1900DateWindowing.xls");
HSSFSheet sheet = workbook.getSheetAt(0);
assertEquals("Date from file using 1900 Date Windowing",
date.getTime(),
sheet.getRow(0).getCell((short)0)
.getDateCellValue().getTime());
- stream.close();
// now check a file with 1904 Date Windowing
- filename = path + "/1904DateWindowing.xls";
- stream = new FileInputStream(filename);
- fs = new POIFSFileSystem(stream);
- workbook = new HSSFWorkbook(fs);
+ workbook = openSample("1904DateWindowing.xls");
sheet = workbook.getSheetAt(0);
assertEquals("Date from file using 1904 Date Windowing",
date.getTime(),
sheet.getRow(0).getCell((short)0)
.getDateCellValue().getTime());
- stream.close();
}
/**
@@ -140,55 +148,39 @@
public void testDateWindowingWrite() throws Exception {
GregorianCalendar cal = new GregorianCalendar(2000,0,1); // Jan. 1, 2000
Date date = cal.getTime();
- String path = System.getProperty("HSSF.testdata.path");
// first check a file with 1900 Date Windowing
- String filename = path + "/1900DateWindowing.xls";
- writeCell(filename, 0, (short) 1, date);
+ HSSFWorkbook wb;
+ wb = openSample("1900DateWindowing.xls");
+
+ setCell(wb, 0, 1, date);
+ wb = writeOutAndReadBack(wb);
+
assertEquals("Date from file using 1900 Date Windowing",
date.getTime(),
- readCell(filename, 0, (short) 1).getTime());
+ readCell(wb, 0, 1).getTime());
// now check a file with 1904 Date Windowing
- filename = path + "/1904DateWindowing.xls";
- writeCell(filename, 0, (short) 1, date);
+ wb = openSample("1904DateWindowing.xls");
+ setCell(wb, 0, 1, date);
+ wb = writeOutAndReadBack(wb);
assertEquals("Date from file using 1900 Date Windowing",
date.getTime(),
- readCell(filename, 0, (short) 1).getTime());
+ readCell(wb, 0, 1).getTime());
}
- /**
- * Sets cell value and writes file.
- */
- private void writeCell(String filename,
- int rowIdx, short colIdx, Date date) throws Exception {
- FileInputStream stream = new FileInputStream(filename);
- POIFSFileSystem fs = new POIFSFileSystem(stream);
- HSSFWorkbook workbook = new HSSFWorkbook(fs);
+ private static void setCell(HSSFWorkbook workbook, int rowIdx, int colIdx, Date date) {
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFRow row = sheet.getRow(rowIdx);
HSSFCell cell = row.getCell(colIdx);
if (cell == null) {
- cell = row.createCell(colIdx);
+ cell = row.createCell((short)colIdx);
}
cell.setCellValue(date);
-
- // Write the file
- stream.close();
- FileOutputStream oStream = new FileOutputStream(filename);
- workbook.write(oStream);
- oStream.close();
}
- /**
- * Reads cell value from file.
- */
- private Date readCell(String filename,
- int rowIdx, short colIdx) throws Exception {
- FileInputStream stream = new FileInputStream(filename);
- POIFSFileSystem fs = new POIFSFileSystem(stream);
- HSSFWorkbook workbook = new HSSFWorkbook(fs);
+ private static Date readCell(HSSFWorkbook workbook, int rowIdx, int colIdx) {
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFRow row = sheet.getRow(rowIdx);
HSSFCell cell = row.getCell(colIdx);
@@ -201,12 +193,7 @@
public void testActiveCell() throws Exception
{
//read in sample
- String dir = System.getProperty("HSSF.testdata.path");
- File sample = new File(dir + "/Simple.xls");
- assertTrue("Simple.xls exists and is readable", sample.canRead());
- FileInputStream fis = new FileInputStream(sample);
- HSSFWorkbook book = new HSSFWorkbook(fis);
- fis.close();
+ HSSFWorkbook book = openSample("Simple.xls");
//check initial position
HSSFSheet umSheet = book.getSheetAt(0);
@@ -225,14 +212,8 @@
3, s.getActiveCellRow());
//write book to temp file; read and verify that position is serialized
- File temp = TempFile.createTempFile("testActiveCell", ".xls");
- FileOutputStream fos = new FileOutputStream(temp);
- book.write(fos);
- fos.close();
-
- fis = new FileInputStream(temp);
- book = new HSSFWorkbook(fis);
- fis.close();
+ book = writeOutAndReadBack(book);
+
umSheet = book.getSheetAt(0);
s = umSheet.getSheet();
@@ -245,12 +226,8 @@
/**
* test that Cell Styles being applied to formulas remain intact
*/
- public void testFormulaStyle()
- throws java.io.IOException {
- String readFilename = System.getProperty("HSSF.testdata.path");
+ public void testFormulaStyle() {
- File file = TempFile.createTempFile("testFormulaStyle",".xls");
- FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet("testSheet1");
HSSFRow r = null;
@@ -258,7 +235,7 @@
HSSFCellStyle cs = wb.createCellStyle();
HSSFFont f = wb.createFont();
f.setFontHeightInPoints((short) 20);
- f.setColor((short) HSSFColor.RED.index);
+ f.setColor(HSSFColor.RED.index);
f.setBoldweight(f.BOLDWEIGHT_BOLD);
f.setFontName("Arial Unicode MS");
cs.setFillBackgroundColor((short)3);
@@ -273,13 +250,7 @@
c.setCellStyle(cs);
c.setCellFormula("2*3");
- wb.write(out);
- out.close();
-
- assertTrue("file exists",file.exists());
-
- FileInputStream in = new FileInputStream(file);
- wb = new HSSFWorkbook(in);
+ wb = writeOutAndReadBack(wb);
s = wb.getSheetAt(0);
r = s.getRow(0);
c = r.getCell((short)0);
@@ -293,17 +264,14 @@
assertTrue("Left Border", (cs.getBorderLeft() == (short)1));
assertTrue("Right Border", (cs.getBorderRight() == (short)1));
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));
+ public void testWithHyperlink() {
+
+ HSSFWorkbook wb = openSample("WithHyperlink.xls");
HSSFSheet sheet = wb.getSheetAt(0);
HSSFCell cell = sheet.getRow(4).getCell((short)0);
@@ -320,10 +288,9 @@
* 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));
-
+
+ HSSFWorkbook wb = openSample("WithTwoHyperLinks.xls");
+
HSSFSheet sheet = wb.getSheetAt(0);
HSSFCell cell1 = sheet.getRow(4).getCell((short)0);
@@ -346,38 +313,38 @@
/*tests the toString() method of HSSFCell*/
public void testToString() throws Exception {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet s = wb.createSheet("Sheet1");
- HSSFRow r = s.createRow(0);
- HSSFCell c;
- c=r.createCell((short) 0); c.setCellValue(true);
- assertEquals("Boolean", "TRUE", c.toString());
- c=r.createCell((short) 1); c.setCellValue(1.5);
- assertEquals("Numeric", "1.5", c.toString());
- c=r.createCell((short)(2)); c.setCellValue("Astring");
- assertEquals("String", "Astring", c.toString());
- c=r.createCell((short) 3); c.setCellErrorValue((byte) 7);
- assertEquals("Error", "#ERR7", c.toString());
- c=r.createCell((short)4); c.setCellFormula("A1+B1");
- assertEquals("Formula", "A1+B1", c.toString());
-
- //Write out the file, read it in, and then check cell values
- File f = File.createTempFile("testCellToString",".xls");
- wb.write(new FileOutputStream(f));
- wb = new HSSFWorkbook(new FileInputStream(f));
- assertTrue("File exists and can be read", f.canRead());
-
- s = wb.getSheetAt(0);r=s.getRow(0);
- c=r.getCell((short) 0);
- assertEquals("Boolean", "TRUE", c.toString());
- c=r.getCell((short) 1);
- assertEquals("Numeric", "1.5", c.toString());
- c=r.getCell((short)(2));
- assertEquals("String", "Astring", c.toString());
- c=r.getCell((short) 3);
- assertEquals("Error", "#ERR7", c.toString());
- c=r.getCell((short)4);
- assertEquals("Formula", "A1+B1", c.toString());
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet s = wb.createSheet("Sheet1");
+ HSSFRow r = s.createRow(0);
+ HSSFCell c;
+ c=r.createCell((short) 0); c.setCellValue(true);
+ assertEquals("Boolean", "TRUE", c.toString());
+ c=r.createCell((short) 1); c.setCellValue(1.5);
+ assertEquals("Numeric", "1.5", c.toString());
+ c=r.createCell((short)(2)); c.setCellValue(new HSSFRichTextString("Astring"));
+ assertEquals("String", "Astring", c.toString());
+ c=r.createCell((short) 3); c.setCellErrorValue((byte) 7);
+ assertEquals("Error", "#ERR7", c.toString());
+ c=r.createCell((short)4); c.setCellFormula("A1+B1");
+ assertEquals("Formula", "A1+B1", c.toString());
+
+ //Write out the file, read it in, and then check cell values
+ File f = File.createTempFile("testCellToString",".xls");
+ wb.write(new FileOutputStream(f));
+ wb = new HSSFWorkbook(new FileInputStream(f));
+ assertTrue("File exists and can be read", f.canRead());
+
+ s = wb.getSheetAt(0);r=s.getRow(0);
+ c=r.getCell((short) 0);
+ assertEquals("Boolean", "TRUE", c.toString());
+ c=r.getCell((short) 1);
+ assertEquals("Numeric", "1.5", c.toString());
+ c=r.getCell((short)(2));
+ assertEquals("String", "Astring", c.toString());
+ c=r.getCell((short) 3);
+ assertEquals("Error", "#ERR7", c.toString());
+ c=r.getCell((short)4);
+ assertEquals("Formula", "A1+B1", c.toString());
}
public void testSetStringInFormulaCell_bug44606() {
@@ -392,10 +359,7 @@
}
public static void main(String [] args) {
- System.out
- .println("Testing org.apache.poi.hssf.usermodel.TestHSSFCell");
junit.textui.TestRunner.run(TestHSSFCell.class);
}
-
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFComment.java Mon Apr 7 05:51:50 2008
@@ -20,13 +20,14 @@
import java.io.*;
+import org.apache.poi.hssf.HSSFTestDataSamples;
+
/**
* Tests TestHSSFCellComment.
*
* @author Yegor Kozlov
*/
-
-public class TestHSSFComment extends TestCase {
+public final class TestHSSFComment extends TestCase {
/**
* Test that we can create cells and add comments to it.
@@ -103,12 +104,9 @@
/**
* test that we can read cell comments from an existing workbook.
*/
- public static void testReadComments() throws Exception {
+ public static void testReadComments() {
- String dir = System.getProperty("HSSF.testdata.path");
- FileInputStream is = new FileInputStream(new File(dir, "SimpleWithComments.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(is);
- is.close();
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("SimpleWithComments.xls");
HSSFSheet sheet = wb.getSheetAt(0);
@@ -143,12 +141,9 @@
/**
* test that we can modify existing cell comments
*/
- public static void testModifyComments() throws Exception {
+ public static void testModifyComments() throws IOException {
- String dir = System.getProperty("HSSF.testdata.path");
- FileInputStream is = new FileInputStream(new File(dir, "SimpleWithComments.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(is);
- is.close();
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("SimpleWithComments.xls");
HSSFSheet sheet = wb.getSheetAt(0);
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java Mon Apr 7 05:51:50 2008
@@ -28,7 +28,7 @@
*/
public final class TestHSSFConditionalFormatting extends TestCase
{
- public void testLastAndFirstColumns()
+ public void testCreateCF()
{
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
@@ -82,9 +82,27 @@
HSSFConditionalFormattingRule rule1 = cf.getRule(0);
assertEquals("7",rule1.getFormula1());
assertNull(rule1.getFormula2());
+
+ HSSFFontFormatting r1fp = rule1.getFontFormatting();
+ assertNotNull(r1fp);
+
+ assertTrue(r1fp.isItalic());
+ assertFalse(r1fp.isBold());
+
+ HSSFBorderFormatting r1bf = rule1.getBorderFormatting();
+ assertNotNull(r1bf);
+ assertEquals(HSSFBorderFormatting.BORDER_THIN, r1bf.getBorderBottom());
+ assertEquals(HSSFBorderFormatting.BORDER_THICK,r1bf.getBorderTop());
+ assertEquals(HSSFBorderFormatting.BORDER_DASHED,r1bf.getBorderLeft());
+ assertEquals(HSSFBorderFormatting.BORDER_DOTTED,r1bf.getBorderRight());
+
+ HSSFPatternFormatting r1pf = rule1.getPatternFormatting();
+ assertNotNull(r1pf);
+ assertEquals(HSSFColor.RED.index,r1pf.getFillBackgroundColor());
HSSFConditionalFormattingRule rule2 = cf.getRule(1);
assertEquals("2",rule2.getFormula2());
assertEquals("1",rule2.getFormula1());
}
+
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java Mon Apr 7 05:51:50 2008
@@ -19,16 +19,15 @@
package org.apache.poi.hssf.usermodel;
-import junit.framework.TestCase;
-
-import java.io.FileInputStream;
-import java.util.Date;
import java.util.Calendar;
+import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.model.Workbook;
-import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
* Class TestHSSFDateUtil
@@ -40,16 +39,13 @@
* @author Alex Jacoby (ajacoby at gmail.com)
* @version %I%, %G%
*/
+public class TestHSSFDateUtil extends TestCase {
-public class TestHSSFDateUtil
- extends TestCase
-{
-
- public static final int CALENDAR_JANUARY = 0;
- public static final int CALENDAR_FEBRUARY = 1;
- public static final int CALENDAR_MARCH = 2;
- public static final int CALENDAR_APRIL = 3;
- public static final int CALENDAR_JULY = 6;
+ public static final int CALENDAR_JANUARY = 0;
+ public static final int CALENDAR_FEBRUARY = 1;
+ public static final int CALENDAR_MARCH = 2;
+ public static final int CALENDAR_APRIL = 3;
+ public static final int CALENDAR_JULY = 6;
public static final int CALENDAR_OCTOBER = 9;
public TestHSSFDateUtil(String s)
@@ -223,77 +219,77 @@
* Tests that we correctly detect date formats as such
*/
public void testIdentifyDateFormats() {
- // First up, try with a few built in date formats
- short[] builtins = new short[] { 0x0e, 0x0f, 0x10, 0x16, 0x2d, 0x2e };
- for(int i=0; i<builtins.length; i++) {
- String formatStr = HSSFDataFormat.getBuiltinFormat(builtins[i]);
- assertTrue( HSSFDateUtil.isInternalDateFormat(builtins[i]) );
- assertTrue( HSSFDateUtil.isADateFormat(builtins[i],formatStr) );
- }
-
- // Now try a few built-in non date formats
- builtins = new short[] { 0x01, 0x02, 0x17, 0x1f, 0x30 };
- for(int i=0; i<builtins.length; i++) {
- String formatStr = HSSFDataFormat.getBuiltinFormat(builtins[i]);
- assertFalse( HSSFDateUtil.isInternalDateFormat(builtins[i]) );
- assertFalse( HSSFDateUtil.isADateFormat(builtins[i],formatStr) );
- }
-
- // Now for some non-internal ones
- // These come after the real ones
- int numBuiltins = HSSFDataFormat.getNumberOfBuiltinBuiltinFormats();
- assertTrue(numBuiltins < 60);
- short formatId = 60;
- assertFalse( HSSFDateUtil.isInternalDateFormat(formatId) );
-
- // Valid ones first
- String[] formats = new String[] {
- "yyyy-mm-dd", "yyyy/mm/dd", "yy/mm/dd", "yy/mmm/dd",
- "dd/mm/yy", "dd/mm/yyyy", "dd/mmm/yy",
- "dd-mm-yy", "dd-mm-yyyy",
- "DD-MM-YY", "DD-mm-YYYY",
- "dd\\-mm\\-yy", // Sometimes escaped
-
- // These crazy ones are valid
- "yyyy-mm-dd;@", "yyyy/mm/dd;@",
- "dd-mm-yy;@", "dd-mm-yyyy;@",
- // These even crazier ones are also valid
- // (who knows what they mean though...)
- "[$-F800]dddd\\,\\ mmm\\ dd\\,\\ yyyy",
- "[$-F900]ddd/mm/yyy",
- };
- for(int i=0; i<formats.length; i++) {
- assertTrue( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
- }
-
- // Then time based ones too
- formats = new String[] {
- "yyyy-mm-dd hh:mm:ss", "yyyy/mm/dd HH:MM:SS",
- "mm/dd HH:MM", "yy/mmm/dd SS",
- };
- for(int i=0; i<formats.length; i++) {
- assertTrue( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
- }
-
- // Then invalid ones
- formats = new String[] {
- "yyyy*mm*dd",
- "0.0", "0.000",
- "0%", "0.0%",
- "", null
- };
- for(int i=0; i<formats.length; i++) {
- assertFalse( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
- }
-
- // And these are ones we probably shouldn't allow,
- // but would need a better regexp
- formats = new String[] {
- "yyyy:mm:dd",
- };
- for(int i=0; i<formats.length; i++) {
- // assertFalse( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
- }
+ // First up, try with a few built in date formats
+ short[] builtins = new short[] { 0x0e, 0x0f, 0x10, 0x16, 0x2d, 0x2e };
+ for(int i=0; i<builtins.length; i++) {
+ String formatStr = HSSFDataFormat.getBuiltinFormat(builtins[i]);
+ assertTrue( HSSFDateUtil.isInternalDateFormat(builtins[i]) );
+ assertTrue( HSSFDateUtil.isADateFormat(builtins[i],formatStr) );
+ }
+
+ // Now try a few built-in non date formats
+ builtins = new short[] { 0x01, 0x02, 0x17, 0x1f, 0x30 };
+ for(int i=0; i<builtins.length; i++) {
+ String formatStr = HSSFDataFormat.getBuiltinFormat(builtins[i]);
+ assertFalse( HSSFDateUtil.isInternalDateFormat(builtins[i]) );
+ assertFalse( HSSFDateUtil.isADateFormat(builtins[i],formatStr) );
+ }
+
+ // Now for some non-internal ones
+ // These come after the real ones
+ int numBuiltins = HSSFDataFormat.getNumberOfBuiltinBuiltinFormats();
+ assertTrue(numBuiltins < 60);
+ short formatId = 60;
+ assertFalse( HSSFDateUtil.isInternalDateFormat(formatId) );
+
+ // Valid ones first
+ String[] formats = new String[] {
+ "yyyy-mm-dd", "yyyy/mm/dd", "yy/mm/dd", "yy/mmm/dd",
+ "dd/mm/yy", "dd/mm/yyyy", "dd/mmm/yy",
+ "dd-mm-yy", "dd-mm-yyyy",
+ "DD-MM-YY", "DD-mm-YYYY",
+ "dd\\-mm\\-yy", // Sometimes escaped
+
+ // These crazy ones are valid
+ "yyyy-mm-dd;@", "yyyy/mm/dd;@",
+ "dd-mm-yy;@", "dd-mm-yyyy;@",
+ // These even crazier ones are also valid
+ // (who knows what they mean though...)
+ "[$-F800]dddd\\,\\ mmm\\ dd\\,\\ yyyy",
+ "[$-F900]ddd/mm/yyy",
+ };
+ for(int i=0; i<formats.length; i++) {
+ assertTrue( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
+ }
+
+ // Then time based ones too
+ formats = new String[] {
+ "yyyy-mm-dd hh:mm:ss", "yyyy/mm/dd HH:MM:SS",
+ "mm/dd HH:MM", "yy/mmm/dd SS",
+ };
+ for(int i=0; i<formats.length; i++) {
+ assertTrue( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
+ }
+
+ // Then invalid ones
+ formats = new String[] {
+ "yyyy*mm*dd",
+ "0.0", "0.000",
+ "0%", "0.0%",
+ "", null
+ };
+ for(int i=0; i<formats.length; i++) {
+ assertFalse( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
+ }
+
+ // And these are ones we probably shouldn't allow,
+ // but would need a better regexp
+ formats = new String[] {
+ "yyyy:mm:dd",
+ };
+ for(int i=0; i<formats.length; i++) {
+ // assertFalse( HSSFDateUtil.isADateFormat(formatId, formats[i]) );
+ }
}
/**
@@ -301,11 +297,8 @@
* correctly
*/
public void testOnARealFile() throws Exception {
- String path = System.getProperty("HSSF.testdata.path");
- String filename = path + "/DateFormats.xls";
- POIFSFileSystem fs =
- new POIFSFileSystem(new FileInputStream(filename));
- HSSFWorkbook workbook = new HSSFWorkbook(fs);
+
+ HSSFWorkbook workbook = HSSFTestDataSamples.openSampleWorkbook("DateFormats.xls");
HSSFSheet sheet = workbook.getSheetAt(0);
Workbook wb = workbook.getWorkbook();
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,21 +14,17 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.usermodel;
-import junit.framework.TestCase;
-import org.apache.poi.hssf.usermodel.HSSFHeader;
-import org.apache.poi.hssf.usermodel.HSSFFooter;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileOutputStream;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.HSSFTestDataSamples;
/**
* Tests row shifting capabilities.
@@ -37,117 +32,90 @@
*
* @author Shawn Laubach (slaubach at apache dot com)
*/
+public final class TestHSSFHeaderFooter extends TestCase {
-public class TestHSSFHeaderFooter extends TestCase {
+ /**
+ * Tests that get header retreives the proper values.
+ *
+ * @author Shawn Laubach (slaubach at apache dot org)
+ */
+ public void testRetrieveCorrectHeader() {
+ // Read initial file in
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("EmbeddedChartHeaderTest.xls");
+ HSSFSheet s = wb.getSheetAt( 0 );
+ HSSFHeader head = s.getHeader();
+
+ assertEquals("Top Left", head.getLeft());
+ assertEquals("Top Center", head.getCenter());
+ assertEquals("Top Right", head.getRight());
+ }
- /**
- * Constructor for TestHeaderFooter.
- * @param arg0
- */
- public TestHSSFHeaderFooter(String arg0) {
- super(arg0);
- }
-
- /**
- * Tests that get header retreives the proper values.
- *
- * @author Shawn Laubach (slaubach at apache dot org)
- */
- public void testRetrieveCorrectHeader() throws Exception
- {
- // Read initial file in
- String filename = System.getProperty( "HSSF.testdata.path" );
- filename = filename + "/EmbeddedChartHeaderTest.xls";
- FileInputStream fin = new FileInputStream( filename );
- HSSFWorkbook wb = new HSSFWorkbook( fin );
- fin.close();
- HSSFSheet s = wb.getSheetAt( 0 );
- HSSFHeader head = s.getHeader();
-
- assertEquals("Top Left", head.getLeft());
- assertEquals("Top Center", head.getCenter());
- assertEquals("Top Right", head.getRight());
- }
-
- /**
- * Tests that get header retreives the proper values.
- *
- * @author Shawn Laubach (slaubach at apache dot org)
- */
- public void testRetrieveCorrectFooter() throws Exception
- {
- // Read initial file in
- String filename = System.getProperty( "HSSF.testdata.path" );
- filename = filename + "/EmbeddedChartHeaderTest.xls";
- FileInputStream fin = new FileInputStream( filename );
- HSSFWorkbook wb = new HSSFWorkbook( fin );
- fin.close();
- HSSFSheet s = wb.getSheetAt( 0 );
- HSSFFooter foot = s.getFooter();
-
- assertEquals("Bottom Left", foot.getLeft());
- assertEquals("Bottom Center", foot.getCenter());
- assertEquals("Bottom Right", foot.getRight());
- }
+ /**
+ * Tests that get header retreives the proper values.
+ *
+ * @author Shawn Laubach (slaubach at apache dot org)
+ */
+ public void testRetrieveCorrectFooter() {
+ // Read initial file in
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("EmbeddedChartHeaderTest.xls");
+ HSSFSheet s = wb.getSheetAt( 0 );
+ HSSFFooter foot = s.getFooter();
- /**
+ assertEquals("Bottom Left", foot.getLeft());
+ assertEquals("Bottom Center", foot.getCenter());
+ assertEquals("Bottom Right", foot.getRight());
+ }
+
+ /**
* Testcase for Bug 17039 HSSFHeader doesnot support DBCS
*/
- public void testHeaderHas16bitCharacter() throws Exception {
- HSSFWorkbook b = new HSSFWorkbook();
- HSSFSheet s = b.createSheet("Test");
- HSSFHeader h = s.getHeader();
- h.setLeft("\u0391");
- h.setCenter("\u0392");
- h.setRight("\u0393");
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- b.write(out);
-
- HSSFWorkbook b2 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
- HSSFHeader h2 = b2.getSheet("Test").getHeader();
-
- assertEquals(h2.getLeft(),"\u0391");
- assertEquals(h2.getCenter(),"\u0392");
- assertEquals(h2.getRight(),"\u0393");
+ public void testHeaderHas16bitCharacter() {
+ HSSFWorkbook b = new HSSFWorkbook();
+ HSSFSheet s = b.createSheet("Test");
+ HSSFHeader h = s.getHeader();
+ h.setLeft("\u0391");
+ h.setCenter("\u0392");
+ h.setRight("\u0393");
+
+ HSSFWorkbook b2 = HSSFTestDataSamples.writeOutAndReadBack(b);
+ HSSFHeader h2 = b2.getSheet("Test").getHeader();
+
+ assertEquals(h2.getLeft(),"\u0391");
+ assertEquals(h2.getCenter(),"\u0392");
+ assertEquals(h2.getRight(),"\u0393");
}
/**
* Testcase for Bug 17039 HSSFFooter doesnot support DBCS
*/
- public void testFooterHas16bitCharacter() throws Exception{
- HSSFWorkbook b = new HSSFWorkbook();
- HSSFSheet s = b.createSheet("Test");
- HSSFFooter f = s.getFooter();
- f.setLeft("\u0391");
- f.setCenter("\u0392");
- f.setRight("\u0393");
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- b.write(out);
-
- HSSFWorkbook b2 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
- HSSFFooter f2 = b2.getSheet("Test").getFooter();
-
- assertEquals(f2.getLeft(),"\u0391");
- assertEquals(f2.getCenter(),"\u0392");
- assertEquals(f2.getRight(),"\u0393");
+ public void testFooterHas16bitCharacter() {
+ HSSFWorkbook b = new HSSFWorkbook();
+ HSSFSheet s = b.createSheet("Test");
+ HSSFFooter f = s.getFooter();
+ f.setLeft("\u0391");
+ f.setCenter("\u0392");
+ f.setRight("\u0393");
+
+ HSSFWorkbook b2 = HSSFTestDataSamples.writeOutAndReadBack(b);
+ HSSFFooter f2 = b2.getSheet("Test").getFooter();
+
+ assertEquals(f2.getLeft(),"\u0391");
+ assertEquals(f2.getCenter(),"\u0392");
+ assertEquals(f2.getRight(),"\u0393");
}
- public void testReadDBCSHeaderFooter() throws Exception{
- String readFilename = System.getProperty("HSSF.testdata.path");
- FileInputStream in = new FileInputStream(readFilename+File.separator+"DBCSHeader.xls");
- HSSFWorkbook wb = new HSSFWorkbook(in);
- HSSFSheet s = wb.getSheetAt(0);
- HSSFHeader h = s.getHeader();
- assertEquals("Header Left " ,h.getLeft(),"\u090f\u0915");
- assertEquals("Header Center " ,h.getCenter(),"\u0939\u094b\u0917\u093e");
- assertEquals("Header Right " ,h.getRight(),"\u091c\u093e");
+ public void testReadDBCSHeaderFooter() {
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("DBCSHeader.xls");
+ HSSFSheet s = wb.getSheetAt(0);
+ HSSFHeader h = s.getHeader();
+ assertEquals("Header Left " ,h.getLeft(),"\u090f\u0915");
+ assertEquals("Header Center " ,h.getCenter(),"\u0939\u094b\u0917\u093e");
+ assertEquals("Header Right " ,h.getRight(),"\u091c\u093e");
- HSSFFooter f = s.getFooter();
- assertEquals("Footer Left " ,f.getLeft(),"\u091c\u093e");
- assertEquals("Footer Center " ,f.getCenter(),"\u091c\u093e");
- assertEquals("Footer Right " ,f.getRight(),"\u091c\u093e");
+ HSSFFooter f = s.getFooter();
+ assertEquals("Footer Left " ,f.getLeft(),"\u091c\u093e");
+ assertEquals("Footer Center " ,f.getCenter(),"\u091c\u093e");
+ assertEquals("Footer Right " ,f.getRight(),"\u091c\u093e");
}
}
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFHyperlink.java Mon Apr 7 05:51:50 2008
@@ -14,28 +14,28 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
+
package org.apache.poi.hssf.usermodel;
import junit.framework.TestCase;
import java.io.*;
+import org.apache.poi.hssf.HSSFTestDataSamples;
+
/**
* Tests HSSFHyperlink.
*
* @author Yegor Kozlov
*/
-public class TestHSSFHyperlink extends TestCase {
- protected String cwd = System.getProperty("HSSF.testdata.path");
+public final class TestHSSFHyperlink extends TestCase {
/**
* Test that we can read hyperlinks.
*/
- public void testRead() throws Exception {
+ public void testRead() {
- FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(is);
- is.close();
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("HyperlinksOnManySheets.xls");
HSSFSheet sheet;
HSSFCell cell;
@@ -74,9 +74,7 @@
}
public void testModify() throws Exception {
- FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(is);
- is.close();
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("HyperlinksOnManySheets.xls");
HSSFSheet sheet;
HSSFCell cell;
@@ -168,10 +166,8 @@
assertEquals("'Target Sheet'!A1", link.getAddress());
}
- public void testCloneSheet() throws Exception {
- FileInputStream is = new FileInputStream(new File(cwd, "HyperlinksOnManySheets.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(is);
- is.close();
+ public void testCloneSheet() {
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("HyperlinksOnManySheets.xls");
HSSFCell cell;
HSSFHyperlink link;
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPalette.java Mon Apr 7 05:51:50 2008
@@ -1,4 +1,3 @@
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -15,7 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
+
package org.apache.poi.hssf.usermodel;
import java.io.File;
@@ -25,6 +24,8 @@
import java.util.Iterator;
import java.util.Map;
import junit.framework.TestCase;
+
+import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.record.PaletteRecord;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.util.TempFile;
@@ -32,15 +33,10 @@
/**
* @author Brian Sanders (bsanders at risklabs dot com)
*/
-public class TestHSSFPalette extends TestCase
-{
+public final class TestHSSFPalette extends TestCase {
private PaletteRecord palette;
private HSSFPalette hssfPalette;
- public TestHSSFPalette(String name)
- {
- super(name);
- }
public void setUp()
{
@@ -54,12 +50,7 @@
public void testCustomPalette() throws IOException
{
//reading sample xls
- String dir = System.getProperty("HSSF.testdata.path");
- File sample = new File(dir + "/Simple.xls");
- assertTrue("Simple.xls exists and is readable", sample.canRead());
- FileInputStream fis = new FileInputStream(sample);
- HSSFWorkbook book = new HSSFWorkbook(fis);
- fis.close();
+ HSSFWorkbook book = HSSFTestDataSamples.openSampleWorkbook("Simple.xls");
//creating custom palette
HSSFPalette palette = book.getCustomPalette();
@@ -72,7 +63,7 @@
book.write(fos);
fos.close();
- fis = new FileInputStream(temp);
+ FileInputStream fis = new FileInputStream(temp);
book = new HSSFWorkbook(fis);
fis.close();
@@ -98,14 +89,9 @@
/**
* Uses the palette from cell stylings
*/
- public void testPaletteFromCellColours() throws Exception {
- String dir = System.getProperty("HSSF.testdata.path");
- File sample = new File(dir + "/SimpleWithColours.xls");
- assertTrue("SimpleWithColours.xls exists and is readable", sample.canRead());
- FileInputStream fis = new FileInputStream(sample);
- HSSFWorkbook book = new HSSFWorkbook(fis);
- fis.close();
-
+ public void testPaletteFromCellColours() {
+ HSSFWorkbook book = HSSFTestDataSamples.openSampleWorkbook("SimpleWithColours.xls");
+
HSSFPalette p = book.getCustomPalette();
HSSFCell cellA = book.getSheetAt(0).getRow(0).getCell((short)0);
@@ -161,46 +147,46 @@
}
public void testFindSimilar() throws Exception {
- HSSFWorkbook book = new HSSFWorkbook();
- HSSFPalette p = book.getCustomPalette();
-
-
- // Add a few edge colours in
- p.setColorAtIndex((short)8, (byte)-1, (byte)0, (byte)0);
- p.setColorAtIndex((short)9, (byte)0, (byte)-1, (byte)0);
- p.setColorAtIndex((short)10, (byte)0, (byte)0, (byte)-1);
-
- // And some near a few of them
- p.setColorAtIndex((short)11, (byte)-1, (byte)2, (byte)2);
- p.setColorAtIndex((short)12, (byte)-2, (byte)2, (byte)10);
- p.setColorAtIndex((short)13, (byte)-4, (byte)0, (byte)0);
- p.setColorAtIndex((short)14, (byte)-8, (byte)0, (byte)0);
-
- assertEquals(
- "FFFF:0:0", p.getColor((short)8).getHexString()
- );
-
- // Now check we get the right stuff back
- assertEquals(
- p.getColor((short)8).getHexString(),
- p.findSimilarColor((byte)-1, (byte)0, (byte)0).getHexString()
- );
- assertEquals(
- p.getColor((short)8).getHexString(),
- p.findSimilarColor((byte)-2, (byte)0, (byte)0).getHexString()
- );
- assertEquals(
- p.getColor((short)8).getHexString(),
- p.findSimilarColor((byte)-1, (byte)1, (byte)0).getHexString()
- );
- assertEquals(
- p.getColor((short)11).getHexString(),
- p.findSimilarColor((byte)-1, (byte)2, (byte)1).getHexString()
- );
- assertEquals(
- p.getColor((short)12).getHexString(),
- p.findSimilarColor((byte)-1, (byte)2, (byte)10).getHexString()
- );
+ HSSFWorkbook book = new HSSFWorkbook();
+ HSSFPalette p = book.getCustomPalette();
+
+
+ // Add a few edge colours in
+ p.setColorAtIndex((short)8, (byte)-1, (byte)0, (byte)0);
+ p.setColorAtIndex((short)9, (byte)0, (byte)-1, (byte)0);
+ p.setColorAtIndex((short)10, (byte)0, (byte)0, (byte)-1);
+
+ // And some near a few of them
+ p.setColorAtIndex((short)11, (byte)-1, (byte)2, (byte)2);
+ p.setColorAtIndex((short)12, (byte)-2, (byte)2, (byte)10);
+ p.setColorAtIndex((short)13, (byte)-4, (byte)0, (byte)0);
+ p.setColorAtIndex((short)14, (byte)-8, (byte)0, (byte)0);
+
+ assertEquals(
+ "FFFF:0:0", p.getColor((short)8).getHexString()
+ );
+
+ // Now check we get the right stuff back
+ assertEquals(
+ p.getColor((short)8).getHexString(),
+ p.findSimilarColor((byte)-1, (byte)0, (byte)0).getHexString()
+ );
+ assertEquals(
+ p.getColor((short)8).getHexString(),
+ p.findSimilarColor((byte)-2, (byte)0, (byte)0).getHexString()
+ );
+ assertEquals(
+ p.getColor((short)8).getHexString(),
+ p.findSimilarColor((byte)-1, (byte)1, (byte)0).getHexString()
+ );
+ assertEquals(
+ p.getColor((short)11).getHexString(),
+ p.findSimilarColor((byte)-1, (byte)2, (byte)1).getHexString()
+ );
+ assertEquals(
+ p.getColor((short)12).getHexString(),
+ p.findSimilarColor((byte)-1, (byte)2, (byte)10).getHexString()
+ );
}
/**
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPicture.java Mon Apr 7 05:51:50 2008
@@ -17,13 +17,13 @@
package org.apache.poi.hssf.usermodel;
import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import junit.framework.TestCase;
+import org.apache.poi.hssf.HSSFTestDataSamples;
+
/**
* Test <code>HSSFPicture</code>.
*
@@ -58,9 +58,8 @@
private static byte[] getTestDataFileContent(String fileName) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
- String readFilename = System.getProperty("HSSF.testdata.path");
try {
- InputStream fis = new FileInputStream(readFilename+File.separator+fileName);
+ InputStream fis = HSSFTestDataSamples.openSampleFileStream(fileName);
byte[] buf = new byte[512];
while(true) {
Modified: poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java?rev=645483&r1=645482&r2=645483&view=diff
==============================================================================
--- poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java (original)
+++ poi/branches/ooxml/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java Mon Apr 7 05:51:50 2008
@@ -15,20 +15,19 @@
limitations under the License.
==================================================================== */
-
-/*
- * HSSFWorkbook.java
- *
- * Created on September 30, 2001, 3:37 PM
- */
package org.apache.poi.hssf.usermodel;
-import junit.framework.TestCase;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
import javax.imageio.ImageIO;
-import java.io.*;
-import java.util.*;
-import java.awt.image.BufferedImage;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.HSSFTestDataSamples;
/**
* Test <code>HSSFPictureData</code>.
@@ -37,14 +36,11 @@
* @author Yegor Kozlov (yegor at apache dot org)
* @author Trejkaz (trejkaz at trypticon dot org)
*/
-public class TestHSSFPictureData extends TestCase{
+public final class TestHSSFPictureData extends TestCase{
- static String cwd = System.getProperty("HSSF.testdata.path");
public void testPictures() throws IOException {
- FileInputStream is = new FileInputStream(new File(cwd, "SimpleWithImages.xls"));
- HSSFWorkbook wb = new HSSFWorkbook(is);
- is.close();
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("SimpleWithImages.xls");
List lst = wb.getAllPictures();
//assertEquals(2, lst.size());
@@ -69,6 +65,5 @@
//TODO: test code for PICT, WMF and EMF
}
}
-
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org