Author: onealj Date: Sat Oct 8 23:41:08 2016 New Revision: 1763937 URL: http://svn.apache.org/viewvc?rev=1763937&view=rev Log: bug 60219: add disabled unit test for parsing formulas containing external workbook references with a quoted sheet name Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/TestFormulaParser.java Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/TestFormulaParser.java URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/TestFormulaParser.java?rev=1763937&r1=1763936&r2=1763937&view=diff ============================================================================== --- poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/TestFormulaParser.java (original) +++ poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/TestFormulaParser.java Sat Oct 8 23:41:08 2016 @@ -28,11 +28,12 @@ import org.apache.poi.hssf.usermodel.HSS import org.apache.poi.ss.formula.ptg.AbstractFunctionPtg; import org.apache.poi.ss.formula.ptg.NameXPxg; import org.apache.poi.ss.formula.ptg.Ptg; +import org.apache.poi.ss.formula.ptg.Ref3DPxg; import org.apache.poi.ss.formula.ptg.StringPtg; import org.apache.poi.xssf.XSSFTestDataSamples; import org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; - +import org.junit.Ignore; import org.junit.Test; /** @@ -169,4 +170,39 @@ public class TestFormulaParser { assertNotNull(e.getMessage()); } } + + // trivial case for bug 60219: FormulaParser can't parse external references when sheet name is quoted + @Test + public void testParseExternalReferencesWithUnquotedSheetName() throws Exception { + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFEvaluationWorkbook fpwb = XSSFEvaluationWorkbook.create(wb); + Ptg[] ptgs = FormulaParser.parse("[1]Sheet1!A1", fpwb, FormulaType.CELL, -1); + // org.apache.poi.ss.formula.ptg.Ref3DPxg [ [workbook=1] sheet=Sheet 1 ! A1] + assertEquals("Ptgs length", 1, ptgs.length); + assertTrue("Ptg class", ptgs[0] instanceof Ref3DPxg); + Ref3DPxg pxg = (Ref3DPxg) ptgs[0]; + assertEquals("External workbook number", 1, pxg.getExternalWorkbookNumber()); + assertEquals("Sheet name", "Sheet1", pxg.getSheetName()); + assertEquals("Row", 0, pxg.getRow()); + assertEquals("Column", 0, pxg.getColumn()); + wb.close(); + } + + // bug 60219: FormulaParser can't parse external references when sheet name is quoted + @Ignore + @Test + public void testParseExternalReferencesWithQuotedSheetName() throws Exception { + XSSFWorkbook wb = new XSSFWorkbook(); + XSSFEvaluationWorkbook fpwb = XSSFEvaluationWorkbook.create(wb); + Ptg[] ptgs = FormulaParser.parse("'[1]Sheet 1'!A1", fpwb, FormulaType.CELL, -1); + // org.apache.poi.ss.formula.ptg.Ref3DPxg [ [workbook=1] sheet=Sheet 1 ! A1] + assertEquals("Ptgs length", 1, ptgs.length); + assertTrue("Ptg class", ptgs[0] instanceof Ref3DPxg); + Ref3DPxg pxg = (Ref3DPxg) ptgs[0]; + assertEquals("External workbook number", 1, pxg.getExternalWorkbookNumber()); + assertEquals("Sheet name", "Sheet 1", pxg.getSheetName()); + assertEquals("Row", 0, pxg.getRow()); + assertEquals("Column", 0, pxg.getColumn()); + wb.close(); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org For additional commands, e-mail: commits-help@poi.apache.org