vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)
New commits: commit e9bf377a94ed1c5235fa5fc21c87f4e7e569daab Author: Xisco Fauli <[email protected]> AuthorDate: Wed Feb 25 14:54:48 2026 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Wed Feb 25 16:47:55 2026 +0100 tdf#153472: vcl_pdfexport2: Add test Change-Id: I20aaea6122c9de0a727ec06f12fd05ca2c98b231 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200337 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index 1c09db9ec2b9..5b289c6032ca 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -76,6 +76,8 @@ void PdfExportTest2::registerNamespaces(xmlXPathContextPtr& pXmlXpathCtx) xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("dc"), BAD_CAST("http://purl.org/dc/elements/1.1/")); xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("pdfuaid"), BAD_CAST("http://www.aiim.org/pdfua/ns/id/")); + xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("pdfaid"), + BAD_CAST("http://www.aiim.org/pdfa/ns/id/")); } CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf160705) @@ -1498,6 +1500,46 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfUaMetadata) assertXPathContent(pXmlDoc, "/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfuaid:part", u"1"); } +CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf153472) +{ + // Use PDF/A-1b + uno::Sequence<beans::PropertyValue> aFilterData( + comphelper::InitPropertySequence({ { "SelectPdfVersion", uno::Any(sal_Int32(1)) } })); + comphelper::SequenceAsHashMap aMediaDescriptor; + aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; + + vcl::filter::PDFDocument aDocument; + loadFromURL(u"private:factory/swriter"_ustr); + skipValidation(); + save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); + + // Parse the export result. + SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); + CPPUNIT_ASSERT(aDocument.Read(aStream)); + + auto* pCatalog = aDocument.GetCatalog(); + CPPUNIT_ASSERT(pCatalog); + auto* pCatalogDictionary = pCatalog->GetDictionary(); + CPPUNIT_ASSERT(pCatalogDictionary); + auto* pMetadataObject = pCatalogDictionary->LookupObject("Metadata"_ostr); + CPPUNIT_ASSERT(pMetadataObject); + auto* pMetadataDictionary = pMetadataObject->GetDictionary(); + auto* pType = dynamic_cast<vcl::filter::PDFNameElement*>( + pMetadataDictionary->LookupElement("Type"_ostr)); + CPPUNIT_ASSERT(pType); + CPPUNIT_ASSERT_EQUAL("Metadata"_ostr, pType->GetValue()); + + auto* pStreamObject = pMetadataObject->GetStream(); + CPPUNIT_ASSERT(pStreamObject); + auto& rStream = pStreamObject->GetMemory(); + rStream.Seek(0); + xmlDocUniquePtr pXmlDoc = parseXmlStream(&rStream); + CPPUNIT_ASSERT(pXmlDoc); + + assertXPathContent(pXmlDoc, "/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfaid:part", u"1"); + assertXPathContent(pXmlDoc, "/x:xmpmeta/rdf:RDF/rdf:Description[1]/pdfaid:conformance", u"B"); +} + CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139736) { // Enable PDF/UA
