[Libreoffice-commits] core.git: sc/qa

Eike Rathke erack at redhat.com
Wed May 17 16:17:19 UTC 2017


 sc/qa/unit/ucalc.hxx         |    2 ++
 sc/qa/unit/ucalc_formula.cxx |   28 ++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)

New commits:
commit 67a4bb2204c841bf468504fcf5282787abc0e973
Author: Eike Rathke <erack at redhat.com>
Date:   Wed May 17 18:15:56 2017 +0200

    add unit test for Excel whitespace operator intersection, tdf#96426
    
    Change-Id: I8cc5d9fbb6a92545379288dc1648a6c68ad4ccb1

diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index 9028928f3136..732ab5b1ec3d 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -168,6 +168,7 @@ public:
     void testFormulaRefUpdateValidity();
     void testTokenArrayRefUpdateMove();
     void testSingleCellCopyColumnLabel();
+    void testIntersectionOpExcel();
     void testMultipleOperations();
     void testFuncCOLUMN();
     void testFuncCOUNT();
@@ -574,6 +575,7 @@ public:
     CPPUNIT_TEST(testFormulaRefUpdateNameDelete);
     CPPUNIT_TEST(testFormulaRefUpdateValidity);
     CPPUNIT_TEST(testTokenArrayRefUpdateMove);
+    CPPUNIT_TEST(testIntersectionOpExcel);
     CPPUNIT_TEST(testMultipleOperations);
     CPPUNIT_TEST(testFuncCOLUMN);
     CPPUNIT_TEST(testFuncCOUNT);
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 8647328a8aa9..0458749df73a 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -7832,4 +7832,32 @@ void Test::testSingleCellCopyColumnLabel()
     m_pDoc->DeleteTab(0);
 }
 
+// Significant whitespace operator intersection in Excel syntax, tdf#96426
+void Test::testIntersectionOpExcel()
+{
+    CPPUNIT_ASSERT(m_pDoc->InsertTab (0, "Test"));
+
+    ScRangeName* pGlobalNames = m_pDoc->GetRangeName();
+    // Horizontal cell range covering C2.
+    pGlobalNames->insert( new ScRangeData( m_pDoc, "horz", "$B$2:$D$2"));
+    // Vertical cell range covering C2.
+    pGlobalNames->insert( new ScRangeData( m_pDoc, "vert", "$C$1:$C$3"));
+    // Data in C2.
+    m_pDoc->SetString(2,1,0,"1");
+
+    m_pDoc->SetGrammar(FormulaGrammar::GRAM_ENGLISH_XL_A1);
+
+    // Choose formular positions that don't intersect with those data ranges.
+    ScAddress aPos(0,3,0);
+    m_pDoc->SetString(aPos,"=B2:D2 C1:C3");
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("A4 intersecting references failed", 1.0, m_pDoc->GetValue(aPos));
+    aPos.IncRow();
+    m_pDoc->SetString(aPos,"=horz vert");
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("A5 intersecting named expressions failed", 1.0, m_pDoc->GetValue(aPos));
+
+    m_pDoc->SetGrammar(FormulaGrammar::GRAM_ENGLISH);
+
+    m_pDoc->DeleteTab(0);
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list