diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2021-06-07 10:01:55 +0900 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2021-06-16 10:51:57 +0200 |
commit | d08e2f3daa126f4487d75e06330a56e8b998e7e7 (patch) | |
tree | 98512ad567d8c1e46a2e47d6976347ebe480f436 /sd | |
parent | 42ed8ce505c542d5fff885d0079f6f991de71e76 (diff) |
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.
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116769
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 7f059ce157da0de40a98f63f61d923cc67d93884)
Change-Id: I8e6e4a9da1afc85643648aee36a03c1fb39ca16d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117146
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/qa/unit/data/odp/search-all-notes.odp | bin | 0 -> 12018 bytes | |||
-rw-r--r-- | sd/qa/unit/uiimpress.cxx | 25 |
2 files changed, 25 insertions, 0 deletions
diff --git a/sd/qa/unit/data/odp/search-all-notes.odp b/sd/qa/unit/data/odp/search-all-notes.odp Binary files differnew file mode 100644 index 000000000000..6c38ecabb0ea --- /dev/null +++ b/sd/qa/unit/data/odp/search-all-notes.odp diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx index 81ec6e4bf321..274160105156 100644 --- a/sd/qa/unit/uiimpress.cxx +++ b/sd/qa/unit/uiimpress.cxx @@ -21,6 +21,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> @@ -346,6 +347,30 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testSpellOnlineParameter) CPPUNIT_ASSERT_EQUAL(!bSet, pImpressDocument->GetDoc()->GetOnlineSpell()); } +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: */ |