diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-12-17 18:17:33 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-12-17 20:52:35 +0100 |
commit | 73a808f6b300fddcaab1d3c916d92785a1801d63 (patch) | |
tree | 9ce7df6c939cff99deea9f5a1f09cad2c2ec566e /sw | |
parent | 25dc9aaf693ba1e4aac75659f0762f5169c10f28 (diff) |
test::FiltersTest: add support for export tests
For now, this is only implemented for the Writer RTF filter.
Change-Id: I0c7ae5b0e544bd4738652a38474f4d262ce65661
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/core/exportdata/rtf/fail/.gitignore | 0 | ||||
-rw-r--r-- | sw/qa/core/exportdata/rtf/indeterminate/.gitignore | 0 | ||||
-rw-r--r-- | sw/qa/core/exportdata/rtf/pass/abi10201.rtf (renamed from sw/qa/extras/rtfexport/data/abi10201.rtf) | 0 | ||||
-rw-r--r-- | sw/qa/core/filters-test.cxx | 43 | ||||
-rw-r--r-- | sw/qa/extras/rtfexport/rtfexport.cxx | 5 |
5 files changed, 42 insertions, 6 deletions
diff --git a/sw/qa/core/exportdata/rtf/fail/.gitignore b/sw/qa/core/exportdata/rtf/fail/.gitignore new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/sw/qa/core/exportdata/rtf/fail/.gitignore diff --git a/sw/qa/core/exportdata/rtf/indeterminate/.gitignore b/sw/qa/core/exportdata/rtf/indeterminate/.gitignore new file mode 100644 index 000000000000..e69de29bb2d1 --- /dev/null +++ b/sw/qa/core/exportdata/rtf/indeterminate/.gitignore diff --git a/sw/qa/extras/rtfexport/data/abi10201.rtf b/sw/qa/core/exportdata/rtf/pass/abi10201.rtf index 08cbe0cfe743..08cbe0cfe743 100644 --- a/sw/qa/extras/rtfexport/data/abi10201.rtf +++ b/sw/qa/core/exportdata/rtf/pass/abi10201.rtf diff --git a/sw/qa/core/filters-test.cxx b/sw/qa/core/filters-test.cxx index b47abb4e94d1..7c811a4e6058 100644 --- a/sw/qa/core/filters-test.cxx +++ b/sw/qa/core/filters-test.cxx @@ -21,6 +21,7 @@ #include <sfx2/sfxsids.hrc> #include <svl/stritem.hxx> +#include <unotools/tempfile.hxx> #include "init.hxx" #include "iodetect.hxx" @@ -45,6 +46,9 @@ public: virtual bool load( const OUString &rFilter, const OUString &rURL, const OUString &rUserData, unsigned int nFilterFlags, unsigned int nClipboardID, unsigned int nFilterVersion); + virtual bool save( const OUString &rFilter, const OUString &rURL, + const OUString &rUserData, unsigned int nFilterFlags, + unsigned int nClipboardID, unsigned int nFilterVersion) SAL_OVERRIDE; virtual void setUp(); // Ensure CVEs remain unbroken @@ -55,6 +59,9 @@ public: CPPUNIT_TEST_SUITE_END(); private: + bool filter( const OUString &rFilter, const OUString &rURL, + const OUString &rUserData, unsigned int nFilterFlags, + unsigned int nClipboardID, unsigned int nFilterVersion, bool bExport); uno::Reference<uno::XInterface> m_xWriterComponent; }; @@ -62,6 +69,20 @@ bool SwFiltersTest::load(const OUString &rFilter, const OUString &rURL, const OUString &rUserData, unsigned int nFilterFlags, unsigned int nClipboardID, unsigned int nFilterVersion) { + return filter(rFilter, rURL, rUserData, nFilterFlags, nClipboardID, nFilterVersion, false); +} + +bool SwFiltersTest::save(const OUString &rFilter, const OUString &rURL, + const OUString &rUserData, unsigned int nFilterFlags, + unsigned int nClipboardID, unsigned int nFilterVersion) +{ + return filter(rFilter, rURL, rUserData, nFilterFlags, nClipboardID, nFilterVersion, true); +} + +bool SwFiltersTest::filter(const OUString &rFilter, const OUString &rURL, + const OUString &rUserData, unsigned int nFilterFlags, + unsigned int nClipboardID, unsigned int nFilterVersion, bool bExport) +{ SfxFilter* pFilter = new SfxFilter( rFilter, OUString(), nFilterFlags, nClipboardID, OUString(), 0, OUString(), @@ -79,9 +100,21 @@ bool SwFiltersTest::load(const OUString &rFilter, const OUString &rURL, } bool bLoaded = xDocShRef->DoLoad(pSrcMed); + if (!bExport) + { + if (xDocShRef.Is()) + xDocShRef->DoClose(); + return bLoaded; + } + + utl::TempFile aTempFile; + aTempFile.EnableKillingFile(); + SfxMedium aDstMed(aTempFile.GetURL(), STREAM_STD_WRITE); + aDstMed.SetFilter(pFilter); + bool bSaved = xDocShRef->DoSaveAs(aDstMed); if (xDocShRef.Is()) xDocShRef->DoClose(); - return bLoaded; + return bSaved; } #define isstorage 1 @@ -125,6 +158,14 @@ void SwFiltersTest::testCVEs() testDir(OUString("HTML"), getURLFromSrc("/sw/qa/core/data/html/"), OUString(sHTML)); + + testDir("Rich Text Format", + getURLFromSrc("/sw/qa/core/exportdata/rtf/"), + OUString(), + SFX_FILTER_STARONEFILTER, + 0, + 0, + /*bExport=*/true); } void SwFiltersTest::setUp() diff --git a/sw/qa/extras/rtfexport/rtfexport.cxx b/sw/qa/extras/rtfexport/rtfexport.cxx index 6a483b7032f6..b4d725405d34 100644 --- a/sw/qa/extras/rtfexport/rtfexport.cxx +++ b/sw/qa/extras/rtfexport/rtfexport.cxx @@ -579,11 +579,6 @@ DECLARE_RTFEXPORT_TEST(testFdo66743, "fdo66743.rtf") CPPUNIT_ASSERT_EQUAL(sal_Int32(0xd8d8d8), getProperty<sal_Int32>(xCell, "BackColor")); } -DECLARE_RTFEXPORT_TEST(testAbi10201, "abi10201.rtf") -{ - // crashtest -} - DECLARE_RTFEXPORT_TEST(testI23357, "i23357.odt") { // crashtest |