vcl/qa/cppunit/pdfexport/pdfexport2.cxx |   40 ++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

New commits:
commit 11d9fc1a2ddf750a2e86c2564f66fe46345164d1
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Thu Nov 7 14:29:02 2024 +0100
Commit:     Miklos Vajna <[email protected]>
CommitDate: Mon Nov 25 09:48:28 2024 +0100

    pdf: add initial test for PDF 2.0 (check using PDFium)
    
    Change-Id: I43e6048d34ee9c51e0602cd671a73b19145a9c17
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176214
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Miklos Vajna <[email protected]>

diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx 
b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
index 8f24a8143739..837924d81224 100644
--- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
+++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx
@@ -668,6 +668,46 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testVersion15)
     CPPUNIT_ASSERT_EQUAL(15, nFileVersion);
 }
 
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testVersion20)
+{
+    // Create an empty document.
+    mxComponent = loadFromDesktop("private:factory/swriter");
+
+    // Save as PDF.
+    uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
+    uno::Sequence<beans::PropertyValue> aFilterData = 
comphelper::InitPropertySequence(
+        { { "SelectPdfVersion", uno::Any(static_cast<sal_Int32>(20)) } });
+    aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
+    aMediaDescriptor["FilterData"] <<= aFilterData;
+    xStorable->storeToURL(maTempFile.GetURL(), 
aMediaDescriptor.getAsConstPropertyValueList());
+
+    // Parse the export result.
+    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport();
+    int nFileVersion = pPdfDocument->getFileVersion();
+    CPPUNIT_ASSERT_EQUAL(20, nFileVersion);
+}
+
+CPPUNIT_TEST_FIXTURE(PdfExportTest2, testEncryptionRoundtrip)
+{
+    mxComponent = loadFromDesktop("private:factory/swriter");
+
+    // Save PDF
+    uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
+    aMediaDescriptor["FilterName"] <<= OUString("writer_pdf_Export");
+    uno::Sequence<beans::PropertyValue> aFilterData = 
comphelper::InitPropertySequence(
+        { { "SelectPdfVersion", uno::Any(sal_Int32(20)) },
+          { "EncryptFile", uno::Any(true) },
+          { "DocumentOpenPassword", uno::Any(u"secret"_ustr) } });
+    aMediaDescriptor["FilterData"] <<= aFilterData;
+    xStorable->storeToURL(maTempFile.GetURL(), 
aMediaDescriptor.getAsConstPropertyValueList());
+
+    // Load the exported result in PDFium
+    std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = 
parsePDFExport("secret"_ostr);
+    CPPUNIT_ASSERT_EQUAL(1, pPdfDocument->getPageCount());
+    int nFileVersion = pPdfDocument->getFileVersion();
+    CPPUNIT_ASSERT_EQUAL(20, nFileVersion);
+}
+
 // Check round-trip of importing and exporting the PDF with PDFium filter,
 // which imports the PDF document as multiple PDFs as graphic object.
 // Each page in the document has one PDF graphic object which content is

Reply via email to