vcl/qa/cppunit/pdfexport/data/tdf157679.pptx |binary vcl/qa/cppunit/pdfexport/pdfexport.cxx | 28 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+)
New commits: commit d0f521132c43fea1ca18e18d3e31c6d868e4ebd6 Author: Xisco Fauli <xiscofa...@libreoffice.org> AuthorDate: Tue Oct 31 13:43:32 2023 +0100 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Tue Oct 31 17:24:31 2023 +0100 tdf#157679: vcl_pdfexport: Add unittest Change-Id: I31aa7f683e8d9f9a227ba88c58e7fdba94c83bb5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158725 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/vcl/qa/cppunit/pdfexport/data/tdf157679.pptx b/vcl/qa/cppunit/pdfexport/data/tdf157679.pptx new file mode 100644 index 000000000000..ca82491c21f3 Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf157679.pptx differ diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx index fdcc1730b6a8..192d559f9c74 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx @@ -1692,6 +1692,34 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf105954) CPPUNIT_ASSERT_LESS(static_cast<tools::Long>(250), aMeta.getWidth()); } +CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157679) +{ + // Import the bugdoc and export as PDF. + aMediaDescriptor["FilterName"] <<= OUString("impress_pdf_Export"); + saveAsPDF(u"tdf157679.pptx"); + std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport(); + + // The document has one page. + CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount()); + + std::unique_ptr<vcl::pdf::PDFiumPage> pPdfPage = pPdfDocument->openPage(/*nIndex=*/0); + CPPUNIT_ASSERT(pPdfPage); + + // Without the fix in place, this test would have failed with + // - Expected: 3 + // - Actual : 5 + CPPUNIT_ASSERT_EQUAL(3, pPdfPage->getObjectCount()); + + std::unique_ptr<vcl::pdf::PDFiumTextPage> pTextPage = pPdfPage->getTextPage(); + int nPageObjectCount = pPdfPage->getObjectCount(); + for (int i = 0; i < nPageObjectCount; ++i) + { + // Check there are not Text objects + std::unique_ptr<vcl::pdf::PDFiumPageObject> pPageObject = pPdfPage->getObject(i); + CPPUNIT_ASSERT(pPageObject->getType() != vcl::pdf::PDFPageObjectType::Text); + } +} + CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf128445) { // Import the bugdoc and export as PDF.