sd/qa/unit/tiledrendering/LOKitSearchTest.cxx | 69 ++++++++++++++++++++++++++ 1 file changed, 69 insertions(+)
New commits: commit b2316d0b494a5a60992a7be21a2613d25ec1bb5a Author: Tomaž Vajngerl <[email protected]> AuthorDate: Sun May 31 12:17:05 2020 +0200 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Sun May 31 12:17:05 2020 +0200 sd: add test to search inside PDF in multiple pages Change-Id: I246508a22a4e324bae1bb10c6e292790c04da4c0 diff --git a/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx b/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx index ec9f7d95c5da..2aae7261d451 100644 --- a/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx +++ b/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx @@ -55,6 +55,7 @@ public: void testDontSearchInMasterPages(); void testSearchInPDFNonExisting(); void testSearchInPDF(); + void testSearchInPDFInMultiplePages(); void testSearchIn2MixedObjects(); void testSearchIn6MixedObjects(); @@ -67,6 +68,7 @@ public: CPPUNIT_TEST(testDontSearchInMasterPages); CPPUNIT_TEST(testSearchInPDFNonExisting); CPPUNIT_TEST(testSearchInPDF); + CPPUNIT_TEST(testSearchInPDFInMultiplePages); CPPUNIT_TEST(testSearchIn2MixedObjects); CPPUNIT_TEST(testSearchIn6MixedObjects); CPPUNIT_TEST_SUITE_END(); @@ -330,6 +332,73 @@ void LOKitSearchTest::testSearchInPDF() mpCallbackRecorder->m_aSelection[0]); } +void LOKitSearchTest::testSearchInPDFInMultiplePages() +{ + SdXImpressDocument* pXImpressDocument = createDoc("PDFSearch.pdf"); + sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); + mpCallbackRecorder->registerCallbacksFor(pViewShell->GetViewShellBase()); + + SdPage* pPage = pViewShell->GetActualPage(); + CPPUNIT_ASSERT(pPage); + + { + SdrObject* pObject = pPage->GetObj(0); + CPPUNIT_ASSERT(pObject); + + SdrGrafObj* pGraphicObject = dynamic_cast<SdrGrafObj*>(pObject); + CPPUNIT_ASSERT(pGraphicObject); + + Graphic aGraphic = pGraphicObject->GetGraphic(); + auto const& pVectorGraphicData = aGraphic.getVectorGraphicData(); + CPPUNIT_ASSERT(pVectorGraphicData); + CPPUNIT_ASSERT_EQUAL(VectorGraphicDataType::Pdf, + pVectorGraphicData->getVectorGraphicDataType()); + } + + // Search for "deadbeat" + lcl_search("deadbeat"); + + CPPUNIT_ASSERT_EQUAL(true, mpCallbackRecorder->m_bFound); + CPPUNIT_ASSERT_EQUAL(1, mpCallbackRecorder->m_nSearchResultCount); + + CPPUNIT_ASSERT_EQUAL(size_t(1), mpCallbackRecorder->m_aSearchResultSelection.size()); + CPPUNIT_ASSERT_EQUAL(size_t(1), mpCallbackRecorder->m_aSearchResultPart.size()); + + // Expect Page with index 0 + CPPUNIT_ASSERT_EQUAL(0, mpCallbackRecorder->m_aSearchResultPart[0]); + CPPUNIT_ASSERT_EQUAL(OString("6098, 5865, 2523, 506"), + mpCallbackRecorder->m_aSearchResultSelection[0]); + + // Search again - same result + lcl_search("deadbeat"); + + CPPUNIT_ASSERT_EQUAL(true, mpCallbackRecorder->m_bFound); + CPPUNIT_ASSERT_EQUAL(2, mpCallbackRecorder->m_nSearchResultCount); + + CPPUNIT_ASSERT_EQUAL(size_t(1), mpCallbackRecorder->m_aSearchResultSelection.size()); + CPPUNIT_ASSERT_EQUAL(size_t(1), mpCallbackRecorder->m_aSearchResultPart.size()); + + // Expect Page with index 1 + CPPUNIT_ASSERT_EQUAL(1, mpCallbackRecorder->m_aSearchResultPart[0]); + CPPUNIT_ASSERT_EQUAL(OString("6098, 3792, 2523, 505"), + mpCallbackRecorder->m_aSearchResultSelection[0]); + + // Search again - same result + lcl_search("deadbeat"); + + CPPUNIT_ASSERT_EQUAL(true, mpCallbackRecorder->m_bFound); + CPPUNIT_ASSERT_EQUAL(3, mpCallbackRecorder->m_nSearchResultCount); + + CPPUNIT_ASSERT_EQUAL(size_t(1), mpCallbackRecorder->m_aSearchResultSelection.size()); + CPPUNIT_ASSERT_EQUAL(size_t(1), mpCallbackRecorder->m_aSearchResultPart.size()); + + // Expect Page with index 0 + CPPUNIT_ASSERT_EQUAL(0, mpCallbackRecorder->m_aSearchResultPart[0]); + CPPUNIT_ASSERT_EQUAL(OString("6098, 5865, 2523, 506"), + mpCallbackRecorder->m_aSearchResultSelection[0]); +} + // Test searching in document with mixed objects. // We have 2 objects: 1. Text Object, 2. Graphic Object with PDF void LOKitSearchTest::testSearchIn2MixedObjects() _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
