sc/qa/unit/data/xls/cell-anchored-group.xls |binary sc/qa/unit/subsequent_export-test.cxx | 31 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+)
New commits: commit ead37770442a0244094779d199303b7b7e6d634c Author: Giuseppe Bilotta <[email protected]> Date: Fri Apr 22 12:22:30 2016 +0200 tdf#84394: add testcase and unit test The testcase for tdf#84394 is quite interesting as it exposes a lot of issues with import/export of nested objects in Calc. Add it to the repository (I happen to be the author of the test case, so I give myself permission for it) and add a unit test to validate that the previous patch fixes at least one of the issues that plague its import in LO Calc. Change-Id: I996ea0f694d78faede77fce84838d2dd0831353e Signed-off-by: Giuseppe Bilotta <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/24296 Tested-by: Jenkins <[email protected]> Reviewed-by: Markus Mohrhard <[email protected]> diff --git a/sc/qa/unit/data/xls/cell-anchored-group.xls b/sc/qa/unit/data/xls/cell-anchored-group.xls new file mode 100644 index 0000000..3b55d60 Binary files /dev/null and b/sc/qa/unit/data/xls/cell-anchored-group.xls differ diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx index 037ed40..58d4681 100644 --- a/sc/qa/unit/subsequent_export-test.cxx +++ b/sc/qa/unit/subsequent_export-test.cxx @@ -111,6 +111,8 @@ public: void testInlineArrayXLS(); void testEmbeddedChartXLS(); + void testCellAnchoredGroupXLS(); + void testFormulaReferenceXLS(); void testSheetProtectionXLSX(); @@ -187,6 +189,8 @@ public: CPPUNIT_TEST(testFormatExportODS); CPPUNIT_TEST(testInlineArrayXLS); CPPUNIT_TEST(testEmbeddedChartXLS); + CPPUNIT_TEST(testCellAnchoredGroupXLS); + CPPUNIT_TEST(testFormulaReferenceXLS); CPPUNIT_TEST(testSheetProtectionXLSX); CPPUNIT_TEST(testCellBordersXLS); @@ -1378,6 +1382,33 @@ void ScExportTest::testEmbeddedChartXLS() xDocSh->DoClose(); } +void ScExportTest::testCellAnchoredGroupXLS() +{ + ScDocShellRef xDocSh_in = loadDoc("cell-anchored-group.", FORMAT_XLS); + CPPUNIT_ASSERT_MESSAGE("Failed to load cell-anchored-group.xls", xDocSh_in.Is()); + + ScDocShellRef xDocSh = saveAndReload(&(*xDocSh_in), FORMAT_ODS); + CPPUNIT_ASSERT_MESSAGE("Failed to save and reload cell-anchored-group.ods", xDocSh.Is()); + + // the document contains a group anchored on the first cell, make sure it's there in the right place + ScDocument& rDoc = xDocSh->GetDocument(); + CPPUNIT_ASSERT_MESSAGE("There should be at least one sheet.", rDoc.GetTableCount() > 0); + ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer(); + SdrPage* pPage = pDrawLayer->GetPage(0); + CPPUNIT_ASSERT_MESSAGE("draw page for sheet 1 should exist.", pPage); + const size_t nCount = pPage->GetObjCount(); + CPPUNIT_ASSERT_EQUAL_MESSAGE( + "There should be 1 objects.", static_cast<size_t>(1), nCount); + + SdrObject* pObj = pPage->GetObj(0); + CPPUNIT_ASSERT_MESSAGE("Failed to get drawing object.", pObj); + ScDrawObjData* pData = ScDrawLayer::GetObjData(pObj); + CPPUNIT_ASSERT_MESSAGE("Failed to retrieve user data for this object.", pData); + CPPUNIT_ASSERT_MESSAGE("Upper left of bounding rectangle should be nonnegative.", + pData->maLastRect.Left() >= 0 || pData->maLastRect.Top() >= 0); + xDocSh->DoClose(); +} + void ScExportTest::testFormulaReferenceXLS() { ScDocShellRef xShell = loadDoc("formula-reference.", FORMAT_XLS); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
