test/source/unoapi_test.cxx | 13 +++++++++++-- vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx | 18 ++++++++---------- vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 15 ++++----------- 3 files changed, 23 insertions(+), 23 deletions(-)
New commits: commit 4d8fd94eb4ff4f5b2605f49fa079ed22681e470d Author: Xisco Fauli <[email protected]> AuthorDate: Wed Feb 4 12:38:27 2026 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Wed Feb 4 15:52:06 2026 +0100 UnoApiTest: set password for pdf files inside save() Change-Id: Ic0456a24774e8b7d65163714670510d1c37027c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198670 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index f381a00fc6f0..fb234680a6d0 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -332,8 +332,17 @@ void UnoApiTest::save(TestFilter eFilter, const uno::Sequence<beans::PropertyVal if (pPassword) { - if (eFilter != TestFilter::DOCX && eFilter != TestFilter::XLSX - && eFilter != TestFilter::PPTX) + if (eFilter == TestFilter::PDF_WRITER) + { + comphelper::SequenceAsHashMap aFilterData; + if (aMediaDescriptor.contains(u"FilterData"_ustr)) + aFilterData = aMediaDescriptor[u"FilterData"_ustr]; + aFilterData[u"EncryptFile"_ustr] <<= true; + aFilterData[u"DocumentOpenPassword"_ustr] <<= OUString::createFromAscii(pPassword); + aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData.getAsConstPropertyValueList(); + } + else if (eFilter != TestFilter::DOCX && eFilter != TestFilter::XLSX + && eFilter != TestFilter::PPTX) { aMediaDescriptor[u"Password"_ustr] <<= OUString::createFromAscii(pPassword); } diff --git a/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx b/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx index 038dc70d1258..3527fe7283d2 100644 --- a/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx +++ b/vcl/qa/cppunit/pdfexport/PDFEncryptionTest.cxx @@ -71,12 +71,11 @@ CPPUNIT_TEST_FIXTURE(PDFEncryptionTest, testEncryptionRoundtrip_PDF_1_7) loadFromURL(u"private:factory/swriter"_ustr); // Save PDF - uno::Sequence<beans::PropertyValue> aFilterData = comphelper::InitPropertySequence( - { { "SelectPdfVersion", uno::Any(sal_Int32(17)) }, - { "EncryptFile", uno::Any(true) }, - { "DocumentOpenPassword", uno::Any(u"secret"_ustr) } }); + uno::Sequence<beans::PropertyValue> aFilterData + = comphelper::InitPropertySequence({ { "SelectPdfVersion", uno::Any(sal_Int32(17)) } }); maMediaDescriptor["FilterData"] <<= aFilterData; - save(TestFilter::PDF_WRITER, maMediaDescriptor.getAsConstPropertyValueList()); + save(TestFilter::PDF_WRITER, maMediaDescriptor.getAsConstPropertyValueList(), + /*pPassword*/ "secret"); // Load the exported result in PDFium std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport("secret"_ostr); @@ -90,12 +89,11 @@ CPPUNIT_TEST_FIXTURE(PDFEncryptionTest, testEncryptionRoundtrip_PDF_2_0) loadFromURL(u"private:factory/swriter"_ustr); // Save PDF - uno::Sequence<beans::PropertyValue> aFilterData = comphelper::InitPropertySequence( - { { "SelectPdfVersion", uno::Any(sal_Int32(20)) }, - { "EncryptFile", uno::Any(true) }, - { "DocumentOpenPassword", uno::Any(u"secret"_ustr) } }); + uno::Sequence<beans::PropertyValue> aFilterData + = comphelper::InitPropertySequence({ { "SelectPdfVersion", uno::Any(sal_Int32(20)) } }); maMediaDescriptor["FilterData"] <<= aFilterData; - save(TestFilter::PDF_WRITER, maMediaDescriptor.getAsConstPropertyValueList()); + save(TestFilter::PDF_WRITER, maMediaDescriptor.getAsConstPropertyValueList(), + /*pPassword*/ "secret"); // Load the exported result in PDFium std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport("secret"_ostr); diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index aad9c78a0f68..6b50412dea4c 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -4573,13 +4573,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfImageEncryption) xText->insertTextContent(xCursor->getStart(), xTextContent, /*bAbsorb=*/false); // When saving as encrypted PDF: - uno::Sequence<beans::PropertyValue> aFilterData = { - comphelper::makePropertyValue(u"EncryptFile"_ustr, true), - comphelper::makePropertyValue(u"DocumentOpenPassword"_ustr, u"secret"_ustr), - }; - comphelper::SequenceAsHashMap aMediaDescriptor; - aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; - save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + save(TestFilter::PDF_WRITER, /*rParams*/ {}, /*pPassword*/ "secret"); // Then make sure that the image is not lost: std::unique_ptr<vcl::pdf::PDFiumDocument> pPdfDocument = parsePDFExport("secret"_ostr); @@ -6398,14 +6392,13 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPDFAttachmentsWithEncryptedFile) // The original ODF document will be saved to the PDF as an attachment. uno::Sequence<beans::PropertyValue> aFilterData - = { comphelper::makePropertyValue("IsAddStream", true), - comphelper::makePropertyValue("EncryptFile", true), - comphelper::makePropertyValue("DocumentOpenPassword", OUString("secret")) }; + = { comphelper::makePropertyValue("IsAddStream", true) }; comphelper::SequenceAsHashMap aMediaDescriptor; aMediaDescriptor["FilterData"] <<= aFilterData; loadFromFile(u"SimpleTestDocument.fodt"); - save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList(), + /*pPassword*/ "secret"); // Parse the round-tripped document with PDFium auto pPdfDocument = parsePDFExport("secret"_ostr);
