[Libreoffice-commits] core.git: sc/qa
Eike Rathke
erack at redhat.com
Fri Mar 18 15:36:59 UTC 2016
sc/qa/unit/ucalc.cxx | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
New commits:
commit 51bd0c6b8f7bcaabecbda467285d6ffb9a73382b
Author: Eike Rathke <erack at redhat.com>
Date: Fri Mar 18 16:34:57 2016 +0100
unit test for other-sheet-local names, tdf#96915
Change-Id: Iee3edb4603830a4912cda5c1f16029560be04857
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index d97e92f..476ba3e 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -1732,6 +1732,32 @@ void Test::testNamedRange()
CPPUNIT_ASSERT_MESSAGE("wrong range name is retrieved with the copied instance.", aName.equalsAscii(aNames[i].mpName));
}
+ // Test using an other-sheet-local name, scope Sheet1.
+ ScRangeData* pLocal1 = new ScRangeData( m_pDoc, "local1", ScAddress(0,0,0));
+ ScRangeData* pLocal2 = new ScRangeData( m_pDoc, "local2", "$Sheet1.$A$1");
+ ScRangeData* pLocal3 = new ScRangeData( m_pDoc, "local3", "Sheet1.$A$1");
+ ScRangeData* pLocal4 = new ScRangeData( m_pDoc, "local4", "$A$1"); // implicit relative sheet reference
+ ScRangeName* pLocalRangeName1 = new ScRangeName;
+ pLocalRangeName1->insert(pLocal1);
+ pLocalRangeName1->insert(pLocal2);
+ pLocalRangeName1->insert(pLocal3);
+ pLocalRangeName1->insert(pLocal4);
+ m_pDoc->SetRangeName(0, pLocalRangeName1);
+
+ CPPUNIT_ASSERT_MESSAGE ("failed to insert sheet", m_pDoc->InsertTab (1, "Sheet2"));
+
+ // Use other-sheet-local name of Sheet1 on Sheet2.
+ ScAddress aPos(1,0,1);
+ OUString aFormula("=Sheet1.local1+Sheet1.local2+Sheet1.local3+Sheet1.local4");
+ m_pDoc->SetString(aPos, aFormula);
+ OUString aString;
+ m_pDoc->GetFormula(1,0,1, aString);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("formula string should be equal", aFormula, aString);
+ double fValue = m_pDoc->GetValue(aPos);
+ ASSERT_DOUBLES_EQUAL_MESSAGE("value should be 4 times Sheet1.A1", 404.0, fValue);
+
+ m_pDoc->DeleteTab(1);
+ m_pDoc->SetRangeName(0,nullptr); // Delete the names.
m_pDoc->SetRangeName(nullptr); // Delete the names.
m_pDoc->DeleteTab(0);
}
More information about the Libreoffice-commits
mailing list