summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2013-12-17 18:17:33 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2013-12-17 20:52:35 +0100
commit73a808f6b300fddcaab1d3c916d92785a1801d63 (patch)
tree9ce7df6c939cff99deea9f5a1f09cad2c2ec566e /sw
parent25dc9aaf693ba1e4aac75659f0762f5169c10f28 (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/.gitignore0
-rw-r--r--sw/qa/core/exportdata/rtf/indeterminate/.gitignore0
-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.cxx43
-rw-r--r--sw/qa/extras/rtfexport/rtfexport.cxx5
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