Unit test, with inserting a control?
Regina Henschel
rb.henschel at t-online.de
Fri Feb 12 00:19:05 UTC 2021
Hi Xisco,
Regina Henschel schrieb am 11.02.2021 um 18:58:
> Hi Xisco,
>
> Regina Henschel schrieb am 10.02.2021 um 22:36:
>
>> There will be the same problem in my upcoming fix for tdf#134355.
>> There I will need to drag-create a custom-shape. And I have no idea,
>> how to make a drag-create in a cppunit test.
>
> The patch for tdf#134355 is now in
> https://gerrit.libreoffice.org/c/core/+/110763. So if you have any idea
> about a cppunit test, please tell me.
The following code does not work, it does not fail in un-patched
version. Creating the custom shape with "new" and then adding it to the
draw page, puts the shape onto the correct layer. The faulty method
FuConstCustomShape::Activate() it not called.
It seems I need indeed a way to create the custom shape with the mouse.
Kind regards
Regina
void ScShapeTest::testTdf134355_createCustomShape()
{
// Load an empty document.
OUString aFileURL;
createFileURL(u"ManualColWidthRowHeight.ods", aFileURL);
uno::Reference<css::lang::XComponent> xComponent =
loadFromDesktop(aFileURL);
CPPUNIT_ASSERT(xComponent.is());
// Get document and draw page
ScDocShell* pDocSh = lcl_getScDocShellWithAssert(xComponent);
ScDocument& rDoc = pDocSh->GetDocument();
SdrPage* pPage = lcl_getSdrPageWithAssert(rDoc);
// Insert Shape
ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
CPPUNIT_ASSERT_MESSAGE("No ScDrawLayer", pDrawLayer);
SdrObjCustomShape* pObj = new SdrObjCustomShape(*pDrawLayer);
CPPUNIT_ASSERT_MESSAGE("Could not create rectangle", pObj);
pPage->InsertObject(pObj);
OUString sType("smiley");
pObj->MergeDefaultAttributes(&sType);
const tools::Rectangle aRect(Point(1000, 1000), Size(5000, 5000));
pObj->SetLogicRect(aRect);
sal_uInt8 nExpectedID = sal_uInt8(SC_LAYER_FRONT);
sal_uInt8 nActualID = pObj->GetLayer().get();
CPPUNIT_ASSERT_EQUAL(nExpectedID, nActualID);
pDocSh->DoClose();
}
More information about the LibreOffice
mailing list