include/test/unoapi_test.hxx | 3 +-- test/source/unoapi_test.cxx | 20 +++++++++++++++++--- vcl/qa/cppunit/pdfexport/pdfexport.cxx | 5 ++--- vcl/qa/cppunit/pdfexport/pdfexport2.cxx | 21 +++++++++++---------- 4 files changed, 31 insertions(+), 18 deletions(-)
New commits: commit 159f25e8e5994bb940ff254ac3f1c55e76cd48f4 Author: Xisco Fauli <[email protected]> AuthorDate: Fri Mar 6 16:21:10 2026 +0000 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Tue Mar 10 14:19:23 2026 +0100 UnoApiTest: validate PDF/UA, PDF/A-1b, PDF/A-2b or PDF/A-3b by default Change-Id: I984b5fb16bf36beb9468940a7d34248b17eaa3f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200051 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201186 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/include/test/unoapi_test.hxx b/include/test/unoapi_test.hxx index 33d6fa005fb4..3bfeac27c889 100644 --- a/include/test/unoapi_test.hxx +++ b/include/test/unoapi_test.hxx @@ -177,9 +177,8 @@ protected: rtl::Reference<TestInteractionHandler> xInteractionHandler; - void validate(TestFilter eFilter); - private: + void validate(TestFilter eFilter); void setTestInteractionHandler(const char* pPassword, std::vector<css::beans::PropertyValue>& rFilterOptions); diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx index 2b30d3c40ad8..4f2713e4c80c 100644 --- a/test/source/unoapi_test.cxx +++ b/test/source/unoapi_test.cxx @@ -220,7 +220,7 @@ void UnoApiTest::validate(TestFilter eFilter) if (eFormat == ValidationFormat::PDF) { - if (aContentOUString.indexOf("isCompliant=\"true\"") == -1) + if (aContentOUString.indexOf("isCompliant=\"false\"") != -1) { SAL_WARN("test", aContentOUString); CPPUNIT_FAIL("VeraPDF validation failed: document is not compliant"); @@ -373,8 +373,22 @@ void UnoApiTest::save(TestFilter eFilter, const uno::Sequence<beans::PropertyVal css::uno::Reference<frame::XStorable> xStorable(mxComponent, css::uno::UNO_QUERY_THROW); xStorable->storeToURL(maTempFile.GetURL(), aMediaDescriptor.getAsConstPropertyValueList()); - // FIXME: Don't validate pdf files by default for now - if (!mbSkipValidation && eFilter != TestFilter::PDF_WRITER) + if (eFilter == TestFilter::PDF_WRITER) + { + comphelper::SequenceAsHashMap aFilterData; + if (aMediaDescriptor.contains(u"FilterData"_ustr)) + aFilterData = aMediaDescriptor[u"FilterData"_ustr]; + bool bPDFUACompliance( + aFilterData.getUnpackedValueOrDefault(u"PDFUACompliance"_ustr, false)); + sal_Int32 nSelectPdfVersion( + aFilterData.getUnpackedValueOrDefault(u"SelectPdfVersion"_ustr, sal_Int32(0))); + // Only validate PDF/UA, PDF/A-1b, PDF/A-2b or PDF/A-3b + if (!bPDFUACompliance && nSelectPdfVersion != 1 && nSelectPdfVersion != 2 + && nSelectPdfVersion != 3) + skipValidation(); + } + + if (!mbSkipValidation) validate(eFilter); } diff --git a/vcl/qa/cppunit/pdfexport/pdfexport.cxx b/vcl/qa/cppunit/pdfexport/pdfexport.cxx index 6a56250017e9..2b7e3367731d 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport.cxx @@ -95,6 +95,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf160051) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf160051.odt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -141,6 +142,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testCommentAnnotation) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf162359.odt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -2381,7 +2383,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf157816.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -2784,7 +2785,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf157816Link) vcl::filter::PDFDocument aDocument; loadFromFile(u"LinkWithFly.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3176,7 +3176,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest, testTdf142806) vcl::filter::PDFDocument aDocument; loadFromFile(u"LinkPages.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); diff --git a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx index 69e4cce229ad..3ef2b43ff57a 100644 --- a/vcl/qa/cppunit/pdfexport/pdfexport2.cxx +++ b/vcl/qa/cppunit/pdfexport/pdfexport2.cxx @@ -72,6 +72,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf160705) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf160705.odt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -141,6 +142,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf159895) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf159895.odt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -1388,6 +1390,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testPdfUaMetadata) vcl::filter::PDFDocument aDocument; loadFromFile(u"BrownFoxLazyDog.odt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -1469,7 +1472,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf139736) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf139736-1.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -1577,6 +1579,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152231) aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf152231.fodt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -1715,6 +1718,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf152235) comphelper::SequenceAsHashMap aMediaDescriptor; aMediaDescriptor[u"FilterData"_ustr] <<= aFilterData; loadFromURL(u"private:factory/swriter"_ustr); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); vcl::filter::PDFDocument aDocument; @@ -1813,7 +1817,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf149140) vcl::filter::PDFDocument aDocument; loadFromFile(u"TableTH_test_LibreOfficeWriter7.3.3_HeaderRow-HeadersInTopRow.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -1874,7 +1877,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testNestedSection) vcl::filter::PDFDocument aDocument; loadFromFile(u"nestedsection.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -2021,6 +2023,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157817) vcl::filter::PDFDocument aDocument; loadFromFile(u"SimpleTOC.fodt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -2196,6 +2199,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135638) vcl::filter::PDFDocument aDocument; loadFromFile(u"image-shape.fodt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -2292,6 +2296,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157703) vcl::filter::PDFDocument aDocument; loadFromFile(u"LO_Lbl_Lbody_bug_report.fodt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -2372,6 +2377,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testSpans) vcl::filter::PDFDocument aDocument; loadFromFile(u"spanlist.fodt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -2906,6 +2912,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf57423) vcl::filter::PDFDocument aDocument; loadFromFile(u"Description PDF Export test .odt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -3012,7 +3019,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154982) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf154982.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3094,6 +3100,7 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf157397) vcl::filter::PDFDocument aDocument; loadFromFile(u"PDF_export_with_formcontrol.fodt"); + skipValidation(); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); // Parse the export result. @@ -3423,7 +3430,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf135192) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf135192-1.fodp"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3556,7 +3562,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf154955) vcl::filter::PDFDocument aDocument; loadFromFile(u"grouped-shape.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3692,7 +3697,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testTdf155190) vcl::filter::PDFDocument aDocument; loadFromFile(u"tdf155190.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3783,7 +3787,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testMediaShapeAnnot) vcl::filter::PDFDocument aDocument; loadFromFile(u"vid.odt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -3924,7 +3927,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFlyFrameHyperlinkAnnot) vcl::filter::PDFDocument aDocument; loadFromFile(u"image-hyperlink-alttext.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ); @@ -4061,7 +4063,6 @@ CPPUNIT_TEST_FIXTURE(PdfExportTest2, testFormControlAnnot) vcl::filter::PDFDocument aDocument; loadFromFile(u"formcontrol.fodt"); save(TestFilter::PDF_WRITER, aMediaDescriptor.getAsConstPropertyValueList()); - validate(TestFilter::PDF_WRITER); // Parse the export result. SvFileStream aStream(maTempFile.GetURL(), StreamMode::READ);
