summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-18 22:32:46 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-11-18 22:34:12 +0100
commita66be6346987e02e389331fcc4204b020ceaded8 (patch)
tree96b8064ba7c661bffd4bbd958419ac9fcf9e7cfe
parentfe5f715cad0fb4ff204ff7dffebcc252759b3208 (diff)
refactor the new bugFile tests
-rw-r--r--sc/qa/unit/filters-test.cxx60
1 files changed, 20 insertions, 40 deletions
diff --git a/sc/qa/unit/filters-test.cxx b/sc/qa/unit/filters-test.cxx
index 03d35c4c4993..195d5ef12061 100644
--- a/sc/qa/unit/filters-test.cxx
+++ b/sc/qa/unit/filters-test.cxx
@@ -180,6 +180,8 @@ public:
void testPassword();
#if TEST_BUG_FILES
+ //goes recursively through all files in this dir and tries to open them
+ void testDir(osl::Directory& rDir, sal_Int32 nType);
//test Bug Files and search for files that crash LibO
void testBugFiles();
void testBugFilesXLS();
@@ -278,76 +280,54 @@ void ScFiltersTest::testCVEs()
#if TEST_BUG_FILES
-void ScFiltersTest::testBugFiles()
+void ScFiltersTest::testDir(osl::Directory& rDir, sal_uInt32 nType)
{
- rtl::OUString aFilterName(aFileFormats[0].pFilterName, strlen(aFileFormats[0].pFilterName), RTL_TEXTENCODING_UTF8) ;
- rtl::OUString aFilterType(aFileFormats[0].pTypeName, strlen(aFileFormats[0].pTypeName), RTL_TEXTENCODING_UTF8);
- rtl::OUString aDirName = getURLFromSrc("/sc/qa/unit/data/bugODS/");
- osl::Directory aDir(aDirName);
+ rtl::OUString aFilterName(aFileFormats[nType].pFilterName, strlen(aFileFormats[nType].pFilterName), RTL_TEXTENCODING_UTF8) ;
+ rtl::OUString aFilterType(aFileFormats[nType].pTypeName, strlen(aFileFormats[nType].pTypeName), RTL_TEXTENCODING_UTF8);
- CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.open());
osl::DirectoryItem aItem;
osl::FileStatus aFileStatus(osl_FileStatus_Mask_FileURL|osl_FileStatus_Mask_Type);
- while (aDir.getNextItem(aItem) == osl::FileBase::E_None)
+ while (rDir.getNextItem(aItem) == osl::FileBase::E_None)
{
aItem.getFileStatus(aFileStatus);
rtl::OUString sURL = aFileStatus.getFileURL();
std::cout << "File: " << rtl::OUStringToOString(sURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl;
rtl::OStringBuffer aMessage("Failed loading: ");
aMessage.append(rtl::OUStringToOString(sURL, RTL_TEXTENCODING_UTF8));
- ScDocShellRef xDocSh = load( aFilterName,sURL, rtl::OUString(),aFilterType, aFileFormats[0].nFormatType);
+ ScDocShellRef xDocSh = load( aFilterName,sURL, rtl::OUString(),aFilterType, aFileFormats[nType].nFormatType);
+ // use this only if you're sure that all files can be loaded
+ // pay attention to lock files
//CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), xDocSh.Is());
if (xDocSh.Is())
xDocSh->DoClose();
}
}
+void ScFiltersTest::testBugFiles()
+{
+ rtl::OUString aDirName = getURLFromSrc("/sc/qa/unit/data/bugODS/");
+ osl::Directory aDir(aDirName);
+
+ CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.open());
+ testDir(aDir, 0);
+}
+
void ScFiltersTest::testBugFilesXLS()
{
- rtl::OUString aFilterName(aFileFormats[1].pFilterName, strlen(aFileFormats[1].pFilterName), RTL_TEXTENCODING_UTF8) ;
- rtl::OUString aFilterType(aFileFormats[1].pTypeName, strlen(aFileFormats[1].pTypeName), RTL_TEXTENCODING_UTF8);
rtl::OUString aDirName = getURLFromSrc("/sc/qa/unit/data/bugXLS/");
osl::Directory aDir(aDirName);
CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.open());
- osl::DirectoryItem aItem;
- osl::FileStatus aFileStatus(osl_FileStatus_Mask_FileURL|osl_FileStatus_Mask_Type);
- while (aDir.getNextItem(aItem) == osl::FileBase::E_None)
- {
- aItem.getFileStatus(aFileStatus);
- rtl::OUString sURL = aFileStatus.getFileURL();
- std::cout << "File: " << rtl::OUStringToOString(sURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl;
- rtl::OStringBuffer aMessage("Failed loading: ");
- aMessage.append(rtl::OUStringToOString(sURL, RTL_TEXTENCODING_UTF8));
- ScDocShellRef xDocSh = load( aFilterName,sURL, rtl::OUString(),aFilterType, aFileFormats[1].nFormatType);
- //CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), xDocSh.Is());
- if (xDocSh.Is())
- xDocSh->DoClose();
- }
+ testDir(aDir, 1);
}
void ScFiltersTest::testBugFilesXLSX()
{
- rtl::OUString aFilterName(aFileFormats[2].pFilterName, strlen(aFileFormats[2].pFilterName), RTL_TEXTENCODING_UTF8) ;
- rtl::OUString aFilterType(aFileFormats[2].pTypeName, strlen(aFileFormats[2].pTypeName), RTL_TEXTENCODING_UTF8);
rtl::OUString aDirName = getURLFromSrc("/sc/qa/unit/data/bugXLSX/");
osl::Directory aDir(aDirName);
CPPUNIT_ASSERT(osl::FileBase::E_None == aDir.open());
- osl::DirectoryItem aItem;
- osl::FileStatus aFileStatus(osl_FileStatus_Mask_FileURL|osl_FileStatus_Mask_Type);
- while (aDir.getNextItem(aItem) == osl::FileBase::E_None)
- {
- aItem.getFileStatus(aFileStatus);
- rtl::OUString sURL = aFileStatus.getFileURL();
- std::cout << "File: " << rtl::OUStringToOString(sURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl;
- rtl::OStringBuffer aMessage("Failed loading: ");
- aMessage.append(rtl::OUStringToOString(sURL, RTL_TEXTENCODING_UTF8));
- ScDocShellRef xDocSh = load( aFilterName,sURL, rtl::OUString(),aFilterType, aFileFormats[2].nFormatType);
- //CPPUNIT_ASSERT_MESSAGE(aMessage.getStr(), xDocSh.Is());
- if (xDocSh.Is())
- xDocSh->DoClose();
- }
+ testDir(aDir, 2);
}
#endif