diff options
-rw-r--r-- | sal/CppunitTest_sal_osl.mk | 3 | ||||
-rw-r--r-- | sal/qa/osl/file/osl_File.cxx | 26 | ||||
-rw-r--r-- | sal/qa/osl/file/osl_File_Const.h | 68 |
3 files changed, 60 insertions, 37 deletions
diff --git a/sal/CppunitTest_sal_osl.mk b/sal/CppunitTest_sal_osl.mk index d96ab2d41483..2e4b77509f56 100644 --- a/sal/CppunitTest_sal_osl.mk +++ b/sal/CppunitTest_sal_osl.mk @@ -12,7 +12,7 @@ $(eval $(call gb_CppunitTest_CppunitTest,sal_osl)) $(eval $(call gb_CppunitTest_add_exception_objects,sal_osl,\ sal/qa/osl/condition/osl_Condition \ - $(if $(filter $(OS),WNT),,sal/qa/osl/file/osl_File) \ + sal/qa/osl/file/osl_File \ sal/qa/osl/file/osl_old_test_file \ sal/qa/osl/file/test_cpy_wrt_file \ sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl \ @@ -27,6 +27,7 @@ $(eval $(call gb_CppunitTest_add_exception_objects,sal_osl,\ $(eval $(call gb_CppunitTest_use_libraries,sal_osl,\ sal \ + tl \ )) # the test uses the library created by Module_DLL diff --git a/sal/qa/osl/file/osl_File.cxx b/sal/qa/osl/file/osl_File.cxx index 036f31b886a1..28f63b3055c3 100644 --- a/sal/qa/osl/file/osl_File.cxx +++ b/sal/qa/osl/file/osl_File.cxx @@ -30,6 +30,8 @@ #include <cppunit/extensions/HelperMacros.h> #include <cppunit/plugin/TestPlugIn.h> +#include <tools/urlobj.hxx> + #include <memory> #ifdef _WIN32 @@ -282,6 +284,7 @@ namespace { /** Check for the file and directory access right. */ enum class oslCheckMode { + Exist, OpenAccess, ReadAccess, WriteAccess @@ -334,6 +337,10 @@ static bool checkDirectory(const OUString& str, oslCheckMode nCheckMode) { switch (nCheckMode) { + case oslCheckMode::Exist: + if (rc == ::osl::FileBase::E_None) + bCheckResult = true; + break; case oslCheckMode::OpenAccess: if (rc == osl::FileBase::E_None) bCheckResult = true; @@ -1086,6 +1093,7 @@ namespace osl_FileBase void searchFileURL_002() { /* search file is passed by system filename */ + OUString aRootSys = INetURLObject(aTempDirectoryURL).GetLastName(); nError1 = osl::FileBase::searchFileURL(aTempDirectorySys, aRootSys, aUStr); bool bOk1 = compareFileName(aUStr, aTempDirectoryURL); /* search file is passed by full qualified file URL */ @@ -1120,7 +1128,7 @@ namespace osl_FileBase void searchFileURL_003() { - OUString aSystemPathList(TEST_PLATFORM_ROOT ":" TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP ":" TEST_PLATFORM_ROOT "system/path"); + OUString aSystemPathList(aRootSys + PATH_LIST_DELIMITER + aTempDirectorySys + PATH_LIST_DELIMITER + aRootSys + "system/path"); nError1 = osl::FileBase::searchFileURL(aUserDirectoryURL, aSystemPathList, aUStr); bool bOk = compareFileName(aUStr, aUserDirectoryURL); CPPUNIT_ASSERT_EQUAL_MESSAGE("test for searchFileURL function: search directory is a list of system paths", @@ -1131,7 +1139,7 @@ namespace osl_FileBase void searchFileURL_004() { - OUString aSystemPathList(TEST_PLATFORM_ROOT PATH_LIST_DELIMITER TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP PATH_LIST_DELIMITER TEST_PLATFORM_ROOT "system/path/../name"); + OUString aSystemPathList(aRootSys + PATH_LIST_DELIMITER + aTempDirectorySys + PATH_LIST_DELIMITER + aRootSys + "system/path/../name"); nError1 = osl::FileBase::searchFileURL(aUserDirectoryURL, aSystemPathList, aUStr); bool bOk = compareFileName(aUStr, aUserDirectoryURL); CPPUNIT_ASSERT_EQUAL_MESSAGE("test for searchFileURL function: search directory is a list of system paths", @@ -4134,8 +4142,10 @@ namespace osl_Directory CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, nError2); } +#ifndef _WIN32 // returns E_NOENT on Windows CPPUNIT_ASSERT_MESSAGE("test for open function: open a file instead of a directory", (osl::FileBase::E_NOTDIR == nError1) || (osl::FileBase::E_ACCES == nError1)); +#endif } CPPUNIT_TEST_SUITE(open); @@ -4693,11 +4703,9 @@ namespace osl_Directory VolumeInfo aVolumeInfo(mask); // call getVolumeInfo here - // LLA: OUString aRootSysURL; - // LLA: nError1 = osl::File::getFileURLFromSystemPath(aRootSys, aRootSysURL); - // LLA: - // LLA: CPPUNIT_ASSERT_MESSAGE("can't convert root path to file url", - // LLA: (osl::FileBase::E_NONE == nError1)); + OUString aRootSysURL; + nError1 = osl::File::getFileURLFromSystemPath(aRootSys, aRootSysURL); + CPPUNIT_ASSERT_EQUAL_MESSAGE("can't convert root path to file url", osl::FileBase::E_None, nError1); nError1 = Directory::getVolumeInfo(aRootSys, aVolumeInfo); @@ -5169,11 +5177,11 @@ public: deleteTestFile(aTmpName6); if (ifFileExist(aTmpName4) == sal_True) deleteTestFile(aTmpName4); - if (checkDirectory(aTmpName4, osl_Check_Mode_Exist) == sal_True) + if (checkDirectory(aTmpName4, oslCheckMode::Exist) == sal_True) deleteTestDirectory(aTmpName4); if (ifFileExist(aTmpName3) == sal_True) deleteTestFile(aTmpName3); - if (checkDirectory(aTmpName3, osl_Check_Mode_Exist) == sal_True) + if (checkDirectory(aTmpName3, oslCheckMode::Exist) == sal_True) deleteTestDirectory(aTmpName3); OUString aUStr(aUserDirectoryURL); diff --git a/sal/qa/osl/file/osl_File_Const.h b/sal/qa/osl/file/osl_File_Const.h index 40bb81fb807a..d1dff529dfb2 100644 --- a/sal/qa/osl/file/osl_File_Const.h +++ b/sal/qa/osl/file/osl_File_Const.h @@ -27,6 +27,24 @@ #include <rtl/ustring.hxx> +#include <cppunit/extensions/HelperMacros.h> + +static OUString getTempDirectoryURL_() +{ + OUString aDir; + CPPUNIT_ASSERT_EQUAL_MESSAGE("couldn't get system temp URL", + osl::FileBase::E_None, osl::FileBase::getTempDirURL(aDir)); + return aDir; +} + +static OUString getTempDirectorySys_() +{ + OUString aDir; + CPPUNIT_ASSERT_EQUAL_MESSAGE("couldn't get system temp directory", + osl::FileBase::E_None, osl::FileBase::getSystemPathFromFileURL(getTempDirectoryURL_(), aDir)); + return aDir; +} + #ifdef __cplusplus extern "C" { @@ -77,9 +95,7 @@ const sal_Char pBuffer_Blank[] = ""; # include <sys/statvfs.h> # endif # include <sys/types.h> -# define TEST_PLATFORM "" # define TEST_PLATFORM_ROOT "/" -# define TEST_PLATFORM_TEMP "tmp" # define PATH_LIST_DELIMITER ":" # define PATH_SEPARATOR "/" #endif @@ -87,9 +103,7 @@ const sal_Char pBuffer_Blank[] = ""; #if defined(_WIN32) // Windows # include <io.h> # define PATH_MAX MAX_PATH -# define TEST_PLATFORM "c:/" # define TEST_PLATFORM_ROOT "c:/" -# define TEST_PLATFORM_TEMP "temp" # define PATH_LIST_DELIMITER ";" # define PATH_SEPARATOR "/" #endif @@ -99,49 +113,49 @@ const sal_Char pBuffer_Blank[] = ""; OUString aNullURL( "" ); OUString aSlashURL( PATH_SEPARATOR ); OUString aPreURL( FILE_PREFIX ); -OUString aRootURL( FILE_PREFIX TEST_PLATFORM ); +OUString aRootURL( FILE_PREFIX TEST_PLATFORM_ROOT ); -OUString aTempDirectoryURL( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP ); -OUString aTempDirectorySys( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP ); -OUString aUserDirectoryURL( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "" ); -OUString aUserDirectorySys( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "" ); +OUString aTempDirectorySys(getTempDirectorySys_()); +OUString aTempDirectoryURL(getTempDirectoryURL_()); +OUString aUserDirectorySys( aTempDirectorySys + "" ); +OUString aUserDirectoryURL( aTempDirectoryURL + "" ); // common used URL:temp, canonical, root, relative, link,etc -OUString aCanURL1( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/canonical.name" ); +OUString aCanURL1( aTempDirectoryURL + "/canonical.name" ); OUString aCanURL2( RTL_CONSTASCII_USTRINGPARAM("ca@#;+.,$///78no\0ni..name")); OUString aCanURL3( "ca@#;+.,$//tmp/678nonical//name" ); OUString aCanURL4( "canonical.name" ); OUString aTmpName1( "tmpdir" ); OUString aTmpName2( "tmpname" ); -OUString aTmpName3( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir" ); -OUString aTmpName4( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/tmpname" ); -OUString aTmpName5( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./tmpname" ); -OUString aTmpName6( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname" ); -OUString aTmpName7( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/noaccess" ); -OUString aTmpName8( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname/tmpdir" ); -OUString aTmpName9( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./" ); -OUString aTmpName10(RTL_CONSTASCII_USTRINGPARAM( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/\xE6\x9C\xAA\xE5\x91\xBD\xE5\x90\x8Dzhgb18030" )); +OUString aTmpName3( aTempDirectoryURL + "/tmpdir" ); +OUString aTmpName4( aTempDirectoryURL + "/tmpdir/tmpname" ); +OUString aTmpName5( aTempDirectoryURL + "/tmpdir/../tmpdir/./tmpname" ); +OUString aTmpName6( aTempDirectoryURL + "/tmpname" ); +OUString aTmpName7( aTempDirectoryURL + "/noaccess" ); +OUString aTmpName8( aTempDirectoryURL + "/tmpname/tmpdir" ); +OUString aTmpName9( aTempDirectoryURL + "/tmpdir/../tmpdir/./" ); +OUString aTmpName10(aTempDirectoryURL + "/\xE6\x9C\xAA\xE5\x91\xBD\xE5\x90\x8Dzhgb18030"); OUString aRelURL1( "relative/file1" ); OUString aRelURL2( "relative/./file2" ); OUString aRelURL3( "relative/../file3" ); OUString aRelURL4( "././relative/../file4" ); -OUString aRelURL5( TEST_PLATFORM_TEMP "/./../" TEST_PLATFORM_TEMP ); -OUString aLnkURL1( FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/link.file" ); +OUString aRelURL5( aTempDirectoryURL + "/./../" ); +OUString aLnkURL1( aTempDirectoryURL + "/link.file" ); OUString aHidURL1( ".hiddenfile" ); // common used System Path:temp, root,etc OUString aRootSys( TEST_PLATFORM_ROOT ); -OUString aSysPath1( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system.path" ); -OUString aSysPath2( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system/path" ); -OUString aSysPath3( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir" ); -OUString aSysPath4( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpname" ); -OUString aSysPath5(RTL_CONSTASCII_USTRINGPARAM( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/\xE6\x9C\xAA\xE5\x91\xBD\xE5\x90\x8Dzhgb18030" )); -OUString aSysPathLnk( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/link.file" ); -OUString aFifoSys( TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir/fifo" ); +OUString aSysPath1( aTempDirectorySys + "/system.path" ); +OUString aSysPath2( aTempDirectorySys + "/system/path" ); +OUString aSysPath3( aTempDirectorySys + "/tmpdir" ); +OUString aSysPath4( aTempDirectorySys + "/tmpname" ); +OUString aSysPath5( aTempDirectorySys + "/\xE6\x9C\xAA\xE5\x91\xBD\xE5\x90\x8Dzhgb18030" ); +OUString aSysPathLnk( aTempDirectorySys + "/link.file" ); +OUString aFifoSys( aTempDirectorySys + "/tmpdir/fifo" ); // FileType URL, we pick some canonical file in corresponding system for test: // socket, link, etc. |