10 #include <config_features.h>
17 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
18 #include <com/sun/star/ucb/XContentProvider.hpp>
19 #include <com/sun/star/ucb/XUniversalContentBroker.hpp>
25 #include <osl/file.hxx>
26 #include <osl/process.h>
39 OString aErr =
"Unexpected dialog: " +
43 CPPUNIT_ASSERT_MESSAGE( aErr.getStr(),
false);
51 : m_bNeedUCB( bNeedUCB )
52 , m_bAssertOnDialog( bAssertOnDialog )
60 lang::XMultiServiceFactory * pSFactory)
72 uno::Reference<ucb::XUniversalContentBroker> xUcb(pSFactory->createInstance(
"com.sun.star.ucb.UniversalContentBroker"), uno::UNO_QUERY_THROW);
73 uno::Reference<ucb::XContentProvider> xFileProvider(pSFactory->createInstance(
"com.sun.star.ucb.FileContentProvider"), uno::UNO_QUERY_THROW);
74 xUcb->registerContentProvider(xFileProvider,
"file",
true);
75 uno::Reference<ucb::XContentProvider> xTdocProvider(pSFactory->createInstance(
"com.sun.star.ucb.TransientDocumentsContentProvider"), uno::UNO_QUERY);
76 if (xTdocProvider.is())
78 xUcb->registerContentProvider(xTdocProvider,
"vnd.sun.star.tdoc",
true);
84 SAL_DLLPUBLIC_EXPORT
void test_init(lang::XMultiServiceFactory *pFactory)
88 ::comphelper::setProcessServiceFactory(pFactory);
92 catch (...) { abort(); }
109 #if OSL_DEBUG_LEVEL > 0
120 #if HAVE_EXPORT_VALIDATION
123 OString loadFile(
const OUString& rURL)
125 osl::File aFile(rURL);
126 osl::FileBase::RC eStatus = aFile.open(osl_File_OpenFlag_Read);
127 CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, eStatus);
129 aFile.getSize(nSize);
130 std::unique_ptr<char[]> aBytes(
new char[nSize]);
131 sal_uInt64 nBytesRead;
132 aFile.read(aBytes.get(), nSize, nBytesRead);
133 CPPUNIT_ASSERT_EQUAL(nSize, nBytesRead);
134 OString aContent(aBytes.get(), nBytesRead);
144 #if HAVE_EXPORT_VALIDATION
152 var =
"ODFVALIDATOR";
156 #if HAVE_BFFVALIDATOR
157 var =
"BFFVALIDATOR";
164 oslProcessError e = osl_getEnvironment(var.pData, &aValidator.pData);
165 CPPUNIT_ASSERT_EQUAL_MESSAGE(
166 OUString(
"cannot get env var " + var).toUtf8().getStr(),
167 osl_Process_E_None, e);
168 CPPUNIT_ASSERT_MESSAGE(
169 OUString(
"empty get env var " + var).toUtf8().getStr(),
170 !aValidator.isEmpty());
177 + m_directories.getPathFromSrc(
u"/schema/libreoffice/OpenDocument-manifest-schema-v1.3+libreoffice.rng")
179 + m_directories.getPathFromSrc(
u"/schema/libreoffice/OpenDocument-dsig-schema-v1.3+libreoffice.rng")
181 + m_directories.getPathFromSrc(
u"/schema/libreoffice/OpenDocument-schema-v1.3+libreoffice.rng")
183 + m_directories.getPathFromSrc(
u"/schema/mathml2/mathml2.xsd");
189 OUString
aCommand = aValidator +
" " + rPath +
" > " + aOutputFile;
191 SAL_INFO(
"test",
"BootstrapFixture::validate: executing '" << aCommand <<
"'");
194 OString aContentString = loadFile(aOutput.
GetURL());
195 OUString aContentOUString = OStringToOUString(aContentString, RTL_TEXTENCODING_UTF8);
197 if( eFormat ==
test::OOXML && !aContentOUString.isEmpty() )
200 sal_Int32
nIndex = aContentOUString.lastIndexOf(
"Grand total of errors in submitted package: ");
203 SAL_WARN(
"test",
"no summary line");
207 sal_Int32 nStartOfNumber = nIndex + std::strlen(
"Grand total of errors in submitted package: ");
208 OUString aNumber = aContentOUString.copy(nStartOfNumber);
209 sal_Int32 nErrors = aNumber.toInt32();
210 OString aMsg =
"validation error in OOXML export: Errors: " + OString::number(nErrors);
215 CPPUNIT_ASSERT_EQUAL_MESSAGE(aMsg.getStr(), sal_Int32(0), nErrors);
218 else if( eFormat ==
test::ODF && !aContentOUString.isEmpty() )
220 if( aContentOUString.indexOf(
"Error") != -1 )
223 CPPUNIT_FAIL(aContentString.getStr());
226 CPPUNIT_ASSERT_EQUAL_MESSAGE(
228 "failed to execute: " +
OUStringToOString(aCommand, RTL_TEXTENCODING_UTF8) +
"\n"
#define LINK(Instance, Class, Member)
static void test_init_impl(bool bAssertOnDialog, bool bNeedUCB, lang::XMultiServiceFactory *pSFactory)
const ContentProperties & rData
exports com.sun.star. system
OOO_DLLPUBLIC_TEST_SETUPVCL void setUpVcl(bool forceHeadless=false)
SAL_DLLPUBLIC_EXPORT void test_deinit()
static OutputDevice * GetDefaultDevice()
static void SetFilterHdl(const Link< ConvertData &, bool > &rLink)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
css::uno::Reference< css::uno::XComponentContext > mxComponentContext
static bool IsDefaultDPI()
OUString const & GetURL() const
SAL_DLLPUBLIC_EXPORT void test_init(lang::XMultiServiceFactory *pFactory)
Reference< XComponentContext > getComponentContext(Reference< XMultiServiceFactory > const &factory)
Link< ConvertData &, bool > GetFilterCallback() const
static void aBasicErrorFunc(const OUString &rErr, const OUString &rAction)
virtual void setUp() override
void validate(const OUString &rURL, ValidationFormat) const
virtual void setUp() override
OUString GetFileName() const
#define SAL_INFO(area, stream)
static void ProcessEventsToIdle()
static void RegisterDisplay(BasicDisplayErrorFunc *)
static GraphicFilter & GetGraphicFilter()
#define SAL_WARN(area, stream)
IMPL_STATIC_LINK(test::BootstrapFixture, ImplInitFilterHdl, ConvertData &, rData, bool)
VCL_DLLPUBLIC void DeInitVCL()
BootstrapFixture(bool bAssertOnDialog=true, bool bNeedUCB=true)
void EnableKillingFile(bool bEnable=true)
virtual ~BootstrapFixture() override