summaryrefslogtreecommitdiffstats
path: root/sc/qa/unit/subsequent_filters-test.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/qa/unit/subsequent_filters-test.cxx')
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index efd18592c3c6..8106d2166b75 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -206,6 +206,7 @@ public:
void testEditEngStrikeThroughXLSX();
void testRefStringXLSX();
void testHiddenSheetsXLSX();
+ void testRelFormulaValidationXLS();
void testBnc762542();
@@ -304,6 +305,7 @@ public:
CPPUNIT_TEST(testErrorOnExternalReferences);
CPPUNIT_TEST(testEditEngStrikeThroughXLSX);
CPPUNIT_TEST(testRefStringXLSX);
+ CPPUNIT_TEST(testRelFormulaValidationXLS);
CPPUNIT_TEST(testBnc762542);
@@ -3197,6 +3199,35 @@ void ScFiltersTest::testHiddenSheetsXLSX()
xDocSh->DoClose();
}
+namespace {
+
+void checkValidationFormula(const ScAddress& rPos, ScDocument& rDoc, const OUString& rExpectedFormula)
+{
+ const SfxUInt32Item* pItem = static_cast<const SfxUInt32Item*>(rDoc.GetAttr(rPos, ATTR_VALIDDATA) );
+ CPPUNIT_ASSERT(pItem);
+ sal_uLong nKey = pItem->GetValue();
+ const ScValidationData* pData = rDoc.GetValidationEntry(nKey);
+ CPPUNIT_ASSERT(pData);
+
+ OUString aFormula = pData->GetExpression(rPos, 0);
+ CPPUNIT_ASSERT_EQUAL(rExpectedFormula, aFormula);
+}
+
+}
+
+void ScFiltersTest::testRelFormulaValidationXLS()
+{
+ ScDocShellRef xDocSh = loadDoc("validation.", FORMAT_XLS);
+ CPPUNIT_ASSERT_MESSAGE("Failed to open doc", xDocSh.Is());
+
+ ScDocument& rDoc = xDocSh->GetDocument();
+
+ checkValidationFormula(ScAddress(3, 4, 0), rDoc, "Sheet1.C5");
+ checkValidationFormula(ScAddress(5, 8, 0), rDoc, "Sheet1.D7");
+
+ xDocSh->DoClose();
+}
+
ScFiltersTest::ScFiltersTest()
: ScBootstrapFixture( "sc/qa/unit/data" )
{