test/source/unoapi_test.cxx | 6 +++++- vcl/qa/cppunit/pdfexport/data/tdf157517.odt |binary vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-)
New commits: commit b800fe78024c6f5e0a39d38c2deb0dca4f6c74cf Author: Xisco Fauli <[email protected]> AuthorDate: Fri Feb 20 17:49:28 2026 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Sat Feb 21 07:31:04 2026 +0100 tdf#157517: vcl_pdfexport2: Add test Change-Id: I9084c5b57e1d59064f026b3f391444ce60fad552 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199899 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index ebd4a3f00cff..8ae3b29f8073 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -214,7 +214,11 @@ void UnoApiTest::validate(TestFilter eFilter) xmlDocUniquePtr pXmlDoc = parseXmlStream(&aStream); // Make sure the output is well-formed. CPPUNIT_ASSERT(pXmlDoc); - assertXPath(pXmlDoc, "/report/jobs/job/validationReport", "isCompliant", u"true"); + int nCount = countXPathNodes(pXmlDoc, "/report/jobs/job/validationReport"); + CPPUNIT_ASSERT(nCount); + for (int i = 1; i <= nCount; ++i) + assertXPath(pXmlDoc, "/report/jobs/job/validationReport[" + OString::number(i) + "]", + "isCompliant", u"true"); } else { diff --git a/vcl/qa/cppunit/pdfexport/data/tdf157517.odt b/vcl/qa/cppunit/pdfexport/data/tdf157517.odt new file mode 100644 index 000000000000..50a820a1ad7a Binary files /dev/null and b/vcl/qa/cppunit/pdfexport/data/tdf157517.odt differ diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index 9ae37f86560f..b83cd1412a4c 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -1695,6 +1695,22 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf136805) validate(TestFilter::PDF_WRITER); } +CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157517) +{ + // Only reproduced with PPDF-A/2 / bDF-A/3b and PDF/UA. + uno::Sequence<beans::PropertyValue> aFilterData(comphelper::InitPropertySequence({ + { "PDFUACompliance", uno::Any(true) }, + { "SelectPdfVersion", uno::Any(static_cast<sal_Int32>(3)) }, + })); + comphelper::SequenceAsHashMap aMediaDescriptor; + aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; + vcl::filter::PDFDocument aDocument; + loadFromFile(u"tdf157517.odt"); + save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + // Without the fix in place, the validation would have failed + validate(TestFilter::PDF_WRITER); +} + CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152235) { // Enable PDF/UA
