diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2021-01-19 19:39:39 +0530 |
---|---|---|
committer | Dennis Francis <dennis.francis@collabora.com> | 2021-04-12 17:32:21 +0200 |
commit | ac0b759b4e5f94c975529d367c715ca8b0e41090 (patch) | |
tree | 76d6c7b4b7c13b97ff8727af8a608ac8b58da849 /sc | |
parent | 360820c63c6406c5b67e109b340aaa9108a5fc84 (diff) |
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 <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
(cherry picked from commit f50e11c55e05506bba2c1a895f13d1a90ac54505)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113973
Tested-by: Dennis Francis <dennis.francis@collabora.com>
Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/qa/unit/tiledrendering/tiledrendering.cxx | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx index ed6370e1dbe5..cf45a033cd3f 100644 --- a/sc/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx @@ -44,6 +44,7 @@ #include <chrono> #include <cstddef> +#include <scitems.hxx> #include <tabvwsh.hxx> #include <docsh.hxx> #include <document.hxx> @@ -113,6 +114,7 @@ public: void testDeleteCellMultilineContent(); void testSpellOnlineParameter(); void testSpellOnlineRenderParameter(); + void testPasteIntoWrapTextCell(); CPPUNIT_TEST_SUITE(ScTiledRenderingTest); CPPUNIT_TEST(testRowColumnHeaders); @@ -159,6 +161,7 @@ public: CPPUNIT_TEST(testDeleteCellMultilineContent); CPPUNIT_TEST(testSpellOnlineParameter); CPPUNIT_TEST(testSpellOnlineRenderParameter); + CPPUNIT_TEST(testPasteIntoWrapTextCell); CPPUNIT_TEST_SUITE_END(); private: @@ -472,6 +475,7 @@ public: OString m_sCellFormula; boost::property_tree::ptree m_aCommentCallbackResult; OString m_sInvalidateHeader; + OString m_sInvalidateSheetGeometry; ViewCallback(bool bDeleteListenerOnDestruct=true) : m_bOwnCursorInvalidated(false), @@ -581,6 +585,11 @@ public: { m_sInvalidateHeader = pPayload; } + break; + case LOK_CALLBACK_INVALIDATE_SHEET_GEOMETRY: + { + m_sInvalidateSheetGeometry = pPayload; + } } } }; @@ -2324,6 +2333,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); |