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

Reply via email to