sc/qa/unit/tiledrendering/tiledrendering.cxx |   57 +++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

New commits:
commit f50e11c55e05506bba2c1a895f13d1a90ac54505
Author:     Dennis Francis <dennis.fran...@collabora.com>
AuthorDate: Tue Jan 19 19:39:39 2021 +0530
Commit:     Jan Holesovsky <ke...@collabora.com>
CommitDate: Thu Jan 21 09:33:11 2021 +0100

    unit test for row-height invalidations on pasting
    
    ... into a cell whose line-break attribute is set.
    
    Change-Id: I82d021a262d6af48d5eaef5fefa0fe9098758a86
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109661
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx 
b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index b6db96dc5473..6eac84624142 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -43,6 +43,7 @@
 #include <chrono>
 #include <cstddef>
 
+#include <scitems.hxx>
 #include <tabvwsh.hxx>
 #include <docsh.hxx>
 #include <document.hxx>
@@ -113,6 +114,7 @@ public:
     void testFunctionDlg();
     void testSpellOnlineParameter();
     void testSpellOnlineRenderParameter();
+    void testPasteIntoWrapTextCell();
 
     CPPUNIT_TEST_SUITE(ScTiledRenderingTest);
     CPPUNIT_TEST(testRowColumnHeaders);
@@ -160,6 +162,7 @@ public:
     CPPUNIT_TEST(testFunctionDlg);
     CPPUNIT_TEST(testSpellOnlineParameter);
     CPPUNIT_TEST(testSpellOnlineRenderParameter);
+    CPPUNIT_TEST(testPasteIntoWrapTextCell);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -473,6 +476,7 @@ public:
     OString m_sCellFormula;
     boost::property_tree::ptree m_aCommentCallbackResult;
     OString m_sInvalidateHeader;
+    OString m_sInvalidateSheetGeometry;
 
     ViewCallback(bool bDeleteListenerOnDestruct=true)
         : m_bOwnCursorInvalidated(false),
@@ -582,6 +586,11 @@ public:
         {
             m_sInvalidateHeader = pPayload;
         }
+        break;
+        case LOK_CALLBACK_INVALIDATE_SHEET_GEOMETRY:
+        {
+            m_sInvalidateSheetGeometry = pPayload;
+        }
         }
     }
 };
@@ -2362,6 +2371,54 @@ void 
ScTiledRenderingTest::testDeleteCellMultilineContent()
     SfxViewShell::Current()->registerLibreOfficeKitViewCallback(nullptr, 
nullptr);
 }
 
+void ScTiledRenderingTest::testPasteIntoWrapTextCell()
+{
+    comphelper::LibreOfficeKit::setActive();
+    comphelper::LibreOfficeKit::setCompatFlag(
+        comphelper::LibreOfficeKit::Compat::scPrintTwipsMsgs);
+
+    ScModelObj* pModelObj = createDoc("empty.ods");
+    CPPUNIT_ASSERT(pModelObj);
+    ScDocument* pDoc = pModelObj->GetDocument();
+
+    // Set Wrap text in A3
+    pDoc->ApplyAttr(0, 2, 0, SfxBoolItem(ATTR_LINEBREAK, true));
+    const SfxBoolItem* pItem = static_cast<const 
SfxBoolItem*>(pDoc->GetAttr(0, 2, 0, ATTR_LINEBREAK));
+    CPPUNIT_ASSERT(pItem->GetValue());
+
+    ScViewData* pViewData = ScDocShell::GetViewData();
+    CPPUNIT_ASSERT(pViewData);
+
+    ViewCallback aView;
+    
SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback,
 &aView);
+    CPPUNIT_ASSERT(!lcl_hasEditView(*pViewData));
+
+    ScTabViewShell* pView = 
dynamic_cast<ScTabViewShell*>(SfxViewShell::Current());
+    CPPUNIT_ASSERT(pView);
+
+    // Go to A2 and paste.
+    pView->SetCursor(0, 1);
+    Scheduler::ProcessEventsToIdle();
+    aView.m_sInvalidateSheetGeometry = "";
+    pView->GetViewFrame()->GetBindings().Execute(SID_PASTE);
+    Scheduler::ProcessEventsToIdle();
+
+    // No SG invalidations
+    CPPUNIT_ASSERT_EQUAL(OString(""), aView.m_sInvalidateSheetGeometry);
+
+    // Go to A3 and paste.
+    pView->SetCursor(0, 2);
+    Scheduler::ProcessEventsToIdle();
+    aView.m_sInvalidateSheetGeometry = "";
+    pView->GetViewFrame()->GetBindings().Execute(SID_PASTE);
+    Scheduler::ProcessEventsToIdle();
+
+    // SG invalidations for rows
+    CPPUNIT_ASSERT_EQUAL(OString("rows"), aView.m_sInvalidateSheetGeometry);
+
+    SfxViewShell::Current()->registerLibreOfficeKitViewCallback(nullptr, 
nullptr);
+}
+
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(ScTiledRenderingTest);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to