/* -*- 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/. */ #include #include #include #include #include using namespace ::com::sun::star; /** * Unit test invoking writerfilter/ only. * * This does only minimal testing, checking if the filter crashes and returns * the expected bool value for given inputs. More fine-grained tests can be * found under sw/qa/extras/rtfimport/. */ class RtfTest : public test::FiltersTest, public test::BootstrapFixture { public: virtual void setUp() override; virtual bool load(const OUString&, const OUString& rURL, const OUString&, SfxFilterFlags, SotClipboardFormatId, unsigned int) override; private: uno::Reference m_xFilter; }; void RtfTest::setUp() { test::BootstrapFixture::setUp(); m_xFilter.set(m_xSFactory->createInstance("com.sun.star.comp.Writer.RtfFilter"), uno::UNO_QUERY_THROW); } bool RtfTest::load(const OUString&, const OUString& rURL, const OUString&, SfxFilterFlags, SotClipboardFormatId, unsigned int) { uno::Sequence aDescriptor = { beans::PropertyValue( "URL", sal_Int32(0), uno::Any(rURL), beans::PropertyState_DIRECT_VALUE) }; try { return m_xFilter->filter(aDescriptor); } catch (const lang::WrappedTargetRuntimeException& rWrapped) { io::WrongFormatException e; if (rWrapped.TargetException >>= e) { return false; } throw; } catch (const std::exception&) { return false; } } CPPUNIT_TEST_FIXTURE(RtfTest, testFilter) { #ifndef DISABLE_CVE_TESTS testDir(OUString(), m_directories.getURLFromSrc(u"/writerfilter/qa/cppunittests/filters-test/data/")); #endif } CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */