tdf#142478 add test that triggers find all and crashes
String "Crash" in document and notes, then trigger "find all",
which produced a crash without the fix in-place.
Change-Id: I8e6e4a9da1afc85643648aee36a03c1fb39ca16d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116769
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
diff --git a/sd/qa/unit/data/odp/search-all-notes.odp b/sd/qa/unit/data/odp/search-all-notes.odp
new file mode 100644
index 0000000..6c38eca
--- /dev/null
+++ b/sd/qa/unit/data/odp/search-all-notes.odp
Binary files differ
diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx
index 7d00456..8fa1622 100644
--- a/sd/qa/unit/uiimpress.cxx
+++ b/sd/qa/unit/uiimpress.cxx
@@ -25,6 +25,7 @@
#include <sfx2/request.hxx>
#include <sfx2/viewfrm.hxx>
#include <svl/intitem.hxx>
#include <svl/srchitem.hxx>
#include <svx/svxids.hrc>
#include <svx/svdoashp.hxx>
#include <svx/svdotable.hxx>
@@ -692,6 +693,30 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf123841)
}
}
CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testSearchAllInDocumentAndNotes)
{
// tdf#142478
// "find all" produces a crash when the search string exists in notes
// and the document
mxComponent = loadFromDesktop(
m_directories.getURLFromSrc(u"/sd/qa/unit/data/odp/search-all-notes.odp"));
auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get());
sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell();
CPPUNIT_ASSERT(pViewShell);
uno::Sequence<beans::PropertyValue> aPropertyValues(comphelper::InitPropertySequence({
{ "SearchItem.SearchString", uno::makeAny(OUString("Crash")) },
{ "SearchItem.Backward", uno::makeAny(false) },
{ "SearchItem.Command", uno::makeAny(sal_uInt16(SvxSearchCmd::FIND_ALL)) },
}));
dispatchCommand(mxComponent, ".uno:ExecuteSearch", aPropertyValues);
Scheduler::ProcessEventsToIdle();
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */