diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/BuildFileTest.java b/src/excelant/testcases/org/apache/poi/ss/excelant/BuildFileTest.java index 5a30744cd..41b3b04fd 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/BuildFileTest.java +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/BuildFileTest.java @@ -18,13 +18,19 @@ package org.apache.poi.ss.excelant; -import junit.framework.TestCase; -import org.apache.tools.ant.*; - import java.io.File; import java.io.PrintStream; import java.net.URL; +import junit.framework.TestCase; + +import org.apache.poi.POIDataSamples; +import org.apache.tools.ant.BuildEvent; +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.BuildListener; +import org.apache.tools.ant.Project; +import org.apache.tools.ant.ProjectHelper; + /** * A BuildFileTest is a TestCase which executes targets from an Ant buildfile * for testing. @@ -70,6 +76,7 @@ public abstract class BuildFileTest extends TestCase { * is automatically called, since it's trivial to have a * test target depend on it. */ + @Override protected void tearDown() throws Exception { if (project == null) { /* @@ -300,6 +307,7 @@ public abstract class BuildFileTest extends TestCase { fullLogBuffer = new StringBuffer(); project = new Project(); project.init(); + project.setNewProperty("data.dir.name", getDataDir()); File antFile = new File(System.getProperty("root"), filename); project.setUserProperty("ant.file", antFile.getAbsolutePath()); project.addBuildListener(new AntTestListener(logLevel)); @@ -476,6 +484,11 @@ public abstract class BuildFileTest extends TestCase { assertNotNull("Could not find resource :" + resource, url); return url; } + + public static String getDataDir() { + String dataDirName = System.getProperty(POIDataSamples.TEST_PROPERTY); + return dataDirName == null ? "test-data" : dataDirName; + } /** * an output stream which saves stuff to our buffer. diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java b/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java index 4d8f0d5a8..651a2319d 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/TestBuildFile.java @@ -17,6 +17,7 @@ */ package org.apache.poi.ss.excelant; + /** * JUnit test for the ExcelAnt tasks. * Leverages Ant's test framework. @@ -26,8 +27,9 @@ package org.apache.poi.ss.excelant; */ public class TestBuildFile extends BuildFileTest { + @Override public void setUp() { - configureProject("src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml"); + configureProject(BuildFileTest.getDataDir() + "/../src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml"); } public void testMissingFilename() { @@ -42,14 +44,14 @@ public class TestBuildFile extends BuildFileTest { public void testEvaluate() { executeTarget("test-evaluate"); - assertLogContaining("Using input file: test-data/spreadsheet/excelant.xls"); + assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4."); } public void testPrecision() { executeTarget("test-precision"); - assertLogContaining("Using input file: test-data/spreadsheet/excelant.xls"); + assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4. " + "It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-4"); assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4. " + diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSet.java b/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSet.java index cfba01b58..b59c886ae 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSet.java +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSet.java @@ -28,10 +28,9 @@ public class TestExcelAntSet extends TestCase { // concrete instance to test the set methods. private ExcelAntSet fixture ; - private final String mortgageCalculatorFileName = - "test-data/spreadsheet/mortgage-calculation.xls" ; - - + private static final String mortgageCalculatorFileName = + BuildFileTest.getDataDir() + "/spreadsheet/mortgage-calculation.xls" ; + @Override public void setUp() { fixture = new ExcelAntSetDoubleCell() ; diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSetDoubleCell.java b/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSetDoubleCell.java index 1b9e527e0..3d5b11ef4 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSetDoubleCell.java +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/TestExcelAntSetDoubleCell.java @@ -25,11 +25,11 @@ public class TestExcelAntSetDoubleCell extends TestCase { private ExcelAntSetDoubleCell fixture ; - private final String mortgageCalculatorFileName = - "test-data/spreadsheet/mortgage-calculation.xls" ; - private ExcelAntWorkbookUtil util ; + private static final String mortgageCalculatorFileName = + BuildFileTest.getDataDir() + "/spreadsheet/mortgage-calculation.xls" ; + @Override public void setUp() { fixture = new ExcelAntSetDoubleCell() ; diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml b/src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml index 78ed1311e..de0e616ae 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml @@ -46,7 +46,7 @@ under the License. - + @@ -58,7 +58,7 @@ under the License. - + @@ -92,7 +92,7 @@ under the License. By default ExcelAnt does not terminate execution if an error occurs --> - + @@ -108,7 +108,7 @@ under the License. failOnError="true" forces ExcelAnt tot terminate execution if an error occurs --> - + @@ -122,7 +122,7 @@ under the License. - + diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtil.java b/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtil.java index eebf8bec1..7e5b1e453 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtil.java +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtil.java @@ -26,6 +26,7 @@ import junit.framework.TestCase; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.examples.formula.CalculateMortgageFunction; +import org.apache.poi.ss.excelant.BuildFileTest; import org.apache.poi.ss.formula.udf.UDFFinder; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.FormulaEvaluator; @@ -35,8 +36,9 @@ import org.apache.tools.ant.BuildException; public class TestExcelAntWorkbookUtil extends TestCase { - private final String mortgageCalculatorFileName = - "test-data/spreadsheet/excelant.xls" ; + private static final String mortgageCalculatorFileName = + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls" ; + private ExcelAntWorkbookUtilTestHelper fixture ; @@ -125,10 +127,10 @@ public class TestExcelAntWorkbookUtil extends TestCase { public void testGetEvaluatorXLSX() { fixture = new ExcelAntWorkbookUtilTestHelper( - "test-data/spreadsheet/sample.xlsx") ; + BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx") ; FormulaEvaluator evaluator = fixture.getEvaluator( - "test-data/spreadsheet/sample.xlsx" ) ; + BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx" ) ; assertNotNull( evaluator ) ; } diff --git a/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtilFactory.java b/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtilFactory.java index 79c898a03..0d4e7c311 100644 --- a/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtilFactory.java +++ b/src/excelant/testcases/org/apache/poi/ss/excelant/util/TestExcelAntWorkbookUtilFactory.java @@ -18,6 +18,8 @@ package org.apache.poi.ss.excelant.util; import junit.framework.TestCase; +import org.apache.poi.ss.excelant.BuildFileTest; + /** * Tests for the ExcelAntWorbookUtilFactory. @@ -28,8 +30,8 @@ import junit.framework.TestCase; */ public class TestExcelAntWorkbookUtilFactory extends TestCase{ - private final String mortgageCalculatorWorkbookFile = - "test-data/spreadsheet/mortgage-calculation.xls" ; + private static final String mortgageCalculatorWorkbookFile = + BuildFileTest.getDataDir() + "/spreadsheet/mortgage-calculation.xls" ; /** @@ -52,7 +54,7 @@ public class TestExcelAntWorkbookUtilFactory extends TestCase{ * the same resource, are passed in. */ public void testVerifyEquivalence() { - String sameFileName = "test-data/spreadsheet/mortgage-calculation.xls" ; + String sameFileName = BuildFileTest.getDataDir() + "/spreadsheet/mortgage-calculation.xls" ; ExcelAntWorkbookUtil util = ExcelAntWorkbookUtilFactory.getInstance( mortgageCalculatorWorkbookFile ) ; diff --git a/src/testcases/org/apache/poi/hssf/dev/BaseXLSIteratingTest.java b/src/testcases/org/apache/poi/hssf/dev/BaseXLSIteratingTest.java index eb6b5a9d3..8c700b562 100644 --- a/src/testcases/org/apache/poi/hssf/dev/BaseXLSIteratingTest.java +++ b/src/testcases/org/apache/poi/hssf/dev/BaseXLSIteratingTest.java @@ -27,6 +27,7 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; +import org.apache.poi.POIDataSamples; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.junit.Test; @@ -42,8 +43,13 @@ public abstract class BaseXLSIteratingTest { @Test public void testMain() throws Exception { - int count = runWithDir("test-data/spreadsheet"); - count += runWithDir("test-data/hpsf"); + String dataDirName = System.getProperty(POIDataSamples.TEST_PROPERTY); + if(dataDirName == null) { + dataDirName = "test-data"; + } + + int count = runWithDir(dataDirName + "/spreadsheet"); + count += runWithDir(dataDirName + "/hpsf"); System.out.println("Had " + count + " files"); } @@ -57,6 +63,8 @@ public abstract class BaseXLSIteratingTest { } }); + assertNotNull("Did not find any xls files in directory " + dir, files); + runWithArrayOfFiles(files, dir, failed); assertTrue("Expected to have no failed except the ones excluded, but had: " + failed, diff --git a/src/testcases/org/apache/poi/hssf/dev/TestEFBiffViewer.java b/src/testcases/org/apache/poi/hssf/dev/TestEFBiffViewer.java index 174beca38..a1c70bde9 100644 --- a/src/testcases/org/apache/poi/hssf/dev/TestEFBiffViewer.java +++ b/src/testcases/org/apache/poi/hssf/dev/TestEFBiffViewer.java @@ -30,7 +30,9 @@ public class TestEFBiffViewer extends BaseXLSIteratingTest { SILENT_EXCLUDED.add("XRefCalc.xls"); SILENT_EXCLUDED.add("password.xls"); SILENT_EXCLUDED.add("51832.xls"); // password + SILENT_EXCLUDED.add("xor-encryption-abc.xls"); // password, ty again later! SILENT_EXCLUDED.add("43493.xls"); // HSSFWorkbook cannot open it as well + SILENT_EXCLUDED.add("46904.xls"); // Exception, too old }; @Override diff --git a/src/testcases/org/apache/poi/hssf/dev/TestReSave.java b/src/testcases/org/apache/poi/hssf/dev/TestReSave.java index 3e0773ee5..36a6de4eb 100644 --- a/src/testcases/org/apache/poi/hssf/dev/TestReSave.java +++ b/src/testcases/org/apache/poi/hssf/dev/TestReSave.java @@ -23,6 +23,7 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.List; +import org.apache.poi.POIDataSamples; import org.junit.Test; public class TestReSave extends BaseXLSIteratingTest { @@ -75,8 +76,13 @@ public class TestReSave extends BaseXLSIteratingTest { @Test public void testOneFile() throws Exception { + String dataDirName = System.getProperty(POIDataSamples.TEST_PROPERTY); + if(dataDirName == null) { + dataDirName = "test-data"; + } + List failed = new ArrayList(); - runOneFile("test-data/spreadsheet", "49219.xls", failed); + runOneFile(dataDirName + "/spreadsheet", "49219.xls", failed); assertTrue("Expected to have no failed except the ones excluded, but had: " + failed, failed.isEmpty());