summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Francis <dennis.francis@collabora.com>2021-01-19 19:39:39 +0530
committerJan Holesovsky <kendy@collabora.com>2021-01-21 09:33:11 +0100
commitf50e11c55e05506bba2c1a895f13d1a90ac54505 (patch)
treebd4e742111c8b60926f5d8fbf9cfc7c68da13065
parent51b0a654b2c75c7b4e42763603a4e23c25317dc5 (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>
-rw-r--r--sc/qa/unit/tiledrendering/tiledrendering.cxx57
1 files changed, 57 insertions, 0 deletions
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);