From 90aca5a284c0d0828853b1a9ed2e4a0fd05f7f1a Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Fri, 2 Dec 2016 03:31:22 +0300 Subject: tdf#104310: Accept x12ac lists and fallbacks in dataValidations Change-Id: I42cf20fcfe3ec03ebd09923be509a9d11e0b40da Reviewed-on: https://gerrit.libreoffice.org/31516 Tested-by: Jenkins Reviewed-by: Kohei Yoshida (cherry picked from commit ce17ebb69500530c978767b1389c9e8341acb9bf) Reviewed-on: https://gerrit.libreoffice.org/31529 Reviewed-by: Mike Kaganski Tested-by: Mike Kaganski --- sc/qa/unit/bugfix-test.cxx | 50 ++++++++++++++++++++++++---------- sc/qa/unit/data/xlsx/tdf104310-2.xlsx | Bin 0 -> 8103 bytes 2 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 sc/qa/unit/data/xlsx/tdf104310-2.xlsx (limited to 'sc/qa') diff --git a/sc/qa/unit/bugfix-test.cxx b/sc/qa/unit/bugfix-test.cxx index 9b7f2b772ded..34991092ebba 100644 --- a/sc/qa/unit/bugfix-test.cxx +++ b/sc/qa/unit/bugfix-test.cxx @@ -242,20 +242,42 @@ void ScFiltersTest::testRhbz1390776() void ScFiltersTest::testTdf104310() { - ScDocShellRef xDocSh = loadDoc("tdf104310.", FORMAT_XLSX); - ScDocument& rDoc = xDocSh->GetDocument(); - - const ScValidationData* pData = rDoc.GetValidationEntry(1); - CPPUNIT_ASSERT(pData); - - // Make sure the list is correct. - std::vector aList; - pData->FillSelectionList(aList, ScAddress(0, 1, 0)); - CPPUNIT_ASSERT_EQUAL(size_t(5), aList.size()); - for (size_t i = 0; i < 5; ++i) - CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i+1), aList[i].GetValue(), 1e-8); - - xDocSh->DoClose(); + // 1. Test x14 extension + { + ScDocShellRef xDocSh = loadDoc("tdf104310.", FORMAT_XLSX); + ScDocument& rDoc = xDocSh->GetDocument(); + + const ScValidationData* pData = rDoc.GetValidationEntry(1); + CPPUNIT_ASSERT(pData); + + // Make sure the list is correct. + std::vector aList; + pData->FillSelectionList(aList, ScAddress(0, 1, 0)); + CPPUNIT_ASSERT_EQUAL(size_t(5), aList.size()); + for (size_t i = 0; i < 5; ++i) + CPPUNIT_ASSERT_DOUBLES_EQUAL(double(i + 1), aList[i].GetValue(), 1e-8); + + xDocSh->DoClose(); + } + + // 2. Test x12ac extension + { + ScDocShellRef xDocSh = loadDoc("tdf104310-2.", FORMAT_XLSX); + ScDocument& rDoc = xDocSh->GetDocument(); + + const ScValidationData* pData = rDoc.GetValidationEntry(1); + CPPUNIT_ASSERT(pData); + + // Make sure the list is correct. + std::vector aList; + pData->FillSelectionList(aList, ScAddress(0, 1, 0)); + CPPUNIT_ASSERT_EQUAL(size_t(3), aList.size()); + CPPUNIT_ASSERT_EQUAL(OUString("1"), aList[0].GetString()); + CPPUNIT_ASSERT_EQUAL(OUString("2,3"), aList[1].GetString()); + CPPUNIT_ASSERT_EQUAL(OUString("4"), aList[2].GetString()); + + xDocSh->DoClose(); + } } ScFiltersTest::ScFiltersTest() diff --git a/sc/qa/unit/data/xlsx/tdf104310-2.xlsx b/sc/qa/unit/data/xlsx/tdf104310-2.xlsx new file mode 100644 index 000000000000..dc5e9ac36bb5 Binary files /dev/null and b/sc/qa/unit/data/xlsx/tdf104310-2.xlsx differ -- cgit