From 4b7cc85c4ed02876a1e4851274129d0d89c398cc Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Wed, 28 Sep 2011 15:00:05 +0100 Subject: sc: switch filters-test to the new shared unit test code --- sc/CppunitTest_sc_test_filters.mk | 1 + sc/qa/unit/filters-test.cxx | 140 +++++++------------------------------- sc/qa/unit/helper/csv_handler.hxx | 9 ++- 3 files changed, 34 insertions(+), 116 deletions(-) (limited to 'sc') 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 -#include "sal/precppunit.hxx" - -#include "cppunit/TestAssert.h" -#include "cppunit/TestFixture.h" -#include "cppunit/extensions/HelperMacros.h" -#include "cppunit/plugin/TestPlugIn.h" +#include #include #include #include -#include -#include -#include - -#include - -#include - #include -#include -#include - -#include - -#include - #include #include #include @@ -64,13 +44,6 @@ #include #include -#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 @@ -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 m_xContext; - uno::Reference m_xFactory; uno::Reference 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 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 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 xUcb = - ucbhelper::ContentBroker::get()->getContentProviderManagerInterface(); - uno::Reference 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 -#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 -- cgit