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.

Reply via email to