sw/qa/extras/inc/swmodeltestbase.hxx | 72 +++++++++++++++++++++++++++++++++-- sw/qa/extras/rtfimport/rtfimport.cxx | 14 ++++++ 2 files changed, 82 insertions(+), 4 deletions(-)
New commits: commit a9df0a63656b9aea2d8212760542b4a22a824422 Author: Miklos Vajna <[email protected]> Date: Tue Jan 28 11:07:37 2014 +0100 Fix build: DECLARE_RTFIMPORT_TEST macro wasn't defined Change-Id: I87c1c9be2869c5de0a815bdb9fe68a908ff0d747 diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx b/sw/qa/extras/inc/swmodeltestbase.hxx index 727580d..9eb7a31 100644 --- a/sw/qa/extras/inc/swmodeltestbase.hxx +++ b/sw/qa/extras/inc/swmodeltestbase.hxx @@ -35,12 +35,27 @@ using namespace com::sun::star; #define DEFAULT_STYLE "Default Style" +#define DECLARE_SW_IMPORT_TEST(TestName, filename, BaseClass) \ + class TestName : public BaseClass { \ + public:\ + CPPUNIT_TEST_SUITE(TestName); \ + CPPUNIT_TEST(Import); \ + CPPUNIT_TEST_SUITE_END(); \ + \ + void Import() { \ + executeImportTest(filename);\ + }\ + void verify();\ + }; \ + CPPUNIT_TEST_SUITE_REGISTRATION(TestName); \ + void TestName::verify() + /// Base class for filter tests loading or roundtriping a document, then asserting the document model. class SwModelTestBase : public test::BootstrapFixture, public unotest::MacrosTest { public: - SwModelTestBase() - : mpXmlBuffer(0) + SwModelTestBase(const char* pTestDocumentPath = "", const char* pFilter = "") + : mpXmlBuffer(0), mpTestDocumentPath(pTestDocumentPath), mpFilter(pFilter) { } @@ -63,6 +78,53 @@ public: test::BootstrapFixture::tearDown(); } +protected: + /** + * Helper func used by each unit test to test the 'import' code. + * (Loads the requested file and then calls 'verify' method) + */ + void executeImportTest(const char* filename) + { + // If the testcase is stored in some other format, it's pointless to test. + if (mustTestImportOf(filename)) + { + header(); + load(mpTestDocumentPath, filename); + verify(); + finish(); + } + } + + /** + * Helper func used by each unit test to test the 'export' code. + * (Loads the requested file, save it to temp file, load the + * temp file and then calls 'verify' method) + */ + void executeImportExportImportTest(const char* filename) + { + header(); + load(mpTestDocumentPath, filename); + reload(mpFilter); + verify(); + finish(); + } + + /** + * Function overloaded by unit test. See DECLARE_SW_*_TEST macros + */ + virtual void verify() + { + CPPUNIT_FAIL( "verify method must be overriden" ); + } + + /** + * Override this function if interested in skipping import test for this file + */ + virtual bool mustTestImportOf(const char* /* filename */) const + { + return true; + } + private: void dumpLayout() { @@ -289,12 +351,12 @@ protected: calcLayout(); } - void reload(OUString aFilter) + void reload(const char* pFilter) { uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY); uno::Sequence<beans::PropertyValue> aArgs(1); aArgs[0].Name = "FilterName"; - aArgs[0].Value <<= aFilter; + aArgs[0].Value <<= OUString::createFromAscii(pFilter); utl::TempFile aTempFile; aTempFile.EnableKillingFile(); xStorable->storeToURL(aTempFile.GetURL(), aArgs); @@ -343,6 +405,8 @@ protected: uno::Reference<lang::XComponent> mxComponent; xmlBufferPtr mpXmlBuffer; + const char* mpTestDocumentPath; + const char* mpFilter; template< typename T > struct MethodEntry diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx index 14da8f1..df118b0 100644 --- a/sw/qa/extras/rtfimport/rtfimport.cxx +++ b/sw/qa/extras/rtfimport/rtfimport.cxx @@ -1537,12 +1537,26 @@ void Test::testFdo65090() CPPUNIT_TEST_SUITE_REGISTRATION(Test); +#if !defined(MACOSX) && !defined(WNT) + +class BackportedTest : public SwModelTestBase +{ +public: + BackportedTest() : SwModelTestBase("/sw/qa/extras/rtfimport/data/", "Rich Text Format") + { + } +}; + +#define DECLARE_RTFIMPORT_TEST(TestName, filename) DECLARE_SW_IMPORT_TEST(TestName, filename, BackportedTest) + DECLARE_RTFIMPORT_TEST(testCharColor, "char-color.rtf") { // This was -1: character color wasn't set. CPPUNIT_ASSERT_EQUAL(sal_Int32(0x365F91), getProperty<sal_Int32>(getParagraph(1), "CharColor")); } +#endif + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
