summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2015-12-17 13:06:20 +0100
committerDavid Tardon <dtardon@redhat.com>2015-12-17 23:03:15 +0100
commitddbba41b39399644b1ce7008d8922998446411e7 (patch)
treeedb42d5bc03521f75fb84c19ebfa4b6488d5f4cd
parentbc0f3f0df24b05d749481ca99e5251546611aaf4 (diff)
allow to skip import tests based on library version
That way we don't have to require the newest version for build just to run tests. Change-Id: I4f91828a13821b235004ff16a69043d6d43686c1
-rw-r--r--config_host/config_writerperfect.h.in15
-rw-r--r--configure.ac1
-rw-r--r--writerperfect/CppunitTest_writerperfect_calc.mk1
-rw-r--r--writerperfect/CppunitTest_writerperfect_draw.mk1
-rw-r--r--writerperfect/CppunitTest_writerperfect_impress.mk1
-rw-r--r--writerperfect/CppunitTest_writerperfect_writer.mk1
-rw-r--r--writerperfect/qa/unit/WpftImportTestBase.cxx20
-rw-r--r--writerperfect/qa/unit/WpftImportTestBase.hxx14
8 files changed, 54 insertions, 0 deletions
diff --git a/config_host/config_writerperfect.h.in b/config_host/config_writerperfect.h.in
new file mode 100644
index 000000000000..4331b4f84839
--- /dev/null
+++ b/config_host/config_writerperfect.h.in
@@ -0,0 +1,15 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+/* Configuration for versions of import libraries used by writerperfect.
+ * This is needed to skip test files that are not supported by the used
+ * version.
+ */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/configure.ac b/configure.ac
index 79625e2f26b7..e0bec55b4759 100644
--- a/configure.ac
+++ b/configure.ac
@@ -12916,6 +12916,7 @@ AC_CONFIG_HEADERS([config_host/config_version.h])
AC_CONFIG_HEADERS([config_host/config_oauth2.h])
AC_CONFIG_HEADERS([config_host/config_poppler.h])
AC_CONFIG_HEADERS([config_host/config_python.h])
+AC_CONFIG_HEADERS([config_host/config_writerperfect.h])
AC_OUTPUT
if test "$CROSS_COMPILING" = TRUE; then
diff --git a/writerperfect/CppunitTest_writerperfect_calc.mk b/writerperfect/CppunitTest_writerperfect_calc.mk
index 75716b38a00a..db0212a34465 100644
--- a/writerperfect/CppunitTest_writerperfect_calc.mk
+++ b/writerperfect/CppunitTest_writerperfect_calc.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_calc,\
cppuhelper \
sal \
test \
+ tl \
ucbhelper \
unotest \
$(gb_UWINAPI) \
diff --git a/writerperfect/CppunitTest_writerperfect_draw.mk b/writerperfect/CppunitTest_writerperfect_draw.mk
index fac4476a1457..232ef3451d40 100644
--- a/writerperfect/CppunitTest_writerperfect_draw.mk
+++ b/writerperfect/CppunitTest_writerperfect_draw.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_draw,\
cppuhelper \
sal \
test \
+ tl \
ucbhelper \
unotest \
$(gb_UWINAPI) \
diff --git a/writerperfect/CppunitTest_writerperfect_impress.mk b/writerperfect/CppunitTest_writerperfect_impress.mk
index 4da810cb8f0d..1c3bb7a14250 100644
--- a/writerperfect/CppunitTest_writerperfect_impress.mk
+++ b/writerperfect/CppunitTest_writerperfect_impress.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_impress,\
cppuhelper \
sal \
test \
+ tl \
ucbhelper \
unotest \
$(gb_UWINAPI) \
diff --git a/writerperfect/CppunitTest_writerperfect_writer.mk b/writerperfect/CppunitTest_writerperfect_writer.mk
index 0c3e6150af94..ca0ee0a72b8d 100644
--- a/writerperfect/CppunitTest_writerperfect_writer.mk
+++ b/writerperfect/CppunitTest_writerperfect_writer.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_CppunitTest_use_libraries,writerperfect_writer,\
cppuhelper \
sal \
test \
+ tl \
ucbhelper \
unotest \
$(gb_UWINAPI) \
diff --git a/writerperfect/qa/unit/WpftImportTestBase.cxx b/writerperfect/qa/unit/WpftImportTestBase.cxx
index 874b4d6daac6..8b66c3b64f5a 100644
--- a/writerperfect/qa/unit/WpftImportTestBase.cxx
+++ b/writerperfect/qa/unit/WpftImportTestBase.cxx
@@ -24,6 +24,8 @@
#include <com/sun/star/ucb/XContent.hpp>
#include <com/sun/star/util/XCloseable.hpp>
+#include <tools/urlobj.hxx>
+
#include <ucbhelper/content.hxx>
#include "WpftImportTestBase.hxx"
@@ -50,6 +52,7 @@ WpftImportTestBase::WpftImportTestBase(const rtl::OUString &rFactoryURL)
, m_xDesktop()
, m_xFilter()
, m_xTypeMap()
+ , m_pOptionalMap(nullptr)
{
}
@@ -75,6 +78,15 @@ void WpftImportTestBase::tearDown()
bool WpftImportTestBase::load(const OUString &, const OUString &rURL, const OUString &,
SfxFilterFlags, SotClipboardFormatId, unsigned int)
{
+ if (m_pOptionalMap)
+ {
+ // first check if this test file is supported by the used version of the library
+ const INetURLObject aUrl(rURL);
+ const WpftOptionalMap_t::const_iterator it(m_pOptionalMap->find(aUrl.getName()));
+ if ((it != m_pOptionalMap->end()) && !it->second)
+ return true; // skip the file
+ }
+
// create an empty frame
const uno::Reference<lang::XComponent> xDoc(
m_xDesktop->loadComponentFromURL(m_aFactoryURL, "_blank", 0, uno::Sequence<beans::PropertyValue>()),
@@ -163,6 +175,14 @@ void WpftImportTestBase::doTest(const rtl::OUString &rFilter, const rtl::OUStrin
testDir(OUString(), getURLFromSrc(rPath), OUString());
}
+void WpftImportTestBase::doTest(const rtl::OUString &rFilter, const rtl::OUString &rPath, const WpftOptionalMap_t &rOptionalMap)
+{
+ m_xFilter.set(m_xFactory->createInstanceWithContext(rFilter, m_xContext), uno::UNO_QUERY_THROW);
+ m_pOptionalMap = &rOptionalMap;
+ testDir(OUString(), getURLFromSrc(rPath), OUString());
+ m_pOptionalMap = nullptr;
+}
+
void WpftImportTestBase::impl_detectFilterName(uno::Sequence<beans::PropertyValue> &rDescriptor, const rtl::OUString &rTypeName)
{
const sal_Int32 nDescriptorLen = rDescriptor.getLength();
diff --git a/writerperfect/qa/unit/WpftImportTestBase.hxx b/writerperfect/qa/unit/WpftImportTestBase.hxx
index 43e1bf137060..4689f9847dd5 100644
--- a/writerperfect/qa/unit/WpftImportTestBase.hxx
+++ b/writerperfect/qa/unit/WpftImportTestBase.hxx
@@ -10,6 +10,10 @@
#ifndef INCLUDED_WRITERPERFECT_QA_UNIT_WPFTIMPORTTESTBASE_HXX
#define INCLUDED_WRITERPERFECT_QA_UNIT_WPFTIMPORTTESTBASE_HXX
+#include "config_writerperfect.h"
+
+#include <unordered_map>
+
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/Sequence.hxx>
@@ -19,6 +23,12 @@
#include <unotest/filters-test.hxx>
+#define REQUIRE_VERSION(major, minor, micro, req_major, req_minor, req_micro) \
+ (major) > (req_major) || \
+ ((major) == (req_major) && \
+ ((minor) > (req_minor) \
+ || ((minor) == (req_minor) && ((micro) >= (req_micro)))))
+
namespace com
{
namespace sun
@@ -54,6 +64,8 @@ namespace writerperfect
namespace test
{
+typedef std::unordered_map<rtl::OUString, bool, rtl::OUStringHash> WpftOptionalMap_t;
+
class WpftImportTestBase
: public ::test::FiltersTest
, public ::test::BootstrapFixture
@@ -66,6 +78,7 @@ public:
protected:
void doTest(const rtl::OUString &rFilter, const rtl::OUString &rPath);
+ void doTest(const rtl::OUString &rFilter, const rtl::OUString &rPath, const WpftOptionalMap_t &rOptionalMap);
private:
virtual bool load(const OUString &, const OUString &rURL, const OUString &,
@@ -79,6 +92,7 @@ private:
css::uno::Reference<css::ucb::XSimpleFileAccess> m_xFileAccess;
css::uno::Reference<css::document::XFilter> m_xFilter;
css::uno::Reference<css::container::XNameAccess> m_xTypeMap;
+ const WpftOptionalMap_t *m_pOptionalMap;
};
}