summaryrefslogtreecommitdiff
path: root/sc/qa/unit/subsequent_export-test.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/qa/unit/subsequent_export-test.cxx')
-rw-r--r--sc/qa/unit/subsequent_export-test.cxx197
1 files changed, 21 insertions, 176 deletions
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 3fd6427eb045..cb451325f323 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -14,14 +14,11 @@
#include <osl/file.hxx>
#include <sfx2/app.hxx>
-#include <sfx2/docfilt.hxx>
#include <sfx2/docfile.hxx>
#include <sfx2/frame.hxx>
#include <sfx2/sfxmodelfactory.hxx>
#include <svl/stritem.hxx>
-#include <unotools/tempfile.hxx>
-#include <comphelper/storagehelper.hxx>
#define CALC_DEBUG_OUTPUT 0
#define TEST_BUG_FILES 0
@@ -35,35 +32,10 @@
#include "document.hxx"
#include "cellform.hxx"
-#define ODS_FORMAT_TYPE 50331943
-#define XLS_FORMAT_TYPE 318767171
-#define XLSX_FORMAT_TYPE 268959811
-#define LOTUS123_FORMAT_TYPE 268435649
-
-#define ODS 0
-#define XLS 1
-#define XLSX 2
-#define LOTUS123 3
-
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
-namespace {
-
-struct FileFormat {
- const char* pName; const char* pFilterName; const char* pTypeName; unsigned int nFormatType;
-};
-
-FileFormat aFileFormats[] = {
- { "ods" , "calc8", "", ODS_FORMAT_TYPE },
- { "xls" , "MS Excel 97", "calc_MS_EXCEL_97", XLS_FORMAT_TYPE },
- { "xlsx", "Calc MS Excel 2007 XML" , "MS Excel 2007 XML", XLSX_FORMAT_TYPE },
- { "123" , "Lotus", "calc_Lotus", LOTUS123_FORMAT_TYPE }
-};
-
-}
-
-class ScExportTest : public test::BootstrapFixture
+class ScExportTest : public ScBootstrapFixture
{
public:
ScExportTest();
@@ -71,8 +43,7 @@ public:
virtual void setUp();
virtual void tearDown();
- ScDocShellRef saveAndReload( ScDocShell*, const rtl::OUString&, const rtl::OUString&, const rtl::OUString&, sal_uLong );
- ScDocShellRef saveAndReloadPassword( ScDocShell*, const rtl::OUString&, const rtl::OUString&, const rtl::OUString&, sal_uLong );
+ ScDocShellRef saveAndReloadPassword( ScDocShell*, const OUString&, const OUString&, const OUString&, sal_uLong );
void test();
void testPasswordExport();
@@ -89,39 +60,12 @@ public:
CPPUNIT_TEST_SUITE_END();
private:
- rtl::OUString m_aBaseString;
uno::Reference<uno::XInterface> m_xCalcComponent;
- ScDocShellRef load(
- const OUString& rURL, const OUString& rFilter, const OUString &rUserData,
- const OUString& rTypeName, sal_Int32 nFormat, sal_uLong nFormatType,
- const OUString* pPassword = NULL );
-
- ScDocShellRef saveAndReload( ScDocShell* pShell, sal_Int32 nFormat );
- ScDocShellRef loadDocument( const rtl::OUString& rFileNameBase, sal_Int32 nFormat );
- void createFileURL( const rtl::OUString& aFileBase, const rtl::OUString& rFileExtension, rtl::OUString& rFilePath);
- void createCSVPath(const rtl::OUString& rFileBase, rtl::OUString& rCSVPath);
};
-void ScExportTest::createFileURL(const rtl::OUString& aFileBase, const rtl::OUString& aFileExtension, rtl::OUString& rFilePath)
-{
- rtl::OUString aSep("/");
- rtl::OUStringBuffer aBuffer( getSrcRootURL() );
- aBuffer.append(m_aBaseString).append(aSep).append(aFileExtension);
- aBuffer.append(aSep).append(aFileBase).append(aFileExtension);
- rFilePath = aBuffer.makeStringAndClear();
-}
-
-void ScExportTest::createCSVPath(const rtl::OUString& aFileBase, rtl::OUString& rCSVPath)
-{
- rtl::OUStringBuffer aBuffer(getSrcRootPath());
- aBuffer.append(m_aBaseString).append(rtl::OUString("/contentCSV/"));
- aBuffer.append(aFileBase).append(rtl::OUString("csv"));
- rCSVPath = aBuffer.makeStringAndClear();
-}
-
-ScDocShellRef ScExportTest::saveAndReloadPassword(ScDocShell* pShell, const rtl::OUString &rFilter,
- const rtl::OUString &rUserData, const rtl::OUString& rTypeName, sal_uLong nFormatType)
+ScDocShellRef ScExportTest::saveAndReloadPassword(ScDocShell* pShell, const OUString &rFilter,
+ const OUString &rUserData, const OUString& rTypeName, sal_uLong nFormatType)
{
utl::TempFile aTempFile;
aTempFile.EnableKillingFile();
@@ -131,12 +75,12 @@ ScDocShellRef ScExportTest::saveAndReloadPassword(ScDocShell* pShell, const rtl:
nExportFormat = SFX_FILTER_EXPORT | SFX_FILTER_USESOPTIONS;
SfxFilter* pExportFilter = new SfxFilter(
rFilter,
- rtl::OUString(), nFormatType, nExportFormat, rTypeName, 0, rtl::OUString(),
- rUserData, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc*")) );
+ OUString(), nFormatType, nExportFormat, rTypeName, 0, OUString(),
+ rUserData, OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc*")) );
pExportFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
aStoreMedium.SetFilter(pExportFilter);
SfxItemSet* pExportSet = aStoreMedium.GetItemSet();
- uno::Sequence< beans::NamedValue > aEncryptionData = comphelper::OStorageHelper::CreatePackageEncryptionData( rtl::OUString("test") );
+ uno::Sequence< beans::NamedValue > aEncryptionData = comphelper::OStorageHelper::CreatePackageEncryptionData( OUString("test") );
uno::Any xEncryptionData;
xEncryptionData <<= aEncryptionData;
pExportSet->Put(SfxUnoAnyItem(SID_ENCRYPTIONDATA, xEncryptionData));
@@ -154,89 +98,7 @@ ScDocShellRef ScExportTest::saveAndReloadPassword(ScDocShell* pShell, const rtl:
nFormat = SFX_FILTER_IMPORT | SFX_FILTER_USESOPTIONS;
OUString aPass("test");
- return load(aTempFile.GetURL(), rFilter, rUserData, rTypeName, nFormat, nFormatType, &aPass);
-}
-
-ScDocShellRef ScExportTest::saveAndReload(ScDocShell* pShell, const rtl::OUString &rFilter,
- const rtl::OUString &rUserData, const rtl::OUString& rTypeName, sal_uLong nFormatType)
-{
-
- utl::TempFile aTempFile;
- aTempFile.EnableKillingFile();
- SfxMedium aStoreMedium( aTempFile.GetURL(), STREAM_STD_WRITE );
- sal_uInt32 nExportFormat = 0;
- if (nFormatType == ODS_FORMAT_TYPE)
- nExportFormat = SFX_FILTER_EXPORT | SFX_FILTER_USESOPTIONS;
- SfxFilter* pExportFilter = new SfxFilter(
- rFilter,
- rtl::OUString(), nFormatType, nExportFormat, rTypeName, 0, rtl::OUString(),
- rUserData, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("private:factory/scalc*")) );
- pExportFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
- aStoreMedium.SetFilter(pExportFilter);
- pShell->DoSaveAs( aStoreMedium );
- pShell->DoClose();
-
- //std::cout << "File: " << aTempFile.GetURL() << std::endl;
-
- sal_uInt32 nFormat = 0;
- if (nFormatType == ODS_FORMAT_TYPE)
- nFormat = SFX_FILTER_IMPORT | SFX_FILTER_USESOPTIONS;
-
- return load(aTempFile.GetURL(), rFilter, rUserData, rTypeName, nFormat, nFormatType);
-}
-
-ScDocShellRef ScExportTest::load(
- const OUString& rURL, const OUString& rFilter, const OUString &rUserData,
- const OUString& rTypeName, sal_Int32 nFormat, sal_uLong nFormatType, const OUString* pPassword )
-{
- SfxFilter* pFilter = new SfxFilter(
- rFilter,
- rtl::OUString(), nFormatType, nFormat, rTypeName, 0, rtl::OUString(),
- rUserData, OUString("private:factory/scalc*"));
- pFilter->SetVersion(SOFFICE_FILEFORMAT_CURRENT);
-
- ScDocShellRef xDocShRef = new ScDocShell;
- xDocShRef->GetDocument()->EnableUserInteraction(false);
- SfxMedium* pSrcMed = new SfxMedium(rURL, STREAM_STD_READ);
- pSrcMed->SetFilter(pFilter);
- pSrcMed->UseInteractionHandler(false);
- if (pPassword)
- {
- SfxItemSet* pSet = pSrcMed->GetItemSet();
- pSet->Put(SfxStringItem(SID_PASSWORD, *pPassword));
- }
- if (!xDocShRef->DoLoad(pSrcMed))
- {
- xDocShRef->DoClose();
- // load failed.
- xDocShRef.Clear();
- }
-
- return xDocShRef;
-}
-
-ScDocShellRef ScExportTest::saveAndReload( ScDocShell* pShell, sal_Int32 nFormat )
-{
- rtl::OUString aFileExtension(aFileFormats[nFormat].pName, strlen(aFileFormats[nFormat].pName), RTL_TEXTENCODING_UTF8 );
- rtl::OUString aFilterName(aFileFormats[nFormat].pFilterName, strlen(aFileFormats[nFormat].pFilterName), RTL_TEXTENCODING_UTF8) ;
- rtl::OUString aFilterType(aFileFormats[nFormat].pTypeName, strlen(aFileFormats[nFormat].pTypeName), RTL_TEXTENCODING_UTF8);
- ScDocShellRef xDocSh = saveAndReload(pShell, aFilterName, rtl::OUString(), aFilterType, aFileFormats[nFormat].nFormatType);
-
- CPPUNIT_ASSERT(xDocSh.Is());
- return xDocSh;
-}
-
-ScDocShellRef ScExportTest::loadDocument(const rtl::OUString& rFileName, sal_Int32 nFormat)
-{
- rtl::OUString aFileExtension(aFileFormats[nFormat].pName, strlen(aFileFormats[nFormat].pName), RTL_TEXTENCODING_UTF8 );
- rtl::OUString aFilterName(aFileFormats[nFormat].pFilterName, strlen(aFileFormats[nFormat].pFilterName), RTL_TEXTENCODING_UTF8) ;
- rtl::OUString aFileName;
- createFileURL( rFileName, aFileExtension, aFileName );
- rtl::OUString aFilterType(aFileFormats[nFormat].pTypeName, strlen(aFileFormats[nFormat].pTypeName), RTL_TEXTENCODING_UTF8);
- unsigned int nFormatType = aFileFormats[nFormat].nFormatType;
- unsigned int nClipboardId = nFormatType ? SFX_FILTER_IMPORT | SFX_FILTER_USESOPTIONS : 0;
-
- return load(aFileName, aFilterName, OUString(), aFilterType, nClipboardId, nFormatType);
+ return load(aTempFile.GetURL(), rFilter, rUserData, rTypeName, nFormatType, nFormat, SOFFICE_FILEFORMAT_CURRENT, &aPass);
}
void ScExportTest::test()
@@ -274,10 +136,10 @@ void ScExportTest::testPasswordExport()
CPPUNIT_ASSERT(pDoc);
sal_Int32 nFormat = ODS;
- rtl::OUString aFileExtension(aFileFormats[nFormat].pName, strlen(aFileFormats[nFormat].pName), RTL_TEXTENCODING_UTF8 );
- rtl::OUString aFilterName(aFileFormats[nFormat].pFilterName, strlen(aFileFormats[nFormat].pFilterName), RTL_TEXTENCODING_UTF8) ;
- rtl::OUString aFilterType(aFileFormats[nFormat].pTypeName, strlen(aFileFormats[nFormat].pTypeName), RTL_TEXTENCODING_UTF8);
- ScDocShellRef xDocSh = saveAndReloadPassword(pShell, aFilterName, rtl::OUString(), aFilterType, aFileFormats[nFormat].nFormatType);
+ OUString aFileExtension(aFileFormats[nFormat].pName, strlen(aFileFormats[nFormat].pName), RTL_TEXTENCODING_UTF8 );
+ OUString aFilterName(aFileFormats[nFormat].pFilterName, strlen(aFileFormats[nFormat].pFilterName), RTL_TEXTENCODING_UTF8) ;
+ OUString aFilterType(aFileFormats[nFormat].pTypeName, strlen(aFileFormats[nFormat].pTypeName), RTL_TEXTENCODING_UTF8);
+ ScDocShellRef xDocSh = saveAndReloadPassword(pShell, aFilterName, OUString(), aFilterType, aFileFormats[nFormat].nFormatType);
CPPUNIT_ASSERT(xDocSh.Is());
ScDocument* pLoadedDoc = xDocSh->GetDocument();
@@ -287,37 +149,20 @@ void ScExportTest::testPasswordExport()
void ScExportTest::testConditionalFormatExportXLSX()
{
- ScDocShellRef xShell = loadDocument("new_cond_format_test.", XLSX);
+ ScDocShellRef xShell = loadDoc("new_cond_format_test.", XLSX);
CPPUNIT_ASSERT(xShell.Is());
ScDocShellRef xDocSh = saveAndReload(&(*xShell), XLSX);
CPPUNIT_ASSERT(xDocSh.Is());
ScDocument* pDoc = xDocSh->GetDocument();
- rtl::OUString aCSVFile("new_cond_format_test.");
- rtl::OUString aCSVPath;
+ OUString aCSVFile("new_cond_format_test.");
+ OUString aCSVPath;
createCSVPath( aCSVFile, aCSVPath );
testCondFile(aCSVPath, pDoc, 0);
}
void ScExportTest::testMiscRowHeightExport()
{
-
- struct TestParam
- {
- struct RowData
- {
- SCROW nStartRow;
- SCROW nEndRow;
- SCTAB nTab;
- int nExpectedHeight;
- };
- const char* sTestDoc;
- int nImportType;
- int nExportType;
- int nRowData;
- RowData* pData;
- };
-
TestParam::RowData DfltRowData[] =
{
{ 0, 4, 0, 529 },
@@ -347,13 +192,13 @@ void ScExportTest::testMiscRowHeightExport()
printf("aTestValues[%d] %s\n", index, OUStringToOString( sFileName, RTL_TEXTENCODING_UTF8 ).getStr() );
int nImportType = aTestValues[ index ].nImportType;
int nExportType = aTestValues[ index ].nExportType;
- ScDocShellRef xShell = loadDocument( sFileName, nImportType );
+ ScDocShellRef xShell = loadDoc( sFileName, nImportType );
CPPUNIT_ASSERT(xShell.Is());
- ScDocShellRef xDocSh = saveAndReload(&(*xShell), nExportType );
- CPPUNIT_ASSERT(xDocSh.Is());
+ xShell = saveAndReload(&(*xShell), nExportType );
+ CPPUNIT_ASSERT(xShell.Is());
- ScDocument* pDoc = xDocSh->GetDocument();
+ ScDocument* pDoc = xShell->GetDocument();
for (int i=0; i<aTestValues[ index ].nRowData; ++i)
{
@@ -372,7 +217,7 @@ void ScExportTest::testMiscRowHeightExport()
}
ScExportTest::ScExportTest()
- : m_aBaseString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data"))
+ : ScBootstrapFixture("/sc/qa/unit/data")
{
}
@@ -383,7 +228,7 @@ void ScExportTest::setUp()
// 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 =
- getMultiServiceFactory()->createInstance(rtl::OUString(
+ getMultiServiceFactory()->createInstance(OUString(
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.Calc.SpreadsheetDocument")));
CPPUNIT_ASSERT_MESSAGE("no calc component!", m_xCalcComponent.is());
}