summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2011-09-28 15:00:05 +0100
committerMichael Meeks <michael.meeks@suse.com>2011-09-28 15:09:48 +0100
commit4b7cc85c4ed02876a1e4851274129d0d89c398cc (patch)
tree59586e9e51d0ed6afe48ba3ac4228e55fddfefed /sc
parent00004ec8ca531698f72f7a1e99ef130ccfd5dd36 (diff)
sc: switch filters-test to the new shared unit test code
Diffstat (limited to 'sc')
-rw-r--r--sc/CppunitTest_sc_test_filters.mk1
-rw-r--r--sc/qa/unit/filters-test.cxx140
-rw-r--r--sc/qa/unit/helper/csv_handler.hxx9
3 files changed, 34 insertions, 116 deletions
diff --git a/sc/CppunitTest_sc_test_filters.mk b/sc/CppunitTest_sc_test_filters.mk
index 1b1329422d96..ee9ac5ff3e98 100644
--- a/sc/CppunitTest_sc_test_filters.mk
+++ b/sc/CppunitTest_sc_test_filters.mk
@@ -35,6 +35,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sc_filters_test, \
))
$(eval $(call gb_CppunitTest_add_linked_libs,sc_filters_test, \
+ test \
avmedia \
basegfx \
comphelper \
diff --git a/sc/qa/unit/filters-test.cxx b/sc/qa/unit/filters-test.cxx
index f1ae199a5b1e..45916ff3f384 100644
--- a/sc/qa/unit/filters-test.cxx
+++ b/sc/qa/unit/filters-test.cxx
@@ -28,34 +28,14 @@
*/
#include <sal/config.h>
-#include "sal/precppunit.hxx"
-
-#include "cppunit/TestAssert.h"
-#include "cppunit/TestFixture.h"
-#include "cppunit/extensions/HelperMacros.h"
-#include "cppunit/plugin/TestPlugIn.h"
+#include <test/bootstrapfixture.hxx>
#include <rtl/strbuf.hxx>
#include <osl/file.hxx>
#include <osl/process.h>
-#include <cppuhelper/compbase1.hxx>
-#include <cppuhelper/bootstrap.hxx>
-#include <cppuhelper/basemutex.hxx>
-
-#include <comphelper/processfactory.hxx>
-
-#include <i18npool/mslangid.hxx>
-
#include <tools/urlobj.hxx>
-#include <unotools/tempfile.hxx>
-#include <unotools/syslocaleoptions.hxx>
-
-#include <vcl/svapp.hxx>
-
-#include <ucbhelper/contentbroker.hxx>
-
#include <sfx2/app.hxx>
#include <sfx2/docfilt.hxx>
#include <sfx2/docfile.hxx>
@@ -64,13 +44,6 @@
#include <editeng/brshitem.hxx>
#include <editeng/justifyitem.hxx>
-#include "docsh.hxx"
-#include "document.hxx"
-#include "postit.hxx"
-#include "patattr.hxx"
-#include "scitems.hxx"
-#include "cellform.hxx"
-
#include "helper/csv_handler.hxx"
#include "orcus/csv_parser.hpp"
#include <fstream>
@@ -161,7 +134,7 @@ void testCondFile(rtl::OUString& aFileName, ScDocument* pDoc, SCTAB nTab)
/* Implementation of Filters test */
-class FiltersTest : public CppUnit::TestFixture
+class FiltersTest : public test::BootstrapFixture
{
public:
FiltersTest();
@@ -173,7 +146,7 @@ public:
void recursiveScan(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData, int nExpected);
ScDocShellRef load(const rtl::OUString &rFilter, const rtl::OUString &rURL, const rtl::OUString &rUserData, const rtl::OUString& rTypeName, sal_uLong nFormatType = 0);
- void createFilePath(const rtl::OUString& aFileBase, const rtl::OUString& aFileExtension, rtl::OUString& rFilePath);
+ void createFileURL(const rtl::OUString& aFileBase, const rtl::OUString& aFileExtension, rtl::OUString& rFilePath);
void createCSVPath(const rtl::OUString& aFileBase, rtl::OUString& rFilePath);
/**
@@ -204,11 +177,7 @@ public:
CPPUNIT_TEST_SUITE_END();
private:
- uno::Reference<uno::XComponentContext> m_xContext;
- uno::Reference<lang::XMultiComponentFactory> m_xFactory;
uno::Reference<uno::XInterface> m_xCalcComponent;
- ::rtl::OUString m_aSrcRoot;
- ::rtl::OUString m_aFileRoot; //m_aSrcRoot without "file://" prefix
::rtl::OUString m_aBaseString;
};
@@ -283,10 +252,10 @@ void FiltersTest::recursiveScan(const rtl::OUString &rFilter, const rtl::OUStrin
CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.close());
}
-void FiltersTest::createFilePath(const rtl::OUString& aFileBase, const rtl::OUString& aFileExtension, rtl::OUString& rFilePath)
+void FiltersTest::createFileURL(const rtl::OUString& aFileBase, const rtl::OUString& aFileExtension, rtl::OUString& rFilePath)
{
rtl::OUString aSep(RTL_CONSTASCII_USTRINGPARAM("/"));
- rtl::OUStringBuffer aBuffer(m_aSrcRoot);
+ rtl::OUStringBuffer aBuffer( getSrcRootURL() );
aBuffer.append(m_aBaseString).append(aSep).append(aFileExtension);
aBuffer.append(aSep).append(aFileBase).append(aFileExtension);
rFilePath = aBuffer.makeStringAndClear();
@@ -294,7 +263,7 @@ void FiltersTest::createFilePath(const rtl::OUString& aFileBase, const rtl::OUSt
void FiltersTest::createCSVPath(const rtl::OUString& aFileBase, rtl::OUString& rCSVPath)
{
- rtl::OUStringBuffer aBuffer(m_aFileRoot);
+ rtl::OUStringBuffer aBuffer(getSrcRootPath());
aBuffer.append(m_aBaseString).append(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/contentCSV/")));
aBuffer.append(aFileBase).append(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("csv")));
rCSVPath = aBuffer.makeStringAndClear();
@@ -303,26 +272,27 @@ void FiltersTest::createCSVPath(const rtl::OUString& aFileBase, rtl::OUString& r
void FiltersTest::testCVEs()
{
recursiveScan(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Quattro Pro 6.0")),
- m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data/qpro/pass")), rtl::OUString(), true);
+ getURLFromSrc("/sc/qa/unit/data/qpro/pass"), rtl::OUString(), true);
recursiveScan(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Quattro Pro 6.0")),
- m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data/qpro/fail")), rtl::OUString(), false);
+ getURLFromSrc("/sc/qa/unit/data/qpro/fail"), rtl::OUString(), false);
recursiveScan(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Quattro Pro 6.0")),
- m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data/qpro/indeterminate")), rtl::OUString(), indeterminate);
+ getURLFromSrc("/sc/qa/unit/data/qpro/indeterminate"),
+ rtl::OUString(), indeterminate);
//warning, the current "sylk filter" in sc (docsh.cxx) automatically
//chains on failure on trying as csv, rtf, etc. so "success" may
//not indicate that it imported as .slk.
recursiveScan(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SYLK")),
- m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data/slk/pass")), rtl::OUString(), true);
+ getURLFromSrc("/sc/qa/unit/data/slk/pass"), rtl::OUString(), true);
recursiveScan(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SYLK")),
- m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data/slk/fail")), rtl::OUString(), false);
+ getURLFromSrc("/sc/qa/unit/data/slk/fail"), rtl::OUString(), false);
recursiveScan(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SYLK")),
- m_aSrcRoot + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data/slk/indeterminate")), rtl::OUString(), indeterminate);
-
+ getURLFromSrc("/sc/qa/unit/data/slk/indeterminate"),
+ rtl::OUString(), indeterminate);
}
namespace {
@@ -366,7 +336,7 @@ void FiltersTest::testRangeName()
rtl::OUString aFileExtension(aFileFormats[i].pName, strlen(aFileFormats[i].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[i].pFilterName, strlen(aFileFormats[i].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath( aFileNameBase, aFileExtension, aFileName );
+ createFileURL( aFileNameBase, aFileExtension, aFileName );
rtl::OUString aFilterType(aFileFormats[i].pTypeName, strlen(aFileFormats[i].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[i].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[i].nFormatType);
@@ -426,7 +396,7 @@ void FiltersTest::testContent()
rtl::OUString aFileExtension(aFileFormats[i].pName, strlen(aFileFormats[i].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[i].pFilterName, strlen(aFileFormats[i].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[i].pTypeName, strlen(aFileFormats[i].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[i].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[i].nFormatType);
@@ -444,7 +414,7 @@ void FiltersTest::testFunctions()
rtl::OUString aFileExtension(aFileFormats[0].pName, strlen(aFileFormats[0].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[0].pFilterName, strlen(aFileFormats[0].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[0].pTypeName, strlen(aFileFormats[0].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[0].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[0].nFormatType);
@@ -463,7 +433,7 @@ void FiltersTest::testDatabaseRanges()
rtl::OUString aFileExtension(aFileFormats[0].pName, strlen(aFileFormats[0].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[0].pFilterName, strlen(aFileFormats[0].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[0].pTypeName, strlen(aFileFormats[0].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[0].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[0].nFormatType);
@@ -508,7 +478,7 @@ void FiltersTest::testFormats()
rtl::OUString aFileExtension(aFileFormats[i].pName, strlen(aFileFormats[i].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[i].pFilterName, strlen(aFileFormats[i].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[i].pTypeName, strlen(aFileFormats[i].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[i].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[i].nFormatType);
@@ -588,7 +558,7 @@ void FiltersTest::testBugFixesODS()
rtl::OUString aFileExtension(aFileFormats[0].pName, strlen(aFileFormats[0].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[0].pFilterName, strlen(aFileFormats[0].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[0].pTypeName, strlen(aFileFormats[0].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[0].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[0].nFormatType);
@@ -604,7 +574,7 @@ void FiltersTest::testBugFixesXLS()
rtl::OUString aFileExtension(aFileFormats[1].pName, strlen(aFileFormats[1].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[1].pFilterName, strlen(aFileFormats[1].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[1].pTypeName, strlen(aFileFormats[1].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[1].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[1].nFormatType);
@@ -620,7 +590,7 @@ void FiltersTest::testBugFixesXLSX()
rtl::OUString aFileExtension(aFileFormats[2].pName, strlen(aFileFormats[2].pName), RTL_TEXTENCODING_UTF8 );
rtl::OUString aFilterName(aFileFormats[2].pFilterName, strlen(aFileFormats[2].pFilterName), RTL_TEXTENCODING_UTF8) ;
rtl::OUString aFileName;
- createFilePath(aFileNameBase, aFileExtension, aFileName);
+ createFileURL(aFileNameBase, aFileExtension, aFileName);
rtl::OUString aFilterType(aFileFormats[2].pTypeName, strlen(aFileFormats[2].pTypeName), RTL_TEXTENCODING_UTF8);
std::cout << aFileFormats[2].pName << " Test" << std::endl;
ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[2].nFormatType);
@@ -631,81 +601,23 @@ void FiltersTest::testBugFixesXLSX()
}
FiltersTest::FiltersTest()
- : m_aSrcRoot(RTL_CONSTASCII_USTRINGPARAM("file://")),
+ : test::BootstrapFixture(),
m_aBaseString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data"))
{
- m_xContext = cppu::defaultBootstrap_InitialComponentContext();
- m_xFactory = m_xContext->getServiceManager();
-
- uno::Reference<lang::XMultiServiceFactory> xSM(m_xFactory, uno::UNO_QUERY_THROW);
-
- //Without this we're crashing because callees are using
- //getProcessServiceFactory. In general those should be removed in favour
- //of retaining references to the root ServiceFactory as its passed around
- comphelper::setProcessServiceFactory(xSM);
-
- // initialise UCB-Broker
- uno::Sequence<uno::Any> aUcbInitSequence(2);
- aUcbInitSequence[0] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Local"));
- aUcbInitSequence[1] <<= rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Office"));
- bool bInitUcb = ucbhelper::ContentBroker::initialize(xSM, aUcbInitSequence);
- CPPUNIT_ASSERT_MESSAGE("Should be able to initialize UCB", bInitUcb);
-
- uno::Reference<ucb::XContentProviderManager> xUcb =
- ucbhelper::ContentBroker::get()->getContentProviderManagerInterface();
- uno::Reference<ucb::XContentProvider> xFileProvider(xSM->createInstance(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.FileContentProvider"))), uno::UNO_QUERY);
- xUcb->registerContentProvider(xFileProvider, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("file")), sal_True);
-
- // force locale (and resource files loaded) to en-US
- const LanguageType eLang=LANGUAGE_ENGLISH_US;
-
- rtl::OUString aLang, aCountry;
- MsLangId::convertLanguageToIsoNames(eLang, aLang, aCountry);
- lang::Locale aLocale(aLang, aCountry, rtl::OUString());
- ResMgr::SetDefaultLocale( aLocale );
-
- SvtSysLocaleOptions aLocalOptions;
- aLocalOptions.SetUILocaleConfigString(
- MsLangId::convertLanguageToIsoString( eLang ) );
-
- InitVCL(xSM);
-
- //This is a bit of a fudge, we do this to ensure that ScGlobals::ensure,
- //which is a private symbol to us, gets called
+ // This is a bit of a fudge, we do this to ensure that ScGlobals::ensure,
+ // which is a private symbol to us, gets called
m_xCalcComponent =
- xSM->createInstance(rtl::OUString(
+ getMultiServiceFactory()->createInstance(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.Calc.SpreadsheetDocument")));
CPPUNIT_ASSERT_MESSAGE("no calc component!", m_xCalcComponent.is());
-
- const char* pSrcRoot = getenv( "SRC_ROOT" );
- CPPUNIT_ASSERT_MESSAGE("SRC_ROOT env variable not set", pSrcRoot != NULL && pSrcRoot[0] != 0);
-
-#ifdef WNT
- if (pSrcRoot[1] == ':')
- m_aSrcRoot += rtl::OUString::createFromAscii( "/" );
-#endif
- m_aFileRoot = rtl::OUString::createFromAscii( pSrcRoot );
- m_aSrcRoot += m_aFileRoot;
-}
-
-static void aBasicErrorFunc( const String &rErr, const String &rAction )
-{
- rtl::OStringBuffer aErr( "Unexpected dialog: " );
- aErr.append( rtl::OUStringToOString( rAction, RTL_TEXTENCODING_ASCII_US ) );
- aErr.append( " Error: " );
- aErr.append( rtl::OUStringToOString( rErr, RTL_TEXTENCODING_ASCII_US ) );
- CPPUNIT_ASSERT_MESSAGE( aErr.getStr(), false);
}
void FiltersTest::setUp()
{
- ErrorHandler::RegisterDisplay( aBasicErrorFunc );
}
FiltersTest::~FiltersTest()
{
- uno::Reference< lang::XComponent >(m_xContext, uno::UNO_QUERY_THROW)->dispose();
}
void FiltersTest::tearDown()
diff --git a/sc/qa/unit/helper/csv_handler.hxx b/sc/qa/unit/helper/csv_handler.hxx
index 83a8e990a786..417e93045b22 100644
--- a/sc/qa/unit/helper/csv_handler.hxx
+++ b/sc/qa/unit/helper/csv_handler.hxx
@@ -27,8 +27,14 @@
#include <iostream>
-#define DEBUG_CSV_HANDLER 0
+#include "docsh.hxx"
+#include "postit.hxx"
+#include "patattr.hxx"
+#include "scitems.hxx"
+#include "document.hxx"
+#include "cellform.hxx"
+#define DEBUG_CSV_HANDLER 0
namespace {
@@ -47,7 +53,6 @@ rtl::OUString getConditionalFormatString(ScDocument* pDoc, SCCOL nCol, SCROW nRo
}
-
enum StringType { PureString, FormulaValue, StringValue };
class csv_handler