1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_sal.hxx" 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir //------------------------------------------------------------------------ 32*cdf0e10cSrcweir // include files 33*cdf0e10cSrcweir //------------------------------------------------------------------------ 34*cdf0e10cSrcweir #include <sal/types.h> 35*cdf0e10cSrcweir #include <rtl/ustring.hxx> 36*cdf0e10cSrcweir #include <rtl/ustrbuf.hxx> 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir #include "osl/thread.h" 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir #include "rtl/ustrbuf.hxx" 41*cdf0e10cSrcweir #include <osl/file.hxx> 42*cdf0e10cSrcweir #include <osl_File_Const.h> 43*cdf0e10cSrcweir 44*cdf0e10cSrcweir #include <testshl/simpleheader.hxx> 45*cdf0e10cSrcweir 46*cdf0e10cSrcweir // #ifdef WNT 47*cdf0e10cSrcweir // # define UNICODE 48*cdf0e10cSrcweir // # define WIN32_LEAN_AND_MEAN 49*cdf0e10cSrcweir // # include <windows.h> 50*cdf0e10cSrcweir // # include <tchar.h> 51*cdf0e10cSrcweir // #endif 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir using namespace osl; 55*cdf0e10cSrcweir using namespace rtl; 56*cdf0e10cSrcweir 57*cdf0e10cSrcweir //------------------------------------------------------------------------ 58*cdf0e10cSrcweir // helper functions 59*cdf0e10cSrcweir //------------------------------------------------------------------------ 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir /** detailed wrong message. 62*cdf0e10cSrcweir */ 63*cdf0e10cSrcweir inline ::rtl::OString errorToString( const ::osl::FileBase::RC _nError ) 64*cdf0e10cSrcweir { 65*cdf0e10cSrcweir ::rtl::OString sResult; 66*cdf0e10cSrcweir switch ( _nError ) { 67*cdf0e10cSrcweir case ::osl::FileBase::E_None: 68*cdf0e10cSrcweir sResult = "Success"; 69*cdf0e10cSrcweir break; 70*cdf0e10cSrcweir case ::osl::FileBase::E_PERM: 71*cdf0e10cSrcweir sResult = "Operation not permitted"; 72*cdf0e10cSrcweir break; 73*cdf0e10cSrcweir case ::osl::FileBase::E_NOENT: 74*cdf0e10cSrcweir sResult = "No such file or directory"; 75*cdf0e10cSrcweir break; 76*cdf0e10cSrcweir case ::osl::FileBase::E_EXIST: 77*cdf0e10cSrcweir sResult = "Already Exist"; 78*cdf0e10cSrcweir break; 79*cdf0e10cSrcweir case ::osl::FileBase::E_ACCES: 80*cdf0e10cSrcweir sResult = "Permission denied"; 81*cdf0e10cSrcweir break; 82*cdf0e10cSrcweir case ::osl::FileBase::E_INVAL: 83*cdf0e10cSrcweir sResult = "The format of the parameters was not valid"; 84*cdf0e10cSrcweir break; 85*cdf0e10cSrcweir case ::osl::FileBase::E_NOTDIR: 86*cdf0e10cSrcweir sResult = "Not a directory"; 87*cdf0e10cSrcweir break; 88*cdf0e10cSrcweir case ::osl::FileBase::E_ISDIR: 89*cdf0e10cSrcweir sResult = "Is a directory"; 90*cdf0e10cSrcweir break; 91*cdf0e10cSrcweir case ::osl::FileBase::E_BADF: 92*cdf0e10cSrcweir sResult = "Bad file"; 93*cdf0e10cSrcweir break; 94*cdf0e10cSrcweir case ::osl::FileBase::E_NOTEMPTY: 95*cdf0e10cSrcweir sResult = "The directory is not empty"; 96*cdf0e10cSrcweir break; 97*cdf0e10cSrcweir default: 98*cdf0e10cSrcweir sResult = "Unknown Error"; 99*cdf0e10cSrcweir break; 100*cdf0e10cSrcweir } 101*cdf0e10cSrcweir return sResult; 102*cdf0e10cSrcweir } 103*cdf0e10cSrcweir 104*cdf0e10cSrcweir rtl::OUString errorToStr( ::osl::FileBase::RC const& nError) 105*cdf0e10cSrcweir { 106*cdf0e10cSrcweir rtl::OUStringBuffer suBuf; 107*cdf0e10cSrcweir suBuf.append( rtl::OUString::createFromAscii("The returned error is: ") ); 108*cdf0e10cSrcweir suBuf.append( rtl::OStringToOUString(errorToString(nError), RTL_TEXTENCODING_ASCII_US) ); 109*cdf0e10cSrcweir suBuf.append( rtl::OUString::createFromAscii("!\n") ); 110*cdf0e10cSrcweir return suBuf.makeStringAndClear(); 111*cdf0e10cSrcweir } 112*cdf0e10cSrcweir 113*cdf0e10cSrcweir /** print a file type name. 114*cdf0e10cSrcweir */ 115*cdf0e10cSrcweir inline void printFileType( const ::osl::FileStatus::Type nType ) 116*cdf0e10cSrcweir { 117*cdf0e10cSrcweir t_print( "#printFileType# " ); 118*cdf0e10cSrcweir switch ( nType ) { 119*cdf0e10cSrcweir case ::osl::FileStatus::Directory: 120*cdf0e10cSrcweir t_print( "This file is a: Directory.\n" ); 121*cdf0e10cSrcweir break; 122*cdf0e10cSrcweir case ::osl::FileStatus::Volume: 123*cdf0e10cSrcweir t_print( "This file is a: volume device.\n" ); 124*cdf0e10cSrcweir break; 125*cdf0e10cSrcweir case ::osl::FileStatus::Regular: 126*cdf0e10cSrcweir t_print( "This file is a: regular file.\n" ); 127*cdf0e10cSrcweir break; 128*cdf0e10cSrcweir case ::osl::FileStatus::Fifo: 129*cdf0e10cSrcweir t_print( "This file is a: fifo.\n" ); 130*cdf0e10cSrcweir break; 131*cdf0e10cSrcweir case ::osl::FileStatus::Socket: 132*cdf0e10cSrcweir t_print( "This file is a: socket.\n" ); 133*cdf0e10cSrcweir break; 134*cdf0e10cSrcweir case ::osl::FileStatus::Link: 135*cdf0e10cSrcweir t_print( "This file is a: link file.\n" ); 136*cdf0e10cSrcweir break; 137*cdf0e10cSrcweir case ::osl::FileStatus::Special: 138*cdf0e10cSrcweir t_print( "This file is a: special.\n" ); 139*cdf0e10cSrcweir break; 140*cdf0e10cSrcweir case ::osl::FileStatus::Unknown: 141*cdf0e10cSrcweir t_print( "The file type is unknown %d \n", nType ); 142*cdf0e10cSrcweir break; 143*cdf0e10cSrcweir } 144*cdf0e10cSrcweir } 145*cdf0e10cSrcweir 146*cdf0e10cSrcweir /** print a file attributes. 147*cdf0e10cSrcweir */ 148*cdf0e10cSrcweir inline void printFileAttributes( const sal_Int64 nAttributes ) 149*cdf0e10cSrcweir { 150*cdf0e10cSrcweir t_print( "#printFileAttributes# This file is a: (" ); 151*cdf0e10cSrcweir if ( ( nAttributes | Attribute_ReadOnly ) == nAttributes ) 152*cdf0e10cSrcweir t_print( " ReadOnly " ); 153*cdf0e10cSrcweir if ( ( nAttributes | Attribute_Hidden ) == nAttributes ) 154*cdf0e10cSrcweir t_print( " Hidden " ); 155*cdf0e10cSrcweir if ( ( nAttributes | Attribute_Executable ) == nAttributes ) 156*cdf0e10cSrcweir t_print( " Executable " ); 157*cdf0e10cSrcweir if ( ( nAttributes | Attribute_GrpWrite ) == nAttributes ) 158*cdf0e10cSrcweir t_print( " GrpWrite " ); 159*cdf0e10cSrcweir if ( ( nAttributes | Attribute_GrpRead ) == nAttributes ) 160*cdf0e10cSrcweir t_print( " GrpRead " ); 161*cdf0e10cSrcweir if ( ( nAttributes | Attribute_GrpExe ) == nAttributes ) 162*cdf0e10cSrcweir t_print( " GrpExe " ); 163*cdf0e10cSrcweir if ( ( nAttributes | Attribute_OwnWrite ) == nAttributes ) 164*cdf0e10cSrcweir t_print( " OwnWrite " ); 165*cdf0e10cSrcweir if ( ( nAttributes | Attribute_OwnRead ) == nAttributes ) 166*cdf0e10cSrcweir t_print( " OwnRead " ); 167*cdf0e10cSrcweir if ( ( nAttributes | Attribute_OwnExe ) == nAttributes ) 168*cdf0e10cSrcweir t_print( " OwnExe " ); 169*cdf0e10cSrcweir if ( ( nAttributes | Attribute_OthWrite ) == nAttributes ) 170*cdf0e10cSrcweir t_print( " OthWrite " ); 171*cdf0e10cSrcweir if ( ( nAttributes | Attribute_OthRead ) == nAttributes ) 172*cdf0e10cSrcweir t_print( " OthRead " ); 173*cdf0e10cSrcweir if ( ( nAttributes | Attribute_OthExe ) == nAttributes ) 174*cdf0e10cSrcweir t_print( " OthExe " ); 175*cdf0e10cSrcweir t_print( ") file!\n" ); 176*cdf0e10cSrcweir } 177*cdf0e10cSrcweir 178*cdf0e10cSrcweir /** print a UNI_CODE file name. 179*cdf0e10cSrcweir */ 180*cdf0e10cSrcweir inline void printFileName( const ::rtl::OUString & str ) 181*cdf0e10cSrcweir { 182*cdf0e10cSrcweir rtl::OString aString; 183*cdf0e10cSrcweir 184*cdf0e10cSrcweir t_print( "#printFileName_u# " ); 185*cdf0e10cSrcweir aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ); 186*cdf0e10cSrcweir t_print( "%s\n", aString.getStr( ) ); 187*cdf0e10cSrcweir } 188*cdf0e10cSrcweir 189*cdf0e10cSrcweir /** print a ASCII_CODE file name. 190*cdf0e10cSrcweir */ 191*cdf0e10cSrcweir inline void printFileName( const sal_Char * str ) 192*cdf0e10cSrcweir { 193*cdf0e10cSrcweir t_print( "#printFileName_a# " ); 194*cdf0e10cSrcweir t_print( "%s\n", str ); 195*cdf0e10cSrcweir } 196*cdf0e10cSrcweir 197*cdf0e10cSrcweir /** print an output wrong message. 198*cdf0e10cSrcweir */ 199*cdf0e10cSrcweir inline void printError( const ::osl::FileBase::RC nError ) 200*cdf0e10cSrcweir { 201*cdf0e10cSrcweir t_print( "#printError# " ); 202*cdf0e10cSrcweir printFileName( errorToStr(nError) ); 203*cdf0e10cSrcweir } 204*cdf0e10cSrcweir 205*cdf0e10cSrcweir /** print an signed Integer Number. 206*cdf0e10cSrcweir */ 207*cdf0e10cSrcweir inline void printInt( sal_Int64 i ) 208*cdf0e10cSrcweir { 209*cdf0e10cSrcweir t_print( "#printInt_i64# " ); 210*cdf0e10cSrcweir t_print( "The Integer64 is %lld\n", i); 211*cdf0e10cSrcweir } 212*cdf0e10cSrcweir 213*cdf0e10cSrcweir /** print an unsigned Integer Number. 214*cdf0e10cSrcweir */ 215*cdf0e10cSrcweir inline void printInt( sal_uInt64 i ) 216*cdf0e10cSrcweir { 217*cdf0e10cSrcweir t_print( "#printInt_u64# " ); 218*cdf0e10cSrcweir t_print( "The unsigned Integer64 is %llu\n", i); 219*cdf0e10cSrcweir } 220*cdf0e10cSrcweir 221*cdf0e10cSrcweir /** print Boolean value. 222*cdf0e10cSrcweir */ 223*cdf0e10cSrcweir inline void printBool( sal_Bool bOk ) 224*cdf0e10cSrcweir { 225*cdf0e10cSrcweir t_print( "#printBool# " ); 226*cdf0e10cSrcweir ( sal_True == bOk ) ? t_print( "YES!\n" ): t_print( "NO!\n" ); 227*cdf0e10cSrcweir } 228*cdf0e10cSrcweir 229*cdf0e10cSrcweir /** print struct TimeValue in local time format. 230*cdf0e10cSrcweir */ 231*cdf0e10cSrcweir inline void printTime( TimeValue *tv ) 232*cdf0e10cSrcweir { 233*cdf0e10cSrcweir oslDateTime *pDateTime = ( oslDateTime* )malloc( sizeof( oslDateTime ) ) ; 234*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,malloc ", pDateTime != NULL ); 235*cdf0e10cSrcweir TimeValue *pLocalTV = ( TimeValue* )malloc( sizeof( TimeValue ) ); 236*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,malloc ", pLocalTV != NULL ); 237*cdf0e10cSrcweir 238*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,osl_getLocalTimeFromSystemTime ",sal_True == osl_getLocalTimeFromSystemTime( tv, pLocalTV ) ); 239*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Error in printTime() function,osl_gepDateTimeFromTimeValue ",sal_True == osl_getDateTimeFromTimeValue( pLocalTV, pDateTime ) ); 240*cdf0e10cSrcweir 241*cdf0e10cSrcweir t_print( "#printTime# " ); 242*cdf0e10cSrcweir t_print( " Time is: %d/%d/%d ", pDateTime->Month, pDateTime->Day, pDateTime->Year); 243*cdf0e10cSrcweir switch ( pDateTime->DayOfWeek ) 244*cdf0e10cSrcweir { 245*cdf0e10cSrcweir case 0: t_print("Sun. "); break; 246*cdf0e10cSrcweir case 1: t_print("Mon. "); break; 247*cdf0e10cSrcweir case 2: t_print("Tue. "); break; 248*cdf0e10cSrcweir case 3: t_print("Thr. "); break; 249*cdf0e10cSrcweir case 4: t_print("Wen. "); break; 250*cdf0e10cSrcweir case 5: t_print("Fri. "); break; 251*cdf0e10cSrcweir case 6: t_print("Sat. "); break; 252*cdf0e10cSrcweir } 253*cdf0e10cSrcweir t_print( " %d:%d:%d %d nsecs\n", pDateTime->Hours, pDateTime->Minutes, pDateTime->Seconds, pDateTime->NanoSeconds); 254*cdf0e10cSrcweir 255*cdf0e10cSrcweir free( pDateTime ); 256*cdf0e10cSrcweir free( pLocalTV ); 257*cdf0e10cSrcweir } 258*cdf0e10cSrcweir 259*cdf0e10cSrcweir /** compare two TimeValue, unit is "ms", since Windows time precision is better than UNX. 260*cdf0e10cSrcweir */ 261*cdf0e10cSrcweir 262*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //precision of time in Windows is better than UNX 263*cdf0e10cSrcweir # define delta 2000 //time precision, 2000ms 264*cdf0e10cSrcweir #else 265*cdf0e10cSrcweir # define delta 1800 //time precision, 1.8s 266*cdf0e10cSrcweir #endif 267*cdf0e10cSrcweir 268*cdf0e10cSrcweir inline sal_Int64 t_abs64(sal_Int64 _nValue) 269*cdf0e10cSrcweir { 270*cdf0e10cSrcweir // std::abs() seems to have some ambiguity problems (so-texas) 271*cdf0e10cSrcweir // return abs(_nValue); 272*cdf0e10cSrcweir t_print("t_abs64(%ld)\n", _nValue); 273*cdf0e10cSrcweir // CPPUNIT_ASSERT(_nValue < 2147483647); 274*cdf0e10cSrcweir 275*cdf0e10cSrcweir if (_nValue < 0) 276*cdf0e10cSrcweir { 277*cdf0e10cSrcweir _nValue = -_nValue; 278*cdf0e10cSrcweir } 279*cdf0e10cSrcweir return _nValue; 280*cdf0e10cSrcweir } 281*cdf0e10cSrcweir 282*cdf0e10cSrcweir inline sal_Bool t_compareTime( TimeValue *m_aEndTime, TimeValue *m_aStartTime, sal_Int32 nDelta) 283*cdf0e10cSrcweir { 284*cdf0e10cSrcweir // sal_uInt64 uTimeValue; 285*cdf0e10cSrcweir // sal_Int64 iTimeValue; 286*cdf0e10cSrcweir // 287*cdf0e10cSrcweir // iTimeValue = t_abs64(( tv1->Seconds - tv2->Seconds) * 1000000000 + tv1->Nanosec - tv2->Nanosec); 288*cdf0e10cSrcweir // uTimeValue = ( iTimeValue / 1000000 ); 289*cdf0e10cSrcweir 290*cdf0e10cSrcweir sal_Int32 nDeltaSeconds = m_aEndTime->Seconds - m_aStartTime->Seconds; 291*cdf0e10cSrcweir sal_Int32 nDeltaNanoSec = sal_Int32(m_aEndTime->Nanosec) - sal_Int32(m_aStartTime->Nanosec); 292*cdf0e10cSrcweir if (nDeltaNanoSec < 0) 293*cdf0e10cSrcweir { 294*cdf0e10cSrcweir nDeltaNanoSec = 1000000000 + nDeltaNanoSec; 295*cdf0e10cSrcweir nDeltaSeconds--; 296*cdf0e10cSrcweir } 297*cdf0e10cSrcweir 298*cdf0e10cSrcweir sal_Int32 nDeltaMilliSec = (nDeltaSeconds * 1000) + (nDeltaNanoSec / 1000000); 299*cdf0e10cSrcweir return ( nDeltaMilliSec < nDelta ); 300*cdf0e10cSrcweir } 301*cdf0e10cSrcweir 302*cdf0e10cSrcweir /** compare two OUString file name. 303*cdf0e10cSrcweir */ 304*cdf0e10cSrcweir inline sal_Bool compareFileName( const ::rtl::OUString & ustr1, const ::rtl::OUString & ustr2 ) 305*cdf0e10cSrcweir { 306*cdf0e10cSrcweir sal_Bool bOk; 307*cdf0e10cSrcweir //on Windows, the seperatar is '\', so here change to '/', then compare 308*cdf0e10cSrcweir #if defined (WNT ) 309*cdf0e10cSrcweir ::rtl::OUString ustr1new,ustr2new; 310*cdf0e10cSrcweir sal_Unicode reverseSlash = (sal_Unicode)'\\'; 311*cdf0e10cSrcweir 312*cdf0e10cSrcweir if (ustr1.lastIndexOf(reverseSlash) != -1) 313*cdf0e10cSrcweir ustr1new = ustr1.replace(reverseSlash,(sal_Unicode)'/'); 314*cdf0e10cSrcweir else 315*cdf0e10cSrcweir ustr1new = ustr1; 316*cdf0e10cSrcweir if (ustr2.lastIndexOf(reverseSlash) != -1) 317*cdf0e10cSrcweir ustr2new = ustr2.replace(reverseSlash,(sal_Unicode)'/'); 318*cdf0e10cSrcweir else 319*cdf0e10cSrcweir ustr2new = ustr2; 320*cdf0e10cSrcweir bOk = ustr1new.equalsIgnoreAsciiCase( ustr2new ) ; 321*cdf0e10cSrcweir #else 322*cdf0e10cSrcweir bOk = ustr1.equalsIgnoreAsciiCase( ustr2 ); 323*cdf0e10cSrcweir #endif 324*cdf0e10cSrcweir return bOk; 325*cdf0e10cSrcweir } 326*cdf0e10cSrcweir 327*cdf0e10cSrcweir /** compare a OUString and an ASCII file name. 328*cdf0e10cSrcweir */ 329*cdf0e10cSrcweir inline sal_Bool compareFileName( const ::rtl::OUString & ustr, const sal_Char *astr ) 330*cdf0e10cSrcweir { 331*cdf0e10cSrcweir (void)ustr; 332*cdf0e10cSrcweir ::rtl::OUString ustr1 = rtl::OUString::createFromAscii( astr ); 333*cdf0e10cSrcweir sal_Bool bOk = ustr1.equalsIgnoreAsciiCase( ustr1 ); 334*cdf0e10cSrcweir 335*cdf0e10cSrcweir return bOk; 336*cdf0e10cSrcweir } 337*cdf0e10cSrcweir 338*cdf0e10cSrcweir /** simple version to judge if a file name or directory name is a URL or a system path, just to see if it 339*cdf0e10cSrcweir is start with "file:///";. 340*cdf0e10cSrcweir */ 341*cdf0e10cSrcweir inline sal_Bool isURL( const sal_Char *pathname ) 342*cdf0e10cSrcweir { 343*cdf0e10cSrcweir return ( 0 == strncmp( pathname, FILE_PREFIX, sizeof( FILE_PREFIX ) - 1 ) ); 344*cdf0e10cSrcweir } 345*cdf0e10cSrcweir 346*cdf0e10cSrcweir /** simple version to judge if a file name or directory name is a URL or a system path, just to see if it 347*cdf0e10cSrcweir is start with "file:///";. 348*cdf0e10cSrcweir */ 349*cdf0e10cSrcweir inline sal_Bool isURL( const ::rtl::OUString pathname ) 350*cdf0e10cSrcweir { 351*cdf0e10cSrcweir return ( ( pathname.indexOf( aPreURL ) == 0 ) ? sal_True : sal_False ); 352*cdf0e10cSrcweir } 353*cdf0e10cSrcweir 354*cdf0e10cSrcweir /** concat two part to form a URL or system path, add PATH_SEPERATOR between them if necessary, add "file:///" to begining if necessary. 355*cdf0e10cSrcweir */ 356*cdf0e10cSrcweir inline void concatURL( ::rtl::OUString & pathname1, const ::rtl::OUString & pathname2 ) 357*cdf0e10cSrcweir { 358*cdf0e10cSrcweir //check if pathname1 is full qualified URL; 359*cdf0e10cSrcweir if ( !isURL( pathname1 ) ) 360*cdf0e10cSrcweir { 361*cdf0e10cSrcweir ::rtl::OUString aPathName = pathname1.copy( 0 ); 362*cdf0e10cSrcweir ::osl::FileBase::getFileURLFromSystemPath( pathname1, aPathName ); //convert if not full qualified URL 363*cdf0e10cSrcweir pathname1 = aPathName.copy( 0 ); 364*cdf0e10cSrcweir } 365*cdf0e10cSrcweir 366*cdf0e10cSrcweir sal_Int32 index = 0; 367*cdf0e10cSrcweir //check if '/' is in the end of pathname1 or at the begin of pathname2; 368*cdf0e10cSrcweir if ( ( ( index = pathname1.lastIndexOf( aSlashURL ) ) != ( pathname1.getLength( ) - 1 ) ) && 369*cdf0e10cSrcweir ( ( index = pathname2.indexOf( aSlashURL ) ) != 0 ) ) 370*cdf0e10cSrcweir pathname1 += aSlashURL; 371*cdf0e10cSrcweir pathname1 += pathname2; 372*cdf0e10cSrcweir } 373*cdf0e10cSrcweir 374*cdf0e10cSrcweir /** create a temp test file using OUString name of full qualified URL or system path. 375*cdf0e10cSrcweir */ 376*cdf0e10cSrcweir inline void createTestFile( const ::rtl::OUString filename ) 377*cdf0e10cSrcweir { 378*cdf0e10cSrcweir ::rtl::OUString aPathURL = filename.copy( 0 ); 379*cdf0e10cSrcweir ::osl::FileBase::RC nError; 380*cdf0e10cSrcweir 381*cdf0e10cSrcweir if ( !isURL( filename ) ) 382*cdf0e10cSrcweir ::osl::FileBase::getFileURLFromSystemPath( filename, aPathURL ); //convert if not full qualified URL 383*cdf0e10cSrcweir 384*cdf0e10cSrcweir //::std::auto_ptr<File> pFile( new File( aPathURL ) ); 385*cdf0e10cSrcweir File aFile(aPathURL); 386*cdf0e10cSrcweir //nError = pFile->open( OpenFlag_Read | OpenFlag_Write | OpenFlag_Create ); 387*cdf0e10cSrcweir nError = aFile.open( OpenFlag_Read | OpenFlag_Write | OpenFlag_Create ); 388*cdf0e10cSrcweir //CPPUNIT_ASSERT_MESSAGE( "In createTestFile Function: creation ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) ); 389*cdf0e10cSrcweir if ( ( ::osl::FileBase::E_None != nError ) && ( nError != ::osl::FileBase::E_EXIST )) 390*cdf0e10cSrcweir { 391*cdf0e10cSrcweir t_print("createTestFile failed!\n"); 392*cdf0e10cSrcweir } 393*cdf0e10cSrcweir aFile.close(); 394*cdf0e10cSrcweir 395*cdf0e10cSrcweir } 396*cdf0e10cSrcweir 397*cdf0e10cSrcweir /** create a temp test file using OUString name of full qualified URL or system path in a base directory. 398*cdf0e10cSrcweir */ 399*cdf0e10cSrcweir inline void createTestFile( const ::rtl::OUString basename, const ::rtl::OUString filename ) 400*cdf0e10cSrcweir { 401*cdf0e10cSrcweir ::rtl::OUString aBaseURL = basename.copy( 0 ); 402*cdf0e10cSrcweir 403*cdf0e10cSrcweir concatURL( aBaseURL, filename ); 404*cdf0e10cSrcweir createTestFile( aBaseURL ); 405*cdf0e10cSrcweir } 406*cdf0e10cSrcweir 407*cdf0e10cSrcweir /** detete a temp test file using OUString name. 408*cdf0e10cSrcweir */ 409*cdf0e10cSrcweir inline void deleteTestFile( const ::rtl::OUString filename ) 410*cdf0e10cSrcweir { 411*cdf0e10cSrcweir // LLA: t_print("deleteTestFile\n"); 412*cdf0e10cSrcweir ::rtl::OUString aPathURL = filename.copy( 0 ); 413*cdf0e10cSrcweir ::osl::FileBase::RC nError; 414*cdf0e10cSrcweir 415*cdf0e10cSrcweir if ( !isURL( filename ) ) 416*cdf0e10cSrcweir ::osl::FileBase::getFileURLFromSystemPath( filename, aPathURL ); //convert if not full qualified URL 417*cdf0e10cSrcweir 418*cdf0e10cSrcweir nError = ::osl::File::setAttributes( aPathURL, Attribute_GrpWrite| Attribute_OwnWrite| Attribute_OthWrite ); // if readonly, make writtenable. 419*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: set writtenable ", ( ::osl::FileBase::E_None == nError ) || ( ::osl::FileBase::E_NOENT == nError ) ); 420*cdf0e10cSrcweir 421*cdf0e10cSrcweir nError = ::osl::File::remove( aPathURL ); 422*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "In deleteTestFile Function: remove ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) ); 423*cdf0e10cSrcweir } 424*cdf0e10cSrcweir 425*cdf0e10cSrcweir /** delete a temp test file using OUString name of full qualified URL or system path in a base directory. 426*cdf0e10cSrcweir */ 427*cdf0e10cSrcweir inline void deleteTestFile( const ::rtl::OUString basename, const ::rtl::OUString filename ) 428*cdf0e10cSrcweir { 429*cdf0e10cSrcweir ::rtl::OUString aBaseURL = basename.copy( 0 ); 430*cdf0e10cSrcweir 431*cdf0e10cSrcweir concatURL( aBaseURL, filename ); 432*cdf0e10cSrcweir deleteTestFile( aBaseURL ); 433*cdf0e10cSrcweir } 434*cdf0e10cSrcweir 435*cdf0e10cSrcweir /** create a temp test directory using OUString name of full qualified URL or system path. 436*cdf0e10cSrcweir */ 437*cdf0e10cSrcweir inline void createTestDirectory( const ::rtl::OUString dirname ) 438*cdf0e10cSrcweir { 439*cdf0e10cSrcweir ::rtl::OUString aPathURL = dirname.copy( 0 ); 440*cdf0e10cSrcweir ::osl::FileBase::RC nError; 441*cdf0e10cSrcweir 442*cdf0e10cSrcweir if ( !isURL( dirname ) ) 443*cdf0e10cSrcweir ::osl::FileBase::getFileURLFromSystemPath( dirname, aPathURL ); //convert if not full qualified URL 444*cdf0e10cSrcweir nError = ::osl::Directory::create( aPathURL ); 445*cdf0e10cSrcweir //CPPUNIT_ASSERT_MESSAGE( "In createTestDirectory Function: creation: ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) ); 446*cdf0e10cSrcweir if ( ( ::osl::FileBase::E_None != nError ) && ( nError != ::osl::FileBase::E_EXIST )) 447*cdf0e10cSrcweir t_print("createTestDirectory failed!\n"); 448*cdf0e10cSrcweir } 449*cdf0e10cSrcweir 450*cdf0e10cSrcweir /** create a temp test directory using OUString name of full qualified URL or system path in a base directory. 451*cdf0e10cSrcweir */ 452*cdf0e10cSrcweir inline void createTestDirectory( const ::rtl::OUString basename, const ::rtl::OUString dirname ) 453*cdf0e10cSrcweir { 454*cdf0e10cSrcweir ::rtl::OUString aBaseURL = basename.copy( 0 ); 455*cdf0e10cSrcweir ::rtl::OString aString; 456*cdf0e10cSrcweir 457*cdf0e10cSrcweir concatURL( aBaseURL, dirname ); 458*cdf0e10cSrcweir createTestDirectory( aBaseURL ); 459*cdf0e10cSrcweir } 460*cdf0e10cSrcweir 461*cdf0e10cSrcweir /** delete a temp test directory using OUString name of full qualified URL or system path. 462*cdf0e10cSrcweir */ 463*cdf0e10cSrcweir inline void deleteTestDirectory( const ::rtl::OUString dirname ) 464*cdf0e10cSrcweir { 465*cdf0e10cSrcweir // LLA: t_print("deleteTestDirectory\n"); 466*cdf0e10cSrcweir ::rtl::OUString aPathURL = dirname.copy( 0 ); 467*cdf0e10cSrcweir ::osl::FileBase::RC nError; 468*cdf0e10cSrcweir // LLA: printFileName(aPathURL); 469*cdf0e10cSrcweir if ( !isURL( dirname ) ) 470*cdf0e10cSrcweir ::osl::FileBase::getFileURLFromSystemPath( dirname, aPathURL ); //convert if not full qualified URL 471*cdf0e10cSrcweir 472*cdf0e10cSrcweir ::osl::Directory testDir( aPathURL ); 473*cdf0e10cSrcweir if ( testDir.isOpen( ) == sal_True ) 474*cdf0e10cSrcweir { 475*cdf0e10cSrcweir // LLA: t_print("#close Dir\n"); 476*cdf0e10cSrcweir testDir.close( ); //close if still open. 477*cdf0e10cSrcweir } 478*cdf0e10cSrcweir 479*cdf0e10cSrcweir nError = ::osl::Directory::remove( aPathURL ); 480*cdf0e10cSrcweir // LLA: printError(nError); 481*cdf0e10cSrcweir // LLA: if (( ::osl::FileBase::E_None == nError )) 482*cdf0e10cSrcweir // LLA: { 483*cdf0e10cSrcweir // LLA: t_print("nError == E_None\n"); 484*cdf0e10cSrcweir // LLA: } 485*cdf0e10cSrcweir // LLA: else if ( ( nError == ::osl::FileBase::E_NOENT )) 486*cdf0e10cSrcweir // LLA: { 487*cdf0e10cSrcweir // LLA: t_print("nError == E_NOENT\n"); 488*cdf0e10cSrcweir // LLA: } 489*cdf0e10cSrcweir // LLA: else 490*cdf0e10cSrcweir // LLA: { 491*cdf0e10cSrcweir // LLA: // t_print("nError == %d\n", nError); 492*cdf0e10cSrcweir // LLA: } 493*cdf0e10cSrcweir rtl::OUString strError = rtl::OUString::createFromAscii( "In deleteTestDirectory function: remove Directory "); 494*cdf0e10cSrcweir strError += aPathURL; 495*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( strError, ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT ) ); 496*cdf0e10cSrcweir // LLA: if (! ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_NOENT )) 497*cdf0e10cSrcweir // LLA: { 498*cdf0e10cSrcweir // LLA: t_print("In deleteTestDirectory function: remove\n"); 499*cdf0e10cSrcweir // LLA: } 500*cdf0e10cSrcweir } 501*cdf0e10cSrcweir 502*cdf0e10cSrcweir /** delete a temp test directory using OUString name of full qualified URL or system path in a base directory. 503*cdf0e10cSrcweir */ 504*cdf0e10cSrcweir inline void deleteTestDirectory( const ::rtl::OUString basename, const ::rtl::OUString dirname ) 505*cdf0e10cSrcweir { 506*cdf0e10cSrcweir ::rtl::OUString aBaseURL = basename.copy( 0 ); 507*cdf0e10cSrcweir 508*cdf0e10cSrcweir concatURL( aBaseURL, dirname ); 509*cdf0e10cSrcweir deleteTestDirectory( aBaseURL ); 510*cdf0e10cSrcweir } 511*cdf0e10cSrcweir 512*cdf0e10cSrcweir 513*cdf0e10cSrcweir /** Check for the file and directory access right. 514*cdf0e10cSrcweir */ 515*cdf0e10cSrcweir typedef enum { 516*cdf0e10cSrcweir osl_Check_Mode_Exist, 517*cdf0e10cSrcweir osl_Check_Mode_OpenAccess, 518*cdf0e10cSrcweir osl_Check_Mode_ReadAccess, 519*cdf0e10cSrcweir osl_Check_Mode_WriteAccess 520*cdf0e10cSrcweir } oslCheckMode; 521*cdf0e10cSrcweir 522*cdf0e10cSrcweir // not used here 523*cdf0e10cSrcweir inline sal_Bool checkFile( const ::rtl::OUString & str, oslCheckMode nCheckMode ) 524*cdf0e10cSrcweir { 525*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 526*cdf0e10cSrcweir ::osl::File testFile( str ); 527*cdf0e10cSrcweir sal_Bool bCheckResult; 528*cdf0e10cSrcweir 529*cdf0e10cSrcweir bCheckResult = sal_False; 530*cdf0e10cSrcweir nError1 = testFile.open ( OpenFlag_Read ); 531*cdf0e10cSrcweir if ( ( ::osl::FileBase::E_NOENT != nError1 ) && ( ::osl::FileBase::E_ACCES != nError1 ) ){ 532*cdf0e10cSrcweir 533*cdf0e10cSrcweir switch ( nCheckMode ) { 534*cdf0e10cSrcweir case osl_Check_Mode_Exist: 535*cdf0e10cSrcweir /// check if the file is exist. 536*cdf0e10cSrcweir if ( ::osl::FileBase::E_None == nError1 ) 537*cdf0e10cSrcweir bCheckResult = sal_True; 538*cdf0e10cSrcweir break; 539*cdf0e10cSrcweir case osl_Check_Mode_OpenAccess: 540*cdf0e10cSrcweir /// check if the file is openable. 541*cdf0e10cSrcweir if ( ::osl::FileBase::E_None == nError1 ) 542*cdf0e10cSrcweir bCheckResult = sal_True; 543*cdf0e10cSrcweir break; 544*cdf0e10cSrcweir case osl_Check_Mode_WriteAccess: 545*cdf0e10cSrcweir /// check the file name and whether it can be write. 546*cdf0e10cSrcweir /// write chars into the file. 547*cdf0e10cSrcweir //testFile.close( ); 548*cdf0e10cSrcweir //testFile.open( OpenFlag_Write ); 549*cdf0e10cSrcweir sal_uInt64 nCount_write; 550*cdf0e10cSrcweir nError2 = testFile.write( pBuffer_Char, 10, nCount_write ); 551*cdf0e10cSrcweir if ( ::osl::FileBase::E_None == nError2 ) 552*cdf0e10cSrcweir bCheckResult = sal_True; 553*cdf0e10cSrcweir break; 554*cdf0e10cSrcweir 555*cdf0e10cSrcweir default: 556*cdf0e10cSrcweir bCheckResult = sal_False; 557*cdf0e10cSrcweir }/// swith 558*cdf0e10cSrcweir 559*cdf0e10cSrcweir nError2 = testFile.close( ); 560*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( " in CheckFile() function, close file ", nError2 == FileBase::E_None ); 561*cdf0e10cSrcweir 562*cdf0e10cSrcweir } 563*cdf0e10cSrcweir 564*cdf0e10cSrcweir return bCheckResult; 565*cdf0e10cSrcweir } 566*cdf0e10cSrcweir 567*cdf0e10cSrcweir //check if the file exist 568*cdf0e10cSrcweir inline sal_Bool ifFileExist( const ::rtl::OUString & str ) 569*cdf0e10cSrcweir { 570*cdf0e10cSrcweir sal_Bool bCheckResult = sal_False; 571*cdf0e10cSrcweir 572*cdf0e10cSrcweir /*#ifdef WNT 573*cdf0e10cSrcweir ::rtl::OUString aUStr = str.copy( 0 ); 574*cdf0e10cSrcweir if ( isURL( str ) ) 575*cdf0e10cSrcweir ::osl::FileBase::getSystemPathFromFileURL( str, aUStr ); 576*cdf0e10cSrcweir 577*cdf0e10cSrcweir ::rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US ); 578*cdf0e10cSrcweir const char *path = aString.getStr( ); 579*cdf0e10cSrcweir if (( _access( path, 0 ) ) != -1 ) 580*cdf0e10cSrcweir bCheckResult = sal_True; 581*cdf0e10cSrcweir #else*/ 582*cdf0e10cSrcweir ::rtl::OString aString = ::rtl::OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ); 583*cdf0e10cSrcweir // const char *path = aString.getStr( ); 584*cdf0e10cSrcweir ::osl::File testFile( str ); 585*cdf0e10cSrcweir bCheckResult = ( osl::FileBase::E_None == testFile.open( OpenFlag_Read ) ); 586*cdf0e10cSrcweir //if (bCheckResult) 587*cdf0e10cSrcweir //t_print("%s exist!\n", path); 588*cdf0e10cSrcweir //else 589*cdf0e10cSrcweir //t_print("%s not exist!\n", path); 590*cdf0e10cSrcweir //#endif 591*cdf0e10cSrcweir return bCheckResult; 592*cdf0e10cSrcweir 593*cdf0e10cSrcweir } 594*cdf0e10cSrcweir 595*cdf0e10cSrcweir //check if the file can be writen 596*cdf0e10cSrcweir inline sal_Bool ifFileCanWrite( const ::rtl::OUString & str ) 597*cdf0e10cSrcweir { 598*cdf0e10cSrcweir sal_Bool bCheckResult = sal_False; 599*cdf0e10cSrcweir //on Windows, the file has no write right, but can be written 600*cdf0e10cSrcweir #ifdef WNT 601*cdf0e10cSrcweir ::rtl::OUString aUStr = str.copy( 0 ); 602*cdf0e10cSrcweir if ( isURL( str ) ) 603*cdf0e10cSrcweir ::osl::FileBase::getSystemPathFromFileURL( str, aUStr ); 604*cdf0e10cSrcweir 605*cdf0e10cSrcweir ::rtl::OString aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US ); 606*cdf0e10cSrcweir const char *path = aString.getStr( ); 607*cdf0e10cSrcweir if (( _access( path, 2 ) ) != -1 ) 608*cdf0e10cSrcweir bCheckResult = sal_True; 609*cdf0e10cSrcweir //on UNX, just test if open success with OpenFlag_Write 610*cdf0e10cSrcweir #else 611*cdf0e10cSrcweir ::osl::File testFile( str ); 612*cdf0e10cSrcweir bCheckResult = (osl::FileBase::E_None == testFile.open( OpenFlag_Write )); 613*cdf0e10cSrcweir #endif 614*cdf0e10cSrcweir return bCheckResult; 615*cdf0e10cSrcweir } 616*cdf0e10cSrcweir 617*cdf0e10cSrcweir inline sal_Bool checkDirectory( const ::rtl::OUString & str, oslCheckMode nCheckMode ) 618*cdf0e10cSrcweir { 619*cdf0e10cSrcweir rtl::OUString aUString; 620*cdf0e10cSrcweir DirectoryItem rItem; 621*cdf0e10cSrcweir FileBase::RC rc; 622*cdf0e10cSrcweir sal_Bool bCheckResult= sal_False; 623*cdf0e10cSrcweir 624*cdf0e10cSrcweir //::std::auto_ptr<Directory> pDir( new Directory( str ) ); 625*cdf0e10cSrcweir Directory aDir( str ); 626*cdf0e10cSrcweir rc = aDir.open( ); 627*cdf0e10cSrcweir 628*cdf0e10cSrcweir if ( ( ::osl::FileBase::E_NOENT != rc ) && ( ::osl::FileBase::E_ACCES != rc ) ){ 629*cdf0e10cSrcweir 630*cdf0e10cSrcweir switch ( nCheckMode ) { 631*cdf0e10cSrcweir case osl_Check_Mode_Exist: 632*cdf0e10cSrcweir if ( rc == ::osl::FileBase::E_None ) 633*cdf0e10cSrcweir bCheckResult = sal_True; 634*cdf0e10cSrcweir break; 635*cdf0e10cSrcweir case osl_Check_Mode_OpenAccess: 636*cdf0e10cSrcweir if ( rc == ::osl::FileBase::E_None ) 637*cdf0e10cSrcweir bCheckResult = sal_True; 638*cdf0e10cSrcweir break; 639*cdf0e10cSrcweir case osl_Check_Mode_ReadAccess: 640*cdf0e10cSrcweir //rc = pDir->getNextItem( rItem, 0 ); 641*cdf0e10cSrcweir rc = aDir.getNextItem( rItem, 0 ); 642*cdf0e10cSrcweir if ( ( rc == ::osl::FileBase::E_None ) || ( rc == ::osl::FileBase::E_NOENT ) ) 643*cdf0e10cSrcweir bCheckResult = sal_True; 644*cdf0e10cSrcweir else 645*cdf0e10cSrcweir bCheckResult = sal_False; 646*cdf0e10cSrcweir break; 647*cdf0e10cSrcweir case osl_Check_Mode_WriteAccess: 648*cdf0e10cSrcweir ( ( aUString += str ) += aSlashURL ) += aTmpName2; 649*cdf0e10cSrcweir //if ( ( rc = pDir->create( aUString ) ) == ::osl::FileBase::E_None ) 650*cdf0e10cSrcweir if ( ( rc = Directory::create( aUString ) ) == ::osl::FileBase::E_None ) 651*cdf0e10cSrcweir { 652*cdf0e10cSrcweir bCheckResult = sal_True; 653*cdf0e10cSrcweir //rc = pDir->remove( aUString ); 654*cdf0e10cSrcweir rc = Directory::remove( aUString ); 655*cdf0e10cSrcweir CPPUNIT_ASSERT( rc == ::osl::FileBase::E_None ); 656*cdf0e10cSrcweir } 657*cdf0e10cSrcweir else 658*cdf0e10cSrcweir bCheckResult = sal_False; 659*cdf0e10cSrcweir break; 660*cdf0e10cSrcweir 661*cdf0e10cSrcweir default: 662*cdf0e10cSrcweir bCheckResult = sal_False; 663*cdf0e10cSrcweir }// switch 664*cdf0e10cSrcweir 665*cdf0e10cSrcweir rc = aDir.close( ); 666*cdf0e10cSrcweir CPPUNIT_ASSERT( rc == FileBase::E_None ); 667*cdf0e10cSrcweir 668*cdf0e10cSrcweir }//if 669*cdf0e10cSrcweir 670*cdf0e10cSrcweir return bCheckResult; 671*cdf0e10cSrcweir } 672*cdf0e10cSrcweir 673*cdf0e10cSrcweir /** construct error message 674*cdf0e10cSrcweir */ 675*cdf0e10cSrcweir inline ::rtl::OUString outputError( const ::rtl::OUString & returnVal, const ::rtl::OUString & rightVal, const sal_Char * msg = "") 676*cdf0e10cSrcweir { 677*cdf0e10cSrcweir ::rtl::OUString aUString; 678*cdf0e10cSrcweir if ( returnVal.equals( rightVal ) ) 679*cdf0e10cSrcweir return aUString; 680*cdf0e10cSrcweir aUString += ::rtl::OUString::createFromAscii(msg); 681*cdf0e10cSrcweir aUString += ::rtl::OUString::createFromAscii(": the returned value is '"); 682*cdf0e10cSrcweir aUString += returnVal; 683*cdf0e10cSrcweir aUString += ::rtl::OUString::createFromAscii("', but the value should be '"); 684*cdf0e10cSrcweir aUString += rightVal; 685*cdf0e10cSrcweir aUString += ::rtl::OUString::createFromAscii("'."); 686*cdf0e10cSrcweir return aUString; 687*cdf0e10cSrcweir } 688*cdf0e10cSrcweir 689*cdf0e10cSrcweir /** Change file mode, two version in UNIX and Windows;. 690*cdf0e10cSrcweir */ 691*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //chmod() method is differ in Windows 692*cdf0e10cSrcweir inline void changeFileMode( ::rtl::OUString & filepath, sal_Int32 mode ) 693*cdf0e10cSrcweir { 694*cdf0e10cSrcweir rtl::OString aString; 695*cdf0e10cSrcweir rtl::OUString aUStr = filepath.copy( 0 ); 696*cdf0e10cSrcweir 697*cdf0e10cSrcweir if ( isURL( filepath ) ) 698*cdf0e10cSrcweir ::osl::FileBase::getSystemPathFromFileURL( filepath, aUStr ); 699*cdf0e10cSrcweir aString = ::rtl::OUStringToOString( aUStr, RTL_TEXTENCODING_ASCII_US ); 700*cdf0e10cSrcweir chmod( aString.getStr( ), mode ); 701*cdf0e10cSrcweir } 702*cdf0e10cSrcweir #else //Windows version 703*cdf0e10cSrcweir inline void changeFileMode( ::rtl::OUString & filepath, sal_Int32 mode ) 704*cdf0e10cSrcweir { 705*cdf0e10cSrcweir (void)filepath; 706*cdf0e10cSrcweir (void)mode; 707*cdf0e10cSrcweir t_print("this method is not implemented yet"); 708*cdf0e10cSrcweir } 709*cdf0e10cSrcweir #endif 710*cdf0e10cSrcweir 711*cdf0e10cSrcweir inline ::rtl::OUString getCurrentPID( void ); 712*cdf0e10cSrcweir 713*cdf0e10cSrcweir 714*cdf0e10cSrcweir 715*cdf0e10cSrcweir //------------------------------------------------------------------------ 716*cdf0e10cSrcweir // Beginning of the test cases for FileBase class 717*cdf0e10cSrcweir //------------------------------------------------------------------------ 718*cdf0e10cSrcweir namespace osl_FileBase 719*cdf0e10cSrcweir { 720*cdf0e10cSrcweir 721*cdf0e10cSrcweir #if 0 //~ this function has been deprecated 722*cdf0e10cSrcweir //--------------------------------------------------------------------- 723*cdf0e10cSrcweir // testing the method 724*cdf0e10cSrcweir // static inline RC getCanonicalName( const ::rtl::OUString& ustrRequestedURL, ::rtl::OUString& ustrValidURL ) 725*cdf0e10cSrcweir // 726*cdf0e10cSrcweir // The illegal characters are ;+=[]',\"*\\<>/?:|. 727*cdf0e10cSrcweir // because getCanonicalName method is not implemented yet and will be deprecated in the future, this test is not necessary. 728*cdf0e10cSrcweir //--------------------------------------------------------------------- 729*cdf0e10cSrcweir 730*cdf0e10cSrcweir class getCanonicalName:public CppUnit::TestFixture 731*cdf0e10cSrcweir { 732*cdf0e10cSrcweir 733*cdf0e10cSrcweir public: 734*cdf0e10cSrcweir ::osl::FileBase::RC nError; 735*cdf0e10cSrcweir 736*cdf0e10cSrcweir void getCanonicalName_001( ) 737*cdf0e10cSrcweir { 738*cdf0e10cSrcweir ::rtl::OUString aUStr_ValidURL; 739*cdf0e10cSrcweir nError = ::osl::FileBase::getCanonicalName( aCanURL1, aUStr_ValidURL ); 740*cdf0e10cSrcweir 741*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("test for getCanonicalName function: check valid and unused file name", 742*cdf0e10cSrcweir ( osl::FileBase::E_None == nError ) && aUStr_ValidURL.equalsIgnoreAsciiCase( aCanURL1 ) ); 743*cdf0e10cSrcweir } 744*cdf0e10cSrcweir 745*cdf0e10cSrcweir void getCanonicalName_002( ) 746*cdf0e10cSrcweir { 747*cdf0e10cSrcweir ::rtl::OUString aUStr_ValidURL; 748*cdf0e10cSrcweir 749*cdf0e10cSrcweir createTestFile( aCanURL1 ); 750*cdf0e10cSrcweir nError = ::osl::FileBase::getCanonicalName( aCanURL1, aUStr_ValidURL ); 751*cdf0e10cSrcweir deleteTestFile( aCanURL1 ); 752*cdf0e10cSrcweir 753*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( " test for getCanonicalName function: an existed file name, should different from the request, it did not passed(W32)(UNX)", 754*cdf0e10cSrcweir ( osl::FileBase::E_None == nError ) && aUStr_ValidURL.equalsIgnoreAsciiCase( aCanURL1 ) ); 755*cdf0e10cSrcweir } 756*cdf0e10cSrcweir 757*cdf0e10cSrcweir void getCanonicalName_003( ) 758*cdf0e10cSrcweir { 759*cdf0e10cSrcweir ::rtl::OUString aUStr_ValidURL; 760*cdf0e10cSrcweir nError = ::osl::FileBase::getCanonicalName ( aCanURL2, aUStr_ValidURL ); 761*cdf0e10cSrcweir 762*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( " test for getCanonicalName function: invalid file name, should different from the request, it did not passed(W32)(UNX)", 763*cdf0e10cSrcweir ( osl::FileBase::E_None == nError ) && aUStr_ValidURL.equalsIgnoreAsciiCase( aCanURL2 ) ); 764*cdf0e10cSrcweir } 765*cdf0e10cSrcweir 766*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getCanonicalName ); 767*cdf0e10cSrcweir CPPUNIT_TEST( getCanonicalName_001 ); 768*cdf0e10cSrcweir CPPUNIT_TEST( getCanonicalName_002 ); 769*cdf0e10cSrcweir CPPUNIT_TEST( getCanonicalName_003 ); 770*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 771*cdf0e10cSrcweir };// class getCanonicalName 772*cdf0e10cSrcweir #endif 773*cdf0e10cSrcweir 774*cdf0e10cSrcweir //--------------------------------------------------------------------- 775*cdf0e10cSrcweir // testing the method 776*cdf0e10cSrcweir // static inline RC getAbsoluteFileURL( const ::rtl::OUString& ustrBaseDirectoryURL, 777*cdf0e10cSrcweir // const ::rtl::OUString& ustrRelativeFileURL, 778*cdf0e10cSrcweir // ::rtl::OUString& ustrAbsoluteFileURL ) 779*cdf0e10cSrcweir //--------------------------------------------------------------------- 780*cdf0e10cSrcweir 781*cdf0e10cSrcweir class getAbsoluteFileURL:public CppUnit::TestFixture 782*cdf0e10cSrcweir { 783*cdf0e10cSrcweir //::osl::FileBase aFileBase; 784*cdf0e10cSrcweir ::rtl::OUString aResultURL1, aResultURL2, aResultURL3, aResultURL4, aResultURL5, aResultURL6; 785*cdf0e10cSrcweir // ::osl::FileBase::RC nError; 786*cdf0e10cSrcweir sal_Bool bOk; 787*cdf0e10cSrcweir 788*cdf0e10cSrcweir public: 789*cdf0e10cSrcweir 790*cdf0e10cSrcweir void check_getAbsoluteFileURL( rtl::OUString const& _suBaseURL, rtl::OString const& _sRelativeURL, ::osl::FileBase::RC _nAssumeError, rtl::OUString const& _suAssumeResultStr ); 791*cdf0e10cSrcweir 792*cdf0e10cSrcweir void getAbsoluteFileURL_001_1(); 793*cdf0e10cSrcweir void getAbsoluteFileURL_001_2(); 794*cdf0e10cSrcweir void getAbsoluteFileURL_001_3(); 795*cdf0e10cSrcweir void getAbsoluteFileURL_001_4(); 796*cdf0e10cSrcweir void getAbsoluteFileURL_001_5(); 797*cdf0e10cSrcweir void getAbsoluteFileURL_001_6(); 798*cdf0e10cSrcweir void getAbsoluteFileURL_001_7(); 799*cdf0e10cSrcweir void getAbsoluteFileURL_001_8(); 800*cdf0e10cSrcweir void getAbsoluteFileURL_002(); 801*cdf0e10cSrcweir void getAbsoluteFileURL_003(); 802*cdf0e10cSrcweir void getAbsoluteFileURL_004(); 803*cdf0e10cSrcweir 804*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getAbsoluteFileURL ); 805*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_1 ); 806*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_2 ); 807*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_3 ); 808*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_4 ); 809*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_5 ); 810*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_6 ); 811*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_7 ); 812*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001_8 ); 813*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_002 ); 814*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_003 ); 815*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_004 ); 816*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 817*cdf0e10cSrcweir 818*cdf0e10cSrcweir }; //class getAbsoluteFileURL 819*cdf0e10cSrcweir 820*cdf0e10cSrcweir /* use coding format as same as getSystemPathFromFileURL 821*cdf0e10cSrcweir // initialization 822*cdf0e10cSrcweir void setUp( ) 823*cdf0e10cSrcweir { 824*cdf0e10cSrcweir sal_Char pResultURL1[] = "/relative/file1"; 825*cdf0e10cSrcweir sal_Char pResultURL2[] = "/relative/file2"; 826*cdf0e10cSrcweir sal_Char pResultURL3[] = "/file3"; 827*cdf0e10cSrcweir sal_Char pResultURL4[] = "/file4"; 828*cdf0e10cSrcweir sal_Char pResultURL5[] = "/canonical.name"; 829*cdf0e10cSrcweir sal_Char pResultURL6[] = "/relative/"; 830*cdf0e10cSrcweir aResultURL1 = aUserDirectoryURL.concat( rtl::OUString::createFromAscii( pResultURL1 ) ); 831*cdf0e10cSrcweir aResultURL2 = aUserDirectoryURL.concat( rtl::OUString::createFromAscii( pResultURL2 ) ); 832*cdf0e10cSrcweir aResultURL3 = aUserDirectoryURL.concat( rtl::OUString::createFromAscii( pResultURL3 ) ); 833*cdf0e10cSrcweir aResultURL4 = aUserDirectoryURL.concat( rtl::OUString::createFromAscii( pResultURL4 ) ); 834*cdf0e10cSrcweir aResultURL5 = aUserDirectoryURL.concat( rtl::OUString::createFromAscii( pResultURL5 ) ); 835*cdf0e10cSrcweir aResultURL6 = aUserDirectoryURL.concat( rtl::OUString::createFromAscii( pResultURL6 ) ); 836*cdf0e10cSrcweir } 837*cdf0e10cSrcweir 838*cdf0e10cSrcweir void tearDown( ) 839*cdf0e10cSrcweir { 840*cdf0e10cSrcweir } 841*cdf0e10cSrcweir 842*cdf0e10cSrcweir // test code 843*cdf0e10cSrcweir void getAbsoluteFileURL_001( ) 844*cdf0e10cSrcweir { 845*cdf0e10cSrcweir ::rtl::OUString aUStr_AbsURL; 846*cdf0e10cSrcweir 847*cdf0e10cSrcweir ::osl::FileBase::RC nError11 = aFileBase.getAbsoluteFileURL( aUserDirectoryURL, aRelURL1, aUStr_AbsURL ); 848*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getAbsoluteFileURL(' "); 849*cdf0e10cSrcweir suError += aUserDirectoryURL; 850*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 851*cdf0e10cSrcweir suError += aRelURL1; 852*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 853*cdf0e10cSrcweir suError += aUStr_AbsURL; 854*cdf0e10cSrcweir suError += outputError( aUStr_AbsURL, aResultURL1, "' ),"); 855*cdf0e10cSrcweir 856*cdf0e10cSrcweir sal_Bool nError12 = aUStr_AbsURL.equals( aResultURL1 ); 857*cdf0e10cSrcweir ::osl::FileBase::RC nError21 = aFileBase.getAbsoluteFileURL( aUserDirectoryURL, aRelURL2, aUStr_AbsURL ); 858*cdf0e10cSrcweir sal_Bool nError22 = aUStr_AbsURL.equals( aResultURL2 ); 859*cdf0e10cSrcweir ::osl::FileBase::RC nError31 = aFileBase.getAbsoluteFileURL( aUserDirectoryURL, aRelURL3, aUStr_AbsURL ); 860*cdf0e10cSrcweir sal_Bool nError32 = aUStr_AbsURL.equals( aResultURL3 ); 861*cdf0e10cSrcweir ::osl::FileBase::RC nError41 = aFileBase.getAbsoluteFileURL( aUserDirectoryURL, aRelURL4, aUStr_AbsURL ); 862*cdf0e10cSrcweir sal_Bool nError42 = aUStr_AbsURL.equals( aResultURL4 ); 863*cdf0e10cSrcweir ::osl::FileBase::RC nError61 = aFileBase.getAbsoluteFileURL( aUserDirectoryURL, aRelURL6, aUStr_AbsURL ); 864*cdf0e10cSrcweir sal_Bool nError62 = aUStr_AbsURL.equals( aResultURL6 ); 865*cdf0e10cSrcweir printFileName( aUStr_AbsURL ); 866*cdf0e10cSrcweir printFileName( aResultURL6 ); 867*cdf0e10cSrcweir 868*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("test for getAbsoluteFileURL function: valid file name with valid directory", 869*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError11 ) && ( sal_True == nError12 ) && 870*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError21 ) && ( sal_True == nError22 ) && 871*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError31 ) && ( sal_True == nError32 ) && 872*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError41 ) && ( sal_True == nError42 ) && 873*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError61 ) && ( sal_True == nError62 ) ); 874*cdf0e10cSrcweir } 875*cdf0e10cSrcweir 876*cdf0e10cSrcweir 877*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //Link is not defined in Windows 878*cdf0e10cSrcweir void getAbsoluteFileURL_002( ) 879*cdf0e10cSrcweir { 880*cdf0e10cSrcweir ::rtl::OUString aUStr_AbsURL, aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys ); 881*cdf0e10cSrcweir ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/link.file"); 882*cdf0e10cSrcweir ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/canonical.name"); 883*cdf0e10cSrcweir 884*cdf0e10cSrcweir rtl::OString strLinkFileName, strSrcFileName; 885*cdf0e10cSrcweir strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US ); 886*cdf0e10cSrcweir strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US ); 887*cdf0e10cSrcweir 888*cdf0e10cSrcweir createTestFile( aCanURL1 ); 889*cdf0e10cSrcweir sal_Int32 fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() ); 890*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 891*cdf0e10cSrcweir 892*cdf0e10cSrcweir nError = aFileBase.getAbsoluteFileURL( aUserDirectoryURL, aLnkURL1, aUStr_AbsURL ); 893*cdf0e10cSrcweir bOk = aUStr_AbsURL.equals( aResultURL5 ); 894*cdf0e10cSrcweir 895*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getAbsoluteFileURL(' "); 896*cdf0e10cSrcweir suError += aUserDirectoryURL; 897*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 898*cdf0e10cSrcweir suError += aLnkURL1; 899*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 900*cdf0e10cSrcweir suError += aUStr_AbsURL; 901*cdf0e10cSrcweir suError += outputError( aUStr_AbsURL, aResultURL5, "' ),"); 902*cdf0e10cSrcweir //printFileName(suError); 903*cdf0e10cSrcweir 904*cdf0e10cSrcweir deleteTestFile( aCanURL1 ); 905*cdf0e10cSrcweir fd = remove( strLinkFileName.getStr() ); 906*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 907*cdf0e10cSrcweir 908*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("test for getAbsoluteFileURL function: URL contain link( Solaris version )", 909*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError ) && ( sal_True == bOk ) ); 910*cdf0e10cSrcweir } 911*cdf0e10cSrcweir #else //Windows version 912*cdf0e10cSrcweir void getAbsoluteFileURL_002( ) 913*cdf0e10cSrcweir { 914*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("test for getAbsoluteFileURL function: URL contain link( Windows version )", 915*cdf0e10cSrcweir 1 ); 916*cdf0e10cSrcweir } 917*cdf0e10cSrcweir #endif 918*cdf0e10cSrcweir 919*cdf0e10cSrcweir void getAbsoluteFileURL_003( ) 920*cdf0e10cSrcweir { 921*cdf0e10cSrcweir // LLA: may be a wrong test, aTmpName1 not a real URL 922*cdf0e10cSrcweir #if 0 923*cdf0e10cSrcweir ::rtl::OUString aUStr_AbsURL; 924*cdf0e10cSrcweir 925*cdf0e10cSrcweir nError = aFileBase.getAbsoluteFileURL( aTmpName1, aRelURL1, aUStr_AbsURL ); //base dir invalid error 926*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getAbsoluteFileURL('"); 927*cdf0e10cSrcweir suError += aTmpName1; 928*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 929*cdf0e10cSrcweir suError += aRelURL1; 930*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 931*cdf0e10cSrcweir suError += aUStr_AbsURL; 932*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("' ),Parameter is invalid. it ignore the invalid base in Windows, did not pass in (W32), the reason maybe caused by the similar bug with getSystemPathFromFileURL() "); 933*cdf0e10cSrcweir 934*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( ::osl::FileBase::E_INVAL == nError ) ); 935*cdf0e10cSrcweir #endif 936*cdf0e10cSrcweir } 937*cdf0e10cSrcweir 938*cdf0e10cSrcweir //use ".." in relartive path, the BasePath must exist on the file system 939*cdf0e10cSrcweir void getAbsoluteFileURL_004( ) 940*cdf0e10cSrcweir { 941*cdf0e10cSrcweir //create two level directories under $Temp/PID/ 942*cdf0e10cSrcweir ::rtl::OUString aUStrUpBase = aUserDirectoryURL + ::rtl::OUString::createFromAscii("/test1"); 943*cdf0e10cSrcweir createTestDirectory( aUStrUpBase ); 944*cdf0e10cSrcweir ::rtl::OUString aUStrBase = aUserDirectoryURL + ::rtl::OUString::createFromAscii("/test1/dir1"); 945*cdf0e10cSrcweir createTestDirectory( aUStrBase ); 946*cdf0e10cSrcweir 947*cdf0e10cSrcweir ::rtl::OUString aUStrRelar = ::rtl::OUString::createFromAscii("../../mytestfile"); 948*cdf0e10cSrcweir ::rtl::OUString aUStr_AbsURL; 949*cdf0e10cSrcweir ::rtl::OUString aResultURL6 = aUserDirectoryURL + ::rtl::OUString::createFromAscii("/mytestfile"); 950*cdf0e10cSrcweir 951*cdf0e10cSrcweir nError = aFileBase.getAbsoluteFileURL( aUStrBase, aUStrRelar, aUStr_AbsURL ); 952*cdf0e10cSrcweir bOk = aUStr_AbsURL.equals( aResultURL6 ); 953*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getAbsoluteFileURL('"); 954*cdf0e10cSrcweir suError += aUStrBase; 955*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 956*cdf0e10cSrcweir suError += aUStrRelar; 957*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii("', '"); 958*cdf0e10cSrcweir suError += aUStr_AbsURL; 959*cdf0e10cSrcweir suError += outputError( aUStr_AbsURL, aResultURL6, "' ), did not pass on Win32 "); 960*cdf0e10cSrcweir 961*cdf0e10cSrcweir deleteTestDirectory( aUStrBase ); 962*cdf0e10cSrcweir deleteTestDirectory( aUStrUpBase ); 963*cdf0e10cSrcweir 964*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( ::osl::FileBase::E_None == nError ) && ( sal_True == bOk ) ); 965*cdf0e10cSrcweir } 966*cdf0e10cSrcweir 967*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getAbsoluteFileURL ); 968*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_001 ); 969*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_002 ); 970*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_003 ); 971*cdf0e10cSrcweir CPPUNIT_TEST( getAbsoluteFileURL_004 ); 972*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 973*cdf0e10cSrcweir };// class getAbsoluteFileURL*/ 974*cdf0e10cSrcweir 975*cdf0e10cSrcweir void getAbsoluteFileURL::check_getAbsoluteFileURL( rtl::OUString const& _suBaseURL, rtl::OString const& _sRelativeURL, ::osl::FileBase::RC _nAssumeError, rtl::OUString const& _suAssumeResultStr ) 976*cdf0e10cSrcweir { 977*cdf0e10cSrcweir rtl::OUString suRelativeURL = rtl::OStringToOUString(_sRelativeURL, RTL_TEXTENCODING_UTF8); 978*cdf0e10cSrcweir rtl::OString sBaseURL = rtl::OUStringToOString(_suBaseURL, RTL_TEXTENCODING_UTF8); 979*cdf0e10cSrcweir rtl::OUString suResultURL; 980*cdf0e10cSrcweir osl::FileBase::RC nError = FileBase::getAbsoluteFileURL( _suBaseURL, suRelativeURL, suResultURL ); 981*cdf0e10cSrcweir rtl::OString sResultURL = rtl::OUStringToOString( suResultURL, RTL_TEXTENCODING_UTF8); 982*cdf0e10cSrcweir rtl::OString sError = errorToString(nError); 983*cdf0e10cSrcweir t_print("getAbsoluteFileURL('%s','%s') deliver absolute URL: '%s', error '%s'\n", sBaseURL.getStr(), _sRelativeURL.getStr(),sResultURL.getStr(), sError.getStr() ); 984*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong: error number is wrong", nError == _nAssumeError ); 985*cdf0e10cSrcweir if ( nError == ::osl::FileBase::E_None ) 986*cdf0e10cSrcweir { 987*cdf0e10cSrcweir sal_Bool bStrAreEqual = _suAssumeResultStr.equals( suResultURL ); 988*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong: ResultURL is not equal to expected URL ", bStrAreEqual == sal_True ); 989*cdf0e10cSrcweir } 990*cdf0e10cSrcweir } 991*cdf0e10cSrcweir 992*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_1() 993*cdf0e10cSrcweir { 994*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/relative/file1") ); 995*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "relative/file1",::osl::FileBase::E_None, suAssume ); 996*cdf0e10cSrcweir } 997*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_2() 998*cdf0e10cSrcweir { 999*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/relative/file2") ); 1000*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "relative/./file2",::osl::FileBase::E_None, suAssume ); 1001*cdf0e10cSrcweir } 1002*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_3() 1003*cdf0e10cSrcweir { 1004*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/file3") ); 1005*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "relative/../file3",::osl::FileBase::E_None, suAssume ); 1006*cdf0e10cSrcweir } 1007*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_4() 1008*cdf0e10cSrcweir { 1009*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/file4") ); 1010*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "././relative/../file4",::osl::FileBase::E_None, suAssume ); 1011*cdf0e10cSrcweir } 1012*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_5() 1013*cdf0e10cSrcweir { 1014*cdf0e10cSrcweir rtl::OUString suAssume; 1015*cdf0e10cSrcweir #if ( defined UNX ) 1016*cdf0e10cSrcweir suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/relative/") ); 1017*cdf0e10cSrcweir #else 1018*cdf0e10cSrcweir suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/relative") ); 1019*cdf0e10cSrcweir #endif 1020*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "././relative/.",::osl::FileBase::E_None, suAssume ); 1021*cdf0e10cSrcweir } 1022*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_6() 1023*cdf0e10cSrcweir { 1024*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/.relative") ); 1025*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "./.relative",::osl::FileBase::E_None, suAssume ); 1026*cdf0e10cSrcweir } 1027*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_7() 1028*cdf0e10cSrcweir { 1029*cdf0e10cSrcweir rtl::OUString suAssume; 1030*cdf0e10cSrcweir #if (defined UNX ) 1031*cdf0e10cSrcweir suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/.a/") ); 1032*cdf0e10cSrcweir #else //windows 1033*cdf0e10cSrcweir suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/.a") ); 1034*cdf0e10cSrcweir #endif 1035*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "./.a/mydir/..",::osl::FileBase::E_None, suAssume ); 1036*cdf0e10cSrcweir } 1037*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_001_8() 1038*cdf0e10cSrcweir { 1039*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/tmp/ok") ); 1040*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 1041*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "tmp//ok",::osl::FileBase::E_None, suAssume ); 1042*cdf0e10cSrcweir #else 1043*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, "tmp//ok",::osl::FileBase::E_INVAL, suAssume ); 1044*cdf0e10cSrcweir #endif 1045*cdf0e10cSrcweir } 1046*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_002() 1047*cdf0e10cSrcweir { 1048*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //Link is not defined in Windows 1049*cdf0e10cSrcweir ::rtl::OUString aUStr_AbsURL, aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys ); 1050*cdf0e10cSrcweir ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/link.file"); 1051*cdf0e10cSrcweir ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/canonical.name"); 1052*cdf0e10cSrcweir 1053*cdf0e10cSrcweir rtl::OString strLinkFileName, strSrcFileName; 1054*cdf0e10cSrcweir strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US ); 1055*cdf0e10cSrcweir strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US ); 1056*cdf0e10cSrcweir 1057*cdf0e10cSrcweir createTestFile( aCanURL1 ); 1058*cdf0e10cSrcweir sal_Int32 fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() ); 1059*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 1060*cdf0e10cSrcweir rtl::OString sLnkURL = OUStringToOString( aLnkURL1, RTL_TEXTENCODING_ASCII_US ); 1061*cdf0e10cSrcweir rtl::OUString suAssume = aUserDirectoryURL.concat( rtl::OUString::createFromAscii("/canonical.name") ); 1062*cdf0e10cSrcweir check_getAbsoluteFileURL( aUserDirectoryURL, sLnkURL, ::osl::FileBase::E_None, suAssume ); 1063*cdf0e10cSrcweir deleteTestFile( aCanURL1 ); 1064*cdf0e10cSrcweir fd = remove( strLinkFileName.getStr() ); 1065*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 1066*cdf0e10cSrcweir #endif 1067*cdf0e10cSrcweir } 1068*cdf0e10cSrcweir //please see line# 930 1069*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_003() 1070*cdf0e10cSrcweir { 1071*cdf0e10cSrcweir } 1072*cdf0e10cSrcweir void getAbsoluteFileURL::getAbsoluteFileURL_004() 1073*cdf0e10cSrcweir { 1074*cdf0e10cSrcweir //create two level directories under $Temp/PID/ 1075*cdf0e10cSrcweir ::rtl::OUString aUStrUpBase = aUserDirectoryURL + ::rtl::OUString::createFromAscii("/test1"); 1076*cdf0e10cSrcweir createTestDirectory( aUStrUpBase ); 1077*cdf0e10cSrcweir ::rtl::OUString aUStrBase = aUserDirectoryURL + ::rtl::OUString::createFromAscii("/test1/dir1"); 1078*cdf0e10cSrcweir createTestDirectory( aUStrBase ); 1079*cdf0e10cSrcweir 1080*cdf0e10cSrcweir ::rtl::OUString suAssume = aUserDirectoryURL.concat( ::rtl::OUString::createFromAscii("/mytestfile") ); 1081*cdf0e10cSrcweir check_getAbsoluteFileURL( aUStrBase, "../../mytestfile" , ::osl::FileBase::E_None, suAssume ); 1082*cdf0e10cSrcweir deleteTestDirectory( aUStrBase ); 1083*cdf0e10cSrcweir deleteTestDirectory( aUStrUpBase ); 1084*cdf0e10cSrcweir } 1085*cdf0e10cSrcweir //--------------------------------------------------------------------- 1086*cdf0e10cSrcweir // testing two methods: 1087*cdf0e10cSrcweir // static inline RC getSystemPathFromFileURL( const ::rtl::OUString& ustrFileURL, 1088*cdf0e10cSrcweir // ::rtl::OUString& ustrSystemPath ) 1089*cdf0e10cSrcweir // static RC getFileURLFromSystemPath( const ::rtl::OUString & ustrSystemPath, 1090*cdf0e10cSrcweir // ::rtl::OUString & ustrFileURL ); 1091*cdf0e10cSrcweir //--------------------------------------------------------------------- 1092*cdf0e10cSrcweir class SystemPath_FileURL:public CppUnit::TestFixture 1093*cdf0e10cSrcweir { 1094*cdf0e10cSrcweir //::osl::FileBase aFileBase; 1095*cdf0e10cSrcweir // ::rtl::OUString aUStr; 1096*cdf0e10cSrcweir // ::osl::FileBase::RC nError; 1097*cdf0e10cSrcweir 1098*cdf0e10cSrcweir //void check_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr); 1099*cdf0e10cSrcweir void check_SystemPath_FileURL(rtl::OString const& _sSource, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr, sal_Bool bDirection = sal_True ); 1100*cdf0e10cSrcweir void checkWNTBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString ); 1101*cdf0e10cSrcweir void checkUNXBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString ); 1102*cdf0e10cSrcweir void checkWNTBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString); 1103*cdf0e10cSrcweir void checkUNXBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString); 1104*cdf0e10cSrcweir 1105*cdf0e10cSrcweir public: 1106*cdf0e10cSrcweir // test code. 1107*cdf0e10cSrcweir void getSystemPathFromFileURL_001_1( ); 1108*cdf0e10cSrcweir void getSystemPathFromFileURL_001_2( ); 1109*cdf0e10cSrcweir void getSystemPathFromFileURL_001_21( ); 1110*cdf0e10cSrcweir void getSystemPathFromFileURL_001_22( ); 1111*cdf0e10cSrcweir void getSystemPathFromFileURL_001_3( ); 1112*cdf0e10cSrcweir void getSystemPathFromFileURL_001_31( ); 1113*cdf0e10cSrcweir void getSystemPathFromFileURL_001_4( ); 1114*cdf0e10cSrcweir void getSystemPathFromFileURL_001_41( ); 1115*cdf0e10cSrcweir void getSystemPathFromFileURL_001_5( ); 1116*cdf0e10cSrcweir void getSystemPathFromFileURL_001_51( ); 1117*cdf0e10cSrcweir void getSystemPathFromFileURL_001_52( ); 1118*cdf0e10cSrcweir void getSystemPathFromFileURL_001_53( ); 1119*cdf0e10cSrcweir void getSystemPathFromFileURL_001_6( ); 1120*cdf0e10cSrcweir void getSystemPathFromFileURL_001_61( ); 1121*cdf0e10cSrcweir void getSystemPathFromFileURL_001_7( ); 1122*cdf0e10cSrcweir void getSystemPathFromFileURL_001_71( ); 1123*cdf0e10cSrcweir void getSystemPathFromFileURL_001_8( ); 1124*cdf0e10cSrcweir void getSystemPathFromFileURL_001_81( ); 1125*cdf0e10cSrcweir void getSystemPathFromFileURL_001_9( ); 1126*cdf0e10cSrcweir void getSystemPathFromFileURL_001_91( ); 1127*cdf0e10cSrcweir void getSystemPathFromFileURL_001_92( ); 1128*cdf0e10cSrcweir void getSystemPathFromFileURL_004( ); 1129*cdf0e10cSrcweir void getSystemPathFromFileURL_005( ); 1130*cdf0e10cSrcweir 1131*cdf0e10cSrcweir //test case fot getFileURLFromSystemPath 1132*cdf0e10cSrcweir void getFileURLFromSystemPath_001( ); 1133*cdf0e10cSrcweir void getFileURLFromSystemPath_002( ); 1134*cdf0e10cSrcweir void getFileURLFromSystemPath_003( ); 1135*cdf0e10cSrcweir void getFileURLFromSystemPath_004( ); 1136*cdf0e10cSrcweir void getFileURLFromSystemPath_005( ); 1137*cdf0e10cSrcweir 1138*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( SystemPath_FileURL ); 1139*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_1 ); 1140*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_2 ); 1141*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_21 ); 1142*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_22 ); 1143*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_3 ); 1144*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_31 ); 1145*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_4 ); 1146*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_41 ); 1147*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_5 ); 1148*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_51 ); 1149*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_52 ); 1150*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_53 ); 1151*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_6 ); 1152*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_61 ); 1153*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_7 ); 1154*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_71 ); 1155*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_8 ); 1156*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_81 ); 1157*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_9 ); 1158*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_91 ); 1159*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_001_92 ); 1160*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_004 ); 1161*cdf0e10cSrcweir CPPUNIT_TEST( getSystemPathFromFileURL_005 ); 1162*cdf0e10cSrcweir CPPUNIT_TEST( getFileURLFromSystemPath_001 ); 1163*cdf0e10cSrcweir CPPUNIT_TEST( getFileURLFromSystemPath_002 ); 1164*cdf0e10cSrcweir CPPUNIT_TEST( getFileURLFromSystemPath_003 ); 1165*cdf0e10cSrcweir CPPUNIT_TEST( getFileURLFromSystemPath_004 ); 1166*cdf0e10cSrcweir CPPUNIT_TEST( getFileURLFromSystemPath_005 ); 1167*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 1168*cdf0e10cSrcweir };// class SystemPath_FileURL 1169*cdf0e10cSrcweir 1170*cdf0e10cSrcweir 1171*cdf0e10cSrcweir // test code. 1172*cdf0e10cSrcweir 1173*cdf0e10cSrcweir /* void getSystemPathFromFileURL::check_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr) 1174*cdf0e10cSrcweir { 1175*cdf0e10cSrcweir // PRE: URL as String 1176*cdf0e10cSrcweir rtl::OUString suURL; 1177*cdf0e10cSrcweir rtl::OUString suStr; 1178*cdf0e10cSrcweir suURL = rtl::OStringToOUString(_sURL, RTL_TEXTENCODING_UTF8); 1179*cdf0e10cSrcweir ::osl::FileBase::RC nError = osl::FileBase::getSystemPathFromFileURL( suURL, suStr ); // start with / 1180*cdf0e10cSrcweir 1181*cdf0e10cSrcweir // if the given string is gt length 0, 1182*cdf0e10cSrcweir // we check also this string 1183*cdf0e10cSrcweir rtl::OString sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8); 1184*cdf0e10cSrcweir rtl::OString sError = errorToString(nError); 1185*cdf0e10cSrcweir t_print("getSystemPathFromFileURL('%s') deliver system path: '%s', error '%s'\n", _sURL.getStr(), sStr.getStr(), sError.getStr() ); 1186*cdf0e10cSrcweir 1187*cdf0e10cSrcweir // rtl::OUString suStrEncode = rtl::Uri::encode(suStr, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8); 1188*cdf0e10cSrcweir // sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8); 1189*cdf0e10cSrcweir // t_print("UTF8: %s\n", sStr.getStr() ); 1190*cdf0e10cSrcweir 1191*cdf0e10cSrcweir if (_sAssumeResultStr.getLength() > 0) 1192*cdf0e10cSrcweir { 1193*cdf0e10cSrcweir sal_Bool bStrAreEqual = _sAssumeResultStr.equals(sStr); 1194*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong", 1195*cdf0e10cSrcweir nError == _nAssumeError && bStrAreEqual == sal_True ); 1196*cdf0e10cSrcweir } 1197*cdf0e10cSrcweir else 1198*cdf0e10cSrcweir { 1199*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong", nError == _nAssumeError ); 1200*cdf0e10cSrcweir } 1201*cdf0e10cSrcweir }*/ 1202*cdf0e10cSrcweir 1203*cdf0e10cSrcweir // if bDirection==sal_True, check getSystemPathFromFileURL 1204*cdf0e10cSrcweir // if bDirection==sal_False, check getFileURLFromSystemPath 1205*cdf0e10cSrcweir void SystemPath_FileURL::check_SystemPath_FileURL(rtl::OString const& _sSource, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr, sal_Bool bDirection) 1206*cdf0e10cSrcweir { 1207*cdf0e10cSrcweir // PRE: URL as String 1208*cdf0e10cSrcweir rtl::OUString suSource; 1209*cdf0e10cSrcweir rtl::OUString suStr; 1210*cdf0e10cSrcweir suSource = rtl::OStringToOUString(_sSource, RTL_TEXTENCODING_UTF8); 1211*cdf0e10cSrcweir ::osl::FileBase::RC nError; 1212*cdf0e10cSrcweir if ( bDirection == sal_True ) 1213*cdf0e10cSrcweir nError = osl::FileBase::getSystemPathFromFileURL( suSource, suStr ); 1214*cdf0e10cSrcweir else 1215*cdf0e10cSrcweir nError = osl::FileBase::getFileURLFromSystemPath( suSource, suStr ); 1216*cdf0e10cSrcweir 1217*cdf0e10cSrcweir // if the given string is gt length 0, 1218*cdf0e10cSrcweir // we check also this string 1219*cdf0e10cSrcweir rtl::OString sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8); 1220*cdf0e10cSrcweir rtl::OString sError = errorToString(nError); 1221*cdf0e10cSrcweir if ( bDirection == sal_True ) 1222*cdf0e10cSrcweir t_print("getSystemPathFromFileURL('%s') deliver system path: '%s', error '%s'\n", _sSource.getStr(), sStr.getStr(), sError.getStr() ); 1223*cdf0e10cSrcweir else 1224*cdf0e10cSrcweir t_print("getFileURLFromSystemPath('%s') deliver File URL: '%s', error '%s'\n", _sSource.getStr(), sStr.getStr(), sError.getStr() ); 1225*cdf0e10cSrcweir 1226*cdf0e10cSrcweir // rtl::OUString suStrEncode = rtl::Uri::encode(suStr, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8); 1227*cdf0e10cSrcweir // sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8); 1228*cdf0e10cSrcweir // t_print("UTF8: %s\n", sStr.getStr() ); 1229*cdf0e10cSrcweir 1230*cdf0e10cSrcweir if (_sAssumeResultStr.getLength() > 0) 1231*cdf0e10cSrcweir { 1232*cdf0e10cSrcweir sal_Bool bStrAreEqual = _sAssumeResultStr.equals(sStr); 1233*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong", 1234*cdf0e10cSrcweir nError == _nAssumeError && bStrAreEqual == sal_True ); 1235*cdf0e10cSrcweir } 1236*cdf0e10cSrcweir else 1237*cdf0e10cSrcweir { 1238*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Assumption is wrong", nError == _nAssumeError ); 1239*cdf0e10cSrcweir } 1240*cdf0e10cSrcweir } 1241*cdf0e10cSrcweir void SystemPath_FileURL::checkWNTBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString) 1242*cdf0e10cSrcweir { 1243*cdf0e10cSrcweir #if ( defined WNT ) 1244*cdf0e10cSrcweir check_SystemPath_FileURL(_sURL, _nAssumeError, _sWNTAssumeResultString); 1245*cdf0e10cSrcweir #else 1246*cdf0e10cSrcweir (void)_sURL; 1247*cdf0e10cSrcweir (void)_nAssumeError; 1248*cdf0e10cSrcweir (void)_sWNTAssumeResultString; 1249*cdf0e10cSrcweir #endif 1250*cdf0e10cSrcweir } 1251*cdf0e10cSrcweir 1252*cdf0e10cSrcweir void SystemPath_FileURL::checkUNXBehaviour_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString) 1253*cdf0e10cSrcweir { 1254*cdf0e10cSrcweir #if ( defined UNX ) 1255*cdf0e10cSrcweir check_SystemPath_FileURL(_sURL, _nAssumeError, _sUnixAssumeResultString); 1256*cdf0e10cSrcweir #else 1257*cdf0e10cSrcweir (void)_sURL; 1258*cdf0e10cSrcweir (void)_nAssumeError; 1259*cdf0e10cSrcweir (void)_sUnixAssumeResultString; 1260*cdf0e10cSrcweir #endif 1261*cdf0e10cSrcweir } 1262*cdf0e10cSrcweir 1263*cdf0e10cSrcweir void SystemPath_FileURL::checkWNTBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sWNTAssumeResultString) 1264*cdf0e10cSrcweir { 1265*cdf0e10cSrcweir #if ( defined WNT ) 1266*cdf0e10cSrcweir check_SystemPath_FileURL(_sSysPath, _nAssumeError, _sWNTAssumeResultString, sal_False ); 1267*cdf0e10cSrcweir #else 1268*cdf0e10cSrcweir (void)_sSysPath; 1269*cdf0e10cSrcweir (void)_nAssumeError; 1270*cdf0e10cSrcweir (void)_sWNTAssumeResultString; 1271*cdf0e10cSrcweir #endif 1272*cdf0e10cSrcweir } 1273*cdf0e10cSrcweir 1274*cdf0e10cSrcweir void SystemPath_FileURL::checkUNXBehaviour_getFileURLFromSystemPath(rtl::OString const& _sSysPath, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sUnixAssumeResultString) 1275*cdf0e10cSrcweir { 1276*cdf0e10cSrcweir #if ( defined UNX ) 1277*cdf0e10cSrcweir check_SystemPath_FileURL(_sSysPath, _nAssumeError, _sUnixAssumeResultString, sal_False ); 1278*cdf0e10cSrcweir #else 1279*cdf0e10cSrcweir (void)_sSysPath; 1280*cdf0e10cSrcweir (void)_nAssumeError; 1281*cdf0e10cSrcweir (void)_sUnixAssumeResultString; 1282*cdf0e10cSrcweir #endif 1283*cdf0e10cSrcweir } 1284*cdf0e10cSrcweir 1285*cdf0e10cSrcweir /** LLA: Test for getSystemPathFromFileURL() 1286*cdf0e10cSrcweir this test is splitted into 2 different OS tests, 1287*cdf0e10cSrcweir the first function checkUNXBehaviour... runs only on Unix based Systems, 1288*cdf0e10cSrcweir the second only on windows based systems 1289*cdf0e10cSrcweir the first parameter are a file URL where we want to get the system path of, 1290*cdf0e10cSrcweir the second parameter is the assumed error of the osl_getSystemPathFromFileURL() function, 1291*cdf0e10cSrcweir the thrid parameter is the assumed result string, the string will only test, if it's length is greater 0 1292*cdf0e10cSrcweir */ 1293*cdf0e10cSrcweir 1294*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_1() 1295*cdf0e10cSrcweir { 1296*cdf0e10cSrcweir rtl::OString sURL(""); 1297*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1298*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1299*cdf0e10cSrcweir } 1300*cdf0e10cSrcweir 1301*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_2() 1302*cdf0e10cSrcweir { 1303*cdf0e10cSrcweir rtl::OString sURL("/"); 1304*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1305*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "\\"); 1306*cdf0e10cSrcweir } 1307*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_21() 1308*cdf0e10cSrcweir { 1309*cdf0e10cSrcweir // rtl::OString sURL("%2f"); 1310*cdf0e10cSrcweir rtl::OString sURL("%2F"); 1311*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/"); // LLA: this is may be a BUG 1312*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1313*cdf0e10cSrcweir } 1314*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_22() 1315*cdf0e10cSrcweir { 1316*cdf0e10cSrcweir rtl::OString sURL("file:///tmp%2Fmydir"); 1317*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1318*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1319*cdf0e10cSrcweir } 1320*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_3() 1321*cdf0e10cSrcweir { 1322*cdf0e10cSrcweir rtl::OString sURL("a"); 1323*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "a"); 1324*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "a"); 1325*cdf0e10cSrcweir } 1326*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_31() 1327*cdf0e10cSrcweir { 1328*cdf0e10cSrcweir rtl::OString sURL("tmpname"); 1329*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "tmpname"); 1330*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "tmpname"); 1331*cdf0e10cSrcweir } 1332*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_4() 1333*cdf0e10cSrcweir { 1334*cdf0e10cSrcweir rtl::OString sURL("file://"); 1335*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, ""); 1336*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1337*cdf0e10cSrcweir } 1338*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_41() 1339*cdf0e10cSrcweir { 1340*cdf0e10cSrcweir rtl::OString sURL("file://localhost/tmp"); 1341*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, ""); 1342*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1343*cdf0e10cSrcweir } 1344*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_5() 1345*cdf0e10cSrcweir { 1346*cdf0e10cSrcweir rtl::OString sURL("file:///tmp"); 1347*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp"); 1348*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1349*cdf0e10cSrcweir } 1350*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_51() 1351*cdf0e10cSrcweir { 1352*cdf0e10cSrcweir rtl::OString sURL("file://c:/tmp"); 1353*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:/tmp"); // LLA: this is may be a BUG 1354*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1355*cdf0e10cSrcweir } 1356*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_52() 1357*cdf0e10cSrcweir { 1358*cdf0e10cSrcweir rtl::OString sURL("file:///c:/tmp"); 1359*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp"); 1360*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp"); 1361*cdf0e10cSrcweir } 1362*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_53() 1363*cdf0e10cSrcweir { 1364*cdf0e10cSrcweir // LLA: is this a legal file path? 1365*cdf0e10cSrcweir rtl::OString sURL("file:///c|/tmp"); 1366*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c|/tmp"); 1367*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp"); 1368*cdf0e10cSrcweir } 1369*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_6() 1370*cdf0e10cSrcweir { 1371*cdf0e10cSrcweir rtl::OString sURL("file:///tmp/first"); 1372*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp/first"); 1373*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1374*cdf0e10cSrcweir } 1375*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_61() 1376*cdf0e10cSrcweir { 1377*cdf0e10cSrcweir rtl::OString sURL("file:///c:/tmp/first"); 1378*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp/first"); 1379*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp\\first"); 1380*cdf0e10cSrcweir } 1381*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_7() 1382*cdf0e10cSrcweir { 1383*cdf0e10cSrcweir rtl::OString sURL("file:///tmp/../second"); 1384*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp/../second"); // LLA: may be a BUG 1385*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1386*cdf0e10cSrcweir } 1387*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_71() 1388*cdf0e10cSrcweir { 1389*cdf0e10cSrcweir rtl::OString sURL("file:///c:/tmp/../second"); 1390*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp/../second"); 1391*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp\\..\\second"); 1392*cdf0e10cSrcweir } 1393*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_8() 1394*cdf0e10cSrcweir { 1395*cdf0e10cSrcweir rtl::OString sURL("../tmp"); 1396*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "../tmp"); 1397*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "..\\tmp"); 1398*cdf0e10cSrcweir } 1399*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_81() 1400*cdf0e10cSrcweir { 1401*cdf0e10cSrcweir rtl::OString sURL("file://~/tmp"); 1402*cdf0e10cSrcweir char* home_path; 1403*cdf0e10cSrcweir home_path = getenv("HOME"); 1404*cdf0e10cSrcweir rtl::OString expResult(home_path); 1405*cdf0e10cSrcweir expResult += "/tmp"; 1406*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, expResult ); 1407*cdf0e10cSrcweir // checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "\\tmp"); 1408*cdf0e10cSrcweir } 1409*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_9() 1410*cdf0e10cSrcweir { 1411*cdf0e10cSrcweir rtl::OString sURL("file:///tmp/first%20second"); 1412*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/tmp/first second"); 1413*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1414*cdf0e10cSrcweir } 1415*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_91() 1416*cdf0e10cSrcweir { 1417*cdf0e10cSrcweir rtl::OString sURL("file:///c:/tmp/first%20second"); 1418*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "/c:/tmp/first second"); 1419*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "c:\\tmp\\first second"); 1420*cdf0e10cSrcweir } 1421*cdf0e10cSrcweir 1422*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_001_92() 1423*cdf0e10cSrcweir { 1424*cdf0e10cSrcweir rtl::OString sURL("ca@#;+.,$///78no%01ni..name"); 1425*cdf0e10cSrcweir checkUNXBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, ""); 1426*cdf0e10cSrcweir checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_INVAL, ""); 1427*cdf0e10cSrcweir } 1428*cdf0e10cSrcweir 1429*cdf0e10cSrcweir #if 0 1430*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_003( ) 1431*cdf0e10cSrcweir { 1432*cdf0e10cSrcweir // LLA: ??? 1433*cdf0e10cSrcweir //!! seams to be, that the directories do not pass together 1434*cdf0e10cSrcweir ::rtl::OUString aUStr; 1435*cdf0e10cSrcweir ::rtl::OUString aRelativeURL = ::rtl::OUString::createFromAscii("../../relartive/file3"); 1436*cdf0e10cSrcweir ::rtl::OUString aResultURL ( aSysPath4 ); 1437*cdf0e10cSrcweir ::osl::FileBase::RC nError = osl::FileBase::getSystemPathFromFileURL( aRelativeURL, aUStr ); 1438*cdf0e10cSrcweir 1439*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aUStr, aResultURL ); 1440*cdf0e10cSrcweir 1441*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getSystemPathFromFileURL("); 1442*cdf0e10cSrcweir suError += aRelativeURL; 1443*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii(") function:use a relative file URL, did not pass in(W32), it did not specified in method declaration of relative path issue, "); 1444*cdf0e10cSrcweir suError += outputError(aUStr, aResultURL); 1445*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( osl::FileBase::E_None == nError ) && ( sal_True == bOk ) ); 1446*cdf0e10cSrcweir } 1447*cdf0e10cSrcweir #endif 1448*cdf0e10cSrcweir 1449*cdf0e10cSrcweir //normal legal case 1450*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_004( ) 1451*cdf0e10cSrcweir { 1452*cdf0e10cSrcweir ::rtl::OUString aUStr; 1453*cdf0e10cSrcweir ::rtl::OUString aNormalURL( aTmpName6 ); 1454*cdf0e10cSrcweir ::rtl::OUString aResultURL ( aSysPath4 ); 1455*cdf0e10cSrcweir ::osl::FileBase::RC nError = osl::FileBase::getSystemPathFromFileURL( aNormalURL, aUStr ); 1456*cdf0e10cSrcweir 1457*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aUStr, aResultURL ); 1458*cdf0e10cSrcweir 1459*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getSystemPathFromFileURL(' "); 1460*cdf0e10cSrcweir suError += aNormalURL; 1461*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii(" ') function:use an absolute file URL, "); 1462*cdf0e10cSrcweir suError += outputError(aUStr, aResultURL); 1463*cdf0e10cSrcweir 1464*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( osl::FileBase::E_None == nError ) && ( sal_True == bOk ) ); 1465*cdf0e10cSrcweir 1466*cdf0e10cSrcweir } 1467*cdf0e10cSrcweir 1468*cdf0e10cSrcweir //CJK charactors case 1469*cdf0e10cSrcweir void SystemPath_FileURL::getSystemPathFromFileURL_005( ) 1470*cdf0e10cSrcweir { 1471*cdf0e10cSrcweir ::rtl::OUString aUStr; 1472*cdf0e10cSrcweir createTestDirectory( aTmpName10 ); 1473*cdf0e10cSrcweir ::rtl::OUString aNormalURL( aTmpName10 ); 1474*cdf0e10cSrcweir ::rtl::OUString aResultURL ( aSysPath5 ); 1475*cdf0e10cSrcweir 1476*cdf0e10cSrcweir ::osl::FileBase::RC nError = osl::FileBase::getSystemPathFromFileURL( aNormalURL, aUStr ); 1477*cdf0e10cSrcweir 1478*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aUStr, aResultURL ); 1479*cdf0e10cSrcweir 1480*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for getSystemPathFromFileURL(' "); 1481*cdf0e10cSrcweir suError += aNormalURL; 1482*cdf0e10cSrcweir suError += ::rtl::OUString::createFromAscii(" ') function:use a CJK coded absolute URL, "); 1483*cdf0e10cSrcweir suError += outputError(aUStr, aResultURL); 1484*cdf0e10cSrcweir deleteTestDirectory( aTmpName10 ); 1485*cdf0e10cSrcweir 1486*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( osl::FileBase::E_None == nError ) && ( sal_True == bOk ) ); 1487*cdf0e10cSrcweir } 1488*cdf0e10cSrcweir void SystemPath_FileURL::getFileURLFromSystemPath_001() 1489*cdf0e10cSrcweir { 1490*cdf0e10cSrcweir rtl::OString sSysPath("~/tmp"); 1491*cdf0e10cSrcweir char* home_path; 1492*cdf0e10cSrcweir home_path = getenv("HOME"); 1493*cdf0e10cSrcweir rtl::OString expResult(home_path); 1494*cdf0e10cSrcweir expResult = "file://"+ expResult + "/tmp"; 1495*cdf0e10cSrcweir checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, expResult ); 1496*cdf0e10cSrcweir checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "~/tmp"); 1497*cdf0e10cSrcweir } 1498*cdf0e10cSrcweir void SystemPath_FileURL::getFileURLFromSystemPath_002() 1499*cdf0e10cSrcweir { 1500*cdf0e10cSrcweir rtl::OString sSysPath("c:/tmp"); 1501*cdf0e10cSrcweir checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "c:/tmp"); 1502*cdf0e10cSrcweir checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "file:///c:/tmp"); 1503*cdf0e10cSrcweir } 1504*cdf0e10cSrcweir void SystemPath_FileURL::getFileURLFromSystemPath_003() 1505*cdf0e10cSrcweir { 1506*cdf0e10cSrcweir rtl::OString sSysPath("file:///temp"); 1507*cdf0e10cSrcweir checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, ""); 1508*cdf0e10cSrcweir checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, ""); 1509*cdf0e10cSrcweir } 1510*cdf0e10cSrcweir void SystemPath_FileURL::getFileURLFromSystemPath_004() 1511*cdf0e10cSrcweir { 1512*cdf0e10cSrcweir rtl::OString sSysPath("//tmp//first start"); 1513*cdf0e10cSrcweir checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_None, "file:///tmp/first%20start"); 1514*cdf0e10cSrcweir checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, ""); 1515*cdf0e10cSrcweir } 1516*cdf0e10cSrcweir void SystemPath_FileURL::getFileURLFromSystemPath_005() 1517*cdf0e10cSrcweir { 1518*cdf0e10cSrcweir rtl::OString sSysPath(""); 1519*cdf0e10cSrcweir checkUNXBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, ""); 1520*cdf0e10cSrcweir checkWNTBehaviour_getFileURLFromSystemPath(sSysPath, osl::FileBase::E_INVAL, ""); 1521*cdf0e10cSrcweir } 1522*cdf0e10cSrcweir // start with "~user", not impletment 1523*cdf0e10cSrcweir // void SystemPath_FileURL::getFileURLFromSystemPath_006() 1524*cdf0e10cSrcweir 1525*cdf0e10cSrcweir 1526*cdf0e10cSrcweir 1527*cdf0e10cSrcweir 1528*cdf0e10cSrcweir //--------------------------------------------------------------------- 1529*cdf0e10cSrcweir // testing the method 1530*cdf0e10cSrcweir // static inline RC searchFileURL( const ::rtl::OUString& ustrFileName, 1531*cdf0e10cSrcweir // const ::rtl::OUString& ustrSearchPath, 1532*cdf0e10cSrcweir // ::rtl::OUString& ustrFileURL ) 1533*cdf0e10cSrcweir //--------------------------------------------------------------------- 1534*cdf0e10cSrcweir class searchFileURL:public CppUnit::TestFixture 1535*cdf0e10cSrcweir { 1536*cdf0e10cSrcweir //::osl::FileBase aFileBase; 1537*cdf0e10cSrcweir ::rtl::OUString aUStr; 1538*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2, nError3,nError4; 1539*cdf0e10cSrcweir 1540*cdf0e10cSrcweir public: 1541*cdf0e10cSrcweir 1542*cdf0e10cSrcweir // test code. 1543*cdf0e10cSrcweir void searchFileURL_001( ) 1544*cdf0e10cSrcweir { 1545*cdf0e10cSrcweir /* search file is passed by system filename */ 1546*cdf0e10cSrcweir nError1 = ::osl::FileBase::searchFileURL( aTmpName1, aUserDirectorySys, aUStr ); 1547*cdf0e10cSrcweir /* search file is passed by full qualified file URL */ 1548*cdf0e10cSrcweir nError2 = ::osl::FileBase::searchFileURL( aCanURL1, aUserDirectorySys, aUStr ); 1549*cdf0e10cSrcweir /* search file is passed by relative file path */ 1550*cdf0e10cSrcweir nError3 = ::osl::FileBase::searchFileURL( aRelURL4, aUserDirectorySys, aUStr ); 1551*cdf0e10cSrcweir 1552*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: system filename/URL filename/relative path, system directory, searched files that is not exist, but it reply invalid error, did not pass in (W32) ", 1553*cdf0e10cSrcweir ( osl::FileBase::E_NOENT == nError1 ) && 1554*cdf0e10cSrcweir ( osl::FileBase::E_NOENT == nError2 ) && 1555*cdf0e10cSrcweir ( osl::FileBase::E_NOENT == nError3 )); 1556*cdf0e10cSrcweir } 1557*cdf0e10cSrcweir 1558*cdf0e10cSrcweir void searchFileURL_002( ) 1559*cdf0e10cSrcweir { 1560*cdf0e10cSrcweir /* search file is passed by system filename */ 1561*cdf0e10cSrcweir nError1 = ::osl::FileBase::searchFileURL( aTempDirectorySys, aRootSys, aUStr ); 1562*cdf0e10cSrcweir sal_Bool bOk1 = compareFileName( aUStr, aTempDirectoryURL ); 1563*cdf0e10cSrcweir /* search file is passed by full qualified file URL */ 1564*cdf0e10cSrcweir nError2 = ::osl::FileBase::searchFileURL( aTempDirectoryURL, aRootSys, aUStr ); 1565*cdf0e10cSrcweir sal_Bool bOk2 = compareFileName( aUStr, aTempDirectoryURL ); 1566*cdf0e10cSrcweir /* search file is passed by relative file path */ 1567*cdf0e10cSrcweir nError3 = ::osl::FileBase::searchFileURL( aRelURL5, aRootSys, aUStr ); 1568*cdf0e10cSrcweir sal_Bool bOk3 = compareFileName( aUStr, aTempDirectoryURL ); 1569*cdf0e10cSrcweir /* search file is passed by an exist file */ 1570*cdf0e10cSrcweir createTestFile( aCanURL1 ); 1571*cdf0e10cSrcweir nError4 = ::osl::FileBase::searchFileURL( aCanURL4, aUserDirectorySys, aUStr ); 1572*cdf0e10cSrcweir sal_Bool bOk4 = compareFileName( aUStr, aCanURL1 ); 1573*cdf0e10cSrcweir deleteTestFile( aCanURL1 ); 1574*cdf0e10cSrcweir 1575*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: system filename/URL filename/relative path, system directory, searched file already exist.", 1576*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 1577*cdf0e10cSrcweir ( osl::FileBase::E_None == nError2 ) && 1578*cdf0e10cSrcweir ( osl::FileBase::E_None == nError3 ) && 1579*cdf0e10cSrcweir ( osl::FileBase::E_None == nError4 ) && 1580*cdf0e10cSrcweir ( sal_True == bOk1 ) && 1581*cdf0e10cSrcweir ( sal_True == bOk2 ) && 1582*cdf0e10cSrcweir ( sal_True == bOk3 ) && 1583*cdf0e10cSrcweir ( sal_True == bOk4 ) ); 1584*cdf0e10cSrcweir } 1585*cdf0e10cSrcweir 1586*cdf0e10cSrcweir 1587*cdf0e10cSrcweir void searchFileURL_003( ) 1588*cdf0e10cSrcweir { 1589*cdf0e10cSrcweir OSLTEST_DECLARE( SystemPathList, TEST_PLATFORM_ROOT":"TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP":"TEST_PLATFORM_ROOT"system/path" ); 1590*cdf0e10cSrcweir nError1 = ::osl::FileBase::searchFileURL( aUserDirectoryURL, aSystemPathList, aUStr ); 1591*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aUStr, aUserDirectoryURL ); 1592*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: search directory is a list of system paths", 1593*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 1594*cdf0e10cSrcweir ( sal_True == bOk ) ); 1595*cdf0e10cSrcweir } 1596*cdf0e10cSrcweir 1597*cdf0e10cSrcweir void searchFileURL_004( ) 1598*cdf0e10cSrcweir { 1599*cdf0e10cSrcweir OSLTEST_DECLARE( SystemPathList, TEST_PLATFORM_ROOT PATH_LIST_DELIMITER TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP PATH_LIST_DELIMITER TEST_PLATFORM_ROOT "system/path/../name" ); 1600*cdf0e10cSrcweir nError1 = ::osl::FileBase::searchFileURL( aUserDirectoryURL, aSystemPathList, aUStr ); 1601*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aUStr, aUserDirectoryURL ); 1602*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: search directory is a list of system paths", 1603*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 1604*cdf0e10cSrcweir ( sal_True == bOk ) ); 1605*cdf0e10cSrcweir } 1606*cdf0e10cSrcweir 1607*cdf0e10cSrcweir void searchFileURL_005( ) 1608*cdf0e10cSrcweir { 1609*cdf0e10cSrcweir nError1 = ::osl::FileBase::searchFileURL( aUserDirectoryURL, aNullURL, aUStr ); 1610*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aUStr, aUserDirectoryURL ); 1611*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for searchFileURL function: search directory is NULL", 1612*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 1613*cdf0e10cSrcweir ( sal_True == bOk ) ); 1614*cdf0e10cSrcweir } 1615*cdf0e10cSrcweir 1616*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( searchFileURL ); 1617*cdf0e10cSrcweir CPPUNIT_TEST( searchFileURL_001 ); 1618*cdf0e10cSrcweir CPPUNIT_TEST( searchFileURL_002 ); 1619*cdf0e10cSrcweir CPPUNIT_TEST( searchFileURL_003 ); 1620*cdf0e10cSrcweir CPPUNIT_TEST( searchFileURL_004 ); 1621*cdf0e10cSrcweir CPPUNIT_TEST( searchFileURL_005 ); 1622*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 1623*cdf0e10cSrcweir };// class searchFileURL 1624*cdf0e10cSrcweir 1625*cdf0e10cSrcweir 1626*cdf0e10cSrcweir //--------------------------------------------------------------------- 1627*cdf0e10cSrcweir // testing the method 1628*cdf0e10cSrcweir // static inline RC getTempDirURL( ::rtl::OUString& ustrTempDirURL ) 1629*cdf0e10cSrcweir //--------------------------------------------------------------------- 1630*cdf0e10cSrcweir class getTempDirURL:public CppUnit::TestFixture 1631*cdf0e10cSrcweir { 1632*cdf0e10cSrcweir //::osl::FileBase aFileBase; 1633*cdf0e10cSrcweir ::rtl::OUString aUStr; 1634*cdf0e10cSrcweir ::osl::FileBase::RC nError; 1635*cdf0e10cSrcweir 1636*cdf0e10cSrcweir public: 1637*cdf0e10cSrcweir // initialization 1638*cdf0e10cSrcweir void setUp( ) 1639*cdf0e10cSrcweir { 1640*cdf0e10cSrcweir nError = FileBase::getTempDirURL( aUStr ); 1641*cdf0e10cSrcweir } 1642*cdf0e10cSrcweir 1643*cdf0e10cSrcweir void tearDown( ) 1644*cdf0e10cSrcweir { 1645*cdf0e10cSrcweir } 1646*cdf0e10cSrcweir 1647*cdf0e10cSrcweir // test code. 1648*cdf0e10cSrcweir void getTempDirURL_001( ) 1649*cdf0e10cSrcweir { 1650*cdf0e10cSrcweir 1651*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTempDirURL function: excution", 1652*cdf0e10cSrcweir ( osl::FileBase::E_None == nError ) ); 1653*cdf0e10cSrcweir } 1654*cdf0e10cSrcweir 1655*cdf0e10cSrcweir void getTempDirURL_002( ) 1656*cdf0e10cSrcweir { 1657*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTempDirURL function: test for open and write access rights", 1658*cdf0e10cSrcweir checkDirectory( aUStr, osl_Check_Mode_OpenAccess ) && 1659*cdf0e10cSrcweir checkDirectory( aUStr, osl_Check_Mode_ReadAccess ) && 1660*cdf0e10cSrcweir checkDirectory( aUStr,osl_Check_Mode_WriteAccess ) ); 1661*cdf0e10cSrcweir } 1662*cdf0e10cSrcweir 1663*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getTempDirURL ); 1664*cdf0e10cSrcweir CPPUNIT_TEST( getTempDirURL_001 ); 1665*cdf0e10cSrcweir CPPUNIT_TEST( getTempDirURL_002 ); 1666*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 1667*cdf0e10cSrcweir };// class getTempDirURL 1668*cdf0e10cSrcweir 1669*cdf0e10cSrcweir 1670*cdf0e10cSrcweir //--------------------------------------------------------------------- 1671*cdf0e10cSrcweir // testing the method 1672*cdf0e10cSrcweir // static inline RC createTempFile( ::rtl::OUString* pustrDirectoryURL, 1673*cdf0e10cSrcweir // oslFileHandle* pHandle, 1674*cdf0e10cSrcweir // ::rtl::OUString* pustrTempFileURL) 1675*cdf0e10cSrcweir //--------------------------------------------------------------------- 1676*cdf0e10cSrcweir class createTempFile:public CppUnit::TestFixture 1677*cdf0e10cSrcweir { 1678*cdf0e10cSrcweir //::osl::FileBase aFileBase; 1679*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 1680*cdf0e10cSrcweir sal_Bool bOK; 1681*cdf0e10cSrcweir 1682*cdf0e10cSrcweir oslFileHandle *pHandle; 1683*cdf0e10cSrcweir ::rtl::OUString *pUStr_DirURL; 1684*cdf0e10cSrcweir ::rtl::OUString *pUStr_FileURL; 1685*cdf0e10cSrcweir 1686*cdf0e10cSrcweir public: 1687*cdf0e10cSrcweir 1688*cdf0e10cSrcweir // initialization 1689*cdf0e10cSrcweir void setUp( ) 1690*cdf0e10cSrcweir { 1691*cdf0e10cSrcweir pHandle = new oslFileHandle(); 1692*cdf0e10cSrcweir pUStr_DirURL = new ::rtl::OUString( aUserDirectoryURL ); 1693*cdf0e10cSrcweir pUStr_FileURL = new ::rtl::OUString(); 1694*cdf0e10cSrcweir //*pUStr_DirURL = aUserDirectoryURL; /// create temp file in /tmp/PID or c:\temp\PID.*/ 1695*cdf0e10cSrcweir } 1696*cdf0e10cSrcweir 1697*cdf0e10cSrcweir void tearDown( ) 1698*cdf0e10cSrcweir { 1699*cdf0e10cSrcweir delete pUStr_DirURL; 1700*cdf0e10cSrcweir delete pUStr_FileURL; 1701*cdf0e10cSrcweir delete pHandle; 1702*cdf0e10cSrcweir } 1703*cdf0e10cSrcweir 1704*cdf0e10cSrcweir // test code. 1705*cdf0e10cSrcweir void createTempFile_001( ) 1706*cdf0e10cSrcweir { 1707*cdf0e10cSrcweir nError1 = FileBase::createTempFile( pUStr_DirURL, pHandle, pUStr_FileURL ); 1708*cdf0e10cSrcweir ::osl::File testFile( *pUStr_FileURL ); 1709*cdf0e10cSrcweir //printFileName(*pUStr_FileURL); 1710*cdf0e10cSrcweir nError2 = testFile.open( OpenFlag_Create ); 1711*cdf0e10cSrcweir if ( osl::FileBase::E_EXIST == nError2 ) { 1712*cdf0e10cSrcweir osl_closeFile( *pHandle ); 1713*cdf0e10cSrcweir deleteTestFile( *pUStr_FileURL ); 1714*cdf0e10cSrcweir } 1715*cdf0e10cSrcweir 1716*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for createTempFile function: create temp file and test the existence", 1717*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && ( pHandle != NULL ) && ( osl::FileBase::E_EXIST== nError2 ) ); 1718*cdf0e10cSrcweir } 1719*cdf0e10cSrcweir 1720*cdf0e10cSrcweir void createTempFile_002( ) 1721*cdf0e10cSrcweir { 1722*cdf0e10cSrcweir bOK = sal_False; 1723*cdf0e10cSrcweir nError1 = FileBase::createTempFile( pUStr_DirURL, pHandle, pUStr_FileURL ); 1724*cdf0e10cSrcweir ::osl::File testFile( *pUStr_FileURL ); 1725*cdf0e10cSrcweir nError2 = testFile.open( OpenFlag_Create ); 1726*cdf0e10cSrcweir 1727*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "createTempFile function: create a temp file, but it does not exist", 1728*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && ( pHandle != NULL ) && 1729*cdf0e10cSrcweir ( osl::FileBase::E_EXIST == nError2 ) ); 1730*cdf0e10cSrcweir 1731*cdf0e10cSrcweir //check file if have the write permission 1732*cdf0e10cSrcweir if ( osl::FileBase::E_EXIST == nError2 ) { 1733*cdf0e10cSrcweir bOK = ifFileCanWrite( *pUStr_FileURL ); 1734*cdf0e10cSrcweir osl_closeFile( *pHandle ); 1735*cdf0e10cSrcweir deleteTestFile( *pUStr_FileURL ); 1736*cdf0e10cSrcweir } 1737*cdf0e10cSrcweir 1738*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open and write access rights, in (W32), it did not have write access right, but it should be writtenable.", 1739*cdf0e10cSrcweir ( sal_True == bOK ) ); 1740*cdf0e10cSrcweir } 1741*cdf0e10cSrcweir 1742*cdf0e10cSrcweir void createTempFile_003( ) 1743*cdf0e10cSrcweir { 1744*cdf0e10cSrcweir nError1 = FileBase::createTempFile( pUStr_DirURL, pHandle, 0 ); 1745*cdf0e10cSrcweir //the temp file will be removed when return from createTempFile 1746*cdf0e10cSrcweir bOK = ( pHandle != NULL && pHandle != 0); 1747*cdf0e10cSrcweir if ( sal_True == bOK ) 1748*cdf0e10cSrcweir osl_closeFile( *pHandle ); 1749*cdf0e10cSrcweir 1750*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for createTempFile function: set pUStrFileURL to 0 to let it remove the file after call.", 1751*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) &&( sal_True == bOK ) ); 1752*cdf0e10cSrcweir } 1753*cdf0e10cSrcweir void createTempFile_004( ) 1754*cdf0e10cSrcweir { 1755*cdf0e10cSrcweir nError1 = FileBase::createTempFile( pUStr_DirURL, 0, pUStr_FileURL ); 1756*cdf0e10cSrcweir bOK = ( pUStr_FileURL != 0); 1757*cdf0e10cSrcweir ::osl::File testFile( *pUStr_FileURL ); 1758*cdf0e10cSrcweir nError2 = testFile.open( OpenFlag_Create ); 1759*cdf0e10cSrcweir deleteTestFile( *pUStr_FileURL ); 1760*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "createTempFile function: create a temp file, but it does not exist", 1761*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && ( osl::FileBase::E_EXIST == nError2 ) &&( sal_True == bOK ) ); 1762*cdf0e10cSrcweir 1763*cdf0e10cSrcweir } 1764*cdf0e10cSrcweir 1765*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( createTempFile ); 1766*cdf0e10cSrcweir CPPUNIT_TEST( createTempFile_001 ); 1767*cdf0e10cSrcweir CPPUNIT_TEST( createTempFile_002 ); 1768*cdf0e10cSrcweir CPPUNIT_TEST( createTempFile_003 ); 1769*cdf0e10cSrcweir CPPUNIT_TEST( createTempFile_004 ); 1770*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 1771*cdf0e10cSrcweir };// class createTempFile 1772*cdf0e10cSrcweir 1773*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 1774*cdf0e10cSrcweir #if 0 //~ this function has been deprecated. 1775*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getCanonicalName, "osl_FileBase" ); 1776*cdf0e10cSrcweir #endif 1777*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getAbsoluteFileURL, "osl_FileBase" ); 1778*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::SystemPath_FileURL, "osl_FileBase" ); 1779*cdf0e10cSrcweir // CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getFileURLFromSystemPath, "osl_FileBase" ); 1780*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::searchFileURL, "osl_FileBase" ); 1781*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getTempDirURL, "osl_FileBase" ); 1782*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::createTempFile, "osl_FileBase" ); 1783*cdf0e10cSrcweir }// namespace osl_FileBase 1784*cdf0e10cSrcweir 1785*cdf0e10cSrcweir 1786*cdf0e10cSrcweir //------------------------------------------------------------------------ 1787*cdf0e10cSrcweir // Beginning of the test cases for VolumeDevice class 1788*cdf0e10cSrcweir //------------------------------------------------------------------------ 1789*cdf0e10cSrcweir 1790*cdf0e10cSrcweir #if 0 //~ this Class has been deprecated 1791*cdf0e10cSrcweir namespace osl_VolumeDevice 1792*cdf0e10cSrcweir { 1793*cdf0e10cSrcweir 1794*cdf0e10cSrcweir //--------------------------------------------------------------------- 1795*cdf0e10cSrcweir // testing the method 1796*cdf0e10cSrcweir // VolumeDevice() : _aHandle( NULL ) 1797*cdf0e10cSrcweir //--------------------------------------------------------------------- 1798*cdf0e10cSrcweir class ctors : public CppUnit::TestFixture 1799*cdf0e10cSrcweir { 1800*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice; 1801*cdf0e10cSrcweir ::rtl::OUString aUStr; 1802*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 1803*cdf0e10cSrcweir 1804*cdf0e10cSrcweir public: 1805*cdf0e10cSrcweir // initialization 1806*cdf0e10cSrcweir void setUp( ) 1807*cdf0e10cSrcweir { 1808*cdf0e10cSrcweir } 1809*cdf0e10cSrcweir 1810*cdf0e10cSrcweir void tearDown( ) 1811*cdf0e10cSrcweir { 1812*cdf0e10cSrcweir } 1813*cdf0e10cSrcweir 1814*cdf0e10cSrcweir // test code. 1815*cdf0e10cSrcweir void ctors_001( ) 1816*cdf0e10cSrcweir { 1817*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1; 1818*cdf0e10cSrcweir 1819*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: Constructor for VolumeDevice with no args.", 1820*cdf0e10cSrcweir ( osl::FileBase::E_None != aVolumeDevice1.automount( ) ) && 1821*cdf0e10cSrcweir ( osl::FileBase::E_None != aVolumeDevice1.unmount( ) ) && 1822*cdf0e10cSrcweir ( aNullURL.equals( aVolumeDevice1.getMountPath( ) ) ) ); 1823*cdf0e10cSrcweir } 1824*cdf0e10cSrcweir 1825*cdf0e10cSrcweir void ctors_002( ) 1826*cdf0e10cSrcweir { 1827*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( VolumeInfoMask_Attributes ); 1828*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo ); 1829*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 1830*cdf0e10cSrcweir 1831*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1( aVolumeInfo.getDeviceHandle( ) ); 1832*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aNullURL, aVolumeDevice1.getMountPath( ) ); 1833*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: Copy constructor for VolumeDevice, the copied VolumeDevice should have a mount path file:///, but it returned an empty OUString, it also may be the error from getDeviceHandle(), it did not pass in (UNX), (W32).", 1834*cdf0e10cSrcweir sal_False == bOk ); 1835*cdf0e10cSrcweir } 1836*cdf0e10cSrcweir 1837*cdf0e10cSrcweir void ctors_003( ) 1838*cdf0e10cSrcweir { 1839*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( VolumeInfoMask_Attributes ); 1840*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo ); 1841*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 1842*cdf0e10cSrcweir 1843*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1 = aVolumeInfo.getDeviceHandle( ); 1844*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aNullURL, aVolumeDevice1.getMountPath( ) ); 1845*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: Assigned operator for VolumeDevice, the assigned VolumeDevice should have a mount path file:///, but it returned an empty OUString, it also may be the error from getDeviceHandle(),it did not pass in (UNX), (W32).", 1846*cdf0e10cSrcweir sal_False == bOk ); 1847*cdf0e10cSrcweir } 1848*cdf0e10cSrcweir 1849*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( ctors ); 1850*cdf0e10cSrcweir CPPUNIT_TEST( ctors_001 ); 1851*cdf0e10cSrcweir CPPUNIT_TEST( ctors_002 ); 1852*cdf0e10cSrcweir CPPUNIT_TEST( ctors_003 ); 1853*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 1854*cdf0e10cSrcweir };// class ctors 1855*cdf0e10cSrcweir 1856*cdf0e10cSrcweir 1857*cdf0e10cSrcweir //--------------------------------------------------------------------- 1858*cdf0e10cSrcweir // testing the method 1859*cdf0e10cSrcweir // inline RC automount() 1860*cdf0e10cSrcweir //--------------------------------------------------------------------- 1861*cdf0e10cSrcweir class automount : public CppUnit::TestFixture 1862*cdf0e10cSrcweir { 1863*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice; 1864*cdf0e10cSrcweir ::rtl::OUString aUStr; 1865*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 1866*cdf0e10cSrcweir 1867*cdf0e10cSrcweir public: 1868*cdf0e10cSrcweir // initialization 1869*cdf0e10cSrcweir void setUp( ) 1870*cdf0e10cSrcweir { 1871*cdf0e10cSrcweir } 1872*cdf0e10cSrcweir 1873*cdf0e10cSrcweir void tearDown( ) 1874*cdf0e10cSrcweir { 1875*cdf0e10cSrcweir 1876*cdf0e10cSrcweir } 1877*cdf0e10cSrcweir 1878*cdf0e10cSrcweir // test code. 1879*cdf0e10cSrcweir void automount_001( ) 1880*cdf0e10cSrcweir { 1881*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1; 1882*cdf0e10cSrcweir nError1 = aVolumeDevice1.automount( ); 1883*cdf0e10cSrcweir 1884*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for automount function: invalid parameter.", 1885*cdf0e10cSrcweir ( osl::FileBase::E_INVAL == nError1 ) ); 1886*cdf0e10cSrcweir } 1887*cdf0e10cSrcweir 1888*cdf0e10cSrcweir void automount_002( ) 1889*cdf0e10cSrcweir { 1890*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( VolumeInfoMask_Attributes ); 1891*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo ); 1892*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 1893*cdf0e10cSrcweir 1894*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1( aVolumeInfo.getDeviceHandle( ) ); 1895*cdf0e10cSrcweir nError1 = aVolumeDevice1.unmount( ); 1896*cdf0e10cSrcweir nError1 = aVolumeDevice1.automount( ); 1897*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for automount function: this test is not implemented yet, it did not pass in (UNX), (W32).", 1898*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) ); 1899*cdf0e10cSrcweir } 1900*cdf0e10cSrcweir 1901*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( automount ); 1902*cdf0e10cSrcweir CPPUNIT_TEST( automount_001 ); 1903*cdf0e10cSrcweir CPPUNIT_TEST( automount_002 ); 1904*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 1905*cdf0e10cSrcweir };// class automount 1906*cdf0e10cSrcweir 1907*cdf0e10cSrcweir 1908*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 1909*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeDevice::ctors, "osl_VolumeDevice" ); 1910*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeDevice::automount, "osl_VolumeDevice" ); 1911*cdf0e10cSrcweir }// namespace osl_VolumeDevice 1912*cdf0e10cSrcweir #endif 1913*cdf0e10cSrcweir 1914*cdf0e10cSrcweir 1915*cdf0e10cSrcweir //------------------------------------------------------------------------ 1916*cdf0e10cSrcweir // Beginning of the test cases for VolumeInfo class 1917*cdf0e10cSrcweir //------------------------------------------------------------------------ 1918*cdf0e10cSrcweir namespace osl_VolumeInfo 1919*cdf0e10cSrcweir { 1920*cdf0e10cSrcweir 1921*cdf0e10cSrcweir //--------------------------------------------------------------------- 1922*cdf0e10cSrcweir // testing the method 1923*cdf0e10cSrcweir // VolumeInfo( sal_uInt32 nMask ): _nMask( nMask ) 1924*cdf0e10cSrcweir //--------------------------------------------------------------------- 1925*cdf0e10cSrcweir class ctors : public CppUnit::TestFixture 1926*cdf0e10cSrcweir { 1927*cdf0e10cSrcweir ::rtl::OUString aUStr; 1928*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 1929*cdf0e10cSrcweir 1930*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1; 1931*cdf0e10cSrcweir 1932*cdf0e10cSrcweir public: 1933*cdf0e10cSrcweir // initialization 1934*cdf0e10cSrcweir void setUp( ) 1935*cdf0e10cSrcweir { 1936*cdf0e10cSrcweir } 1937*cdf0e10cSrcweir 1938*cdf0e10cSrcweir void tearDown( ) 1939*cdf0e10cSrcweir { 1940*cdf0e10cSrcweir } 1941*cdf0e10cSrcweir 1942*cdf0e10cSrcweir // test code. 1943*cdf0e10cSrcweir void ctors_001( ) 1944*cdf0e10cSrcweir { 1945*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( 0 ); 1946*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo ); 1947*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 1948*cdf0e10cSrcweir sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( ); 1949*cdf0e10cSrcweir sal_uInt32 uiMaxPathLength = aVolumeInfo.getMaxPathLength( ); 1950*cdf0e10cSrcweir aUStr = aVolumeInfo.getFileSystemName( ); 1951*cdf0e10cSrcweir 1952*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is empty", 1953*cdf0e10cSrcweir ( 0 == uiTotalSpace ) && 1954*cdf0e10cSrcweir ( 0 == uiMaxPathLength ) && 1955*cdf0e10cSrcweir sal_True == compareFileName( aUStr, aNullURL ) ); 1956*cdf0e10cSrcweir } 1957*cdf0e10cSrcweir 1958*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 1959*cdf0e10cSrcweir void ctors_002( ) 1960*cdf0e10cSrcweir { 1961*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( VolumeInfoMask_TotalSpace | 1962*cdf0e10cSrcweir VolumeInfoMask_UsedSpace | 1963*cdf0e10cSrcweir VolumeInfoMask_FileSystemName ); 1964*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo ); 1965*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 1966*cdf0e10cSrcweir //CPPUNIT_ASSERT( aVolumeInfo.isValid( mask ) ); 1967*cdf0e10cSrcweir sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( ); 1968*cdf0e10cSrcweir sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( ); 1969*cdf0e10cSrcweir aUStr = aVolumeInfo.getFileSystemName( ); 1970*cdf0e10cSrcweir 1971*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is specified as certain valid fields, and get the masked fields", 1972*cdf0e10cSrcweir ( 0 != uiTotalSpace ) && 1973*cdf0e10cSrcweir ( 0 != uiUsedSpace ) && 1974*cdf0e10cSrcweir sal_True == compareFileName( aUStr, "nfs" ) ); 1975*cdf0e10cSrcweir } 1976*cdf0e10cSrcweir #else /// Windows version,here we can not determine whichvolume in Windows is serve as an nfs volume. 1977*cdf0e10cSrcweir void ctors_002( ) 1978*cdf0e10cSrcweir { 1979*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is specified as certain valid fields, and get the masked fields( Windows version )", 1980*cdf0e10cSrcweir 1 == 1 ); 1981*cdf0e10cSrcweir } 1982*cdf0e10cSrcweir #endif 1983*cdf0e10cSrcweir 1984*cdf0e10cSrcweir void ctors_003( ) 1985*cdf0e10cSrcweir { 1986*cdf0e10cSrcweir 1987*cdf0e10cSrcweir sal_Int32 mask1 = VolumeInfoMask_FreeSpace; 1988*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo1( mask1 ); 1989*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo1 ); 1990*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo1.isValid( mask1 ) ); 1991*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 1992*cdf0e10cSrcweir 1993*cdf0e10cSrcweir sal_uInt64 uiTotalSpace1 = aVolumeInfo1.getTotalSpace( ); 1994*cdf0e10cSrcweir aUStr = aVolumeInfo1.getFileSystemName( ); 1995*cdf0e10cSrcweir 1996*cdf0e10cSrcweir sal_Int32 mask2 = VolumeInfoMask_TotalSpace; 1997*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo2( mask2 ); 1998*cdf0e10cSrcweir nError2 = ::osl::Directory::getVolumeInfo( aRootURL, aVolumeInfo2 ); 1999*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo2.isValid( mask2 ) ); 2000*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError2 ); 2001*cdf0e10cSrcweir 2002*cdf0e10cSrcweir sal_uInt64 uiTotalSpace2 = aVolumeInfo2.getTotalSpace( ); 2003*cdf0e10cSrcweir 2004*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is specified as certain valid fields, but get unmasked fields, use mask to FreeSpace, but I can get TotalSpace, did not pass in (UNX)(W32)", 2005*cdf0e10cSrcweir ( 0 == uiTotalSpace1 ) && ( 0 != uiTotalSpace2 ) && 2006*cdf0e10cSrcweir sal_True == compareFileName( aUStr, aNullURL ) ); 2007*cdf0e10cSrcweir } 2008*cdf0e10cSrcweir 2009*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( ctors ); 2010*cdf0e10cSrcweir CPPUNIT_TEST( ctors_001 ); 2011*cdf0e10cSrcweir CPPUNIT_TEST( ctors_002 ); 2012*cdf0e10cSrcweir CPPUNIT_TEST( ctors_003 ); 2013*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2014*cdf0e10cSrcweir };// class ctors 2015*cdf0e10cSrcweir 2016*cdf0e10cSrcweir 2017*cdf0e10cSrcweir //--------------------------------------------------------------------- 2018*cdf0e10cSrcweir // testing the method 2019*cdf0e10cSrcweir // inline sal_Bool isValid( sal_uInt32 nMask ) const 2020*cdf0e10cSrcweir //--------------------------------------------------------------------- 2021*cdf0e10cSrcweir class isValid : public CppUnit::TestFixture 2022*cdf0e10cSrcweir { 2023*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice; 2024*cdf0e10cSrcweir ::rtl::OUString aUStr; 2025*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 2026*cdf0e10cSrcweir 2027*cdf0e10cSrcweir public: 2028*cdf0e10cSrcweir // initialization 2029*cdf0e10cSrcweir void setUp( ) 2030*cdf0e10cSrcweir { 2031*cdf0e10cSrcweir } 2032*cdf0e10cSrcweir 2033*cdf0e10cSrcweir void tearDown( ) 2034*cdf0e10cSrcweir { 2035*cdf0e10cSrcweir 2036*cdf0e10cSrcweir } 2037*cdf0e10cSrcweir 2038*cdf0e10cSrcweir // test code. 2039*cdf0e10cSrcweir void isValid_001( ) 2040*cdf0e10cSrcweir { 2041*cdf0e10cSrcweir sal_Int32 mask = 0; 2042*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2043*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo ); 2044*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2045*cdf0e10cSrcweir 2046*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isValid function: no fields specified.", 2047*cdf0e10cSrcweir sal_True == aVolumeInfo.isValid( mask ) ); 2048*cdf0e10cSrcweir } 2049*cdf0e10cSrcweir 2050*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 2051*cdf0e10cSrcweir void isValid_002( ) 2052*cdf0e10cSrcweir { 2053*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes | VolumeInfoMask_TotalSpace | osl_VolumeInfo_Mask_UsedSpace | 2054*cdf0e10cSrcweir osl_VolumeInfo_Mask_FreeSpace | osl_VolumeInfo_Mask_MaxNameLength | 2055*cdf0e10cSrcweir osl_VolumeInfo_Mask_MaxPathLength | osl_VolumeInfo_Mask_FileSystemName; 2056*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2057*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo ); 2058*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2059*cdf0e10cSrcweir 2060*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isValid function: all valid fields specified for a nfs volume.", 2061*cdf0e10cSrcweir sal_True == aVolumeInfo.isValid( mask ) ); 2062*cdf0e10cSrcweir } 2063*cdf0e10cSrcweir #else /// Windows version,here we can not determine whichvolume in Windows is serve as an nfs volume. 2064*cdf0e10cSrcweir void isValid_002( ) 2065*cdf0e10cSrcweir { 2066*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isValid function: all valid fields specified for a nfs volume.( Windows version )", 2067*cdf0e10cSrcweir 1 == 1 ); 2068*cdf0e10cSrcweir } 2069*cdf0e10cSrcweir #endif 2070*cdf0e10cSrcweir 2071*cdf0e10cSrcweir void isValid_003( ) 2072*cdf0e10cSrcweir { 2073*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1; 2074*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2075*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2076*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2077*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2078*cdf0e10cSrcweir sal_Bool bOk1 = aVolumeInfo.isValid( mask ); 2079*cdf0e10cSrcweir 2080*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo ); 2081*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2082*cdf0e10cSrcweir sal_Bool bOk2 = aVolumeInfo.isValid( mask ); 2083*cdf0e10cSrcweir 2084*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isValid function: VolumeInfoMask_Attributes, it should be valid for some volume such as /, floppy, cdrom, etc. but it did not pass", 2085*cdf0e10cSrcweir ( sal_True == bOk1 ) && ( sal_True == bOk2 ) ); 2086*cdf0e10cSrcweir } 2087*cdf0e10cSrcweir 2088*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( isValid ); 2089*cdf0e10cSrcweir CPPUNIT_TEST( isValid_001 ); 2090*cdf0e10cSrcweir CPPUNIT_TEST( isValid_002 ); 2091*cdf0e10cSrcweir CPPUNIT_TEST( isValid_003 ); 2092*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2093*cdf0e10cSrcweir };// class isValid 2094*cdf0e10cSrcweir 2095*cdf0e10cSrcweir //--------------------------------------------------------------------- 2096*cdf0e10cSrcweir // testing the method 2097*cdf0e10cSrcweir // inline sal_Bool getRemoteFlag() const 2098*cdf0e10cSrcweir //--------------------------------------------------------------------- 2099*cdf0e10cSrcweir class getRemoteFlag : public CppUnit::TestFixture 2100*cdf0e10cSrcweir { 2101*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice; 2102*cdf0e10cSrcweir ::rtl::OUString aUStr; 2103*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 2104*cdf0e10cSrcweir 2105*cdf0e10cSrcweir public: 2106*cdf0e10cSrcweir // test code. 2107*cdf0e10cSrcweir void getRemoteFlag_001( ) 2108*cdf0e10cSrcweir { 2109*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2110*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2111*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2112*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2113*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getRemoteFlag( ); 2114*cdf0e10cSrcweir 2115*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRemoteFlag function: get a volume device which is not remote.", 2116*cdf0e10cSrcweir ( sal_False == bOk ) ); 2117*cdf0e10cSrcweir } 2118*cdf0e10cSrcweir 2119*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //remote Volume is different in Solaris and Windows 2120*cdf0e10cSrcweir void getRemoteFlag_002( ) 2121*cdf0e10cSrcweir { 2122*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2123*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2124*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL4, aVolumeInfo ); 2125*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2126*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getRemoteFlag( ); 2127*cdf0e10cSrcweir 2128*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRemoteFlag function: get a volume device which is remote( Solaris version ).", 2129*cdf0e10cSrcweir ( sal_True == bOk ) ); 2130*cdf0e10cSrcweir } 2131*cdf0e10cSrcweir #else //Windows version 2132*cdf0e10cSrcweir void getRemoteFlag_002( ) 2133*cdf0e10cSrcweir { 2134*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRemoteFlag function: get a volume device which is remote( Windows version )", 2135*cdf0e10cSrcweir 1 == 1 ); 2136*cdf0e10cSrcweir } 2137*cdf0e10cSrcweir #endif 2138*cdf0e10cSrcweir 2139*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getRemoteFlag ); 2140*cdf0e10cSrcweir CPPUNIT_TEST( getRemoteFlag_001 ); 2141*cdf0e10cSrcweir CPPUNIT_TEST( getRemoteFlag_002 ); 2142*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2143*cdf0e10cSrcweir };// class getRemoteFlag 2144*cdf0e10cSrcweir 2145*cdf0e10cSrcweir //--------------------------------------------------------------------- 2146*cdf0e10cSrcweir // testing the method 2147*cdf0e10cSrcweir // inline sal_Bool getRemoveableFlag() const 2148*cdf0e10cSrcweir //--------------------------------------------------------------------- 2149*cdf0e10cSrcweir class getRemoveableFlag : public CppUnit::TestFixture 2150*cdf0e10cSrcweir { 2151*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 2152*cdf0e10cSrcweir 2153*cdf0e10cSrcweir public: 2154*cdf0e10cSrcweir // test code. 2155*cdf0e10cSrcweir void getRemoveableFlag_001( ) 2156*cdf0e10cSrcweir { 2157*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2158*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2159*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2160*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2161*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getRemoveableFlag( ); 2162*cdf0e10cSrcweir 2163*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRemoveableFlag function: get a volume device which is not removable.", 2164*cdf0e10cSrcweir sal_False == bOk ); 2165*cdf0e10cSrcweir } 2166*cdf0e10cSrcweir 2167*cdf0e10cSrcweir void getRemoveableFlag_002( ) 2168*cdf0e10cSrcweir { 2169*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2170*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2171*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo ); 2172*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2173*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getRemoveableFlag( ); 2174*cdf0e10cSrcweir 2175*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRemoveableFlag function: get a volume device which is removable, not sure, here we use floppy disk, but it did not pass.", 2176*cdf0e10cSrcweir sal_True == bOk ); 2177*cdf0e10cSrcweir } 2178*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getRemoveableFlag ); 2179*cdf0e10cSrcweir CPPUNIT_TEST( getRemoveableFlag_001 ); 2180*cdf0e10cSrcweir CPPUNIT_TEST( getRemoveableFlag_002 ); 2181*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2182*cdf0e10cSrcweir };// class getRemoveableFlag 2183*cdf0e10cSrcweir 2184*cdf0e10cSrcweir 2185*cdf0e10cSrcweir //--------------------------------------------------------------------- 2186*cdf0e10cSrcweir // testing the method 2187*cdf0e10cSrcweir // inline sal_Bool getCompactDiscFlag() const 2188*cdf0e10cSrcweir //--------------------------------------------------------------------- 2189*cdf0e10cSrcweir class getCompactDiscFlag : public CppUnit::TestFixture 2190*cdf0e10cSrcweir { 2191*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2192*cdf0e10cSrcweir 2193*cdf0e10cSrcweir public: 2194*cdf0e10cSrcweir // test code. 2195*cdf0e10cSrcweir void getCompactDiscFlag_001( ) 2196*cdf0e10cSrcweir { 2197*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2198*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2199*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2200*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2201*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getCompactDiscFlag( ); 2202*cdf0e10cSrcweir 2203*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getCompactDiscFlag function: get a volume device which is not a cdrom.", 2204*cdf0e10cSrcweir ( sal_False == bOk ) ); 2205*cdf0e10cSrcweir } 2206*cdf0e10cSrcweir 2207*cdf0e10cSrcweir void getCompactDiscFlag_002( ) 2208*cdf0e10cSrcweir { 2209*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2210*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2211*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL6, aVolumeInfo ); 2212*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2213*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getCompactDiscFlag( ); 2214*cdf0e10cSrcweir 2215*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getCompactDiscFlag function: get a cdrom volume device flag, it did not pass.", 2216*cdf0e10cSrcweir ( sal_True == bOk ) ); 2217*cdf0e10cSrcweir } 2218*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getCompactDiscFlag ); 2219*cdf0e10cSrcweir CPPUNIT_TEST( getCompactDiscFlag_001 ); 2220*cdf0e10cSrcweir CPPUNIT_TEST( getCompactDiscFlag_002 ); 2221*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2222*cdf0e10cSrcweir };// class getCompactDiscFlag 2223*cdf0e10cSrcweir 2224*cdf0e10cSrcweir 2225*cdf0e10cSrcweir //--------------------------------------------------------------------- 2226*cdf0e10cSrcweir // testing the method 2227*cdf0e10cSrcweir // inline sal_Bool getFloppyDiskFlag() const 2228*cdf0e10cSrcweir //--------------------------------------------------------------------- 2229*cdf0e10cSrcweir class getFloppyDiskFlag : public CppUnit::TestFixture 2230*cdf0e10cSrcweir { 2231*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2232*cdf0e10cSrcweir 2233*cdf0e10cSrcweir public: 2234*cdf0e10cSrcweir // test code. 2235*cdf0e10cSrcweir void getFloppyDiskFlag_001( ) 2236*cdf0e10cSrcweir { 2237*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2238*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2239*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2240*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2241*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getFloppyDiskFlag( ); 2242*cdf0e10cSrcweir 2243*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFloppyDiskFlag function: get a volume device which is not a floppy disk.", 2244*cdf0e10cSrcweir ( sal_False == bOk ) ); 2245*cdf0e10cSrcweir } 2246*cdf0e10cSrcweir 2247*cdf0e10cSrcweir void getFloppyDiskFlag_002( ) 2248*cdf0e10cSrcweir { 2249*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2250*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2251*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo ); 2252*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2253*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getFloppyDiskFlag( ); 2254*cdf0e10cSrcweir 2255*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFloppyDiskFlag function: get a floppy volume device flag, it did not pass.", 2256*cdf0e10cSrcweir ( sal_True == bOk ) ); 2257*cdf0e10cSrcweir } 2258*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFloppyDiskFlag ); 2259*cdf0e10cSrcweir CPPUNIT_TEST( getFloppyDiskFlag_001 ); 2260*cdf0e10cSrcweir CPPUNIT_TEST( getFloppyDiskFlag_002 ); 2261*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2262*cdf0e10cSrcweir };// class getFloppyDiskFlag 2263*cdf0e10cSrcweir 2264*cdf0e10cSrcweir 2265*cdf0e10cSrcweir //--------------------------------------------------------------------- 2266*cdf0e10cSrcweir // testing the method 2267*cdf0e10cSrcweir // inline sal_Bool getFixedDiskFlag() const 2268*cdf0e10cSrcweir //--------------------------------------------------------------------- 2269*cdf0e10cSrcweir class getFixedDiskFlag : public CppUnit::TestFixture 2270*cdf0e10cSrcweir { 2271*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2272*cdf0e10cSrcweir 2273*cdf0e10cSrcweir public: 2274*cdf0e10cSrcweir // test code. 2275*cdf0e10cSrcweir void getFixedDiskFlag_001( ) 2276*cdf0e10cSrcweir { 2277*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2278*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2279*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL2, aVolumeInfo ); 2280*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2281*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getFixedDiskFlag( ); 2282*cdf0e10cSrcweir 2283*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFixedDiskFlag function: get a volume device which is not a fixed disk.", 2284*cdf0e10cSrcweir ( sal_False == bOk ) ); 2285*cdf0e10cSrcweir } 2286*cdf0e10cSrcweir 2287*cdf0e10cSrcweir void getFixedDiskFlag_002( ) 2288*cdf0e10cSrcweir { 2289*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2290*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2291*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2292*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2293*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getFixedDiskFlag( ); 2294*cdf0e10cSrcweir 2295*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFixedDiskFlag function: get a fixed disk volume device flag, it did not pass.", 2296*cdf0e10cSrcweir ( sal_True == bOk ) ); 2297*cdf0e10cSrcweir } 2298*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFixedDiskFlag ); 2299*cdf0e10cSrcweir CPPUNIT_TEST( getFixedDiskFlag_001 ); 2300*cdf0e10cSrcweir CPPUNIT_TEST( getFixedDiskFlag_002 ); 2301*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2302*cdf0e10cSrcweir };// class getFixedDiskFlag 2303*cdf0e10cSrcweir 2304*cdf0e10cSrcweir //--------------------------------------------------------------------- 2305*cdf0e10cSrcweir // testing the method 2306*cdf0e10cSrcweir // inline sal_Bool getRAMDiskFlag() const 2307*cdf0e10cSrcweir //--------------------------------------------------------------------- 2308*cdf0e10cSrcweir class getRAMDiskFlag : public CppUnit::TestFixture 2309*cdf0e10cSrcweir { 2310*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2311*cdf0e10cSrcweir 2312*cdf0e10cSrcweir public: 2313*cdf0e10cSrcweir // test code. 2314*cdf0e10cSrcweir void getRAMDiskFlag_001( ) 2315*cdf0e10cSrcweir { 2316*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2317*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2318*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2319*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2320*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getRAMDiskFlag( ); 2321*cdf0e10cSrcweir 2322*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRAMDiskFlag function: get a volume device which is not a RAM disk.", 2323*cdf0e10cSrcweir ( sal_False == bOk ) ); 2324*cdf0e10cSrcweir } 2325*cdf0e10cSrcweir 2326*cdf0e10cSrcweir void getRAMDiskFlag_002( ) 2327*cdf0e10cSrcweir { 2328*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 2329*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2330*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2331*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2332*cdf0e10cSrcweir sal_Bool bOk = aVolumeInfo.getRAMDiskFlag( ); 2333*cdf0e10cSrcweir 2334*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getRAMDiskFlag function: FIX ME, don't know how to get a RAM disk flag, perhaps Windows 98 boot disk can create a RAM disk, it did not pass in (UNX)(W32).", 2335*cdf0e10cSrcweir ( sal_True == bOk ) ); 2336*cdf0e10cSrcweir } 2337*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getRAMDiskFlag ); 2338*cdf0e10cSrcweir CPPUNIT_TEST( getRAMDiskFlag_001 ); 2339*cdf0e10cSrcweir CPPUNIT_TEST( getRAMDiskFlag_002 ); 2340*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2341*cdf0e10cSrcweir };// class getRAMDiskFlag 2342*cdf0e10cSrcweir 2343*cdf0e10cSrcweir 2344*cdf0e10cSrcweir //--------------------------------------------------------------------- 2345*cdf0e10cSrcweir // testing the method 2346*cdf0e10cSrcweir // inline sal_uInt64 getTotalSpace() const 2347*cdf0e10cSrcweir //--------------------------------------------------------------------- 2348*cdf0e10cSrcweir class getTotalSpace : public CppUnit::TestFixture 2349*cdf0e10cSrcweir { 2350*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2351*cdf0e10cSrcweir 2352*cdf0e10cSrcweir public: 2353*cdf0e10cSrcweir // test code. 2354*cdf0e10cSrcweir void getTotalSpace_001( ) 2355*cdf0e10cSrcweir { 2356*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_TotalSpace; 2357*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2358*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2359*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2360*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2361*cdf0e10cSrcweir sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( ); 2362*cdf0e10cSrcweir 2363*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function: get total space of Fixed disk volume mounted on /, it should not be 0", 2364*cdf0e10cSrcweir 0 != uiTotalSpace ); 2365*cdf0e10cSrcweir } 2366*cdf0e10cSrcweir 2367*cdf0e10cSrcweir #if defined( UNX ) 2368*cdf0e10cSrcweir void getTotalSpace_002( ) 2369*cdf0e10cSrcweir { 2370*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_TotalSpace; 2371*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2372*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL3, aVolumeInfo ); 2373*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2374*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2375*cdf0e10cSrcweir sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( ); 2376*cdf0e10cSrcweir 2377*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function: get total space of /proc, it should be 0", 2378*cdf0e10cSrcweir 0 == uiTotalSpace ); 2379*cdf0e10cSrcweir } 2380*cdf0e10cSrcweir #else /// Windows version, in Windows, there is no /proc directory 2381*cdf0e10cSrcweir void getTotalSpace_002( ) 2382*cdf0e10cSrcweir { 2383*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function:not applicable for /proc( Windows version )", 2384*cdf0e10cSrcweir 1 == 1 ); 2385*cdf0e10cSrcweir } 2386*cdf0e10cSrcweir #endif 2387*cdf0e10cSrcweir 2388*cdf0e10cSrcweir 2389*cdf0e10cSrcweir 2390*cdf0e10cSrcweir #if defined(SOLARIS) 2391*cdf0e10cSrcweir void getTotalSpace_003( ) 2392*cdf0e10cSrcweir { 2393*cdf0e10cSrcweir struct statvfs aStatFS; 2394*cdf0e10cSrcweir static const sal_Char name[] = "/"; 2395*cdf0e10cSrcweir 2396*cdf0e10cSrcweir memset (&aStatFS, 0, sizeof(aStatFS)); 2397*cdf0e10cSrcweir statvfs( name, &aStatFS); 2398*cdf0e10cSrcweir sal_uInt64 TotalSpace = aStatFS.f_frsize * aStatFS.f_blocks ; 2399*cdf0e10cSrcweir 2400*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_TotalSpace; 2401*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2402*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2403*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2404*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2405*cdf0e10cSrcweir sal_uInt64 uiTotalSpace = aVolumeInfo.getTotalSpace( ); 2406*cdf0e10cSrcweir 2407*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function: get total space by hand, then compare with getTotalSpace, it did not pass", 2408*cdf0e10cSrcweir uiTotalSpace == TotalSpace ); 2409*cdf0e10cSrcweir } 2410*cdf0e10cSrcweir #else /// Windows version 2411*cdf0e10cSrcweir void getTotalSpace_003( ) 2412*cdf0e10cSrcweir { 2413*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getTotalSpace function:not implemented yet( Windows version )", 2414*cdf0e10cSrcweir 1 == 1 ); 2415*cdf0e10cSrcweir } 2416*cdf0e10cSrcweir #endif 2417*cdf0e10cSrcweir 2418*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getTotalSpace ); 2419*cdf0e10cSrcweir CPPUNIT_TEST( getTotalSpace_001 ); 2420*cdf0e10cSrcweir CPPUNIT_TEST( getTotalSpace_002 ); 2421*cdf0e10cSrcweir CPPUNIT_TEST( getTotalSpace_003 ); 2422*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2423*cdf0e10cSrcweir };// class getTotalSpace 2424*cdf0e10cSrcweir 2425*cdf0e10cSrcweir //--------------------------------------------------------------------- 2426*cdf0e10cSrcweir // testing the method 2427*cdf0e10cSrcweir // inline sal_uInt64 getFreeSpace() const 2428*cdf0e10cSrcweir //--------------------------------------------------------------------- 2429*cdf0e10cSrcweir class getFreeSpace : public CppUnit::TestFixture 2430*cdf0e10cSrcweir { 2431*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2432*cdf0e10cSrcweir 2433*cdf0e10cSrcweir public: 2434*cdf0e10cSrcweir // test code. 2435*cdf0e10cSrcweir void getFreeSpace_001( ) 2436*cdf0e10cSrcweir { 2437*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FreeSpace; 2438*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2439*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2440*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2441*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2442*cdf0e10cSrcweir sal_uInt64 uiFreeSpace = aVolumeInfo.getFreeSpace( ); 2443*cdf0e10cSrcweir 2444*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: get free space of Fixed disk volume mounted on /, it should not be 0, suggestion: returned value, -1 is better, since some times the free space may be 0", 2445*cdf0e10cSrcweir 0 != uiFreeSpace ); 2446*cdf0e10cSrcweir } 2447*cdf0e10cSrcweir 2448*cdf0e10cSrcweir #if defined( UNX ) 2449*cdf0e10cSrcweir void getFreeSpace_002( ) 2450*cdf0e10cSrcweir { 2451*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FreeSpace; 2452*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2453*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL3, aVolumeInfo ); 2454*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2455*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2456*cdf0e10cSrcweir sal_uInt64 uiFreeSpace = aVolumeInfo.getFreeSpace( ); 2457*cdf0e10cSrcweir 2458*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: get free space of /proc, it should be 0", 2459*cdf0e10cSrcweir 0 == uiFreeSpace ); 2460*cdf0e10cSrcweir } 2461*cdf0e10cSrcweir #else /// Windows version, in Windows, there is no /proc directory 2462*cdf0e10cSrcweir void getFreeSpace_002( ) 2463*cdf0e10cSrcweir { 2464*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: not applicable for /proc( Windows version )", 2465*cdf0e10cSrcweir 1 == 1 ); 2466*cdf0e10cSrcweir } 2467*cdf0e10cSrcweir #endif 2468*cdf0e10cSrcweir 2469*cdf0e10cSrcweir 2470*cdf0e10cSrcweir #if defined(SOLARIS) 2471*cdf0e10cSrcweir void getFreeSpace_003( ) 2472*cdf0e10cSrcweir { 2473*cdf0e10cSrcweir struct statvfs aStatFS; 2474*cdf0e10cSrcweir static const sal_Char name[] = "/"; 2475*cdf0e10cSrcweir 2476*cdf0e10cSrcweir memset (&aStatFS, 0, sizeof(aStatFS)); 2477*cdf0e10cSrcweir statvfs( name, &aStatFS); 2478*cdf0e10cSrcweir sal_uInt64 FreeSpace = aStatFS.f_bfree * aStatFS.f_frsize ; 2479*cdf0e10cSrcweir 2480*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FreeSpace; 2481*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2482*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2483*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2484*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2485*cdf0e10cSrcweir sal_uInt64 uiFreeSpace = aVolumeInfo.getFreeSpace( ); 2486*cdf0e10cSrcweir 2487*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: get free space by hand, then compare with getFreeSpace, it did not pass", 2488*cdf0e10cSrcweir uiFreeSpace == FreeSpace ); 2489*cdf0e10cSrcweir } 2490*cdf0e10cSrcweir #else //Windows version 2491*cdf0e10cSrcweir void getFreeSpace_003( ) 2492*cdf0e10cSrcweir { 2493*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFreeSpace function: not implemented yet( Windows version )", 2494*cdf0e10cSrcweir 1 == 1 ); 2495*cdf0e10cSrcweir } 2496*cdf0e10cSrcweir #endif 2497*cdf0e10cSrcweir 2498*cdf0e10cSrcweir 2499*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFreeSpace ); 2500*cdf0e10cSrcweir CPPUNIT_TEST( getFreeSpace_001 ); 2501*cdf0e10cSrcweir CPPUNIT_TEST( getFreeSpace_002 ); 2502*cdf0e10cSrcweir CPPUNIT_TEST( getFreeSpace_003 ); 2503*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2504*cdf0e10cSrcweir };// class getFreeSpace 2505*cdf0e10cSrcweir 2506*cdf0e10cSrcweir //--------------------------------------------------------------------- 2507*cdf0e10cSrcweir // testing the method 2508*cdf0e10cSrcweir // inline sal_uInt64 getUsedSpace() const 2509*cdf0e10cSrcweir //--------------------------------------------------------------------- 2510*cdf0e10cSrcweir class getUsedSpace : public CppUnit::TestFixture 2511*cdf0e10cSrcweir { 2512*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2513*cdf0e10cSrcweir 2514*cdf0e10cSrcweir public: 2515*cdf0e10cSrcweir // test code. 2516*cdf0e10cSrcweir void getUsedSpace_001( ) 2517*cdf0e10cSrcweir { 2518*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_UsedSpace; 2519*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2520*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2521*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2522*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2523*cdf0e10cSrcweir sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( ); 2524*cdf0e10cSrcweir 2525*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: get used space of Fixed disk volume mounted on /, it should not be 0, suggestion: returned value, -1 is better, since some times the used space may be 0", 2526*cdf0e10cSrcweir 0 != uiUsedSpace ); 2527*cdf0e10cSrcweir } 2528*cdf0e10cSrcweir 2529*cdf0e10cSrcweir #if defined( UNX ) 2530*cdf0e10cSrcweir void getUsedSpace_002( ) 2531*cdf0e10cSrcweir { 2532*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_UsedSpace; 2533*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2534*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL3, aVolumeInfo ); 2535*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2536*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2537*cdf0e10cSrcweir sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( ); 2538*cdf0e10cSrcweir 2539*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: get used space of /proc, it should be 0", 2540*cdf0e10cSrcweir 0 == uiUsedSpace ); 2541*cdf0e10cSrcweir } 2542*cdf0e10cSrcweir #else /// Windows version, in Windows, there is no /proc directory 2543*cdf0e10cSrcweir void getUsedSpace_002( ) 2544*cdf0e10cSrcweir { 2545*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: not applicable for /proc( Windows version )", 2546*cdf0e10cSrcweir 1 == 1 ); 2547*cdf0e10cSrcweir } 2548*cdf0e10cSrcweir #endif 2549*cdf0e10cSrcweir 2550*cdf0e10cSrcweir 2551*cdf0e10cSrcweir #if defined(SOLARIS) 2552*cdf0e10cSrcweir void getUsedSpace_003( ) 2553*cdf0e10cSrcweir { 2554*cdf0e10cSrcweir struct statvfs aStatFS; 2555*cdf0e10cSrcweir static const sal_Char name[] = "/"; 2556*cdf0e10cSrcweir 2557*cdf0e10cSrcweir memset (&aStatFS, 0, sizeof(aStatFS)); 2558*cdf0e10cSrcweir statvfs( name, &aStatFS); 2559*cdf0e10cSrcweir sal_uInt64 UsedSpace = ( aStatFS.f_blocks - aStatFS.f_bavail ) * aStatFS.f_frsize; 2560*cdf0e10cSrcweir 2561*cdf0e10cSrcweir 2562*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_UsedSpace; 2563*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2564*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2565*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2566*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2567*cdf0e10cSrcweir sal_uInt64 uiUsedSpace = aVolumeInfo.getUsedSpace( ); 2568*cdf0e10cSrcweir 2569*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: get used space by hand, then compare with getUsedSpace, it did not pass", 2570*cdf0e10cSrcweir uiUsedSpace == UsedSpace ); 2571*cdf0e10cSrcweir } 2572*cdf0e10cSrcweir #else //Windows version 2573*cdf0e10cSrcweir void getUsedSpace_003( ) 2574*cdf0e10cSrcweir { 2575*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getUsedSpace function: not implemented yet( Windows version )", 2576*cdf0e10cSrcweir 1 == 1 ); 2577*cdf0e10cSrcweir } 2578*cdf0e10cSrcweir #endif 2579*cdf0e10cSrcweir 2580*cdf0e10cSrcweir 2581*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getUsedSpace ); 2582*cdf0e10cSrcweir CPPUNIT_TEST( getUsedSpace_001 ); 2583*cdf0e10cSrcweir CPPUNIT_TEST( getUsedSpace_002 ); 2584*cdf0e10cSrcweir CPPUNIT_TEST( getUsedSpace_003 ); 2585*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2586*cdf0e10cSrcweir };// class getUsedSpace 2587*cdf0e10cSrcweir 2588*cdf0e10cSrcweir 2589*cdf0e10cSrcweir //--------------------------------------------------------------------- 2590*cdf0e10cSrcweir // testing the method 2591*cdf0e10cSrcweir // inline sal_uInt32 getMaxNameLength() const 2592*cdf0e10cSrcweir //--------------------------------------------------------------------- 2593*cdf0e10cSrcweir class getMaxNameLength : public CppUnit::TestFixture 2594*cdf0e10cSrcweir { 2595*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2596*cdf0e10cSrcweir 2597*cdf0e10cSrcweir public: 2598*cdf0e10cSrcweir // test code. 2599*cdf0e10cSrcweir void getMaxNameLength_001( ) 2600*cdf0e10cSrcweir { 2601*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_MaxNameLength; 2602*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2603*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2604*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2605*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2606*cdf0e10cSrcweir sal_uInt32 uiMaxNameLength = aVolumeInfo.getMaxNameLength( ); 2607*cdf0e10cSrcweir 2608*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getMaxNameLength function: get max name length of Fixed disk volume mounted on /, it should not be 0", 2609*cdf0e10cSrcweir 0 != uiMaxNameLength ); 2610*cdf0e10cSrcweir } 2611*cdf0e10cSrcweir 2612*cdf0e10cSrcweir 2613*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 2614*cdf0e10cSrcweir void getMaxNameLength_002( ) 2615*cdf0e10cSrcweir { 2616*cdf0e10cSrcweir struct statvfs aStatFS; 2617*cdf0e10cSrcweir static const sal_Char name[] = "/"; 2618*cdf0e10cSrcweir 2619*cdf0e10cSrcweir memset (&aStatFS, 0, sizeof(aStatFS)); 2620*cdf0e10cSrcweir statvfs( name, &aStatFS); 2621*cdf0e10cSrcweir sal_uInt64 MaxNameLength = aStatFS.f_namemax; 2622*cdf0e10cSrcweir 2623*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_MaxNameLength; 2624*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2625*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2626*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2627*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2628*cdf0e10cSrcweir sal_uInt64 uiMaxNameLength = aVolumeInfo.getMaxNameLength( ); 2629*cdf0e10cSrcweir 2630*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getMaxNameLength function: get max name length by hand, then compare with getMaxNameLength", 2631*cdf0e10cSrcweir uiMaxNameLength == MaxNameLength ); 2632*cdf0e10cSrcweir } 2633*cdf0e10cSrcweir #else //Windows version 2634*cdf0e10cSrcweir void getMaxNameLength_002( ) 2635*cdf0e10cSrcweir { 2636*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getMaxNameLength function: not implemented yet( Windows version )", 2637*cdf0e10cSrcweir 1 == 1 ); 2638*cdf0e10cSrcweir } 2639*cdf0e10cSrcweir #endif 2640*cdf0e10cSrcweir 2641*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getMaxNameLength ); 2642*cdf0e10cSrcweir CPPUNIT_TEST( getMaxNameLength_001 ); 2643*cdf0e10cSrcweir CPPUNIT_TEST( getMaxNameLength_002 ); 2644*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2645*cdf0e10cSrcweir };// class getMaxNameLength 2646*cdf0e10cSrcweir 2647*cdf0e10cSrcweir 2648*cdf0e10cSrcweir //--------------------------------------------------------------------- 2649*cdf0e10cSrcweir // testing the method 2650*cdf0e10cSrcweir // inline sal_uInt32 getMaxPathLength() const 2651*cdf0e10cSrcweir //--------------------------------------------------------------------- 2652*cdf0e10cSrcweir class getMaxPathLength : public CppUnit::TestFixture 2653*cdf0e10cSrcweir { 2654*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2655*cdf0e10cSrcweir 2656*cdf0e10cSrcweir public: 2657*cdf0e10cSrcweir // test code. 2658*cdf0e10cSrcweir void getMaxPathLength_001( ) 2659*cdf0e10cSrcweir { 2660*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_MaxPathLength; 2661*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2662*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2663*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2664*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2665*cdf0e10cSrcweir sal_uInt32 uiMaxPathLength = aVolumeInfo.getMaxPathLength( ); 2666*cdf0e10cSrcweir 2667*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getMaxPathLength function: get max path length of Fixed disk volume mounted on /, it should not be 0", 2668*cdf0e10cSrcweir 0 != uiMaxPathLength ); 2669*cdf0e10cSrcweir } 2670*cdf0e10cSrcweir 2671*cdf0e10cSrcweir 2672*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 2673*cdf0e10cSrcweir void getMaxPathLength_002( ) 2674*cdf0e10cSrcweir { 2675*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_MaxPathLength; 2676*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2677*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2678*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2679*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2680*cdf0e10cSrcweir sal_uInt64 uiMaxPathLength = aVolumeInfo.getMaxPathLength( ); 2681*cdf0e10cSrcweir 2682*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getMaxPathLength function: get max path length by hand, then compare with getMaxPathLength", 2683*cdf0e10cSrcweir uiMaxPathLength == PATH_MAX ); 2684*cdf0e10cSrcweir } 2685*cdf0e10cSrcweir #else //Windows version 2686*cdf0e10cSrcweir void getMaxPathLength_002( ) 2687*cdf0e10cSrcweir { 2688*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getMaxPathLength function: not implemented yet( Windows version )", 2689*cdf0e10cSrcweir 1 == 1 ); 2690*cdf0e10cSrcweir } 2691*cdf0e10cSrcweir #endif 2692*cdf0e10cSrcweir 2693*cdf0e10cSrcweir 2694*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getMaxPathLength ); 2695*cdf0e10cSrcweir CPPUNIT_TEST( getMaxPathLength_001 ); 2696*cdf0e10cSrcweir CPPUNIT_TEST( getMaxPathLength_002 ); 2697*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2698*cdf0e10cSrcweir };// class getMaxPathLength 2699*cdf0e10cSrcweir 2700*cdf0e10cSrcweir 2701*cdf0e10cSrcweir //--------------------------------------------------------------------- 2702*cdf0e10cSrcweir // testing the method 2703*cdf0e10cSrcweir // inline ::rtl::OUString getFileSystemName() const 2704*cdf0e10cSrcweir //--------------------------------------------------------------------- 2705*cdf0e10cSrcweir class getFileSystemName : public CppUnit::TestFixture 2706*cdf0e10cSrcweir { 2707*cdf0e10cSrcweir ::rtl::OUString aUStr; 2708*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2709*cdf0e10cSrcweir 2710*cdf0e10cSrcweir public: 2711*cdf0e10cSrcweir // test code. 2712*cdf0e10cSrcweir void getFileSystemName_001( ) 2713*cdf0e10cSrcweir { 2714*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FileSystemName; 2715*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2716*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2717*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2718*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2719*cdf0e10cSrcweir aUStr = aVolumeInfo.getFileSystemName( ); 2720*cdf0e10cSrcweir 2721*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileSystemName function: get file system name of Fixed disk volume mounted on /, it should not be empty string", 2722*cdf0e10cSrcweir sal_False == compareFileName( aNullURL, aUStr ) ); 2723*cdf0e10cSrcweir } 2724*cdf0e10cSrcweir 2725*cdf0e10cSrcweir 2726*cdf0e10cSrcweir #if defined(SOLARIS) 2727*cdf0e10cSrcweir void getFileSystemName_002( ) 2728*cdf0e10cSrcweir { 2729*cdf0e10cSrcweir struct statvfs aStatFS; 2730*cdf0e10cSrcweir static const sal_Char name[] = "/"; 2731*cdf0e10cSrcweir 2732*cdf0e10cSrcweir memset (&aStatFS, 0, sizeof(aStatFS)); 2733*cdf0e10cSrcweir statvfs( name, &aStatFS); 2734*cdf0e10cSrcweir sal_Char * astrFileSystemName = aStatFS.f_basetype; 2735*cdf0e10cSrcweir 2736*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FileSystemName; 2737*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 2738*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2739*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2740*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == aVolumeInfo.isValid( mask ) ); 2741*cdf0e10cSrcweir aUStr = aVolumeInfo.getFileSystemName( ); 2742*cdf0e10cSrcweir 2743*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileSystemName function: get file system name by hand, then compare with getFileSystemName", 2744*cdf0e10cSrcweir sal_True == compareFileName( aUStr, astrFileSystemName ) ); 2745*cdf0e10cSrcweir } 2746*cdf0e10cSrcweir #else //Windows version 2747*cdf0e10cSrcweir void getFileSystemName_002( ) 2748*cdf0e10cSrcweir { 2749*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileSystemName function: not implemented yet( Windows version )", 2750*cdf0e10cSrcweir 1 == 1 ); 2751*cdf0e10cSrcweir } 2752*cdf0e10cSrcweir #endif 2753*cdf0e10cSrcweir 2754*cdf0e10cSrcweir 2755*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFileSystemName ); 2756*cdf0e10cSrcweir CPPUNIT_TEST( getFileSystemName_001 ); 2757*cdf0e10cSrcweir CPPUNIT_TEST( getFileSystemName_002 ); 2758*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2759*cdf0e10cSrcweir };// class getFileSystemName 2760*cdf0e10cSrcweir 2761*cdf0e10cSrcweir //--------------------------------------------------------------------- 2762*cdf0e10cSrcweir // testing the method 2763*cdf0e10cSrcweir // inline VolumeDevice getDeviceHandle() const 2764*cdf0e10cSrcweir //--------------------------------------------------------------------- 2765*cdf0e10cSrcweir class getDeviceHandle : public CppUnit::TestFixture 2766*cdf0e10cSrcweir { 2767*cdf0e10cSrcweir ::rtl::OUString aUStr; 2768*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 2769*cdf0e10cSrcweir 2770*cdf0e10cSrcweir public: 2771*cdf0e10cSrcweir // test code. 2772*cdf0e10cSrcweir void getDeviceHandle_001( ) 2773*cdf0e10cSrcweir { 2774*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( VolumeInfoMask_Attributes ); 2775*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 2776*cdf0e10cSrcweir CPPUNIT_ASSERT( osl::FileBase::E_None == nError1 ); 2777*cdf0e10cSrcweir 2778*cdf0e10cSrcweir ::osl::VolumeDevice aVolumeDevice1( aVolumeInfo.getDeviceHandle( ) ); 2779*cdf0e10cSrcweir sal_Bool bOk = compareFileName( aNullURL, aVolumeDevice1.getMountPath( ) ); 2780*cdf0e10cSrcweir 2781*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getDeviceHandle function: get device handle of Fixed disk volume mounted on /, it should not be NULL, it did not pass in (W32) (UNX).", 2782*cdf0e10cSrcweir ( sal_False == bOk ) ); 2783*cdf0e10cSrcweir } 2784*cdf0e10cSrcweir 2785*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getDeviceHandle ); 2786*cdf0e10cSrcweir CPPUNIT_TEST( getDeviceHandle_001 ); 2787*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2788*cdf0e10cSrcweir };// class getDeviceHandle 2789*cdf0e10cSrcweir 2790*cdf0e10cSrcweir 2791*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 2792*cdf0e10cSrcweir /*CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::ctors, "osl_VolumeInfo" ); 2793*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::isValid, "osl_VolumeInfo" ); 2794*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getRemoteFlag, "osl_VolumeInfo" ); 2795*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getRemoveableFlag, "osl_VolumeInfo" ); 2796*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getCompactDiscFlag, "osl_VolumeInfo" ); 2797*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFloppyDiskFlag, "osl_VolumeInfo" ); 2798*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFixedDiskFlag, "osl_VolumeInfo" ); 2799*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getRAMDiskFlag, "osl_VolumeInfo" ); 2800*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getTotalSpace, "osl_VolumeInfo" ); 2801*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFreeSpace, "osl_VolumeInfo" ); 2802*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getUsedSpace, "osl_VolumeInfo" ); 2803*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getMaxNameLength, "osl_VolumeInfo" ); 2804*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getMaxPathLength, "osl_VolumeInfo" ); 2805*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getFileSystemName, "osl_VolumeInfo" ); 2806*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::getDeviceHandle, "osl_VolumeInfo" );*/ 2807*cdf0e10cSrcweir }// namespace osl_VolumeInfo 2808*cdf0e10cSrcweir 2809*cdf0e10cSrcweir 2810*cdf0e10cSrcweir 2811*cdf0e10cSrcweir //------------------------------------------------------------------------ 2812*cdf0e10cSrcweir // Beginning of the test cases for VolumeDevice class 2813*cdf0e10cSrcweir //------------------------------------------------------------------------ 2814*cdf0e10cSrcweir namespace osl_FileStatus 2815*cdf0e10cSrcweir { 2816*cdf0e10cSrcweir 2817*cdf0e10cSrcweir //--------------------------------------------------------------------- 2818*cdf0e10cSrcweir // testing the method 2819*cdf0e10cSrcweir // FileStatus( sal_uInt32 nMask ): _nMask( nMask ) 2820*cdf0e10cSrcweir //--------------------------------------------------------------------- 2821*cdf0e10cSrcweir class ctors : public CppUnit::TestFixture 2822*cdf0e10cSrcweir { 2823*cdf0e10cSrcweir ::rtl::OUString aUStr; 2824*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 2825*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 2826*cdf0e10cSrcweir 2827*cdf0e10cSrcweir public: 2828*cdf0e10cSrcweir // initialization 2829*cdf0e10cSrcweir void setUp( ) 2830*cdf0e10cSrcweir { 2831*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 2832*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 2833*cdf0e10cSrcweir createTestFile( aTmpName4 ); 2834*cdf0e10cSrcweir 2835*cdf0e10cSrcweir ::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) ); 2836*cdf0e10cSrcweir nError1 = pDir->open( ); 2837*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2838*cdf0e10cSrcweir nError1 = pDir->getNextItem( rItem, 0 ); 2839*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2840*cdf0e10cSrcweir pDir->close(); 2841*cdf0e10cSrcweir /* 2842*cdf0e10cSrcweir Directory aDir( aTmpName3 ); 2843*cdf0e10cSrcweir nError1 = aDir.open(); 2844*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2845*cdf0e10cSrcweir nError1 = aDir.getNextItem( rItem, 0 ); 2846*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2847*cdf0e10cSrcweir aDir.close(); 2848*cdf0e10cSrcweir */ 2849*cdf0e10cSrcweir } 2850*cdf0e10cSrcweir 2851*cdf0e10cSrcweir void tearDown( ) 2852*cdf0e10cSrcweir { 2853*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 2854*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 2855*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 2856*cdf0e10cSrcweir } 2857*cdf0e10cSrcweir 2858*cdf0e10cSrcweir // test code. 2859*cdf0e10cSrcweir void ctors_001( ) 2860*cdf0e10cSrcweir { 2861*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_All ); 2862*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 2863*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2864*cdf0e10cSrcweir aUStr = rFileStatus.getFileName( ); 2865*cdf0e10cSrcweir 2866*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask all and see the file name", 2867*cdf0e10cSrcweir sal_True == compareFileName( aUStr, aTmpName2) ); 2868*cdf0e10cSrcweir } 2869*cdf0e10cSrcweir 2870*cdf0e10cSrcweir void ctors_002( ) 2871*cdf0e10cSrcweir { 2872*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( 0 ); 2873*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 2874*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2875*cdf0e10cSrcweir aUStr = rFileStatus.getFileName( ); 2876*cdf0e10cSrcweir 2877*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: mask is empty", 2878*cdf0e10cSrcweir sal_True == compareFileName( aUStr, aNullURL) ); 2879*cdf0e10cSrcweir } 2880*cdf0e10cSrcweir 2881*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( ctors ); 2882*cdf0e10cSrcweir CPPUNIT_TEST( ctors_001 ); 2883*cdf0e10cSrcweir CPPUNIT_TEST( ctors_002 ); 2884*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 2885*cdf0e10cSrcweir };// class ctors 2886*cdf0e10cSrcweir 2887*cdf0e10cSrcweir 2888*cdf0e10cSrcweir //--------------------------------------------------------------------- 2889*cdf0e10cSrcweir // testing the method 2890*cdf0e10cSrcweir // inline sal_Bool isValid( sal_uInt32 nMask ) const 2891*cdf0e10cSrcweir //--------------------------------------------------------------------- 2892*cdf0e10cSrcweir class isValid : public CppUnit::TestFixture 2893*cdf0e10cSrcweir { 2894*cdf0e10cSrcweir ::rtl::OUString aUStr; 2895*cdf0e10cSrcweir ::osl::Directory *pDir; 2896*cdf0e10cSrcweir ::osl::DirectoryItem rItem_file, rItem_link; 2897*cdf0e10cSrcweir 2898*cdf0e10cSrcweir public: 2899*cdf0e10cSrcweir // initialization 2900*cdf0e10cSrcweir void setUp( ) 2901*cdf0e10cSrcweir { 2902*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 2903*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 2904*cdf0e10cSrcweir createTestFile( aTmpName4 ); 2905*cdf0e10cSrcweir 2906*cdf0e10cSrcweir pDir = new Directory( aTmpName3 ); 2907*cdf0e10cSrcweir //::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) ); 2908*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = pDir->open( ); 2909*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2910*cdf0e10cSrcweir nError1 = pDir->getNextItem( rItem_file, 1 ); 2911*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2912*cdf0e10cSrcweir } 2913*cdf0e10cSrcweir 2914*cdf0e10cSrcweir void tearDown( ) 2915*cdf0e10cSrcweir { 2916*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = pDir->close( ); 2917*cdf0e10cSrcweir delete pDir; 2918*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr(nError1), ::osl::FileBase::E_None == nError1 ); 2919*cdf0e10cSrcweir 2920*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 2921*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 2922*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 2923*cdf0e10cSrcweir } 2924*cdf0e10cSrcweir 2925*cdf0e10cSrcweir // test code. 2926*cdf0e10cSrcweir void isValid_001( ) 2927*cdf0e10cSrcweir { 2928*cdf0e10cSrcweir sal_uInt32 mask = 0; 2929*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( mask ); 2930*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = rItem_file.getFileStatus( rFileStatus ); 2931*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 2932*cdf0e10cSrcweir sal_Bool bOk = rFileStatus.isValid( mask ); 2933*cdf0e10cSrcweir 2934*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isValid function: no fields specified", 2935*cdf0e10cSrcweir ( sal_True == bOk ) ); 2936*cdf0e10cSrcweir } 2937*cdf0e10cSrcweir 2938*cdf0e10cSrcweir void check_FileStatus(::osl::FileStatus const& _aStatus) 2939*cdf0e10cSrcweir { 2940*cdf0e10cSrcweir rtl::OString sStat; 2941*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_Type)) 2942*cdf0e10cSrcweir { 2943*cdf0e10cSrcweir sStat += "type "; 2944*cdf0e10cSrcweir } 2945*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_Attributes)) 2946*cdf0e10cSrcweir { 2947*cdf0e10cSrcweir sStat += "attributes "; 2948*cdf0e10cSrcweir } 2949*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_CreationTime)) 2950*cdf0e10cSrcweir { 2951*cdf0e10cSrcweir sStat += "ctime "; 2952*cdf0e10cSrcweir } 2953*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_AccessTime)) 2954*cdf0e10cSrcweir { 2955*cdf0e10cSrcweir sStat += "atime "; 2956*cdf0e10cSrcweir } 2957*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_ModifyTime)) 2958*cdf0e10cSrcweir { 2959*cdf0e10cSrcweir sStat += "mtime "; 2960*cdf0e10cSrcweir } 2961*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_FileSize)) 2962*cdf0e10cSrcweir { 2963*cdf0e10cSrcweir sStat += "filesize "; 2964*cdf0e10cSrcweir } 2965*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_FileName)) 2966*cdf0e10cSrcweir { 2967*cdf0e10cSrcweir sStat += "filename "; 2968*cdf0e10cSrcweir } 2969*cdf0e10cSrcweir if (_aStatus.isValid(FileStatusMask_FileURL)) 2970*cdf0e10cSrcweir { 2971*cdf0e10cSrcweir sStat += "fileurl "; 2972*cdf0e10cSrcweir } 2973*cdf0e10cSrcweir t_print("mask: %s\n", sStat.getStr()); 2974*cdf0e10cSrcweir } 2975*cdf0e10cSrcweir 2976*cdf0e10cSrcweir void isValid_002( ) 2977*cdf0e10cSrcweir { 2978*cdf0e10cSrcweir createTestFile( aTmpName6 ); 2979*cdf0e10cSrcweir sal_uInt32 mask_file = ( FileStatusMask_Type | FileStatusMask_Attributes | 2980*cdf0e10cSrcweir FileStatusMask_CreationTime | FileStatusMask_AccessTime | 2981*cdf0e10cSrcweir FileStatusMask_ModifyTime | FileStatusMask_FileSize | 2982*cdf0e10cSrcweir FileStatusMask_FileName | FileStatusMask_FileURL) ; 2983*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( mask_file ); 2984*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem_file ); 2985*cdf0e10cSrcweir nError1 = rItem_file.getFileStatus( rFileStatus ); 2986*cdf0e10cSrcweir 2987*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr(nError1), ::osl::FileBase::E_None == nError1 ); 2988*cdf0e10cSrcweir 2989*cdf0e10cSrcweir // LLA: this is wrong, we never should try to check on all masks 2990*cdf0e10cSrcweir // only on one. 2991*cdf0e10cSrcweir // Second, it's not a bug, if a value is not valid, it's an unhandled feature. 2992*cdf0e10cSrcweir 2993*cdf0e10cSrcweir // sal_Bool bOk = rFileStatus.isValid( mask_file ); 2994*cdf0e10cSrcweir 2995*cdf0e10cSrcweir check_FileStatus(rFileStatus); 2996*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 2997*cdf0e10cSrcweir 2998*cdf0e10cSrcweir // CPPUNIT_ASSERT_MESSAGE( "test for isValid function: regular file mask fields test, #FileStatusMask_CreationTime# should be valid field for regular file, but feedback is invalid", 2999*cdf0e10cSrcweir // ( sal_True == bOk ) ); 3000*cdf0e10cSrcweir } 3001*cdf0e10cSrcweir 3002*cdf0e10cSrcweir //Link is not defined in Windows, and on Linux, we can not get the directory item of the link file 3003*cdf0e10cSrcweir // LLA: we have to differ to filesystems, normal filesystems support links (EXT2, ...) 3004*cdf0e10cSrcweir // castrated filesystems don't (FAT, FAT32) 3005*cdf0e10cSrcweir // Windows NT NTFS support links, but the windows api don't :-( 3006*cdf0e10cSrcweir 3007*cdf0e10cSrcweir void isValid_003( ) 3008*cdf0e10cSrcweir { 3009*cdf0e10cSrcweir #if defined ( UNX ) 3010*cdf0e10cSrcweir // ::osl::FileBase::RC nError; 3011*cdf0e10cSrcweir sal_Int32 fd; 3012*cdf0e10cSrcweir 3013*cdf0e10cSrcweir ::rtl::OUString aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys ); 3014*cdf0e10cSrcweir ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/tmpdir/link.file"); 3015*cdf0e10cSrcweir ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/tmpdir/tmpname"); 3016*cdf0e10cSrcweir 3017*cdf0e10cSrcweir rtl::OString strLinkFileName; 3018*cdf0e10cSrcweir rtl::OString strSrcFileName; 3019*cdf0e10cSrcweir strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US ); 3020*cdf0e10cSrcweir strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US ); 3021*cdf0e10cSrcweir 3022*cdf0e10cSrcweir //create a link file and link it to file "/tmp/PID/tmpdir/tmpname" 3023*cdf0e10cSrcweir fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() ); 3024*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 3025*cdf0e10cSrcweir 3026*cdf0e10cSrcweir // testDirectory is "/tmp/PID/tmpdir/" 3027*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); 3028*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = testDirectory.open( ); 3029*cdf0e10cSrcweir ::rtl::OUString aFileName = ::rtl::OUString::createFromAscii("link.file"); 3030*cdf0e10cSrcweir sal_Bool bOk = sal_False; 3031*cdf0e10cSrcweir while (1) { 3032*cdf0e10cSrcweir nError1 = testDirectory.getNextItem( rItem_link, 4 ); 3033*cdf0e10cSrcweir if (::osl::FileBase::E_None == nError1) { 3034*cdf0e10cSrcweir sal_uInt32 mask_link = FileStatusMask_FileName | FileStatusMask_LinkTargetURL; 3035*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( mask_link ); 3036*cdf0e10cSrcweir rItem_link.getFileStatus( rFileStatus ); 3037*cdf0e10cSrcweir //printFileName( rFileStatus.getFileName( ) ); 3038*cdf0e10cSrcweir if ( compareFileName( rFileStatus.getFileName( ), aFileName) == sal_True ) 3039*cdf0e10cSrcweir { 3040*cdf0e10cSrcweir //t_print("find the link file"); 3041*cdf0e10cSrcweir if ( sal_True == rFileStatus.isValid( FileStatusMask_LinkTargetURL ) ) 3042*cdf0e10cSrcweir { 3043*cdf0e10cSrcweir bOk = sal_True; 3044*cdf0e10cSrcweir break; 3045*cdf0e10cSrcweir } 3046*cdf0e10cSrcweir } 3047*cdf0e10cSrcweir } 3048*cdf0e10cSrcweir else 3049*cdf0e10cSrcweir break; 3050*cdf0e10cSrcweir }; 3051*cdf0e10cSrcweir 3052*cdf0e10cSrcweir fd = remove( strLinkFileName ); 3053*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 3054*cdf0e10cSrcweir 3055*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("test for isValid function: link file, check for LinkTargetURL", 3056*cdf0e10cSrcweir ( sal_True == bOk ) ); 3057*cdf0e10cSrcweir #endif 3058*cdf0e10cSrcweir } 3059*cdf0e10cSrcweir 3060*cdf0e10cSrcweir void isValid_004( ) 3061*cdf0e10cSrcweir { 3062*cdf0e10cSrcweir sal_uInt32 mask_file_all = FileStatusMask_All; 3063*cdf0e10cSrcweir ::osl::FileStatus rFileStatus_all( mask_file_all ); 3064*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = rItem_file.getFileStatus( rFileStatus_all ); 3065*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3066*cdf0e10cSrcweir 3067*cdf0e10cSrcweir check_FileStatus(rFileStatus_all); 3068*cdf0e10cSrcweir // LLA: this is wrong 3069*cdf0e10cSrcweir // sal_Bool bOk1 = rFileStatus_all.isValid( mask_file_all ); 3070*cdf0e10cSrcweir 3071*cdf0e10cSrcweir sal_uInt32 mask_file_val = FileStatusMask_Validate; 3072*cdf0e10cSrcweir ::osl::FileStatus rFileStatus_val( mask_file_val ); 3073*cdf0e10cSrcweir nError1 = rItem_file.getFileStatus( rFileStatus_val ); 3074*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3075*cdf0e10cSrcweir // sal_Bool bOk2 = rFileStatus_val.isValid( mask_file_val ); 3076*cdf0e10cSrcweir 3077*cdf0e10cSrcweir check_FileStatus(rFileStatus_val); 3078*cdf0e10cSrcweir // CPPUNIT_ASSERT_MESSAGE( "test for isValid function: check for Mask_All and Validate, really not sure what validate used for and how to use it, help me. did not pass (W32)(UNX).", 3079*cdf0e10cSrcweir // ( sal_False == bOk1 ) && ( sal_True == bOk2 ) ); 3080*cdf0e10cSrcweir } 3081*cdf0e10cSrcweir 3082*cdf0e10cSrcweir 3083*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( isValid ); 3084*cdf0e10cSrcweir CPPUNIT_TEST( isValid_001 ); 3085*cdf0e10cSrcweir CPPUNIT_TEST( isValid_002 ); 3086*cdf0e10cSrcweir CPPUNIT_TEST( isValid_003 ); 3087*cdf0e10cSrcweir CPPUNIT_TEST( isValid_004 ); 3088*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3089*cdf0e10cSrcweir };// class ctors 3090*cdf0e10cSrcweir 3091*cdf0e10cSrcweir 3092*cdf0e10cSrcweir //--------------------------------------------------------------------- 3093*cdf0e10cSrcweir // testing the method 3094*cdf0e10cSrcweir // inline Type getFileType() const 3095*cdf0e10cSrcweir //--------------------------------------------------------------------- 3096*cdf0e10cSrcweir class getFileType : public CppUnit::TestFixture 3097*cdf0e10cSrcweir { 3098*cdf0e10cSrcweir ::rtl::OUString aUStr; 3099*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 3100*cdf0e10cSrcweir 3101*cdf0e10cSrcweir ::osl::DirectoryItem m_aItem_1, m_aItem_2, m_aVolumeItem, m_aFifoItem; 3102*cdf0e10cSrcweir ::osl::DirectoryItem m_aLinkItem, m_aSocketItem, m_aSpecialItem; 3103*cdf0e10cSrcweir 3104*cdf0e10cSrcweir public: 3105*cdf0e10cSrcweir // initialization 3106*cdf0e10cSrcweir void setUp( ) 3107*cdf0e10cSrcweir { 3108*cdf0e10cSrcweir // create a tempfile: $TEMP/tmpdir/tmpname. 3109*cdf0e10cSrcweir // a tempdirectory: $TEMP/tmpdir/tmpdir. 3110*cdf0e10cSrcweir // use $ROOT/staroffice as volume ---> use dev/fd as volume. 3111*cdf0e10cSrcweir // and get their directory item. 3112*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 3113*cdf0e10cSrcweir //printFileName( aTmpName2); 3114*cdf0e10cSrcweir createTestFile( aTmpName3, aTmpName2 ); 3115*cdf0e10cSrcweir createTestDirectory( aTmpName3, aTmpName1 ); 3116*cdf0e10cSrcweir 3117*cdf0e10cSrcweir ::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) ); 3118*cdf0e10cSrcweir nError1 = pDir->open( ); 3119*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("open aTmpName3 failed!", ::osl::FileBase::E_None == nError1 ); 3120*cdf0e10cSrcweir //getNextItem can not assure which item retrieved 3121*cdf0e10cSrcweir nError1 = pDir->getNextItem( m_aItem_1, 1 ); 3122*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("get first item failed!", ::osl::FileBase::E_None == nError1 ); 3123*cdf0e10cSrcweir 3124*cdf0e10cSrcweir nError1 = pDir->getNextItem( m_aItem_2 ); 3125*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("get second item failed!", ::osl::FileBase::E_None == nError1 ); 3126*cdf0e10cSrcweir pDir->close(); 3127*cdf0e10cSrcweir //mindy: failed on my RH9,so removed temporaly 3128*cdf0e10cSrcweir //nError1 = ::osl::DirectoryItem::get( aVolURL2, m_aVolumeItem ); 3129*cdf0e10cSrcweir //CPPUNIT_ASSERT_MESSAGE("get volume item failed!", ::osl::FileBase::E_None == nError1 ); 3130*cdf0e10cSrcweir 3131*cdf0e10cSrcweir } 3132*cdf0e10cSrcweir 3133*cdf0e10cSrcweir void tearDown( ) 3134*cdf0e10cSrcweir { 3135*cdf0e10cSrcweir // remove all in $TEMP/tmpdir. 3136*cdf0e10cSrcweir deleteTestDirectory( aTmpName3, aTmpName1 ); 3137*cdf0e10cSrcweir deleteTestFile( aTmpName3, aTmpName2 ); 3138*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 3139*cdf0e10cSrcweir } 3140*cdf0e10cSrcweir 3141*cdf0e10cSrcweir // test code. 3142*cdf0e10cSrcweir void getFileType_001( ) 3143*cdf0e10cSrcweir { 3144*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Type | FileStatusMask_FileName ); 3145*cdf0e10cSrcweir nError1 = m_aItem_1.getFileStatus( rFileStatus ); 3146*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("getFileStatus failed", ::osl::FileBase::E_None == nError1 ); 3147*cdf0e10cSrcweir 3148*cdf0e10cSrcweir check_FileType(rFileStatus); 3149*cdf0e10cSrcweir } 3150*cdf0e10cSrcweir 3151*cdf0e10cSrcweir void check_FileType(osl::FileStatus const& _rFileStatus ) 3152*cdf0e10cSrcweir { 3153*cdf0e10cSrcweir sal_Bool bOK = sal_False; 3154*cdf0e10cSrcweir if ( _rFileStatus.isValid(FileStatusMask_FileName)) 3155*cdf0e10cSrcweir { 3156*cdf0e10cSrcweir rtl::OUString suFilename = _rFileStatus.getFileName(); 3157*cdf0e10cSrcweir 3158*cdf0e10cSrcweir if ( _rFileStatus.isValid(FileStatusMask_Type)) 3159*cdf0e10cSrcweir { 3160*cdf0e10cSrcweir osl::FileStatus::Type eType = _rFileStatus.getFileType( ); 3161*cdf0e10cSrcweir 3162*cdf0e10cSrcweir if ( compareFileName( suFilename, aTmpName2) == sal_True ) 3163*cdf0e10cSrcweir { 3164*cdf0e10cSrcweir // regular 3165*cdf0e10cSrcweir bOK = ( eType == osl::FileStatus::Regular ); 3166*cdf0e10cSrcweir } 3167*cdf0e10cSrcweir if ( compareFileName( suFilename, aTmpName1) == sal_True ) 3168*cdf0e10cSrcweir { 3169*cdf0e10cSrcweir // directory 3170*cdf0e10cSrcweir bOK = ( eType == ::osl::FileStatus::Directory ); 3171*cdf0e10cSrcweir } 3172*cdf0e10cSrcweir 3173*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: ", 3174*cdf0e10cSrcweir ( bOK == sal_True ) ); 3175*cdf0e10cSrcweir } 3176*cdf0e10cSrcweir } 3177*cdf0e10cSrcweir // LLA: it's not a bug, if a FileStatus not exist, so no else 3178*cdf0e10cSrcweir } 3179*cdf0e10cSrcweir 3180*cdf0e10cSrcweir void getFileType_002( ) 3181*cdf0e10cSrcweir { 3182*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Type | FileStatusMask_FileName ); 3183*cdf0e10cSrcweir nError1 = m_aItem_2.getFileStatus( rFileStatus ); 3184*cdf0e10cSrcweir 3185*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3186*cdf0e10cSrcweir check_FileType(rFileStatus); 3187*cdf0e10cSrcweir } 3188*cdf0e10cSrcweir 3189*cdf0e10cSrcweir void getFileType_003( ) 3190*cdf0e10cSrcweir { 3191*cdf0e10cSrcweir #if 0 3192*cdf0e10cSrcweir // LLA: this have to be discussed. 3193*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Type ); 3194*cdf0e10cSrcweir nError1 = m_aVolumeItem.getFileStatus( rFileStatus ); 3195*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3196*cdf0e10cSrcweir 3197*cdf0e10cSrcweir if (rFileStatus.isValid(FileStatusMask_Type)) 3198*cdf0e10cSrcweir { 3199*cdf0e10cSrcweir osl::FileStatus::Type eType = rFileStatus.getFileType( ); 3200*cdf0e10cSrcweir 3201*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Volume, it seems the volume part of the field is not implemented, it did not pass in (W32)(UNX).", 3202*cdf0e10cSrcweir ( eType == ::osl::FileStatus::Volume ) ); 3203*cdf0e10cSrcweir } 3204*cdf0e10cSrcweir #endif 3205*cdf0e10cSrcweir } 3206*cdf0e10cSrcweir 3207*cdf0e10cSrcweir 3208*cdf0e10cSrcweir void getFileType_004( ) 3209*cdf0e10cSrcweir { 3210*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //Fifo creation is differ in Windows 3211*cdf0e10cSrcweir 3212*cdf0e10cSrcweir //create a fifo in $ROOT/tmp/tmpdir, get its DirectoryItem. 3213*cdf0e10cSrcweir rtl::OString strFifoSys; 3214*cdf0e10cSrcweir strFifoSys = OUStringToOString( aFifoSys, RTL_TEXTENCODING_ASCII_US ); 3215*cdf0e10cSrcweir ::rtl::OUString aFifoURL; 3216*cdf0e10cSrcweir 3217*cdf0e10cSrcweir int fd = mkfifo( strFifoSys.getStr(), O_RDWR | O_CREAT ); 3218*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("mkfifo failed!", fd == 0 ); 3219*cdf0e10cSrcweir ::osl::FileBase::getFileURLFromSystemPath( aFifoSys, aFifoURL ); 3220*cdf0e10cSrcweir 3221*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aFifoURL, m_aFifoItem ); 3222*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("get item failed!", ::osl::FileBase::E_None == nError1 ); 3223*cdf0e10cSrcweir 3224*cdf0e10cSrcweir //check for File type 3225*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Type ); 3226*cdf0e10cSrcweir nError1 = m_aFifoItem.getFileStatus( rFileStatus ); 3227*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("get Status failed!", ::osl::FileBase::E_None == nError1 ); 3228*cdf0e10cSrcweir 3229*cdf0e10cSrcweir //delete fifo 3230*cdf0e10cSrcweir nError1 = ::osl::File::remove( aFifoURL ); 3231*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("remove file failed!", ::osl::FileBase::E_None == nError1 ); 3232*cdf0e10cSrcweir 3233*cdf0e10cSrcweir if (rFileStatus.isValid(FileStatusMask_Type)) 3234*cdf0e10cSrcweir { 3235*cdf0e10cSrcweir osl::FileStatus::Type eType = rFileStatus.getFileType( ); 3236*cdf0e10cSrcweir 3237*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Fifo, Solaris version ", 3238*cdf0e10cSrcweir ( eType == ::osl::FileStatus::Fifo ) ); 3239*cdf0e10cSrcweir } 3240*cdf0e10cSrcweir #endif 3241*cdf0e10cSrcweir } 3242*cdf0e10cSrcweir 3243*cdf0e10cSrcweir /* 3244*cdf0e10cSrcweir * LLA: removed, m_aSocketItem is wrong initialised. 3245*cdf0e10cSrcweir */ 3246*cdf0e10cSrcweir 3247*cdf0e10cSrcweir // LLA: void getFileType_005( ) 3248*cdf0e10cSrcweir // LLA: { 3249*cdf0e10cSrcweir // LLA: #if defined ( SOLARIS ) //Socket file may differ in Windows 3250*cdf0e10cSrcweir // LLA: // nError1 = ::osl::DirectoryItem::get( aTypeURL1, m_aSocketItem ); 3251*cdf0e10cSrcweir // LLA: nError1 = ::osl::DirectoryItem::get( rtl::OUString::createFromAscii("/dev/null"), m_aSocketItem ); 3252*cdf0e10cSrcweir // LLA: printError(nError1); 3253*cdf0e10cSrcweir // LLA: CPPUNIT_ASSERT_MESSAGE("get Socket type file failed", ::osl::FileBase::E_None == nError1 ); 3254*cdf0e10cSrcweir // LLA: 3255*cdf0e10cSrcweir // LLA: //check for File type 3256*cdf0e10cSrcweir // LLA: ::osl::FileStatus rFileStatus( FileStatusMask_Type ); 3257*cdf0e10cSrcweir // LLA: 3258*cdf0e10cSrcweir // LLA: nError1 = m_aSocketItem.getFileStatus( rFileStatus ); 3259*cdf0e10cSrcweir // LLA: CPPUNIT_ASSERT_MESSAGE("getFileStatus failed", ::osl::FileBase::E_None == nError1 ); 3260*cdf0e10cSrcweir // LLA: 3261*cdf0e10cSrcweir // LLA: if (rFileStatus.isValid( FileStatusMask_Type )) 3262*cdf0e10cSrcweir // LLA: { 3263*cdf0e10cSrcweir // LLA: osl::FileStatus::Type eType = rFileStatus.getFileType( ); 3264*cdf0e10cSrcweir // LLA: printFileType(eType); 3265*cdf0e10cSrcweir // LLA: CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Socket, Solaris version ", 3266*cdf0e10cSrcweir // LLA: ( eType == ::osl::FileStatus::Socket ) ); 3267*cdf0e10cSrcweir // LLA: } 3268*cdf0e10cSrcweir // LLA: #endif 3269*cdf0e10cSrcweir // LLA: } 3270*cdf0e10cSrcweir 3271*cdf0e10cSrcweir 3272*cdf0e10cSrcweir // deprecated since there is a same case Directory::getNextItem_004 3273*cdf0e10cSrcweir /*#if defined 0 //( UNX ) //( SOLARIS ) //Link file is not defined in Windows 3274*cdf0e10cSrcweir void getFileType_006( ) 3275*cdf0e10cSrcweir { 3276*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTypeURL3, m_aLinkItem ); 3277*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3278*cdf0e10cSrcweir 3279*cdf0e10cSrcweir //check for File type 3280*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Type ); 3281*cdf0e10cSrcweir nError1 = m_aLinkItem.getFileStatus( rFileStatus ); 3282*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3283*cdf0e10cSrcweir 3284*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Link, UNX version ", 3285*cdf0e10cSrcweir ( ::osl::FileStatus::Link == rFileStatus.getFileType( ) ) ); 3286*cdf0e10cSrcweir } 3287*cdf0e10cSrcweir #endif */ 3288*cdf0e10cSrcweir 3289*cdf0e10cSrcweir void getFileType_007( ) 3290*cdf0e10cSrcweir { 3291*cdf0e10cSrcweir #if defined ( SOLARIS ) //Special file is differ in Windows 3292*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTypeURL2, m_aSpecialItem ); 3293*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3294*cdf0e10cSrcweir 3295*cdf0e10cSrcweir //check for File type 3296*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Type ); 3297*cdf0e10cSrcweir nError1 = m_aSpecialItem.getFileStatus( rFileStatus ); 3298*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 3299*cdf0e10cSrcweir 3300*cdf0e10cSrcweir if (rFileStatus.isValid(FileStatusMask_Type)) 3301*cdf0e10cSrcweir { 3302*cdf0e10cSrcweir osl::FileStatus::Type eType = rFileStatus.getFileType( ); 3303*cdf0e10cSrcweir 3304*cdf0e10cSrcweir 3305*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Special, Solaris version ", 3306*cdf0e10cSrcweir ( eType == ::osl::FileStatus::Special ) ); 3307*cdf0e10cSrcweir } 3308*cdf0e10cSrcweir #endif 3309*cdf0e10cSrcweir } 3310*cdf0e10cSrcweir 3311*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFileType ); 3312*cdf0e10cSrcweir CPPUNIT_TEST( getFileType_001 ); 3313*cdf0e10cSrcweir CPPUNIT_TEST( getFileType_002 ); 3314*cdf0e10cSrcweir CPPUNIT_TEST( getFileType_003 ); 3315*cdf0e10cSrcweir CPPUNIT_TEST( getFileType_004 ); 3316*cdf0e10cSrcweir // LLA: CPPUNIT_TEST( getFileType_005 ); 3317*cdf0e10cSrcweir //CPPUNIT_TEST( getFileType_006 ); 3318*cdf0e10cSrcweir CPPUNIT_TEST( getFileType_007 ); 3319*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3320*cdf0e10cSrcweir };// class getFileType 3321*cdf0e10cSrcweir 3322*cdf0e10cSrcweir //--------------------------------------------------------------------- 3323*cdf0e10cSrcweir // testing the method 3324*cdf0e10cSrcweir // inline sal_uInt64 getAttributes() const 3325*cdf0e10cSrcweir //--------------------------------------------------------------------- 3326*cdf0e10cSrcweir class getAttributes : public CppUnit::TestFixture 3327*cdf0e10cSrcweir { 3328*cdf0e10cSrcweir ::rtl::OUString aTypeURL, aTypeURL_Hid; 3329*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3330*cdf0e10cSrcweir ::osl::DirectoryItem rItem, rItem_hidden; 3331*cdf0e10cSrcweir 3332*cdf0e10cSrcweir public: 3333*cdf0e10cSrcweir // initialization 3334*cdf0e10cSrcweir void setUp( ) 3335*cdf0e10cSrcweir { 3336*cdf0e10cSrcweir aTypeURL = aUserDirectoryURL.copy( 0 ); 3337*cdf0e10cSrcweir concatURL( aTypeURL, aTmpName2 ); 3338*cdf0e10cSrcweir createTestFile( aTypeURL ); 3339*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL, rItem ); 3340*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3341*cdf0e10cSrcweir 3342*cdf0e10cSrcweir aTypeURL_Hid = aUserDirectoryURL.copy( 0 ); 3343*cdf0e10cSrcweir concatURL( aTypeURL_Hid, aHidURL1 ); 3344*cdf0e10cSrcweir createTestFile( aTypeURL_Hid ); 3345*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL_Hid, rItem_hidden ); 3346*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3347*cdf0e10cSrcweir } 3348*cdf0e10cSrcweir 3349*cdf0e10cSrcweir void tearDown( ) 3350*cdf0e10cSrcweir { 3351*cdf0e10cSrcweir deleteTestFile( aTypeURL ); 3352*cdf0e10cSrcweir deleteTestFile( aTypeURL_Hid ); 3353*cdf0e10cSrcweir } 3354*cdf0e10cSrcweir 3355*cdf0e10cSrcweir // test code. 3356*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 3357*cdf0e10cSrcweir //windows only 3 file attributes: normal, readonly, hidden 3358*cdf0e10cSrcweir void getAttributes_001( ) 3359*cdf0e10cSrcweir { 3360*cdf0e10cSrcweir changeFileMode( aTypeURL, S_IRUSR | S_IRGRP | S_IROTH ); 3361*cdf0e10cSrcweir 3362*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 3363*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3364*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3365*cdf0e10cSrcweir 3366*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: ReadOnly, GrpRead, OwnRead, OthRead( UNX version ) ", 3367*cdf0e10cSrcweir ( Attribute_ReadOnly | Attribute_GrpRead | Attribute_OwnRead | Attribute_OthRead ) == 3368*cdf0e10cSrcweir rFileStatus.getAttributes( ) ); 3369*cdf0e10cSrcweir } 3370*cdf0e10cSrcweir #else //Windows version 3371*cdf0e10cSrcweir void getAttributes_001( ) 3372*cdf0e10cSrcweir { 3373*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: ReadOnly, GrpRead, OwnRead, OthRead( Windows version )", 3374*cdf0e10cSrcweir 1 == 1 ); 3375*cdf0e10cSrcweir } 3376*cdf0e10cSrcweir #endif 3377*cdf0e10cSrcweir 3378*cdf0e10cSrcweir 3379*cdf0e10cSrcweir void getAttributes_002( ) 3380*cdf0e10cSrcweir { 3381*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 3382*cdf0e10cSrcweir changeFileMode( aTypeURL, S_IXUSR | S_IXGRP | S_IXOTH ); 3383*cdf0e10cSrcweir 3384*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 3385*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3386*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3387*cdf0e10cSrcweir 3388*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: Executable, GrpExe, OwnExe, OthExe, the result is Readonly, Executable, GrpExe, OwnExe, OthExe, it partly not pass( Solaris version )", 3389*cdf0e10cSrcweir ( Attribute_ReadOnly | Attribute_Executable | Attribute_GrpExe | Attribute_OwnExe | Attribute_OthExe ) == 3390*cdf0e10cSrcweir rFileStatus.getAttributes( ) ); 3391*cdf0e10cSrcweir #endif 3392*cdf0e10cSrcweir } 3393*cdf0e10cSrcweir 3394*cdf0e10cSrcweir 3395*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 3396*cdf0e10cSrcweir void getAttributes_003( ) 3397*cdf0e10cSrcweir { 3398*cdf0e10cSrcweir changeFileMode( aTypeURL, S_IWUSR | S_IWGRP | S_IWOTH ); 3399*cdf0e10cSrcweir 3400*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 3401*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3402*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3403*cdf0e10cSrcweir 3404*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: GrpWrite, OwnWrite, OthWrite( Solaris version )", 3405*cdf0e10cSrcweir ( Attribute_GrpWrite | Attribute_OwnWrite | Attribute_OthWrite ) == 3406*cdf0e10cSrcweir rFileStatus.getAttributes( ) ); 3407*cdf0e10cSrcweir } 3408*cdf0e10cSrcweir #else //Windows version 3409*cdf0e10cSrcweir void getAttributes_003( ) 3410*cdf0e10cSrcweir { 3411*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: GrpWrite, OwnWrite, OthWrite( Windows version )", 3412*cdf0e10cSrcweir 1 == 1 ); 3413*cdf0e10cSrcweir } 3414*cdf0e10cSrcweir #endif 3415*cdf0e10cSrcweir 3416*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //hidden file definition may different in Windows 3417*cdf0e10cSrcweir void getAttributes_004( ) 3418*cdf0e10cSrcweir { 3419*cdf0e10cSrcweir sal_Int32 test_Attributes = Attribute_Hidden; 3420*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 3421*cdf0e10cSrcweir nError = rItem_hidden.getFileStatus( rFileStatus ); 3422*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3423*cdf0e10cSrcweir test_Attributes &= rFileStatus.getAttributes( ); 3424*cdf0e10cSrcweir 3425*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAttributes function: Hidden files( Solaris version )", 3426*cdf0e10cSrcweir test_Attributes == Attribute_Hidden ); 3427*cdf0e10cSrcweir } 3428*cdf0e10cSrcweir #else //Windows version 3429*cdf0e10cSrcweir void getAttributes_004( ) 3430*cdf0e10cSrcweir { 3431*cdf0e10cSrcweir ::rtl::OUString aUserHiddenFileURL = ::rtl::OUString::createFromAscii("file:///c:/AUTOEXEC.BAT"); 3432*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aUserHiddenFileURL, rItem_hidden ); 3433*cdf0e10cSrcweir //printFileName( aUserHiddenFileURL ); 3434*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("get item fail", nError == FileBase::E_None ); 3435*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 3436*cdf0e10cSrcweir nError = rItem_hidden.getFileStatus( rFileStatus ); 3437*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3438*cdf0e10cSrcweir 3439*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "Hidden files(Windows version), please check if hidden file c:/AUTOEXEC.BAT exists ", 3440*cdf0e10cSrcweir (rFileStatus.getAttributes( ) & Attribute_Hidden)!= 0 ); 3441*cdf0e10cSrcweir } 3442*cdf0e10cSrcweir #endif 3443*cdf0e10cSrcweir 3444*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getAttributes ); 3445*cdf0e10cSrcweir CPPUNIT_TEST( getAttributes_001 ); 3446*cdf0e10cSrcweir CPPUNIT_TEST( getAttributes_002 ); 3447*cdf0e10cSrcweir CPPUNIT_TEST( getAttributes_003 ); 3448*cdf0e10cSrcweir CPPUNIT_TEST( getAttributes_004 ); 3449*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3450*cdf0e10cSrcweir };// class getAttributes 3451*cdf0e10cSrcweir 3452*cdf0e10cSrcweir //--------------------------------------------------------------------- 3453*cdf0e10cSrcweir // testing the method 3454*cdf0e10cSrcweir // inline TimeValue getAccessTime() const 3455*cdf0e10cSrcweir //--------------------------------------------------------------------- 3456*cdf0e10cSrcweir class getAccessTime : public CppUnit::TestFixture 3457*cdf0e10cSrcweir { 3458*cdf0e10cSrcweir ::rtl::OUString aTypeURL; 3459*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3460*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 3461*cdf0e10cSrcweir 3462*cdf0e10cSrcweir public: 3463*cdf0e10cSrcweir // initialization 3464*cdf0e10cSrcweir void setUp( ) 3465*cdf0e10cSrcweir { 3466*cdf0e10cSrcweir aTypeURL = aUserDirectoryURL.copy( 0 ); 3467*cdf0e10cSrcweir concatURL( aTypeURL, aTmpName2 ); 3468*cdf0e10cSrcweir createTestFile( aTypeURL ); 3469*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL, rItem ); 3470*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3471*cdf0e10cSrcweir 3472*cdf0e10cSrcweir } 3473*cdf0e10cSrcweir 3474*cdf0e10cSrcweir void tearDown( ) 3475*cdf0e10cSrcweir { 3476*cdf0e10cSrcweir deleteTestFile( aTypeURL ); 3477*cdf0e10cSrcweir } 3478*cdf0e10cSrcweir 3479*cdf0e10cSrcweir // test code. 3480*cdf0e10cSrcweir void getAccessTime_001( ) 3481*cdf0e10cSrcweir { 3482*cdf0e10cSrcweir TimeValue *pTV_current = NULL; 3483*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_current = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 3484*cdf0e10cSrcweir TimeValue *pTV_access = NULL; 3485*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_access = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 3486*cdf0e10cSrcweir 3487*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_AccessTime ); 3488*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3489*cdf0e10cSrcweir sal_Bool bOk = osl_getSystemTime( pTV_current ); 3490*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == bOk && nError == FileBase::E_None ); 3491*cdf0e10cSrcweir 3492*cdf0e10cSrcweir *pTV_access = rFileStatus.getAccessTime( ); 3493*cdf0e10cSrcweir 3494*cdf0e10cSrcweir sal_Bool bOK = t_compareTime( pTV_access, pTV_current, delta ); 3495*cdf0e10cSrcweir free( pTV_current ); 3496*cdf0e10cSrcweir free( pTV_access ); 3497*cdf0e10cSrcweir 3498*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getAccessTime function: This test turns out that UNX pricision is no more than 1 sec, don't know how to test this function, in Windows test, it lost hour min sec, only have date time. ", 3499*cdf0e10cSrcweir sal_True == bOK ); 3500*cdf0e10cSrcweir } 3501*cdf0e10cSrcweir 3502*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getAccessTime ); 3503*cdf0e10cSrcweir CPPUNIT_TEST( getAccessTime_001 ); 3504*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3505*cdf0e10cSrcweir };// class getAccessTime 3506*cdf0e10cSrcweir 3507*cdf0e10cSrcweir //--------------------------------------------------------------------- 3508*cdf0e10cSrcweir // testing the method 3509*cdf0e10cSrcweir // inline TimeValue getModifyTime() const 3510*cdf0e10cSrcweir //--------------------------------------------------------------------- 3511*cdf0e10cSrcweir class getModifyTime : public CppUnit::TestFixture 3512*cdf0e10cSrcweir { 3513*cdf0e10cSrcweir ::rtl::OUString aTypeURL; 3514*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3515*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 3516*cdf0e10cSrcweir 3517*cdf0e10cSrcweir public: 3518*cdf0e10cSrcweir 3519*cdf0e10cSrcweir // test code. 3520*cdf0e10cSrcweir void getModifyTime_001( ) 3521*cdf0e10cSrcweir { 3522*cdf0e10cSrcweir TimeValue *pTV_current = NULL; 3523*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_current = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 3524*cdf0e10cSrcweir 3525*cdf0e10cSrcweir //create file 3526*cdf0e10cSrcweir aTypeURL = aUserDirectoryURL.copy( 0 ); 3527*cdf0e10cSrcweir concatURL( aTypeURL, aTmpName2 ); 3528*cdf0e10cSrcweir createTestFile( aTypeURL ); 3529*cdf0e10cSrcweir 3530*cdf0e10cSrcweir //get current time 3531*cdf0e10cSrcweir sal_Bool bOk = osl_getSystemTime( pTV_current ); 3532*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == bOk ); 3533*cdf0e10cSrcweir 3534*cdf0e10cSrcweir //get instance item and filestatus 3535*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL, rItem ); 3536*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3537*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_ModifyTime ); 3538*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3539*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3540*cdf0e10cSrcweir 3541*cdf0e10cSrcweir //get modify time 3542*cdf0e10cSrcweir TimeValue *pTV_modify = NULL; 3543*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_modify = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 3544*cdf0e10cSrcweir *pTV_modify = rFileStatus.getModifyTime( ); 3545*cdf0e10cSrcweir 3546*cdf0e10cSrcweir sal_Bool bOK = t_compareTime( pTV_modify, pTV_current, delta ); 3547*cdf0e10cSrcweir //delete file 3548*cdf0e10cSrcweir deleteTestFile( aTypeURL ); 3549*cdf0e10cSrcweir free( pTV_current ); 3550*cdf0e10cSrcweir 3551*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getModifyTime function: This test turns out that UNX pricision is no more than 1 sec, don't know how to improve this function. ", 3552*cdf0e10cSrcweir sal_True == bOK ); 3553*cdf0e10cSrcweir } 3554*cdf0e10cSrcweir 3555*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getModifyTime ); 3556*cdf0e10cSrcweir CPPUNIT_TEST( getModifyTime_001 ); 3557*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3558*cdf0e10cSrcweir };// class getModifyTime 3559*cdf0e10cSrcweir 3560*cdf0e10cSrcweir 3561*cdf0e10cSrcweir //--------------------------------------------------------------------- 3562*cdf0e10cSrcweir // testing the method 3563*cdf0e10cSrcweir // inline sal_uInt64 getFileSize() const 3564*cdf0e10cSrcweir //--------------------------------------------------------------------- 3565*cdf0e10cSrcweir class getFileSize : public CppUnit::TestFixture 3566*cdf0e10cSrcweir { 3567*cdf0e10cSrcweir ::rtl::OUString aTypeURL; 3568*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3569*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 3570*cdf0e10cSrcweir 3571*cdf0e10cSrcweir public: 3572*cdf0e10cSrcweir // initialization 3573*cdf0e10cSrcweir void setUp( ) 3574*cdf0e10cSrcweir { 3575*cdf0e10cSrcweir aTypeURL = aUserDirectoryURL.copy( 0 ); 3576*cdf0e10cSrcweir concatURL( aTypeURL, aTmpName2 ); 3577*cdf0e10cSrcweir createTestFile( aTypeURL ); 3578*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL, rItem ); 3579*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3580*cdf0e10cSrcweir } 3581*cdf0e10cSrcweir 3582*cdf0e10cSrcweir void tearDown( ) 3583*cdf0e10cSrcweir { 3584*cdf0e10cSrcweir deleteTestFile( aTypeURL ); 3585*cdf0e10cSrcweir } 3586*cdf0e10cSrcweir 3587*cdf0e10cSrcweir // test code. 3588*cdf0e10cSrcweir void getFileSize_001( ) 3589*cdf0e10cSrcweir { 3590*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileSize ); 3591*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3592*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3593*cdf0e10cSrcweir 3594*cdf0e10cSrcweir sal_uInt64 uFileSize = rFileStatus.getFileSize( ); 3595*cdf0e10cSrcweir 3596*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileSize function: empty file ", 3597*cdf0e10cSrcweir 0 == uFileSize ); 3598*cdf0e10cSrcweir } 3599*cdf0e10cSrcweir 3600*cdf0e10cSrcweir void getFileSize_002( ) 3601*cdf0e10cSrcweir { 3602*cdf0e10cSrcweir ::osl::File testfile( aTypeURL ); 3603*cdf0e10cSrcweir nError = testfile.open( OpenFlag_Write | OpenFlag_Read ); 3604*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError ); 3605*cdf0e10cSrcweir nError = testfile.setSize( TEST_FILE_SIZE ); 3606*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError ); 3607*cdf0e10cSrcweir 3608*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL, rItem ); 3609*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3610*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileSize ); 3611*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3612*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3613*cdf0e10cSrcweir sal_uInt64 uFileSize = rFileStatus.getFileSize( ); 3614*cdf0e10cSrcweir 3615*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileSize function: file with size of TEST_FILE_SIZE, did not pass in (W32). ", 3616*cdf0e10cSrcweir TEST_FILE_SIZE == uFileSize ); 3617*cdf0e10cSrcweir } 3618*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFileSize ); 3619*cdf0e10cSrcweir CPPUNIT_TEST( getFileSize_001 ); 3620*cdf0e10cSrcweir CPPUNIT_TEST( getFileSize_002 ); 3621*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3622*cdf0e10cSrcweir };// class getFileSize 3623*cdf0e10cSrcweir 3624*cdf0e10cSrcweir //--------------------------------------------------------------------- 3625*cdf0e10cSrcweir // testing the method 3626*cdf0e10cSrcweir // inline ::rtl::OUString getFileName() const 3627*cdf0e10cSrcweir //--------------------------------------------------------------------- 3628*cdf0e10cSrcweir class getFileName : public CppUnit::TestFixture 3629*cdf0e10cSrcweir { 3630*cdf0e10cSrcweir ::rtl::OUString aTypeURL; 3631*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3632*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 3633*cdf0e10cSrcweir 3634*cdf0e10cSrcweir public: 3635*cdf0e10cSrcweir // initialization 3636*cdf0e10cSrcweir void setUp( ) 3637*cdf0e10cSrcweir { 3638*cdf0e10cSrcweir aTypeURL = aUserDirectoryURL.copy( 0 ); 3639*cdf0e10cSrcweir concatURL( aTypeURL, aTmpName2 ); 3640*cdf0e10cSrcweir createTestFile( aTypeURL ); 3641*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTypeURL, rItem ); 3642*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3643*cdf0e10cSrcweir } 3644*cdf0e10cSrcweir 3645*cdf0e10cSrcweir void tearDown( ) 3646*cdf0e10cSrcweir { 3647*cdf0e10cSrcweir deleteTestFile( aTypeURL ); 3648*cdf0e10cSrcweir } 3649*cdf0e10cSrcweir 3650*cdf0e10cSrcweir // test code. 3651*cdf0e10cSrcweir void getFileName_001( ) 3652*cdf0e10cSrcweir { 3653*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 3654*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3655*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3656*cdf0e10cSrcweir 3657*cdf0e10cSrcweir ::rtl::OUString aFileName = rFileStatus.getFileName( ); 3658*cdf0e10cSrcweir 3659*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileName function: name compare with specify", 3660*cdf0e10cSrcweir sal_True == compareFileName( aFileName, aTmpName2 ) ); 3661*cdf0e10cSrcweir } 3662*cdf0e10cSrcweir 3663*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFileName ); 3664*cdf0e10cSrcweir CPPUNIT_TEST( getFileName_001 ); 3665*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3666*cdf0e10cSrcweir };// class getFileName 3667*cdf0e10cSrcweir 3668*cdf0e10cSrcweir //--------------------------------------------------------------------- 3669*cdf0e10cSrcweir // testing the method 3670*cdf0e10cSrcweir // inline ::rtl::OUString getFileURL() const 3671*cdf0e10cSrcweir //--------------------------------------------------------------------- 3672*cdf0e10cSrcweir class getFileURL : public CppUnit::TestFixture 3673*cdf0e10cSrcweir { 3674*cdf0e10cSrcweir ::rtl::OUString aTypeURL; 3675*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3676*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 3677*cdf0e10cSrcweir 3678*cdf0e10cSrcweir public: 3679*cdf0e10cSrcweir // initialization 3680*cdf0e10cSrcweir void setUp( ) 3681*cdf0e10cSrcweir { 3682*cdf0e10cSrcweir createTestFile( aTmpName6 ); 3683*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aTmpName6, rItem ); 3684*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3685*cdf0e10cSrcweir } 3686*cdf0e10cSrcweir 3687*cdf0e10cSrcweir void tearDown( ) 3688*cdf0e10cSrcweir { 3689*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 3690*cdf0e10cSrcweir } 3691*cdf0e10cSrcweir 3692*cdf0e10cSrcweir // test code. 3693*cdf0e10cSrcweir void getFileURL_001( ) 3694*cdf0e10cSrcweir { 3695*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileURL ); 3696*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3697*cdf0e10cSrcweir CPPUNIT_ASSERT( nError == FileBase::E_None ); 3698*cdf0e10cSrcweir 3699*cdf0e10cSrcweir ::rtl::OUString aFileURL = rFileStatus.getFileURL( ); 3700*cdf0e10cSrcweir 3701*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileURL function: ", 3702*cdf0e10cSrcweir sal_True == compareFileName( aFileURL, aTmpName6 ) ); 3703*cdf0e10cSrcweir } 3704*cdf0e10cSrcweir 3705*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFileURL ); 3706*cdf0e10cSrcweir CPPUNIT_TEST( getFileURL_001 ); 3707*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3708*cdf0e10cSrcweir };// class getFileURL 3709*cdf0e10cSrcweir 3710*cdf0e10cSrcweir //--------------------------------------------------------------------- 3711*cdf0e10cSrcweir // testing the method 3712*cdf0e10cSrcweir // inline ::rtl::OUString getLinkTargetURL() const 3713*cdf0e10cSrcweir //--------------------------------------------------------------------- 3714*cdf0e10cSrcweir class getLinkTargetURL : public CppUnit::TestFixture 3715*cdf0e10cSrcweir { 3716*cdf0e10cSrcweir ::rtl::OUString aTypeURL; 3717*cdf0e10cSrcweir ::osl::FileBase::RC nError; 3718*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 3719*cdf0e10cSrcweir 3720*cdf0e10cSrcweir public: 3721*cdf0e10cSrcweir // test code. 3722*cdf0e10cSrcweir // initialization 3723*cdf0e10cSrcweir void setUp( ) 3724*cdf0e10cSrcweir { 3725*cdf0e10cSrcweir aTypeURL = aUserDirectoryURL.copy( 0 ); 3726*cdf0e10cSrcweir concatURL( aTypeURL, aTmpName2 ); 3727*cdf0e10cSrcweir createTestFile( aTypeURL ); 3728*cdf0e10cSrcweir } 3729*cdf0e10cSrcweir 3730*cdf0e10cSrcweir void tearDown( ) 3731*cdf0e10cSrcweir { 3732*cdf0e10cSrcweir deleteTestFile( aTypeURL ); 3733*cdf0e10cSrcweir } 3734*cdf0e10cSrcweir 3735*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) //Link file is not define in Windows 3736*cdf0e10cSrcweir void getLinkTargetURL_001( ) 3737*cdf0e10cSrcweir { 3738*cdf0e10cSrcweir //create a link file; 3739*cdf0e10cSrcweir ::rtl::OUString aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys ); 3740*cdf0e10cSrcweir ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/link.file"); 3741*cdf0e10cSrcweir ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/tmpname"); 3742*cdf0e10cSrcweir 3743*cdf0e10cSrcweir rtl::OString strLinkFileName, strSrcFileName; 3744*cdf0e10cSrcweir strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US ); 3745*cdf0e10cSrcweir strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US ); 3746*cdf0e10cSrcweir 3747*cdf0e10cSrcweir sal_Int32 fd; 3748*cdf0e10cSrcweir fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() ); 3749*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "in creating link file", fd == 0 ); 3750*cdf0e10cSrcweir 3751*cdf0e10cSrcweir //get linkTarget URL 3752*cdf0e10cSrcweir nError = ::osl::DirectoryItem::get( aLnkURL1, rItem ); 3753*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "in getting link file item", nError == FileBase::E_None ); 3754*cdf0e10cSrcweir 3755*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_LinkTargetURL ); 3756*cdf0e10cSrcweir nError = rItem.getFileStatus( rFileStatus ); 3757*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "in getting link file status", nError == FileBase::E_None ); 3758*cdf0e10cSrcweir ::rtl::OUString aFileURL = rFileStatus.getLinkTargetURL( ); 3759*cdf0e10cSrcweir 3760*cdf0e10cSrcweir //remove link file 3761*cdf0e10cSrcweir fd = remove( strLinkFileName.getStr() ); 3762*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "in deleting link file", fd == 0 ); 3763*cdf0e10cSrcweir 3764*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getLinkTargetURL function: Solaris version, creat a file, and a link file link to it, get its LinkTargetURL and compare", 3765*cdf0e10cSrcweir sal_True == compareFileName( aFileURL, aTypeURL ) ); 3766*cdf0e10cSrcweir } 3767*cdf0e10cSrcweir #else 3768*cdf0e10cSrcweir void getLinkTargetURL_001( ) 3769*cdf0e10cSrcweir { 3770*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getLinkTargetURL function: Windows version, not tested", 3771*cdf0e10cSrcweir 1 ); 3772*cdf0e10cSrcweir } 3773*cdf0e10cSrcweir #endif 3774*cdf0e10cSrcweir 3775*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getLinkTargetURL ); 3776*cdf0e10cSrcweir CPPUNIT_TEST( getLinkTargetURL_001 ); 3777*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3778*cdf0e10cSrcweir };// class getLinkTargetURL 3779*cdf0e10cSrcweir 3780*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 3781*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::ctors, "osl_FileStatus" ); 3782*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::isValid, "osl_FileStatus" ); 3783*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileType, "osl_FileStatus" ); 3784*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getAttributes, "osl_FileStatus" ); 3785*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getAccessTime, "osl_FileStatus" ); 3786*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getModifyTime, "osl_FileStatus" ); 3787*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileSize, "osl_FileStatus" ); 3788*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileName, "osl_FileStatus" ); 3789*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getFileURL, "osl_FileStatus" ); 3790*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileStatus::getLinkTargetURL, "osl_FileStatus" ); 3791*cdf0e10cSrcweir }// namespace osl_FileStatus 3792*cdf0e10cSrcweir 3793*cdf0e10cSrcweir 3794*cdf0e10cSrcweir 3795*cdf0e10cSrcweir //------------------------------------------------------------------------ 3796*cdf0e10cSrcweir // Beginning of the test cases for File class 3797*cdf0e10cSrcweir //------------------------------------------------------------------------ 3798*cdf0e10cSrcweir namespace osl_File 3799*cdf0e10cSrcweir { 3800*cdf0e10cSrcweir //--------------------------------------------------------------------- 3801*cdf0e10cSrcweir // testing the method 3802*cdf0e10cSrcweir // File( const ::rtl::OUString& ustrFileURL ) 3803*cdf0e10cSrcweir //--------------------------------------------------------------------- 3804*cdf0e10cSrcweir class ctors : public CppUnit::TestFixture 3805*cdf0e10cSrcweir { 3806*cdf0e10cSrcweir // ::osl::FileBase::RC nError1; 3807*cdf0e10cSrcweir 3808*cdf0e10cSrcweir public: 3809*cdf0e10cSrcweir // initialization 3810*cdf0e10cSrcweir void setUp( ) 3811*cdf0e10cSrcweir { 3812*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 3813*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 3814*cdf0e10cSrcweir createTestFile( aTmpName4 ); 3815*cdf0e10cSrcweir } 3816*cdf0e10cSrcweir 3817*cdf0e10cSrcweir void tearDown( ) 3818*cdf0e10cSrcweir { 3819*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 3820*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 3821*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 3822*cdf0e10cSrcweir } 3823*cdf0e10cSrcweir 3824*cdf0e10cSrcweir // test code. 3825*cdf0e10cSrcweir void ctors_001( ) 3826*cdf0e10cSrcweir { 3827*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 3828*cdf0e10cSrcweir 3829*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 3830*cdf0e10cSrcweir ::osl::FileBase::RC nError2 = testFile.close( ); 3831*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: initialize a File and test its open and close", 3832*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && ( ::osl::FileBase::E_None == nError2 ) ); 3833*cdf0e10cSrcweir } 3834*cdf0e10cSrcweir 3835*cdf0e10cSrcweir void ctors_002( ) 3836*cdf0e10cSrcweir { 3837*cdf0e10cSrcweir ::osl::File testFile( aTmpName5 ); 3838*cdf0e10cSrcweir sal_Char buffer[30] = "Test for File constructor"; 3839*cdf0e10cSrcweir sal_uInt64 nCount; 3840*cdf0e10cSrcweir 3841*cdf0e10cSrcweir ::osl::FileBase::RC nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 3842*cdf0e10cSrcweir ::osl::FileBase::RC nError2 = testFile.write( buffer, 30, nCount ); 3843*cdf0e10cSrcweir testFile.close( ); 3844*cdf0e10cSrcweir 3845*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: test relative file URL, this test show that relative file URL is also acceptable", 3846*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && ( ::osl::FileBase::E_None == nError2 ) ); 3847*cdf0e10cSrcweir } 3848*cdf0e10cSrcweir 3849*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( ctors ); 3850*cdf0e10cSrcweir CPPUNIT_TEST( ctors_001 ); 3851*cdf0e10cSrcweir CPPUNIT_TEST( ctors_002 ); 3852*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3853*cdf0e10cSrcweir };// class ctors 3854*cdf0e10cSrcweir 3855*cdf0e10cSrcweir //--------------------------------------------------------------------- 3856*cdf0e10cSrcweir // testing the method 3857*cdf0e10cSrcweir // inline RC open( sal_uInt32 uFlags ) 3858*cdf0e10cSrcweir //--------------------------------------------------------------------- 3859*cdf0e10cSrcweir class open : public CppUnit::TestFixture 3860*cdf0e10cSrcweir { 3861*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2, nError3; 3862*cdf0e10cSrcweir 3863*cdf0e10cSrcweir public: 3864*cdf0e10cSrcweir // initialization 3865*cdf0e10cSrcweir void setUp( ) 3866*cdf0e10cSrcweir { 3867*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 3868*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 3869*cdf0e10cSrcweir createTestFile( aTmpName4 ); 3870*cdf0e10cSrcweir } 3871*cdf0e10cSrcweir 3872*cdf0e10cSrcweir void tearDown( ) 3873*cdf0e10cSrcweir { 3874*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 3875*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 3876*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 3877*cdf0e10cSrcweir } 3878*cdf0e10cSrcweir 3879*cdf0e10cSrcweir // test code. 3880*cdf0e10cSrcweir void open_001( ) 3881*cdf0e10cSrcweir { 3882*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 3883*cdf0e10cSrcweir 3884*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 3885*cdf0e10cSrcweir nError2 = testFile.close( ); 3886*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("close error", ::osl::FileBase::E_None == nError2 ); 3887*cdf0e10cSrcweir 3888*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: open a regular file", 3889*cdf0e10cSrcweir ::osl::FileBase::E_None == nError1 ); 3890*cdf0e10cSrcweir } 3891*cdf0e10cSrcweir 3892*cdf0e10cSrcweir void open_002( ) 3893*cdf0e10cSrcweir { 3894*cdf0e10cSrcweir ::osl::File testFile( aTmpName3 ); 3895*cdf0e10cSrcweir 3896*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read ); 3897*cdf0e10cSrcweir 3898*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: open a directory", 3899*cdf0e10cSrcweir ( File::E_INVAL == nError1 ) || ( File::E_ACCES == nError1 ) ); 3900*cdf0e10cSrcweir } 3901*cdf0e10cSrcweir 3902*cdf0e10cSrcweir void open_003( ) 3903*cdf0e10cSrcweir { 3904*cdf0e10cSrcweir ::osl::File testFile( aCanURL1 ); 3905*cdf0e10cSrcweir 3906*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 3907*cdf0e10cSrcweir 3908*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: open a non-exist file", 3909*cdf0e10cSrcweir File::E_NOENT == nError1 ); 3910*cdf0e10cSrcweir } 3911*cdf0e10cSrcweir 3912*cdf0e10cSrcweir void open_004( ) 3913*cdf0e10cSrcweir { 3914*cdf0e10cSrcweir ::rtl::OUString aTestFile( aRootURL ); 3915*cdf0e10cSrcweir concatURL( aTestFile, aTmpName2 ); 3916*cdf0e10cSrcweir ::osl::File testFile( aTestFile ); 3917*cdf0e10cSrcweir 3918*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Create ); 3919*cdf0e10cSrcweir sal_Bool bOK = ( File::E_ACCES == nError1 ); 3920*cdf0e10cSrcweir #if defined (WNT ) 3921*cdf0e10cSrcweir bOK = sal_True; /// in Windows, you can create file in c:/ any way. 3922*cdf0e10cSrcweir testFile.close( ); 3923*cdf0e10cSrcweir deleteTestFile( aTestFile); 3924*cdf0e10cSrcweir #endif 3925*cdf0e10cSrcweir 3926*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: create an illegal file", 3927*cdf0e10cSrcweir bOK == sal_True ); 3928*cdf0e10cSrcweir } 3929*cdf0e10cSrcweir 3930*cdf0e10cSrcweir void open_005( ) 3931*cdf0e10cSrcweir { 3932*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 3933*cdf0e10cSrcweir 3934*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Create ); 3935*cdf0e10cSrcweir 3936*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: create an exist file", 3937*cdf0e10cSrcweir File::E_EXIST == nError1 ); 3938*cdf0e10cSrcweir } 3939*cdf0e10cSrcweir 3940*cdf0e10cSrcweir void open_006( ) 3941*cdf0e10cSrcweir { 3942*cdf0e10cSrcweir ::osl::File testFile( aCanURL1 ); 3943*cdf0e10cSrcweir sal_Char buffer_write[30] = "Test for File open"; 3944*cdf0e10cSrcweir sal_Char buffer_read[30]; 3945*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 3946*cdf0e10cSrcweir 3947*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write | OpenFlag_Create ); 3948*cdf0e10cSrcweir nError2 = testFile.write( buffer_write, 30, nCount_write ); 3949*cdf0e10cSrcweir ::osl::FileBase::RC nError4 = testFile.setPos( Pos_Absolut, 0 ); 3950*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError4 ); 3951*cdf0e10cSrcweir nError3 = testFile.read( buffer_read, 10, nCount_read ); 3952*cdf0e10cSrcweir 3953*cdf0e10cSrcweir ::osl::FileBase::RC nError5 = testFile.close( ); 3954*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError5 ); 3955*cdf0e10cSrcweir ::osl::FileBase::RC nError6 = testFile.remove( aCanURL1 ); 3956*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError6 ); 3957*cdf0e10cSrcweir 3958*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: test for OpenFlag_Read,OpenFlag_Write and OpenFlag_Create", 3959*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && 3960*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) && 3961*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError3 ) && 3962*cdf0e10cSrcweir ( 30 == nCount_write ) && 3963*cdf0e10cSrcweir ( 10 == nCount_read ) ); 3964*cdf0e10cSrcweir } 3965*cdf0e10cSrcweir 3966*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( open ); 3967*cdf0e10cSrcweir CPPUNIT_TEST( open_001 ); 3968*cdf0e10cSrcweir CPPUNIT_TEST( open_002 ); 3969*cdf0e10cSrcweir CPPUNIT_TEST( open_003 ); 3970*cdf0e10cSrcweir CPPUNIT_TEST( open_004 ); 3971*cdf0e10cSrcweir CPPUNIT_TEST( open_005 ); 3972*cdf0e10cSrcweir CPPUNIT_TEST( open_006 ); 3973*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 3974*cdf0e10cSrcweir };// class open 3975*cdf0e10cSrcweir 3976*cdf0e10cSrcweir //--------------------------------------------------------------------- 3977*cdf0e10cSrcweir // testing the method 3978*cdf0e10cSrcweir // inline RC close() 3979*cdf0e10cSrcweir //--------------------------------------------------------------------- 3980*cdf0e10cSrcweir class close : public CppUnit::TestFixture 3981*cdf0e10cSrcweir { 3982*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2, nError3; 3983*cdf0e10cSrcweir 3984*cdf0e10cSrcweir public: 3985*cdf0e10cSrcweir // initialization 3986*cdf0e10cSrcweir void setUp( ) 3987*cdf0e10cSrcweir { 3988*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 3989*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 3990*cdf0e10cSrcweir createTestFile( aTmpName4 ); 3991*cdf0e10cSrcweir } 3992*cdf0e10cSrcweir 3993*cdf0e10cSrcweir void tearDown( ) 3994*cdf0e10cSrcweir { 3995*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 3996*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 3997*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 3998*cdf0e10cSrcweir } 3999*cdf0e10cSrcweir 4000*cdf0e10cSrcweir // test code. 4001*cdf0e10cSrcweir void close_001( ) 4002*cdf0e10cSrcweir { 4003*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4004*cdf0e10cSrcweir 4005*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4006*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4007*cdf0e10cSrcweir 4008*cdf0e10cSrcweir nError2 = testFile.close( ); 4009*cdf0e10cSrcweir 4010*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for close function: close a regular file", 4011*cdf0e10cSrcweir ::osl::FileBase::E_None == nError2 ); 4012*cdf0e10cSrcweir } 4013*cdf0e10cSrcweir 4014*cdf0e10cSrcweir void close_002( ) 4015*cdf0e10cSrcweir { 4016*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4017*cdf0e10cSrcweir 4018*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4019*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4020*cdf0e10cSrcweir 4021*cdf0e10cSrcweir nError2 = testFile.close( ); 4022*cdf0e10cSrcweir 4023*cdf0e10cSrcweir nError3 = testFile.setPos( Pos_Absolut, 0 ); 4024*cdf0e10cSrcweir 4025*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for close function: manipulate a file after it has been closed", 4026*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) && 4027*cdf0e10cSrcweir ( ::osl::FileBase::E_None != nError3 ) ); 4028*cdf0e10cSrcweir } 4029*cdf0e10cSrcweir 4030*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( close ); 4031*cdf0e10cSrcweir CPPUNIT_TEST( close_001 ); 4032*cdf0e10cSrcweir CPPUNIT_TEST( close_002 ); 4033*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4034*cdf0e10cSrcweir };// class close 4035*cdf0e10cSrcweir 4036*cdf0e10cSrcweir 4037*cdf0e10cSrcweir //--------------------------------------------------------------------- 4038*cdf0e10cSrcweir // testing the method 4039*cdf0e10cSrcweir // inline RC setPos( sal_uInt32 uHow, sal_Int64 uPos ) 4040*cdf0e10cSrcweir //--------------------------------------------------------------------- 4041*cdf0e10cSrcweir class setPos : public CppUnit::TestFixture 4042*cdf0e10cSrcweir { 4043*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4044*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4045*cdf0e10cSrcweir 4046*cdf0e10cSrcweir public: 4047*cdf0e10cSrcweir // initialization 4048*cdf0e10cSrcweir void setUp( ) 4049*cdf0e10cSrcweir { 4050*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4051*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4052*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4053*cdf0e10cSrcweir 4054*cdf0e10cSrcweir //write chars into the file. 4055*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4056*cdf0e10cSrcweir 4057*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4058*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4059*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4060*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4061*cdf0e10cSrcweir nError1 = testFile.close( ); 4062*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4063*cdf0e10cSrcweir } 4064*cdf0e10cSrcweir 4065*cdf0e10cSrcweir void tearDown( ) 4066*cdf0e10cSrcweir { 4067*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4068*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4069*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4070*cdf0e10cSrcweir } 4071*cdf0e10cSrcweir 4072*cdf0e10cSrcweir // test code. 4073*cdf0e10cSrcweir void setPos_001( ) 4074*cdf0e10cSrcweir { 4075*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4076*cdf0e10cSrcweir sal_Char buffer_read[2]; 4077*cdf0e10cSrcweir 4078*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4079*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4080*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Absolut, 26 ); 4081*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4082*cdf0e10cSrcweir nError1 = testFile.read( buffer_read, 1, nCount_read ); 4083*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4084*cdf0e10cSrcweir nError1 = testFile.close( ); 4085*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4086*cdf0e10cSrcweir 4087*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setPos function: test for Pos_Absolut, set the position to 26, test if the 26th char in file is correct", 4088*cdf0e10cSrcweir buffer_read[0] == pBuffer_Char[26] ); 4089*cdf0e10cSrcweir } 4090*cdf0e10cSrcweir 4091*cdf0e10cSrcweir void setPos_002( ) 4092*cdf0e10cSrcweir { 4093*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4094*cdf0e10cSrcweir sal_Char buffer_read[2]; 4095*cdf0e10cSrcweir 4096*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4097*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4098*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Absolut, sizeof( pBuffer_Char ) - 2 ); 4099*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4100*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Current, 0); 4101*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4102*cdf0e10cSrcweir nError1 = testFile.read( buffer_read, 1, nCount_read ); 4103*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4104*cdf0e10cSrcweir nError1 = testFile.close( ); 4105*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4106*cdf0e10cSrcweir 4107*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setPos function: test for Pos_Current, set the position to end, test if the ( end -1 ) char in file is correct", 4108*cdf0e10cSrcweir buffer_read[0] == pBuffer_Char[sizeof( pBuffer_Char ) - 2] ); 4109*cdf0e10cSrcweir } 4110*cdf0e10cSrcweir 4111*cdf0e10cSrcweir void setPos_003( ) 4112*cdf0e10cSrcweir { 4113*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4114*cdf0e10cSrcweir sal_Char buffer_read[2]; 4115*cdf0e10cSrcweir 4116*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4117*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4118*cdf0e10cSrcweir //the file size is smaller than 100 4119*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_End, -100 ); 4120*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "should return error", ::osl::FileBase::E_INVAL == nError1 ); 4121*cdf0e10cSrcweir 4122*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_End, -53 ); 4123*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4124*cdf0e10cSrcweir nError1 = testFile.read( buffer_read, 1, nCount_read ); 4125*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4126*cdf0e10cSrcweir nError1 = testFile.close( ); 4127*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4128*cdf0e10cSrcweir 4129*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setPos function: test for Pos_End, set the position to end, test if the first char in file is correct", 4130*cdf0e10cSrcweir buffer_read[0] == pBuffer_Char[0] ); 4131*cdf0e10cSrcweir } 4132*cdf0e10cSrcweir 4133*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( setPos ); 4134*cdf0e10cSrcweir CPPUNIT_TEST( setPos_001 ); 4135*cdf0e10cSrcweir CPPUNIT_TEST( setPos_002 ); 4136*cdf0e10cSrcweir CPPUNIT_TEST( setPos_003 ); 4137*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4138*cdf0e10cSrcweir };// class setPos 4139*cdf0e10cSrcweir 4140*cdf0e10cSrcweir //--------------------------------------------------------------------- 4141*cdf0e10cSrcweir // testing the method 4142*cdf0e10cSrcweir // inline RC getPos( sal_uInt64& uPos ) 4143*cdf0e10cSrcweir //--------------------------------------------------------------------- 4144*cdf0e10cSrcweir class getPos : public CppUnit::TestFixture 4145*cdf0e10cSrcweir { 4146*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4147*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4148*cdf0e10cSrcweir 4149*cdf0e10cSrcweir public: 4150*cdf0e10cSrcweir // initialization 4151*cdf0e10cSrcweir void setUp( ) 4152*cdf0e10cSrcweir { 4153*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4154*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4155*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4156*cdf0e10cSrcweir 4157*cdf0e10cSrcweir //write chars into the file. 4158*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4159*cdf0e10cSrcweir 4160*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4161*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4162*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4163*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4164*cdf0e10cSrcweir nError1 = testFile.close( ); 4165*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4166*cdf0e10cSrcweir } 4167*cdf0e10cSrcweir 4168*cdf0e10cSrcweir void tearDown( ) 4169*cdf0e10cSrcweir { 4170*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4171*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4172*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4173*cdf0e10cSrcweir } 4174*cdf0e10cSrcweir 4175*cdf0e10cSrcweir // test code. 4176*cdf0e10cSrcweir void getPos_001( ) 4177*cdf0e10cSrcweir { 4178*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4179*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4180*cdf0e10cSrcweir 4181*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4182*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_INVAL == nError1 ); 4183*cdf0e10cSrcweir 4184*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4185*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4186*cdf0e10cSrcweir 4187*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Absolut, 26 ); 4188*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4189*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4190*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4191*cdf0e10cSrcweir 4192*cdf0e10cSrcweir nError1 = testFile.close( ); 4193*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4194*cdf0e10cSrcweir 4195*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getPos function: set the position to 26, get position and check if it is right", 4196*cdf0e10cSrcweir 26 == nFilePointer ); 4197*cdf0e10cSrcweir } 4198*cdf0e10cSrcweir 4199*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getPos ); 4200*cdf0e10cSrcweir CPPUNIT_TEST( getPos_001 ); 4201*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4202*cdf0e10cSrcweir };// class getPos 4203*cdf0e10cSrcweir 4204*cdf0e10cSrcweir 4205*cdf0e10cSrcweir //--------------------------------------------------------------------- 4206*cdf0e10cSrcweir // testing the method 4207*cdf0e10cSrcweir // inline RC isEndOfFile( sal_Bool *pIsEOF ) 4208*cdf0e10cSrcweir //--------------------------------------------------------------------- 4209*cdf0e10cSrcweir class isEndOfFile : public CppUnit::TestFixture 4210*cdf0e10cSrcweir { 4211*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4212*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4213*cdf0e10cSrcweir 4214*cdf0e10cSrcweir public: 4215*cdf0e10cSrcweir // initialization 4216*cdf0e10cSrcweir void setUp( ) 4217*cdf0e10cSrcweir { 4218*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4219*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4220*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4221*cdf0e10cSrcweir 4222*cdf0e10cSrcweir //write chars into the file. 4223*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4224*cdf0e10cSrcweir 4225*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4226*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4227*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4228*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4229*cdf0e10cSrcweir nError1 = testFile.close( ); 4230*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4231*cdf0e10cSrcweir } 4232*cdf0e10cSrcweir 4233*cdf0e10cSrcweir void tearDown( ) 4234*cdf0e10cSrcweir { 4235*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4236*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4237*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4238*cdf0e10cSrcweir } 4239*cdf0e10cSrcweir 4240*cdf0e10cSrcweir // test code. 4241*cdf0e10cSrcweir void isEndOfFile_001( ) 4242*cdf0e10cSrcweir { 4243*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4244*cdf0e10cSrcweir sal_Bool bEOF = sal_False; 4245*cdf0e10cSrcweir sal_Bool *pEOF = &bEOF; 4246*cdf0e10cSrcweir 4247*cdf0e10cSrcweir 4248*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4249*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4250*cdf0e10cSrcweir 4251*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_End, 0 ); 4252*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4253*cdf0e10cSrcweir nError1 = testFile.isEndOfFile( pEOF ); 4254*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4255*cdf0e10cSrcweir 4256*cdf0e10cSrcweir nError1 = testFile.close( ); 4257*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4258*cdf0e10cSrcweir 4259*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isEndOfFile function: set the position to end, check if reach end", 4260*cdf0e10cSrcweir sal_True == *pEOF ); 4261*cdf0e10cSrcweir } 4262*cdf0e10cSrcweir 4263*cdf0e10cSrcweir void isEndOfFile_002( ) 4264*cdf0e10cSrcweir { 4265*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4266*cdf0e10cSrcweir sal_Bool bEOF = sal_False; 4267*cdf0e10cSrcweir sal_Bool *pEOF = &bEOF; 4268*cdf0e10cSrcweir sal_uInt64 nFilePointer = 0; 4269*cdf0e10cSrcweir 4270*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4271*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4272*cdf0e10cSrcweir 4273*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Absolut, 0 ); 4274*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4275*cdf0e10cSrcweir *pEOF = sal_False; 4276*cdf0e10cSrcweir while ( !( *pEOF ) ) 4277*cdf0e10cSrcweir { 4278*cdf0e10cSrcweir nError1 = testFile.isEndOfFile( pEOF ); 4279*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4280*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Current, 1 ); 4281*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4282*cdf0e10cSrcweir } 4283*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4284*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4285*cdf0e10cSrcweir 4286*cdf0e10cSrcweir nError1 = testFile.close( ); 4287*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4288*cdf0e10cSrcweir 4289*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isEndOfFile function: use isEndOfFile to move pointer step by step", 4290*cdf0e10cSrcweir sizeof( pBuffer_Char ) + 1 == nFilePointer ); 4291*cdf0e10cSrcweir } 4292*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( isEndOfFile ); 4293*cdf0e10cSrcweir CPPUNIT_TEST( isEndOfFile_001 ); 4294*cdf0e10cSrcweir CPPUNIT_TEST( isEndOfFile_002 ); 4295*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4296*cdf0e10cSrcweir };// class isEndOfFile 4297*cdf0e10cSrcweir 4298*cdf0e10cSrcweir 4299*cdf0e10cSrcweir //--------------------------------------------------------------------- 4300*cdf0e10cSrcweir // testing the method 4301*cdf0e10cSrcweir // inline RC setSize( sal_uInt64 uSize ) 4302*cdf0e10cSrcweir //--------------------------------------------------------------------- 4303*cdf0e10cSrcweir class setSize : public CppUnit::TestFixture 4304*cdf0e10cSrcweir { 4305*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4306*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4307*cdf0e10cSrcweir 4308*cdf0e10cSrcweir public: 4309*cdf0e10cSrcweir // initialization 4310*cdf0e10cSrcweir void setUp( ) 4311*cdf0e10cSrcweir { 4312*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4313*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4314*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4315*cdf0e10cSrcweir 4316*cdf0e10cSrcweir //write chars into the file. 4317*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4318*cdf0e10cSrcweir 4319*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4320*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4321*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4322*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4323*cdf0e10cSrcweir nError1 = testFile.close( ); 4324*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4325*cdf0e10cSrcweir } 4326*cdf0e10cSrcweir 4327*cdf0e10cSrcweir void tearDown( ) 4328*cdf0e10cSrcweir { 4329*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4330*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4331*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4332*cdf0e10cSrcweir } 4333*cdf0e10cSrcweir 4334*cdf0e10cSrcweir // test code. 4335*cdf0e10cSrcweir void setSize_001( ) 4336*cdf0e10cSrcweir { 4337*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4338*cdf0e10cSrcweir // sal_Bool bEOF = sal_False; 4339*cdf0e10cSrcweir // sal_Bool *pEOF = &bEOF; 4340*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4341*cdf0e10cSrcweir 4342*cdf0e10cSrcweir 4343*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4344*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4345*cdf0e10cSrcweir 4346*cdf0e10cSrcweir //enlarge the file to size of 100; 4347*cdf0e10cSrcweir nError1 = testFile.setSize( 100 ); 4348*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4349*cdf0e10cSrcweir 4350*cdf0e10cSrcweir //get the file size; 4351*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_End, 0 ); 4352*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4353*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4354*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4355*cdf0e10cSrcweir 4356*cdf0e10cSrcweir nError1 = testFile.close( ); 4357*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4358*cdf0e10cSrcweir 4359*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setSize function: enlarge the file ", 4360*cdf0e10cSrcweir 100 == nFilePointer ); 4361*cdf0e10cSrcweir } 4362*cdf0e10cSrcweir 4363*cdf0e10cSrcweir void setSize_002( ) 4364*cdf0e10cSrcweir { 4365*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4366*cdf0e10cSrcweir // sal_Bool bEOF = sal_False; 4367*cdf0e10cSrcweir // sal_Bool *pEOF = &bEOF; 4368*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4369*cdf0e10cSrcweir 4370*cdf0e10cSrcweir 4371*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4372*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4373*cdf0e10cSrcweir 4374*cdf0e10cSrcweir //enlarge the file to size of 100; 4375*cdf0e10cSrcweir nError1 = testFile.setSize( 10 ); 4376*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4377*cdf0e10cSrcweir 4378*cdf0e10cSrcweir //get the file size; 4379*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_End, 0 ); 4380*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4381*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4382*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4383*cdf0e10cSrcweir 4384*cdf0e10cSrcweir nError1 = testFile.close( ); 4385*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4386*cdf0e10cSrcweir 4387*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setSize function: truncate the file ", 4388*cdf0e10cSrcweir 10 == nFilePointer ); 4389*cdf0e10cSrcweir } 4390*cdf0e10cSrcweir /* void setSize_003( ) 4391*cdf0e10cSrcweir { 4392*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4393*cdf0e10cSrcweir // sal_Bool bEOF = sal_False; 4394*cdf0e10cSrcweir // sal_Bool *pEOF = &bEOF; 4395*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4396*cdf0e10cSrcweir 4397*cdf0e10cSrcweir 4398*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4399*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4400*cdf0e10cSrcweir 4401*cdf0e10cSrcweir //enlarge the file to size of 100; 4402*cdf0e10cSrcweir nError1 = testFile.setSize( 10 ); 4403*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4404*cdf0e10cSrcweir 4405*cdf0e10cSrcweir //get the file size; 4406*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_End, 0 ); 4407*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4408*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4409*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4410*cdf0e10cSrcweir 4411*cdf0e10cSrcweir nError1 = testFile.close( ); 4412*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4413*cdf0e10cSrcweir 4414*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setSize function: truncate the file ", 4415*cdf0e10cSrcweir 10 == nFilePointer ); 4416*cdf0e10cSrcweir } 4417*cdf0e10cSrcweir */ 4418*cdf0e10cSrcweir 4419*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( setSize ); 4420*cdf0e10cSrcweir CPPUNIT_TEST( setSize_001 ); 4421*cdf0e10cSrcweir CPPUNIT_TEST( setSize_002 ); 4422*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4423*cdf0e10cSrcweir };// class setSize 4424*cdf0e10cSrcweir 4425*cdf0e10cSrcweir 4426*cdf0e10cSrcweir //--------------------------------------------------------------------- 4427*cdf0e10cSrcweir // testing the method 4428*cdf0e10cSrcweir // inline RC read( void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64& rBytesRead ) 4429*cdf0e10cSrcweir //--------------------------------------------------------------------- 4430*cdf0e10cSrcweir class read : public CppUnit::TestFixture 4431*cdf0e10cSrcweir { 4432*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4433*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4434*cdf0e10cSrcweir 4435*cdf0e10cSrcweir public: 4436*cdf0e10cSrcweir // initialization 4437*cdf0e10cSrcweir void setUp( ) 4438*cdf0e10cSrcweir { 4439*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4440*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4441*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4442*cdf0e10cSrcweir 4443*cdf0e10cSrcweir //write chars into the file. 4444*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4445*cdf0e10cSrcweir 4446*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4447*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4448*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4449*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4450*cdf0e10cSrcweir nError1 = testFile.close( ); 4451*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4452*cdf0e10cSrcweir } 4453*cdf0e10cSrcweir 4454*cdf0e10cSrcweir void tearDown( ) 4455*cdf0e10cSrcweir { 4456*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4457*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4458*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4459*cdf0e10cSrcweir } 4460*cdf0e10cSrcweir 4461*cdf0e10cSrcweir // test code. 4462*cdf0e10cSrcweir void read_001( ) 4463*cdf0e10cSrcweir { 4464*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4465*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4466*cdf0e10cSrcweir sal_Char buffer_read[10]; 4467*cdf0e10cSrcweir 4468*cdf0e10cSrcweir 4469*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4470*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4471*cdf0e10cSrcweir 4472*cdf0e10cSrcweir nError1 = testFile.read( buffer_read, 10, nCount_read ); 4473*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4474*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4475*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4476*cdf0e10cSrcweir 4477*cdf0e10cSrcweir nError1 = testFile.close( ); 4478*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4479*cdf0e10cSrcweir 4480*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for read function: read whole content in the file to a buffer", 4481*cdf0e10cSrcweir ( 10 == nFilePointer ) && ( 0 == strncmp( buffer_read, pBuffer_Char, 10 ) ) ); 4482*cdf0e10cSrcweir } 4483*cdf0e10cSrcweir 4484*cdf0e10cSrcweir void read_002( ) 4485*cdf0e10cSrcweir { 4486*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4487*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4488*cdf0e10cSrcweir sal_Char buffer_read[26]; 4489*cdf0e10cSrcweir 4490*cdf0e10cSrcweir 4491*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4492*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4493*cdf0e10cSrcweir 4494*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Absolut, 26 ); 4495*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4496*cdf0e10cSrcweir nError1 = testFile.read( buffer_read, 26, nCount_read ); 4497*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4498*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4499*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4500*cdf0e10cSrcweir 4501*cdf0e10cSrcweir nError1 = testFile.close( ); 4502*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4503*cdf0e10cSrcweir 4504*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for read function: read from a special positon in the file", 4505*cdf0e10cSrcweir ( 52 == nFilePointer ) && ( 26 == nCount_read ) && ( 0 == strncmp( buffer_read, &pBuffer_Char[26], 26 ) ) ); 4506*cdf0e10cSrcweir } 4507*cdf0e10cSrcweir 4508*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( read ); 4509*cdf0e10cSrcweir CPPUNIT_TEST( read_001 ); 4510*cdf0e10cSrcweir CPPUNIT_TEST( read_002 ); 4511*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4512*cdf0e10cSrcweir };// class read 4513*cdf0e10cSrcweir 4514*cdf0e10cSrcweir //--------------------------------------------------------------------- 4515*cdf0e10cSrcweir // testing the method 4516*cdf0e10cSrcweir // inline RC write(const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64& rBytesWritten) 4517*cdf0e10cSrcweir //--------------------------------------------------------------------- 4518*cdf0e10cSrcweir class write : public CppUnit::TestFixture 4519*cdf0e10cSrcweir { 4520*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4521*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4522*cdf0e10cSrcweir 4523*cdf0e10cSrcweir public: 4524*cdf0e10cSrcweir // initialization 4525*cdf0e10cSrcweir void setUp( ) 4526*cdf0e10cSrcweir { 4527*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpname. 4528*cdf0e10cSrcweir createTestFile( aTmpName6 ); 4529*cdf0e10cSrcweir } 4530*cdf0e10cSrcweir 4531*cdf0e10cSrcweir void tearDown( ) 4532*cdf0e10cSrcweir { 4533*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpname. 4534*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 4535*cdf0e10cSrcweir } 4536*cdf0e10cSrcweir 4537*cdf0e10cSrcweir // test code. 4538*cdf0e10cSrcweir void write_001( ) 4539*cdf0e10cSrcweir { 4540*cdf0e10cSrcweir ::osl::File testFile( aTmpName6 ); 4541*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4542*cdf0e10cSrcweir sal_Char buffer_read[10]; 4543*cdf0e10cSrcweir 4544*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4545*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4546*cdf0e10cSrcweir 4547*cdf0e10cSrcweir //write chars into the file. 4548*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, 10, nCount_write ); 4549*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4550*cdf0e10cSrcweir //get the current pointer; 4551*cdf0e10cSrcweir nError1 = testFile.getPos( nFilePointer ); 4552*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4553*cdf0e10cSrcweir //reset pointer to the begining; 4554*cdf0e10cSrcweir nError1 = testFile.setPos( Pos_Absolut, 0 ); 4555*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4556*cdf0e10cSrcweir nError1 = testFile.read( buffer_read, 10, nCount_read ); 4557*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4558*cdf0e10cSrcweir 4559*cdf0e10cSrcweir nError1 = testFile.close( ); 4560*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4561*cdf0e10cSrcweir 4562*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for write function: read whole content in the file to a buffer. Note, buffer size can not smaller than the read size", 4563*cdf0e10cSrcweir ( 10 == nFilePointer ) && 4564*cdf0e10cSrcweir ( 0 == strncmp( buffer_read, pBuffer_Char, 10 ) ) && 4565*cdf0e10cSrcweir ( 10 == nCount_write ) ); 4566*cdf0e10cSrcweir } 4567*cdf0e10cSrcweir 4568*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( write ); 4569*cdf0e10cSrcweir CPPUNIT_TEST( write_001 ); 4570*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4571*cdf0e10cSrcweir };// class write 4572*cdf0e10cSrcweir 4573*cdf0e10cSrcweir //--------------------------------------------------------------------- 4574*cdf0e10cSrcweir // testing the method 4575*cdf0e10cSrcweir // inline RC readLine( ::rtl::ByteSequence& aSeq ) 4576*cdf0e10cSrcweir //--------------------------------------------------------------------- 4577*cdf0e10cSrcweir class readLine : public CppUnit::TestFixture 4578*cdf0e10cSrcweir { 4579*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4580*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4581*cdf0e10cSrcweir ::rtl::ByteSequence aSequence; 4582*cdf0e10cSrcweir 4583*cdf0e10cSrcweir public: 4584*cdf0e10cSrcweir // initialization 4585*cdf0e10cSrcweir void setUp( ) 4586*cdf0e10cSrcweir { 4587*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpname. 4588*cdf0e10cSrcweir createTestFile( aTmpName6 ); 4589*cdf0e10cSrcweir 4590*cdf0e10cSrcweir //write some strings into the file. 4591*cdf0e10cSrcweir ::osl::File testFile( aTmpName6 ); 4592*cdf0e10cSrcweir sal_Char ppStrSeq[3][27] = { "abcde\n", 4593*cdf0e10cSrcweir "1234567890\n", 4594*cdf0e10cSrcweir "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 4595*cdf0e10cSrcweir }; 4596*cdf0e10cSrcweir 4597*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4598*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4599*cdf0e10cSrcweir 4600*cdf0e10cSrcweir for ( int nCount = 0; nCount < 3; nCount++ ) 4601*cdf0e10cSrcweir { 4602*cdf0e10cSrcweir nError1 = testFile.write( ppStrSeq[nCount], strlen( ppStrSeq[nCount] ), nCount_write ); 4603*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4604*cdf0e10cSrcweir } 4605*cdf0e10cSrcweir 4606*cdf0e10cSrcweir nError1 = testFile.close( ); 4607*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4608*cdf0e10cSrcweir } 4609*cdf0e10cSrcweir 4610*cdf0e10cSrcweir void tearDown( ) 4611*cdf0e10cSrcweir { 4612*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpname. 4613*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 4614*cdf0e10cSrcweir } 4615*cdf0e10cSrcweir 4616*cdf0e10cSrcweir // test code. 4617*cdf0e10cSrcweir void readLine_001( ) 4618*cdf0e10cSrcweir { 4619*cdf0e10cSrcweir ::osl::File testFile( aTmpName6 ); 4620*cdf0e10cSrcweir 4621*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4622*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4623*cdf0e10cSrcweir nError1 = testFile.readLine( aSequence ); 4624*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4625*cdf0e10cSrcweir 4626*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for readLine function: read the first line of the file.", 4627*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && 4628*cdf0e10cSrcweir ( 0 == strncmp( ( const char * )aSequence.getArray( ), pBuffer_Char, 5 ) ) ); 4629*cdf0e10cSrcweir } 4630*cdf0e10cSrcweir 4631*cdf0e10cSrcweir void readLine_002( ) 4632*cdf0e10cSrcweir { 4633*cdf0e10cSrcweir ::osl::File testFile( aTmpName6 ); 4634*cdf0e10cSrcweir sal_Bool bEOF = sal_False; 4635*cdf0e10cSrcweir sal_Bool *pEOF = &bEOF; 4636*cdf0e10cSrcweir 4637*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Read | OpenFlag_Write ); 4638*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4639*cdf0e10cSrcweir for ( int nCount = 0; nCount < 3; nCount++ ) 4640*cdf0e10cSrcweir { 4641*cdf0e10cSrcweir nError1 = testFile.readLine( aSequence ); 4642*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4643*cdf0e10cSrcweir } 4644*cdf0e10cSrcweir nError1 = testFile.isEndOfFile( pEOF ); 4645*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4646*cdf0e10cSrcweir 4647*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for readLine function: read three lines of the file and check the file pointer moving.", 4648*cdf0e10cSrcweir *pEOF && 4649*cdf0e10cSrcweir ( 0 == strncmp( ( const char * )aSequence.getArray( ), &pBuffer_Char[26], 26 ) ) ); 4650*cdf0e10cSrcweir } 4651*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( readLine ); 4652*cdf0e10cSrcweir CPPUNIT_TEST( readLine_001 ); 4653*cdf0e10cSrcweir CPPUNIT_TEST( readLine_002 ); 4654*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4655*cdf0e10cSrcweir };// class readLine 4656*cdf0e10cSrcweir 4657*cdf0e10cSrcweir //--------------------------------------------------------------------- 4658*cdf0e10cSrcweir // testing the method 4659*cdf0e10cSrcweir // inline static RC copy( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL ) 4660*cdf0e10cSrcweir //--------------------------------------------------------------------- 4661*cdf0e10cSrcweir class copy : public CppUnit::TestFixture 4662*cdf0e10cSrcweir { 4663*cdf0e10cSrcweir ::osl::FileBase::RC nError1; 4664*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4665*cdf0e10cSrcweir 4666*cdf0e10cSrcweir public: 4667*cdf0e10cSrcweir // initialization 4668*cdf0e10cSrcweir void setUp( ) 4669*cdf0e10cSrcweir { 4670*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4671*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4672*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4673*cdf0e10cSrcweir 4674*cdf0e10cSrcweir //write chars into the file. 4675*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4676*cdf0e10cSrcweir 4677*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4678*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4679*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4680*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4681*cdf0e10cSrcweir nError1 = testFile.close( ); 4682*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4683*cdf0e10cSrcweir } 4684*cdf0e10cSrcweir 4685*cdf0e10cSrcweir void tearDown( ) 4686*cdf0e10cSrcweir { 4687*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4688*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4689*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4690*cdf0e10cSrcweir } 4691*cdf0e10cSrcweir 4692*cdf0e10cSrcweir // test code. 4693*cdf0e10cSrcweir void copy_001( ) 4694*cdf0e10cSrcweir { 4695*cdf0e10cSrcweir ::osl::File testFile( aTmpName6 ); 4696*cdf0e10cSrcweir 4697*cdf0e10cSrcweir //copy $TEMP/tmpdir/tmpname to $TEMP/tmpname. 4698*cdf0e10cSrcweir nError1 = ::osl::File::copy( aTmpName4, aTmpName6 ); 4699*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4700*cdf0e10cSrcweir //check 4701*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Create ); 4702*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 4703*cdf0e10cSrcweir 4704*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy file to upper directory", 4705*cdf0e10cSrcweir ::osl::FileBase::E_EXIST == nError1 ); 4706*cdf0e10cSrcweir } 4707*cdf0e10cSrcweir 4708*cdf0e10cSrcweir void copy_002( ) 4709*cdf0e10cSrcweir { 4710*cdf0e10cSrcweir //copy $TEMP/tmpdir/tmpname to $TEMP/tmpdir. 4711*cdf0e10cSrcweir nError1 = ::osl::File::copy( aTmpName4, aTmpName3 ); 4712*cdf0e10cSrcweir 4713*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: use directory as destination", 4714*cdf0e10cSrcweir ( ::osl::FileBase::E_ISDIR == nError1 ) ||( ::osl::FileBase::E_ACCES == nError1 ) ); 4715*cdf0e10cSrcweir } 4716*cdf0e10cSrcweir 4717*cdf0e10cSrcweir void copy_003( ) 4718*cdf0e10cSrcweir { 4719*cdf0e10cSrcweir //copy $TEMP/tmpdir/tmpname to $ROOT/tmpname. 4720*cdf0e10cSrcweir nError1 = ::osl::File::copy( aTmpName4, aTmpName7 ); 4721*cdf0e10cSrcweir #if defined (WNT ) 4722*cdf0e10cSrcweir nError1 = ::osl::FileBase::E_ACCES; /// for Windows, c:/ is writtenable any way. 4723*cdf0e10cSrcweir deleteTestFile( aTmpName7); 4724*cdf0e10cSrcweir #endif 4725*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy to an illigal place", 4726*cdf0e10cSrcweir ::osl::FileBase::E_ACCES == nError1 ); 4727*cdf0e10cSrcweir } 4728*cdf0e10cSrcweir 4729*cdf0e10cSrcweir void copy_004( ) 4730*cdf0e10cSrcweir { 4731*cdf0e10cSrcweir //copy $TEMP/tmpname to $TEMP/tmpdir/tmpname. 4732*cdf0e10cSrcweir nError1 = ::osl::File::copy( aTmpName6, aTmpName4 ); 4733*cdf0e10cSrcweir 4734*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy a not exist file", 4735*cdf0e10cSrcweir ::osl::FileBase::E_NOENT == nError1 ); 4736*cdf0e10cSrcweir } 4737*cdf0e10cSrcweir 4738*cdf0e10cSrcweir void copy_005( ) 4739*cdf0e10cSrcweir { 4740*cdf0e10cSrcweir //copy $TEMP/tmpname to $TEMP/system.path using system path. 4741*cdf0e10cSrcweir nError1 = ::osl::File::copy( aTmpName6, aSysPath1 ); 4742*cdf0e10cSrcweir 4743*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: copy a file using system file path", 4744*cdf0e10cSrcweir ::osl::FileBase::E_INVAL == nError1 ); 4745*cdf0e10cSrcweir } 4746*cdf0e10cSrcweir void copy_006( ) 4747*cdf0e10cSrcweir { 4748*cdf0e10cSrcweir createTestFile( aTmpName6 ); 4749*cdf0e10cSrcweir File tmpFile( aTmpName6 ); 4750*cdf0e10cSrcweir FileBase::RC err = tmpFile.open( OpenFlag_Write | OpenFlag_Read ); 4751*cdf0e10cSrcweir (void)err; 4752*cdf0e10cSrcweir tmpFile.setSize( 200 ); 4753*cdf0e10cSrcweir tmpFile.close(); 4754*cdf0e10cSrcweir //copy to new path 4755*cdf0e10cSrcweir nError1 = ::osl::File::copy( aTmpName6, aTmpName4 ); 4756*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 4757*cdf0e10cSrcweir 4758*cdf0e10cSrcweir //check if is the new file 4759*cdf0e10cSrcweir File newFile( aTmpName4 ); 4760*cdf0e10cSrcweir newFile.open( OpenFlag_Write | OpenFlag_Read ); 4761*cdf0e10cSrcweir newFile.setPos( Pos_End, 0 ); 4762*cdf0e10cSrcweir // CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4763*cdf0e10cSrcweir sal_uInt64 nFilePointer; 4764*cdf0e10cSrcweir nError1 = newFile.getPos( nFilePointer ); 4765*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4766*cdf0e10cSrcweir newFile.close( ); 4767*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 4768*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: the dest file exist", 4769*cdf0e10cSrcweir nFilePointer == 200 ); 4770*cdf0e10cSrcweir } 4771*cdf0e10cSrcweir //copyLink has not been impletmented yet 4772*cdf0e10cSrcweir void copy_007( ) 4773*cdf0e10cSrcweir { 4774*cdf0e10cSrcweir #if ( defined UNX ) 4775*cdf0e10cSrcweir 4776*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy function: source file is link file", 4777*cdf0e10cSrcweir ::osl::FileBase::E_INVAL == nError1 ); 4778*cdf0e10cSrcweir #endif 4779*cdf0e10cSrcweir } 4780*cdf0e10cSrcweir 4781*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( copy ); 4782*cdf0e10cSrcweir CPPUNIT_TEST( copy_001 ); 4783*cdf0e10cSrcweir CPPUNIT_TEST( copy_002 ); 4784*cdf0e10cSrcweir CPPUNIT_TEST( copy_003 ); 4785*cdf0e10cSrcweir CPPUNIT_TEST( copy_004 ); 4786*cdf0e10cSrcweir CPPUNIT_TEST( copy_005 ); 4787*cdf0e10cSrcweir CPPUNIT_TEST( copy_006 ); 4788*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4789*cdf0e10cSrcweir };// class copy 4790*cdf0e10cSrcweir 4791*cdf0e10cSrcweir //--------------------------------------------------------------------- 4792*cdf0e10cSrcweir // testing the method 4793*cdf0e10cSrcweir // inline static RC move( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL ) 4794*cdf0e10cSrcweir //--------------------------------------------------------------------- 4795*cdf0e10cSrcweir class move : public CppUnit::TestFixture 4796*cdf0e10cSrcweir { 4797*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 4798*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4799*cdf0e10cSrcweir 4800*cdf0e10cSrcweir public: 4801*cdf0e10cSrcweir // initialization 4802*cdf0e10cSrcweir void setUp( ) 4803*cdf0e10cSrcweir { 4804*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4805*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4806*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4807*cdf0e10cSrcweir 4808*cdf0e10cSrcweir //write chars into the file. 4809*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4810*cdf0e10cSrcweir 4811*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4812*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4813*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4814*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4815*cdf0e10cSrcweir nError1 = testFile.close( ); 4816*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4817*cdf0e10cSrcweir } 4818*cdf0e10cSrcweir 4819*cdf0e10cSrcweir void tearDown( ) 4820*cdf0e10cSrcweir { 4821*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4822*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4823*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4824*cdf0e10cSrcweir } 4825*cdf0e10cSrcweir 4826*cdf0e10cSrcweir // test code. 4827*cdf0e10cSrcweir void move_001( ) 4828*cdf0e10cSrcweir { 4829*cdf0e10cSrcweir //rename $TEMP/tmpdir/tmpname to $TEMP/canonical.name. 4830*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName4, aCanURL1 ); 4831*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4832*cdf0e10cSrcweir //check 4833*cdf0e10cSrcweir ::osl::File testFile( aCanURL1 ); 4834*cdf0e10cSrcweir nError2 = testFile.open( OpenFlag_Create ); 4835*cdf0e10cSrcweir deleteTestFile( aCanURL1 ); 4836*cdf0e10cSrcweir 4837*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: rename file to another directory", 4838*cdf0e10cSrcweir ::osl::FileBase::E_EXIST == nError2 ); 4839*cdf0e10cSrcweir } 4840*cdf0e10cSrcweir 4841*cdf0e10cSrcweir void move_002( ) 4842*cdf0e10cSrcweir { 4843*cdf0e10cSrcweir //move $TEMP/tmpdir/tmpname to $TEMP/tmpdir. 4844*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName4, aTmpName3 ); 4845*cdf0e10cSrcweir //returned ::osl::FileBase::E_ACCES on WNT 4846*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: use directory as destination", 4847*cdf0e10cSrcweir ( ::osl::FileBase::E_ACCES == nError1 || ::osl::FileBase::E_ISDIR == nError1 ) ||( ::osl::FileBase::E_EXIST == nError1 ) ); 4848*cdf0e10cSrcweir } 4849*cdf0e10cSrcweir 4850*cdf0e10cSrcweir void move_003( ) 4851*cdf0e10cSrcweir { 4852*cdf0e10cSrcweir //move $TEMP/tmpdir/tmpname to $ROOT/tmpname. 4853*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName4, aTmpName7 ); 4854*cdf0e10cSrcweir #if defined (WNT ) 4855*cdf0e10cSrcweir nError1 = ::osl::FileBase::E_ACCES; /// for Windows, c:/ is writtenable any way. 4856*cdf0e10cSrcweir deleteTestFile( aTmpName7); 4857*cdf0e10cSrcweir #endif 4858*cdf0e10cSrcweir 4859*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: move to an illigal place", 4860*cdf0e10cSrcweir ::osl::FileBase::E_ACCES == nError1 ); 4861*cdf0e10cSrcweir } 4862*cdf0e10cSrcweir 4863*cdf0e10cSrcweir void move_004( ) 4864*cdf0e10cSrcweir { 4865*cdf0e10cSrcweir //move $TEMP/tmpname to $TEMP/tmpdir/tmpname. 4866*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName6, aTmpName4 ); 4867*cdf0e10cSrcweir 4868*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: move a not exist file", 4869*cdf0e10cSrcweir ::osl::FileBase::E_NOENT == nError1 ); 4870*cdf0e10cSrcweir } 4871*cdf0e10cSrcweir 4872*cdf0e10cSrcweir void move_005( ) 4873*cdf0e10cSrcweir { 4874*cdf0e10cSrcweir //move $TEMP/tmpname to $TEMP/system.path using system path. 4875*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName6, aSysPath1 ); 4876*cdf0e10cSrcweir 4877*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: move a file using system file", 4878*cdf0e10cSrcweir ::osl::FileBase::E_INVAL == nError1 ); 4879*cdf0e10cSrcweir } 4880*cdf0e10cSrcweir 4881*cdf0e10cSrcweir void move_006( ) 4882*cdf0e10cSrcweir { 4883*cdf0e10cSrcweir //move directory $TEMP/tmpname to $TEMP/tmpdir/tmpname. 4884*cdf0e10cSrcweir createTestDirectory( aTmpName6 ); 4885*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName6, aTmpName4 ); 4886*cdf0e10cSrcweir //move file $TEMP/tmpdir/tmpname to $TEMP/tmpname 4887*cdf0e10cSrcweir nError2 = ::osl::File::move( aTmpName4, aTmpName6 ); 4888*cdf0e10cSrcweir deleteTestDirectory( aTmpName6 ); 4889*cdf0e10cSrcweir #if defined ( WNT ) 4890*cdf0e10cSrcweir deleteTestDirectory( aTmpName4 );// in Windows, it can be moved!!!!! this is only for not influence the following test. 4891*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 4892*cdf0e10cSrcweir nError1 = ::osl::FileBase::E_NOTDIR; 4893*cdf0e10cSrcweir nError2 = ::osl::FileBase::E_ISDIR; 4894*cdf0e10cSrcweir #endif 4895*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: move a directory to an exist file with same name, did not pass in (W32)", 4896*cdf0e10cSrcweir ::osl::FileBase::E_NOTDIR == nError1 && ::osl::FileBase::E_ISDIR == nError2 ); 4897*cdf0e10cSrcweir } 4898*cdf0e10cSrcweir 4899*cdf0e10cSrcweir void move_007( ) 4900*cdf0e10cSrcweir { 4901*cdf0e10cSrcweir //create directory $TEMP/tmpname. 4902*cdf0e10cSrcweir createTestDirectory( aTmpName6 ); 4903*cdf0e10cSrcweir //move directory $TEMP/tmpdir to $TEMP/tmpname/tmpdir 4904*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName3, aTmpName8 ); 4905*cdf0e10cSrcweir //check 4906*cdf0e10cSrcweir nError2 = ::osl::Directory::create( aTmpName8 ); 4907*cdf0e10cSrcweir ::osl::File::move( aTmpName8, aTmpName3 ); 4908*cdf0e10cSrcweir deleteTestDirectory( aTmpName6 ); 4909*cdf0e10cSrcweir 4910*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: move a directory to an exist file with same name", 4911*cdf0e10cSrcweir (::osl::FileBase::E_None == nError1 ) && 4912*cdf0e10cSrcweir (::osl::FileBase::E_EXIST == nError2 ) ); 4913*cdf0e10cSrcweir } 4914*cdf0e10cSrcweir // oldpath and newpath are not on the same filesystem.EXDEV,no such error no on Solaris, only on linux 4915*cdf0e10cSrcweir void move_008( ) 4916*cdf0e10cSrcweir { 4917*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "oldpath and newpath are not on the same filesystem, should error returns", 4918*cdf0e10cSrcweir ::osl::FileBase::E_None == nError1 ); 4919*cdf0e10cSrcweir } 4920*cdf0e10cSrcweir //bugid# 115420, after the bug fix, add the case 4921*cdf0e10cSrcweir void move_009( ) 4922*cdf0e10cSrcweir { 4923*cdf0e10cSrcweir //create directory $TEMP/tmpname. 4924*cdf0e10cSrcweir createTestDirectory( aTmpName6 ); 4925*cdf0e10cSrcweir //create directory $TEMP/tmpname/tmpdir 4926*cdf0e10cSrcweir createTestDirectory( aTmpName8 ); 4927*cdf0e10cSrcweir //move directory $TEMP/tmpname to $TEMP/tmpname/tmpdir/tmpname 4928*cdf0e10cSrcweir rtl::OUString newName = aTmpName8 + OUString::createFromAscii("/tmpname"); 4929*cdf0e10cSrcweir //printFileName( newName ); 4930*cdf0e10cSrcweir nError1 = ::osl::File::move( aTmpName3, newName ); 4931*cdf0e10cSrcweir //deleteTestDirectory( newName + OUString::createFromAscii("/tmpname") ); 4932*cdf0e10cSrcweir //deleteTestDirectory( newName ); 4933*cdf0e10cSrcweir deleteTestDirectory( aTmpName8 ); 4934*cdf0e10cSrcweir deleteTestDirectory( aTmpName6 ); 4935*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for move function: move a directory to it's subdirectory", 4936*cdf0e10cSrcweir ::osl::FileBase::E_None != nError1 ); 4937*cdf0e10cSrcweir } 4938*cdf0e10cSrcweir 4939*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( move ); 4940*cdf0e10cSrcweir CPPUNIT_TEST( move_001 ); 4941*cdf0e10cSrcweir CPPUNIT_TEST( move_002 ); 4942*cdf0e10cSrcweir CPPUNIT_TEST( move_003 ); 4943*cdf0e10cSrcweir CPPUNIT_TEST( move_004 ); 4944*cdf0e10cSrcweir CPPUNIT_TEST( move_005 ); 4945*cdf0e10cSrcweir CPPUNIT_TEST( move_006 ); 4946*cdf0e10cSrcweir CPPUNIT_TEST( move_007 ); 4947*cdf0e10cSrcweir // CPPUNIT_TEST( move_008 ); 4948*cdf0e10cSrcweir //CPPUNIT_TEST( move_009 ); 4949*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 4950*cdf0e10cSrcweir };// class move 4951*cdf0e10cSrcweir 4952*cdf0e10cSrcweir 4953*cdf0e10cSrcweir //--------------------------------------------------------------------- 4954*cdf0e10cSrcweir // testing the method 4955*cdf0e10cSrcweir // inline static RC remove( const ::rtl::OUString& ustrFileURL ) 4956*cdf0e10cSrcweir //--------------------------------------------------------------------- 4957*cdf0e10cSrcweir class remove : public CppUnit::TestFixture 4958*cdf0e10cSrcweir { 4959*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 4960*cdf0e10cSrcweir sal_uInt64 nCount_write, nCount_read; 4961*cdf0e10cSrcweir 4962*cdf0e10cSrcweir public: 4963*cdf0e10cSrcweir // initialization 4964*cdf0e10cSrcweir void setUp( ) 4965*cdf0e10cSrcweir { 4966*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 4967*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 4968*cdf0e10cSrcweir createTestFile( aTmpName4 ); 4969*cdf0e10cSrcweir 4970*cdf0e10cSrcweir //write chars into the file. 4971*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4972*cdf0e10cSrcweir 4973*cdf0e10cSrcweir nError1 = testFile.open( OpenFlag_Write ); 4974*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4975*cdf0e10cSrcweir nError1 = testFile.write( pBuffer_Char, sizeof( pBuffer_Char ), nCount_write ); 4976*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4977*cdf0e10cSrcweir nError1 = testFile.close( ); 4978*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 4979*cdf0e10cSrcweir } 4980*cdf0e10cSrcweir 4981*cdf0e10cSrcweir void tearDown( ) 4982*cdf0e10cSrcweir { 4983*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 4984*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 4985*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 4986*cdf0e10cSrcweir } 4987*cdf0e10cSrcweir 4988*cdf0e10cSrcweir // test code. 4989*cdf0e10cSrcweir void remove_001( ) 4990*cdf0e10cSrcweir { 4991*cdf0e10cSrcweir //remove $TEMP/tmpdir/tmpname. 4992*cdf0e10cSrcweir nError1 = ::osl::File::remove( aTmpName4 ); 4993*cdf0e10cSrcweir //check 4994*cdf0e10cSrcweir ::osl::File testFile( aTmpName4 ); 4995*cdf0e10cSrcweir nError2 = testFile.open( OpenFlag_Create ); 4996*cdf0e10cSrcweir 4997*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a file", 4998*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && 4999*cdf0e10cSrcweir ( ::osl::FileBase::E_EXIST != nError2 ) ); 5000*cdf0e10cSrcweir } 5001*cdf0e10cSrcweir 5002*cdf0e10cSrcweir void remove_002( ) 5003*cdf0e10cSrcweir { 5004*cdf0e10cSrcweir //remove $TEMP/tmpname. 5005*cdf0e10cSrcweir nError1 = ::osl::File::remove( aTmpName6 ); 5006*cdf0e10cSrcweir 5007*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a file not exist", 5008*cdf0e10cSrcweir ( ::osl::FileBase::E_NOENT == nError1 ) ); 5009*cdf0e10cSrcweir } 5010*cdf0e10cSrcweir 5011*cdf0e10cSrcweir void remove_003( ) 5012*cdf0e10cSrcweir { 5013*cdf0e10cSrcweir //remove $TEMP/system/path. 5014*cdf0e10cSrcweir nError1 = ::osl::File::remove( aSysPath2 ); 5015*cdf0e10cSrcweir 5016*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: removing a file not using full qualified URL", 5017*cdf0e10cSrcweir ( ::osl::FileBase::E_INVAL == nError1 ) ); 5018*cdf0e10cSrcweir } 5019*cdf0e10cSrcweir 5020*cdf0e10cSrcweir void remove_004( ) 5021*cdf0e10cSrcweir { 5022*cdf0e10cSrcweir //remove $TEMP/tmpdir. 5023*cdf0e10cSrcweir nError1 = ::osl::File::remove( aTmpName3 ); 5024*cdf0e10cSrcweir 5025*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a directory", 5026*cdf0e10cSrcweir ( ::osl::FileBase::E_ISDIR == nError1 ) || ( ::osl::FileBase::E_ACCES == nError1 )); 5027*cdf0e10cSrcweir } 5028*cdf0e10cSrcweir 5029*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( remove ); 5030*cdf0e10cSrcweir CPPUNIT_TEST( remove_001 ); 5031*cdf0e10cSrcweir CPPUNIT_TEST( remove_002 ); 5032*cdf0e10cSrcweir CPPUNIT_TEST( remove_003 ); 5033*cdf0e10cSrcweir CPPUNIT_TEST( remove_004 ); 5034*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5035*cdf0e10cSrcweir };// class remove 5036*cdf0e10cSrcweir 5037*cdf0e10cSrcweir 5038*cdf0e10cSrcweir //--------------------------------------------------------------------- 5039*cdf0e10cSrcweir // testing the method 5040*cdf0e10cSrcweir // inline static RC setAttributes( const ::rtl::OUString& ustrFileURL, sal_uInt64 uAttributes ) 5041*cdf0e10cSrcweir //--------------------------------------------------------------------- 5042*cdf0e10cSrcweir class setAttributes : public CppUnit::TestFixture 5043*cdf0e10cSrcweir { 5044*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5045*cdf0e10cSrcweir ::osl::DirectoryItem rItem, rItem_hidden; 5046*cdf0e10cSrcweir 5047*cdf0e10cSrcweir public: 5048*cdf0e10cSrcweir // initialization 5049*cdf0e10cSrcweir void setUp( ) 5050*cdf0e10cSrcweir { 5051*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5052*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5053*cdf0e10cSrcweir } 5054*cdf0e10cSrcweir 5055*cdf0e10cSrcweir void tearDown( ) 5056*cdf0e10cSrcweir { 5057*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5058*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5059*cdf0e10cSrcweir } 5060*cdf0e10cSrcweir 5061*cdf0e10cSrcweir // test code. 5062*cdf0e10cSrcweir void setAttributes_001( ) 5063*cdf0e10cSrcweir { 5064*cdf0e10cSrcweir //on windows, only can set 2 attributes: Attribute_ReadOnly, Attribute_HIDDEN 5065*cdf0e10cSrcweir #ifdef UNX 5066*cdf0e10cSrcweir //set the file to readonly 5067*cdf0e10cSrcweir nError2 = ::osl::File::setAttributes( aTmpName6, Attribute_ReadOnly | Attribute_GrpRead | Attribute_OwnRead | Attribute_OthRead ); 5068*cdf0e10cSrcweir CPPUNIT_ASSERT( nError2 == FileBase::E_None); 5069*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5070*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None); 5071*cdf0e10cSrcweir //get the file attributes 5072*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 5073*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 5074*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 5075*cdf0e10cSrcweir 5076*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setAttributes function: set file attributes and get it to verify.", 5077*cdf0e10cSrcweir ( Attribute_ReadOnly | Attribute_GrpRead | Attribute_OwnRead | Attribute_OthRead ) == 5078*cdf0e10cSrcweir rFileStatus.getAttributes( ) ); 5079*cdf0e10cSrcweir #else 5080*cdf0e10cSrcweir //please see GetFileAttributes 5081*cdf0e10cSrcweir nError2 = ::osl::File::setAttributes( aTmpName6, Attribute_ReadOnly ); 5082*cdf0e10cSrcweir CPPUNIT_ASSERT( nError2 == FileBase::E_None); 5083*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5084*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None); 5085*cdf0e10cSrcweir //get the file attributes 5086*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 5087*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 5088*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 5089*cdf0e10cSrcweir //here the file has 2 Attributes: FILE_ATTRIBUTE_READONLY and FILE_ATTRIBUTE_NORMAL, 5090*cdf0e10cSrcweir // but FILE_ATTRIBUTE_NORMAL is valid only if used alone, so this is maybe a bug 5091*cdf0e10cSrcweir /*::rtl::OString aString = ::rtl::OUStringToOString( aTmpName6, RTL_TEXTENCODING_ASCII_US ); 5092*cdf0e10cSrcweir DWORD dwFileAttributes = GetFileAttributes( aString.getStr( ) ); 5093*cdf0e10cSrcweir if (dwFileAttributes & FILE_ATTRIBUTE_NORMAL) 5094*cdf0e10cSrcweir t_print("has normal attribute"); 5095*cdf0e10cSrcweir if (dwFileAttributes & FILE_ATTRIBUTE_READONLY) 5096*cdf0e10cSrcweir t_print("has readonly attribute"); 5097*cdf0e10cSrcweir */ 5098*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setAttributes function: set file attributes READONLY and get it to verify.", 5099*cdf0e10cSrcweir (Attribute_ReadOnly & rFileStatus.getAttributes( )) != 0 ); 5100*cdf0e10cSrcweir #endif 5101*cdf0e10cSrcweir } 5102*cdf0e10cSrcweir void setAttributes_002( ) 5103*cdf0e10cSrcweir { 5104*cdf0e10cSrcweir //on UNX, can not set hidden attribute to file, rename file can set the attribute 5105*cdf0e10cSrcweir #ifdef WNT 5106*cdf0e10cSrcweir //set the file to hidden 5107*cdf0e10cSrcweir nError2 = ::osl::File::setAttributes( aTmpName6, Attribute_Hidden); 5108*cdf0e10cSrcweir 5109*cdf0e10cSrcweir CPPUNIT_ASSERT( nError2 == FileBase::E_None); 5110*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5111*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None); 5112*cdf0e10cSrcweir //get the file attributes 5113*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_Attributes ); 5114*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 5115*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 5116*cdf0e10cSrcweir 5117*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setAttributes function: set file attributes and get it to verify.", 5118*cdf0e10cSrcweir (Attribute_Hidden & rFileStatus.getAttributes( )) != 0 ); 5119*cdf0e10cSrcweir #endif 5120*cdf0e10cSrcweir } 5121*cdf0e10cSrcweir 5122*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( setAttributes ); 5123*cdf0e10cSrcweir CPPUNIT_TEST( setAttributes_001 ); 5124*cdf0e10cSrcweir CPPUNIT_TEST( setAttributes_002 ); 5125*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5126*cdf0e10cSrcweir };// class setAttributes 5127*cdf0e10cSrcweir 5128*cdf0e10cSrcweir 5129*cdf0e10cSrcweir //--------------------------------------------------------------------- 5130*cdf0e10cSrcweir // testing the method 5131*cdf0e10cSrcweir // inline static RC setTime( 5132*cdf0e10cSrcweir // const ::rtl::OUString& ustrFileURL, 5133*cdf0e10cSrcweir // const TimeValue& rCreationTime, 5134*cdf0e10cSrcweir // const TimeValue& rLastAccessTime, 5135*cdf0e10cSrcweir // const TimeValue& rLastWriteTime ) 5136*cdf0e10cSrcweir //--------------------------------------------------------------------- 5137*cdf0e10cSrcweir class setTime : public CppUnit::TestFixture 5138*cdf0e10cSrcweir { 5139*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5140*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 5141*cdf0e10cSrcweir 5142*cdf0e10cSrcweir public: 5143*cdf0e10cSrcweir // initialization 5144*cdf0e10cSrcweir void setUp( ) 5145*cdf0e10cSrcweir { 5146*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5147*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5148*cdf0e10cSrcweir } 5149*cdf0e10cSrcweir 5150*cdf0e10cSrcweir void tearDown( ) 5151*cdf0e10cSrcweir { 5152*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5153*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5154*cdf0e10cSrcweir } 5155*cdf0e10cSrcweir 5156*cdf0e10cSrcweir // test code. 5157*cdf0e10cSrcweir void setTime_001( ) 5158*cdf0e10cSrcweir { 5159*cdf0e10cSrcweir TimeValue *pTV_current = NULL; 5160*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_current = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 5161*cdf0e10cSrcweir TimeValue *pTV_creation = NULL; 5162*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_creation = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 5163*cdf0e10cSrcweir TimeValue *pTV_access = NULL; 5164*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_access = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 5165*cdf0e10cSrcweir TimeValue *pTV_modify = NULL; 5166*cdf0e10cSrcweir CPPUNIT_ASSERT( ( pTV_modify = ( TimeValue* )malloc( sizeof( TimeValue ) ) ) != NULL ); 5167*cdf0e10cSrcweir 5168*cdf0e10cSrcweir //get current time 5169*cdf0e10cSrcweir sal_Bool bOk = osl_getSystemTime( pTV_current ); 5170*cdf0e10cSrcweir CPPUNIT_ASSERT( sal_True == bOk ); 5171*cdf0e10cSrcweir 5172*cdf0e10cSrcweir //set the file time 5173*cdf0e10cSrcweir nError2 = ::osl::File::setTime( aTmpName6, *pTV_current, *pTV_current, *pTV_current ); 5174*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr( nError2 ), nError2 == FileBase::E_None); 5175*cdf0e10cSrcweir 5176*cdf0e10cSrcweir //get the file access time, creation time, modify time 5177*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5178*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ), nError1 == FileBase::E_None); 5179*cdf0e10cSrcweir 5180*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_AccessTime ); 5181*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 5182*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ),nError1 == FileBase::E_None ); 5183*cdf0e10cSrcweir *pTV_access = rFileStatus.getAccessTime( ); 5184*cdf0e10cSrcweir 5185*cdf0e10cSrcweir ::osl::FileStatus rFileStatus1( FileStatusMask_CreationTime ); 5186*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus1 ); 5187*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ), nError1 == FileBase::E_None ); 5188*cdf0e10cSrcweir *pTV_creation = rFileStatus1.getCreationTime( ); 5189*cdf0e10cSrcweir 5190*cdf0e10cSrcweir ::osl::FileStatus rFileStatus2( FileStatusMask_ModifyTime ); 5191*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus2 ); 5192*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( errorToStr( nError1 ), nError1 == FileBase::E_None ); 5193*cdf0e10cSrcweir *pTV_modify = rFileStatus2.getModifyTime( ); 5194*cdf0e10cSrcweir 5195*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setTime function: set access time then get it. time precision is still a problem for it cut off the nanosec.", 5196*cdf0e10cSrcweir sal_True == t_compareTime( pTV_access, pTV_current, delta ) ); 5197*cdf0e10cSrcweir #if defined ( WNT ) 5198*cdf0e10cSrcweir //Unfortunately there is no way to get the creation time of a file under Unix (its a Windows only feature). 5199*cdf0e10cSrcweir //That means the flag osl_FileStatus_Mask_CreationTime should be deprecated under Unix. 5200*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setTime function: set creation time then get it. ", 5201*cdf0e10cSrcweir sal_True == t_compareTime( pTV_creation, pTV_current, delta ) ) ; 5202*cdf0e10cSrcweir #endif 5203*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for setTime function: set modify time then get it. ", 5204*cdf0e10cSrcweir sal_True == t_compareTime( pTV_modify, pTV_current, delta ) ); 5205*cdf0e10cSrcweir free( pTV_current ); 5206*cdf0e10cSrcweir free( pTV_creation ); 5207*cdf0e10cSrcweir free( pTV_access ); 5208*cdf0e10cSrcweir free( pTV_modify ); 5209*cdf0e10cSrcweir } 5210*cdf0e10cSrcweir 5211*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( setTime ); 5212*cdf0e10cSrcweir CPPUNIT_TEST( setTime_001 ); 5213*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5214*cdf0e10cSrcweir };// class setTime 5215*cdf0e10cSrcweir 5216*cdf0e10cSrcweir //--------------------------------------------------------------------- 5217*cdf0e10cSrcweir // testing the method 5218*cdf0e10cSrcweir // inline static RC sync() 5219*cdf0e10cSrcweir //--------------------------------------------------------------------- 5220*cdf0e10cSrcweir class sync : public CppUnit::TestFixture 5221*cdf0e10cSrcweir { 5222*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5223*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 5224*cdf0e10cSrcweir 5225*cdf0e10cSrcweir public: 5226*cdf0e10cSrcweir // initialization 5227*cdf0e10cSrcweir void setUp( ) 5228*cdf0e10cSrcweir { 5229*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5230*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5231*cdf0e10cSrcweir 5232*cdf0e10cSrcweir } 5233*cdf0e10cSrcweir 5234*cdf0e10cSrcweir void tearDown( ) 5235*cdf0e10cSrcweir { 5236*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5237*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5238*cdf0e10cSrcweir } 5239*cdf0e10cSrcweir 5240*cdf0e10cSrcweir // test case: if The file is located on a read only file system. 5241*cdf0e10cSrcweir void sync_001( ) 5242*cdf0e10cSrcweir { 5243*cdf0e10cSrcweir #ifdef UNX 5244*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5245*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None); 5246*cdf0e10cSrcweir 5247*cdf0e10cSrcweir File tmp_file( aTmpName6 ); 5248*cdf0e10cSrcweir FileBase::RC err = tmp_file.open(osl_File_OpenFlag_Write ); 5249*cdf0e10cSrcweir 5250*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("File open failed", err == FileBase::E_None); 5251*cdf0e10cSrcweir 5252*cdf0e10cSrcweir char buffer[50000]; 5253*cdf0e10cSrcweir sal_uInt64 written = 0; 5254*cdf0e10cSrcweir nError1 = tmp_file.write((void*)buffer, sizeof(buffer), written); 5255*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("write failed!", nError1 == FileBase::E_None); 5256*cdf0e10cSrcweir 5257*cdf0e10cSrcweir //set the file to readonly 5258*cdf0e10cSrcweir nError2 = ::osl::File::setAttributes( aTmpName6, Attribute_ReadOnly | Attribute_GrpRead | Attribute_OwnRead | Attribute_OthRead ); 5259*cdf0e10cSrcweir CPPUNIT_ASSERT( nError2 == FileBase::E_None); 5260*cdf0e10cSrcweir 5261*cdf0e10cSrcweir nError2 = tmp_file.sync(); 5262*cdf0e10cSrcweir 5263*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE("can not sync to readonly file!", nError2 == FileBase::E_None); 5264*cdf0e10cSrcweir 5265*cdf0e10cSrcweir tmp_file.close(); 5266*cdf0e10cSrcweir #endif 5267*cdf0e10cSrcweir } 5268*cdf0e10cSrcweir //test case:no enough space, how to create such case???see test_cpy_wrt_file.cxx::test_osl_writeFile 5269*cdf0e10cSrcweir 5270*cdf0e10cSrcweir 5271*cdf0e10cSrcweir 5272*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( sync ); 5273*cdf0e10cSrcweir CPPUNIT_TEST( sync_001 ); 5274*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5275*cdf0e10cSrcweir };// class setTime 5276*cdf0e10cSrcweir 5277*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 5278*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::ctors, "osl_File" ); 5279*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::open, "osl_File" ); 5280*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::close, "osl_File" ); 5281*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setPos, "osl_File" ); 5282*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::getPos, "osl_File" ); 5283*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::isEndOfFile, "osl_File" ); 5284*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setSize, "osl_File" ); 5285*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::read, "osl_File" ); 5286*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::write, "osl_File" ); 5287*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::readLine, "osl_File" ); 5288*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::copy, "osl_File" ); 5289*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::move, "osl_File" ); 5290*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::remove, "osl_File" ); 5291*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setAttributes, "osl_File" ); 5292*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::setTime, "osl_File" ); 5293*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_File::sync, "osl_File" ); 5294*cdf0e10cSrcweir 5295*cdf0e10cSrcweir }// namespace osl_File 5296*cdf0e10cSrcweir 5297*cdf0e10cSrcweir 5298*cdf0e10cSrcweir //------------------------------------------------------------------------ 5299*cdf0e10cSrcweir // Beginning of the test cases for DirectoryItem class 5300*cdf0e10cSrcweir //------------------------------------------------------------------------ 5301*cdf0e10cSrcweir namespace osl_DirectoryItem 5302*cdf0e10cSrcweir { 5303*cdf0e10cSrcweir //--------------------------------------------------------------------- 5304*cdf0e10cSrcweir // testing the method 5305*cdf0e10cSrcweir // DirectoryItem(): _pData( NULL ) 5306*cdf0e10cSrcweir //--------------------------------------------------------------------- 5307*cdf0e10cSrcweir class ctors : public CppUnit::TestFixture 5308*cdf0e10cSrcweir { 5309*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5310*cdf0e10cSrcweir 5311*cdf0e10cSrcweir public: 5312*cdf0e10cSrcweir // initialization 5313*cdf0e10cSrcweir void setUp( ) 5314*cdf0e10cSrcweir { 5315*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpname. 5316*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5317*cdf0e10cSrcweir } 5318*cdf0e10cSrcweir 5319*cdf0e10cSrcweir void tearDown( ) 5320*cdf0e10cSrcweir { 5321*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpname. 5322*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5323*cdf0e10cSrcweir } 5324*cdf0e10cSrcweir 5325*cdf0e10cSrcweir // test code. 5326*cdf0e10cSrcweir void ctors_001( ) 5327*cdf0e10cSrcweir { 5328*cdf0e10cSrcweir ::osl::File testFile( aTmpName6 ); 5329*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5330*cdf0e10cSrcweir 5331*cdf0e10cSrcweir //get the DirectoryItem. 5332*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5333*cdf0e10cSrcweir CPPUNIT_ASSERT( FileBase::E_None == nError1 ); 5334*cdf0e10cSrcweir 5335*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: initialize a new instance of DirectoryItem and get an item to check.", 5336*cdf0e10cSrcweir ::osl::FileBase::E_None == nError1 ); 5337*cdf0e10cSrcweir } 5338*cdf0e10cSrcweir 5339*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( ctors ); 5340*cdf0e10cSrcweir CPPUNIT_TEST( ctors_001 ); 5341*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5342*cdf0e10cSrcweir };// class ctors 5343*cdf0e10cSrcweir 5344*cdf0e10cSrcweir //--------------------------------------------------------------------- 5345*cdf0e10cSrcweir // testing the method 5346*cdf0e10cSrcweir // DirectoryItem( const DirectoryItem& rItem ): _pData( rItem._pData) 5347*cdf0e10cSrcweir //--------------------------------------------------------------------- 5348*cdf0e10cSrcweir class copy_assin_Ctors : public CppUnit::TestFixture 5349*cdf0e10cSrcweir { 5350*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5351*cdf0e10cSrcweir 5352*cdf0e10cSrcweir public: 5353*cdf0e10cSrcweir // initialization 5354*cdf0e10cSrcweir void setUp( ) 5355*cdf0e10cSrcweir { 5356*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpname. 5357*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5358*cdf0e10cSrcweir } 5359*cdf0e10cSrcweir 5360*cdf0e10cSrcweir void tearDown( ) 5361*cdf0e10cSrcweir { 5362*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpname. 5363*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5364*cdf0e10cSrcweir } 5365*cdf0e10cSrcweir 5366*cdf0e10cSrcweir // test code. 5367*cdf0e10cSrcweir void copy_assin_Ctors_001( ) 5368*cdf0e10cSrcweir { 5369*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5370*cdf0e10cSrcweir //get the DirectoryItem. 5371*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5372*cdf0e10cSrcweir CPPUNIT_ASSERT( FileBase::E_None == nError1 ); 5373*cdf0e10cSrcweir 5374*cdf0e10cSrcweir ::osl::DirectoryItem copyItem( rItem ); //copy constructor 5375*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5376*cdf0e10cSrcweir nError1 = copyItem.getFileStatus( rFileStatus ); 5377*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 5378*cdf0e10cSrcweir 5379*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy_assin_Ctors function: use copy constructor to get an item and check filename.", 5380*cdf0e10cSrcweir ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) ); 5381*cdf0e10cSrcweir } 5382*cdf0e10cSrcweir 5383*cdf0e10cSrcweir void copy_assin_Ctors_002( ) 5384*cdf0e10cSrcweir { 5385*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5386*cdf0e10cSrcweir //get the DirectoryItem. 5387*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5388*cdf0e10cSrcweir CPPUNIT_ASSERT( FileBase::E_None == nError1 ); 5389*cdf0e10cSrcweir 5390*cdf0e10cSrcweir ::osl::DirectoryItem copyItem; 5391*cdf0e10cSrcweir copyItem = rItem; //assinment operator 5392*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5393*cdf0e10cSrcweir nError1 = copyItem.getFileStatus( rFileStatus ); 5394*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 5395*cdf0e10cSrcweir 5396*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for copy_assin_Ctors function: test assinment operator here since it is same as copy constructor in test way.", 5397*cdf0e10cSrcweir ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) ); 5398*cdf0e10cSrcweir } 5399*cdf0e10cSrcweir 5400*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( copy_assin_Ctors ); 5401*cdf0e10cSrcweir CPPUNIT_TEST( copy_assin_Ctors_001 ); 5402*cdf0e10cSrcweir CPPUNIT_TEST( copy_assin_Ctors_002 ); 5403*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5404*cdf0e10cSrcweir };// class copy_assin_Ctors 5405*cdf0e10cSrcweir 5406*cdf0e10cSrcweir //--------------------------------------------------------------------- 5407*cdf0e10cSrcweir // testing the method 5408*cdf0e10cSrcweir // inline sal_Bool is() 5409*cdf0e10cSrcweir //--------------------------------------------------------------------- 5410*cdf0e10cSrcweir class is : public CppUnit::TestFixture 5411*cdf0e10cSrcweir { 5412*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5413*cdf0e10cSrcweir 5414*cdf0e10cSrcweir public: 5415*cdf0e10cSrcweir // initialization 5416*cdf0e10cSrcweir void setUp( ) 5417*cdf0e10cSrcweir { 5418*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpname. 5419*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5420*cdf0e10cSrcweir } 5421*cdf0e10cSrcweir 5422*cdf0e10cSrcweir void tearDown( ) 5423*cdf0e10cSrcweir { 5424*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpname. 5425*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5426*cdf0e10cSrcweir } 5427*cdf0e10cSrcweir 5428*cdf0e10cSrcweir // test code. 5429*cdf0e10cSrcweir void is_001( ) 5430*cdf0e10cSrcweir { 5431*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5432*cdf0e10cSrcweir 5433*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for is function: use an uninitialized instance.", 5434*cdf0e10cSrcweir !rItem.is( ) ); 5435*cdf0e10cSrcweir } 5436*cdf0e10cSrcweir 5437*cdf0e10cSrcweir void is_002( ) 5438*cdf0e10cSrcweir { 5439*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5440*cdf0e10cSrcweir //get the DirectoryItem. 5441*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5442*cdf0e10cSrcweir CPPUNIT_ASSERT( FileBase::E_None == nError1 ); 5443*cdf0e10cSrcweir 5444*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for is function: use an uninitialized instance.", 5445*cdf0e10cSrcweir ( sal_True == rItem.is( ) ) ); 5446*cdf0e10cSrcweir } 5447*cdf0e10cSrcweir 5448*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( is ); 5449*cdf0e10cSrcweir CPPUNIT_TEST( is_001 ); 5450*cdf0e10cSrcweir CPPUNIT_TEST( is_002 ); 5451*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5452*cdf0e10cSrcweir };// class is 5453*cdf0e10cSrcweir 5454*cdf0e10cSrcweir //--------------------------------------------------------------------- 5455*cdf0e10cSrcweir // testing the method 5456*cdf0e10cSrcweir // static inline RC get( const ::rtl::OUString& ustrFileURL, DirectoryItem& rItem ) 5457*cdf0e10cSrcweir //--------------------------------------------------------------------- 5458*cdf0e10cSrcweir class get : public CppUnit::TestFixture 5459*cdf0e10cSrcweir { 5460*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5461*cdf0e10cSrcweir 5462*cdf0e10cSrcweir public: 5463*cdf0e10cSrcweir // initialization 5464*cdf0e10cSrcweir void setUp( ) 5465*cdf0e10cSrcweir { 5466*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpname. 5467*cdf0e10cSrcweir createTestFile( aTmpName6 ); 5468*cdf0e10cSrcweir } 5469*cdf0e10cSrcweir 5470*cdf0e10cSrcweir void tearDown( ) 5471*cdf0e10cSrcweir { 5472*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpname. 5473*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 5474*cdf0e10cSrcweir } 5475*cdf0e10cSrcweir 5476*cdf0e10cSrcweir // test code. 5477*cdf0e10cSrcweir void get_001( ) 5478*cdf0e10cSrcweir { 5479*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5480*cdf0e10cSrcweir //get the DirectoryItem. 5481*cdf0e10cSrcweir nError2 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5482*cdf0e10cSrcweir 5483*cdf0e10cSrcweir //check the file name 5484*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5485*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 5486*cdf0e10cSrcweir CPPUNIT_ASSERT( nError1 == FileBase::E_None ); 5487*cdf0e10cSrcweir 5488*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for get function: use copy constructor to get an item and check filename.", 5489*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) && 5490*cdf0e10cSrcweir ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) ); 5491*cdf0e10cSrcweir } 5492*cdf0e10cSrcweir 5493*cdf0e10cSrcweir void get_002( ) 5494*cdf0e10cSrcweir { 5495*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 5496*cdf0e10cSrcweir //get the DirectoryItem. 5497*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aSysPath1, rItem ); 5498*cdf0e10cSrcweir 5499*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for get function: use a system name instead of a URL.", 5500*cdf0e10cSrcweir FileBase::E_INVAL == nError1 ); 5501*cdf0e10cSrcweir } 5502*cdf0e10cSrcweir 5503*cdf0e10cSrcweir void get_003( ) 5504*cdf0e10cSrcweir { 5505*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 5506*cdf0e10cSrcweir //get the DirectoryItem. 5507*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName3, rItem ); 5508*cdf0e10cSrcweir 5509*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for get function: use a non existed file URL.", 5510*cdf0e10cSrcweir FileBase::E_NOENT == nError1 ); 5511*cdf0e10cSrcweir } 5512*cdf0e10cSrcweir 5513*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( get ); 5514*cdf0e10cSrcweir CPPUNIT_TEST( get_001 ); 5515*cdf0e10cSrcweir CPPUNIT_TEST( get_002 ); 5516*cdf0e10cSrcweir CPPUNIT_TEST( get_003 ); 5517*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5518*cdf0e10cSrcweir };// class get 5519*cdf0e10cSrcweir 5520*cdf0e10cSrcweir //--------------------------------------------------------------------- 5521*cdf0e10cSrcweir // testing the method 5522*cdf0e10cSrcweir // inline RC getFileStatus( FileStatus& rStatus ) 5523*cdf0e10cSrcweir //--------------------------------------------------------------------- 5524*cdf0e10cSrcweir class getFileStatus : public CppUnit::TestFixture 5525*cdf0e10cSrcweir { 5526*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5527*cdf0e10cSrcweir 5528*cdf0e10cSrcweir public: 5529*cdf0e10cSrcweir // initialization 5530*cdf0e10cSrcweir void setUp( ) 5531*cdf0e10cSrcweir { 5532*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5533*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 5534*cdf0e10cSrcweir createTestFile( aTmpName4 ); 5535*cdf0e10cSrcweir } 5536*cdf0e10cSrcweir 5537*cdf0e10cSrcweir void tearDown( ) 5538*cdf0e10cSrcweir { 5539*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5540*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 5541*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 5542*cdf0e10cSrcweir } 5543*cdf0e10cSrcweir 5544*cdf0e10cSrcweir // test code. 5545*cdf0e10cSrcweir void getFileStatus_001( ) 5546*cdf0e10cSrcweir { 5547*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5548*cdf0e10cSrcweir //get the DirectoryItem. 5549*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName4, rItem ); 5550*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5551*cdf0e10cSrcweir 5552*cdf0e10cSrcweir //check the file name 5553*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5554*cdf0e10cSrcweir nError2 = rItem.getFileStatus( rFileStatus ); 5555*cdf0e10cSrcweir 5556*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileStatus function: get file status and check filename", 5557*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) && 5558*cdf0e10cSrcweir ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName2 ) ) ); 5559*cdf0e10cSrcweir } 5560*cdf0e10cSrcweir 5561*cdf0e10cSrcweir void getFileStatus_002( ) 5562*cdf0e10cSrcweir { 5563*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5564*cdf0e10cSrcweir //get the DirectoryItem. 5565*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName6, rItem ); 5566*cdf0e10cSrcweir 5567*cdf0e10cSrcweir //check the file name 5568*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5569*cdf0e10cSrcweir nError2 = rItem.getFileStatus( rFileStatus ); 5570*cdf0e10cSrcweir 5571*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileStatus function: file not existed", 5572*cdf0e10cSrcweir ( ::osl::FileBase::E_INVAL == nError2 ) ); 5573*cdf0e10cSrcweir } 5574*cdf0e10cSrcweir 5575*cdf0e10cSrcweir void getFileStatus_003( ) 5576*cdf0e10cSrcweir { 5577*cdf0e10cSrcweir ::osl::DirectoryItem rItem; //constructor 5578*cdf0e10cSrcweir //get the DirectoryItem. 5579*cdf0e10cSrcweir nError1 = ::osl::DirectoryItem::get( aTmpName3, rItem ); 5580*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5581*cdf0e10cSrcweir 5582*cdf0e10cSrcweir //check the file name 5583*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5584*cdf0e10cSrcweir nError2 = rItem.getFileStatus( rFileStatus ); 5585*cdf0e10cSrcweir 5586*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getFileStatus function: get directory information", 5587*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) && 5588*cdf0e10cSrcweir ( sal_True == compareFileName( rFileStatus.getFileName( ), aTmpName1 ) ) ); 5589*cdf0e10cSrcweir } 5590*cdf0e10cSrcweir 5591*cdf0e10cSrcweir 5592*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getFileStatus ); 5593*cdf0e10cSrcweir CPPUNIT_TEST( getFileStatus_001 ); 5594*cdf0e10cSrcweir CPPUNIT_TEST( getFileStatus_002 ); 5595*cdf0e10cSrcweir CPPUNIT_TEST( getFileStatus_003 ); 5596*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5597*cdf0e10cSrcweir };// class getFileStatus 5598*cdf0e10cSrcweir 5599*cdf0e10cSrcweir 5600*cdf0e10cSrcweir 5601*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::ctors, "osl_DirectoryItem" ); 5602*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::copy_assin_Ctors, "osl_DirectoryItem" ); 5603*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::is, "osl_DirectoryItem" ); 5604*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::get, "osl_DirectoryItem" ); 5605*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_DirectoryItem::getFileStatus, "osl_DirectoryItem" ); 5606*cdf0e10cSrcweir }// namespace osl_DirectoryItem 5607*cdf0e10cSrcweir 5608*cdf0e10cSrcweir 5609*cdf0e10cSrcweir //------------------------------------------------------------------------ 5610*cdf0e10cSrcweir // Beginning of the test cases for Directory class 5611*cdf0e10cSrcweir //------------------------------------------------------------------------ 5612*cdf0e10cSrcweir namespace osl_Directory 5613*cdf0e10cSrcweir { 5614*cdf0e10cSrcweir //--------------------------------------------------------------------- 5615*cdf0e10cSrcweir // testing the method 5616*cdf0e10cSrcweir // Directory( const ::rtl::OUString& strPath ): _pData( 0 ), _aPath( strPath ) 5617*cdf0e10cSrcweir //--------------------------------------------------------------------- 5618*cdf0e10cSrcweir class ctors : public CppUnit::TestFixture 5619*cdf0e10cSrcweir { 5620*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5621*cdf0e10cSrcweir 5622*cdf0e10cSrcweir public: 5623*cdf0e10cSrcweir // initialization 5624*cdf0e10cSrcweir void setUp( ) 5625*cdf0e10cSrcweir { 5626*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5627*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 5628*cdf0e10cSrcweir createTestFile( aTmpName4 ); 5629*cdf0e10cSrcweir } 5630*cdf0e10cSrcweir 5631*cdf0e10cSrcweir void tearDown( ) 5632*cdf0e10cSrcweir { 5633*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5634*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 5635*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 5636*cdf0e10cSrcweir // LLA: t_print("tearDown done.\n"); 5637*cdf0e10cSrcweir } 5638*cdf0e10cSrcweir 5639*cdf0e10cSrcweir // test code. 5640*cdf0e10cSrcweir void ctors_001( ) 5641*cdf0e10cSrcweir { 5642*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5643*cdf0e10cSrcweir 5644*cdf0e10cSrcweir //open a directory 5645*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5646*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5647*cdf0e10cSrcweir //close a directory 5648*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5649*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 ); 5650*cdf0e10cSrcweir 5651*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: create an instance and check open and close", 5652*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && 5653*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) ); 5654*cdf0e10cSrcweir } 5655*cdf0e10cSrcweir 5656*cdf0e10cSrcweir void ctors_002( ) 5657*cdf0e10cSrcweir { 5658*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName9 ); //constructor 5659*cdf0e10cSrcweir 5660*cdf0e10cSrcweir //open a directory 5661*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5662*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5663*cdf0e10cSrcweir //close a directory 5664*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5665*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 ); 5666*cdf0e10cSrcweir 5667*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for ctors function: relative URL, :-), it is also worked", 5668*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && 5669*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) ); 5670*cdf0e10cSrcweir } 5671*cdf0e10cSrcweir 5672*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( ctors ); 5673*cdf0e10cSrcweir CPPUNIT_TEST( ctors_001 ); 5674*cdf0e10cSrcweir CPPUNIT_TEST( ctors_002 ); 5675*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5676*cdf0e10cSrcweir };// class ctors 5677*cdf0e10cSrcweir 5678*cdf0e10cSrcweir //--------------------------------------------------------------------- 5679*cdf0e10cSrcweir // testing the method 5680*cdf0e10cSrcweir // inline RC open() 5681*cdf0e10cSrcweir //--------------------------------------------------------------------- 5682*cdf0e10cSrcweir class open : public CppUnit::TestFixture 5683*cdf0e10cSrcweir { 5684*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5685*cdf0e10cSrcweir 5686*cdf0e10cSrcweir public: 5687*cdf0e10cSrcweir // initialization 5688*cdf0e10cSrcweir void setUp( ) 5689*cdf0e10cSrcweir { 5690*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5691*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 5692*cdf0e10cSrcweir createTestFile( aTmpName4 ); 5693*cdf0e10cSrcweir } 5694*cdf0e10cSrcweir 5695*cdf0e10cSrcweir void tearDown( ) 5696*cdf0e10cSrcweir { 5697*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5698*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 5699*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 5700*cdf0e10cSrcweir } 5701*cdf0e10cSrcweir 5702*cdf0e10cSrcweir // test code. 5703*cdf0e10cSrcweir void open_001( ) 5704*cdf0e10cSrcweir { 5705*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5706*cdf0e10cSrcweir 5707*cdf0e10cSrcweir //open a directory 5708*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5709*cdf0e10cSrcweir //check if directory is opened. 5710*cdf0e10cSrcweir sal_Bool bOk = testDirectory.isOpen( ); 5711*cdf0e10cSrcweir //close a directory 5712*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5713*cdf0e10cSrcweir 5714*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: open a directory and check for open", 5715*cdf0e10cSrcweir ( sal_True == bOk ) && 5716*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError1 ) && 5717*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) ); 5718*cdf0e10cSrcweir } 5719*cdf0e10cSrcweir 5720*cdf0e10cSrcweir void open_002( ) 5721*cdf0e10cSrcweir { 5722*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName6 ); //constructor 5723*cdf0e10cSrcweir 5724*cdf0e10cSrcweir //open a directory 5725*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5726*cdf0e10cSrcweir if ( ::osl::FileBase::E_None == nError1 ) 5727*cdf0e10cSrcweir { 5728*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5729*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 ); 5730*cdf0e10cSrcweir } 5731*cdf0e10cSrcweir 5732*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: open a file that is not existed", 5733*cdf0e10cSrcweir ( ::osl::FileBase::E_NOENT == nError1 ) ); 5734*cdf0e10cSrcweir } 5735*cdf0e10cSrcweir 5736*cdf0e10cSrcweir void open_003( ) 5737*cdf0e10cSrcweir { 5738*cdf0e10cSrcweir ::osl::Directory testDirectory( aUserDirectorySys ); //constructor 5739*cdf0e10cSrcweir 5740*cdf0e10cSrcweir //open a directory 5741*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5742*cdf0e10cSrcweir if ( ::osl::FileBase::E_None == nError1 ) 5743*cdf0e10cSrcweir { 5744*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5745*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 ); 5746*cdf0e10cSrcweir } 5747*cdf0e10cSrcweir 5748*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: using system path", 5749*cdf0e10cSrcweir ( ::osl::FileBase::E_INVAL == nError1 ) ); 5750*cdf0e10cSrcweir } 5751*cdf0e10cSrcweir 5752*cdf0e10cSrcweir void open_004( ) 5753*cdf0e10cSrcweir { 5754*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName4 ); //constructor 5755*cdf0e10cSrcweir 5756*cdf0e10cSrcweir //open a directory 5757*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5758*cdf0e10cSrcweir if ( ::osl::FileBase::E_None == nError1 ) 5759*cdf0e10cSrcweir { 5760*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5761*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError2 ); 5762*cdf0e10cSrcweir } 5763*cdf0e10cSrcweir 5764*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for open function: open a file instead of a directory", 5765*cdf0e10cSrcweir ( ::osl::FileBase::E_NOTDIR == nError1 ) || ( ::osl::FileBase::E_ACCES ) ); 5766*cdf0e10cSrcweir } 5767*cdf0e10cSrcweir 5768*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( open ); 5769*cdf0e10cSrcweir CPPUNIT_TEST( open_001 ); 5770*cdf0e10cSrcweir CPPUNIT_TEST( open_002 ); 5771*cdf0e10cSrcweir CPPUNIT_TEST( open_003 ); 5772*cdf0e10cSrcweir CPPUNIT_TEST( open_004 ); 5773*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5774*cdf0e10cSrcweir };// class open 5775*cdf0e10cSrcweir 5776*cdf0e10cSrcweir //--------------------------------------------------------------------- 5777*cdf0e10cSrcweir // testing the method 5778*cdf0e10cSrcweir // inline sal_Bool isOpen() { return _pData != NULL; }; 5779*cdf0e10cSrcweir //--------------------------------------------------------------------- 5780*cdf0e10cSrcweir class isOpen : public CppUnit::TestFixture 5781*cdf0e10cSrcweir { 5782*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5783*cdf0e10cSrcweir 5784*cdf0e10cSrcweir public: 5785*cdf0e10cSrcweir // initialization 5786*cdf0e10cSrcweir void setUp( ) 5787*cdf0e10cSrcweir { 5788*cdf0e10cSrcweir // create a tempfile in $TEMP/tmpdir/tmpname. 5789*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 5790*cdf0e10cSrcweir createTestFile( aTmpName4 ); 5791*cdf0e10cSrcweir } 5792*cdf0e10cSrcweir 5793*cdf0e10cSrcweir void tearDown( ) 5794*cdf0e10cSrcweir { 5795*cdf0e10cSrcweir // remove the tempfile in $TEMP/tmpdir/tmpname. 5796*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 5797*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 5798*cdf0e10cSrcweir } 5799*cdf0e10cSrcweir 5800*cdf0e10cSrcweir // test code. 5801*cdf0e10cSrcweir void isOpen_001( ) 5802*cdf0e10cSrcweir { 5803*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5804*cdf0e10cSrcweir 5805*cdf0e10cSrcweir //open a directory 5806*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5807*cdf0e10cSrcweir //check if directory is opened. 5808*cdf0e10cSrcweir sal_Bool bOk = testDirectory.isOpen( ); 5809*cdf0e10cSrcweir //close a directory 5810*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5811*cdf0e10cSrcweir 5812*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: open a directory and check for open", 5813*cdf0e10cSrcweir ( sal_True == bOk ) ); 5814*cdf0e10cSrcweir } 5815*cdf0e10cSrcweir 5816*cdf0e10cSrcweir void isOpen_002( ) 5817*cdf0e10cSrcweir { 5818*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5819*cdf0e10cSrcweir 5820*cdf0e10cSrcweir //check if directory is opened. 5821*cdf0e10cSrcweir sal_Bool bOk = testDirectory.isOpen( ); 5822*cdf0e10cSrcweir 5823*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: do not open a directory and check for open", 5824*cdf0e10cSrcweir !( sal_True == bOk ) ); 5825*cdf0e10cSrcweir } 5826*cdf0e10cSrcweir 5827*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( isOpen ); 5828*cdf0e10cSrcweir CPPUNIT_TEST( isOpen_001 ); 5829*cdf0e10cSrcweir CPPUNIT_TEST( isOpen_002 ); 5830*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5831*cdf0e10cSrcweir };// class isOpen 5832*cdf0e10cSrcweir 5833*cdf0e10cSrcweir //--------------------------------------------------------------------- 5834*cdf0e10cSrcweir // testing the method 5835*cdf0e10cSrcweir // inline RC close() 5836*cdf0e10cSrcweir //--------------------------------------------------------------------- 5837*cdf0e10cSrcweir class close : public CppUnit::TestFixture 5838*cdf0e10cSrcweir { 5839*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5840*cdf0e10cSrcweir 5841*cdf0e10cSrcweir public: 5842*cdf0e10cSrcweir // initialization 5843*cdf0e10cSrcweir void setUp( ) 5844*cdf0e10cSrcweir { 5845*cdf0e10cSrcweir // create a tempdirectory : $TEMP/tmpdir. 5846*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 5847*cdf0e10cSrcweir } 5848*cdf0e10cSrcweir 5849*cdf0e10cSrcweir void tearDown( ) 5850*cdf0e10cSrcweir { 5851*cdf0e10cSrcweir // remove a tempdirectory : $TEMP/tmpdir. 5852*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 5853*cdf0e10cSrcweir } 5854*cdf0e10cSrcweir 5855*cdf0e10cSrcweir // test code. 5856*cdf0e10cSrcweir void close_001( ) 5857*cdf0e10cSrcweir { 5858*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5859*cdf0e10cSrcweir 5860*cdf0e10cSrcweir //open a directory 5861*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5862*cdf0e10cSrcweir //close a directory 5863*cdf0e10cSrcweir nError2 = testDirectory.close( ); 5864*cdf0e10cSrcweir //check if directory is opened. 5865*cdf0e10cSrcweir sal_Bool bOk = testDirectory.isOpen( ); 5866*cdf0e10cSrcweir 5867*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: close a directory and check for open", 5868*cdf0e10cSrcweir !( sal_True == bOk ) ); 5869*cdf0e10cSrcweir } 5870*cdf0e10cSrcweir 5871*cdf0e10cSrcweir void close_002( ) 5872*cdf0e10cSrcweir { 5873*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5874*cdf0e10cSrcweir 5875*cdf0e10cSrcweir //close a directory 5876*cdf0e10cSrcweir nError1 = testDirectory.close( ); 5877*cdf0e10cSrcweir 5878*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for isOpen function: close a not opened directory", 5879*cdf0e10cSrcweir ( ::osl::FileBase::E_BADF == nError1 ) ); 5880*cdf0e10cSrcweir } 5881*cdf0e10cSrcweir 5882*cdf0e10cSrcweir 5883*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( close ); 5884*cdf0e10cSrcweir CPPUNIT_TEST( close_001 ); 5885*cdf0e10cSrcweir CPPUNIT_TEST( close_002 ); 5886*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5887*cdf0e10cSrcweir };// class close 5888*cdf0e10cSrcweir 5889*cdf0e10cSrcweir //--------------------------------------------------------------------- 5890*cdf0e10cSrcweir // testing the method 5891*cdf0e10cSrcweir // inline RC reset() 5892*cdf0e10cSrcweir //--------------------------------------------------------------------- 5893*cdf0e10cSrcweir class reset : public CppUnit::TestFixture 5894*cdf0e10cSrcweir { 5895*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 5896*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 5897*cdf0e10cSrcweir 5898*cdf0e10cSrcweir public: 5899*cdf0e10cSrcweir // initialization 5900*cdf0e10cSrcweir void setUp( ) 5901*cdf0e10cSrcweir { 5902*cdf0e10cSrcweir // create a tempdirectory : $TEMP/tmpdir. 5903*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 5904*cdf0e10cSrcweir // create three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile, 5905*cdf0e10cSrcweir createTestFile( aTmpName3, aTmpName2); 5906*cdf0e10cSrcweir createTestFile( aTmpName3, aTmpName1); 5907*cdf0e10cSrcweir createTestFile( aTmpName3, aHidURL1); 5908*cdf0e10cSrcweir } 5909*cdf0e10cSrcweir 5910*cdf0e10cSrcweir void tearDown( ) 5911*cdf0e10cSrcweir { 5912*cdf0e10cSrcweir // remove three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile, 5913*cdf0e10cSrcweir deleteTestFile( aTmpName3, aHidURL1); 5914*cdf0e10cSrcweir deleteTestFile( aTmpName3, aTmpName1); 5915*cdf0e10cSrcweir deleteTestFile( aTmpName3, aTmpName2); 5916*cdf0e10cSrcweir // remove a tempdirectory : $TEMP/tmpdir. 5917*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 5918*cdf0e10cSrcweir } 5919*cdf0e10cSrcweir 5920*cdf0e10cSrcweir // test code. 5921*cdf0e10cSrcweir void reset_001( ) 5922*cdf0e10cSrcweir { 5923*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 5924*cdf0e10cSrcweir 5925*cdf0e10cSrcweir //open a directory 5926*cdf0e10cSrcweir nError1 = testDirectory.open( ); 5927*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5928*cdf0e10cSrcweir //get first Item 5929*cdf0e10cSrcweir nError1 = testDirectory.getNextItem( rItem, 1 ); 5930*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5931*cdf0e10cSrcweir //get second Item 5932*cdf0e10cSrcweir //mindy: nError1 = testDirectory.getNextItem( rItem, 0 ); 5933*cdf0e10cSrcweir //mindy: CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5934*cdf0e10cSrcweir 5935*cdf0e10cSrcweir //reset enumeration 5936*cdf0e10cSrcweir nError2 = testDirectory.reset( ); 5937*cdf0e10cSrcweir //get reseted Item, if reset does not work, getNextItem() should return the second Item (aTmpName1) 5938*cdf0e10cSrcweir nError1 = testDirectory.getNextItem( rItem, 0 ); 5939*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5940*cdf0e10cSrcweir 5941*cdf0e10cSrcweir //check the file name 5942*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 5943*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 5944*cdf0e10cSrcweir //close a directory 5945*cdf0e10cSrcweir nError1 = testDirectory.close( ); 5946*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 5947*cdf0e10cSrcweir 5948*cdf0e10cSrcweir sal_Bool bOK1,bOK2; 5949*cdf0e10cSrcweir bOK1 = compareFileName( rFileStatus.getFileName( ), aTmpName2 ); 5950*cdf0e10cSrcweir bOK2 = compareFileName( rFileStatus.getFileName( ), aHidURL1 ); 5951*cdf0e10cSrcweir 5952*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for reset function: get two directory item, reset it, then get again, check the filename", 5953*cdf0e10cSrcweir ( ::osl::FileBase::E_None == nError2 ) && 5954*cdf0e10cSrcweir ( sal_True == bOK1 || bOK2 ) ); 5955*cdf0e10cSrcweir } 5956*cdf0e10cSrcweir 5957*cdf0e10cSrcweir void reset_002( ) 5958*cdf0e10cSrcweir { 5959*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName6 ); //constructor 5960*cdf0e10cSrcweir 5961*cdf0e10cSrcweir //close a directory 5962*cdf0e10cSrcweir nError1 = testDirectory.reset( ); 5963*cdf0e10cSrcweir 5964*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for reset function: reset a non existed directory", 5965*cdf0e10cSrcweir ( ::osl::FileBase::E_NOENT == nError1 ) ); 5966*cdf0e10cSrcweir } 5967*cdf0e10cSrcweir 5968*cdf0e10cSrcweir 5969*cdf0e10cSrcweir void reset_003( ) 5970*cdf0e10cSrcweir { 5971*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName4 ); //constructor 5972*cdf0e10cSrcweir 5973*cdf0e10cSrcweir //close a directory 5974*cdf0e10cSrcweir nError1 = testDirectory.reset( ); 5975*cdf0e10cSrcweir 5976*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for reset function: reset a file instead of a directory", 5977*cdf0e10cSrcweir ( ::osl::FileBase::E_NOTDIR == nError1 ) || ( ::osl::FileBase::E_NOENT == nError1 ) ); 5978*cdf0e10cSrcweir } 5979*cdf0e10cSrcweir 5980*cdf0e10cSrcweir void reset_004( ) 5981*cdf0e10cSrcweir { 5982*cdf0e10cSrcweir ::osl::Directory testDirectory( aUserDirectorySys ); //constructor 5983*cdf0e10cSrcweir 5984*cdf0e10cSrcweir //close a directory 5985*cdf0e10cSrcweir nError1 = testDirectory.reset( ); 5986*cdf0e10cSrcweir 5987*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for reset function: use a system path", 5988*cdf0e10cSrcweir ( ::osl::FileBase::E_INVAL == nError1 ) ); 5989*cdf0e10cSrcweir } 5990*cdf0e10cSrcweir 5991*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( reset ); 5992*cdf0e10cSrcweir CPPUNIT_TEST( reset_001 ); 5993*cdf0e10cSrcweir CPPUNIT_TEST( reset_002 ); 5994*cdf0e10cSrcweir CPPUNIT_TEST( reset_003 ); 5995*cdf0e10cSrcweir CPPUNIT_TEST( reset_004 ); 5996*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 5997*cdf0e10cSrcweir };// class reset 5998*cdf0e10cSrcweir 5999*cdf0e10cSrcweir //--------------------------------------------------------------------- 6000*cdf0e10cSrcweir // testing the method 6001*cdf0e10cSrcweir // inline RC getNextItem( DirectoryItem& rItem, sal_uInt32 nHint = 0 ) 6002*cdf0e10cSrcweir //--------------------------------------------------------------------- 6003*cdf0e10cSrcweir class getNextItem : public CppUnit::TestFixture 6004*cdf0e10cSrcweir { 6005*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 6006*cdf0e10cSrcweir ::osl::DirectoryItem rItem; 6007*cdf0e10cSrcweir 6008*cdf0e10cSrcweir public: 6009*cdf0e10cSrcweir // initialization 6010*cdf0e10cSrcweir void setUp( ) 6011*cdf0e10cSrcweir { 6012*cdf0e10cSrcweir // create a tempdirectory : $TEMP/tmpdir. 6013*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 6014*cdf0e10cSrcweir // create three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile, 6015*cdf0e10cSrcweir createTestFile( aTmpName3, aTmpName2 ); 6016*cdf0e10cSrcweir createTestFile( aTmpName3, aTmpName1 ); 6017*cdf0e10cSrcweir createTestFile( aTmpName3, aHidURL1 ); 6018*cdf0e10cSrcweir 6019*cdf0e10cSrcweir } 6020*cdf0e10cSrcweir 6021*cdf0e10cSrcweir void tearDown( ) 6022*cdf0e10cSrcweir { 6023*cdf0e10cSrcweir // remove three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile, 6024*cdf0e10cSrcweir deleteTestFile( aTmpName3, aHidURL1 ); 6025*cdf0e10cSrcweir deleteTestFile( aTmpName3, aTmpName1 ); 6026*cdf0e10cSrcweir deleteTestFile( aTmpName3, aTmpName2 ); 6027*cdf0e10cSrcweir // remove a tempdirectory : $TEMP/tmpdir. 6028*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 6029*cdf0e10cSrcweir } 6030*cdf0e10cSrcweir 6031*cdf0e10cSrcweir // test code. 6032*cdf0e10cSrcweir void getNextItem_001( ) 6033*cdf0e10cSrcweir { 6034*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 6035*cdf0e10cSrcweir 6036*cdf0e10cSrcweir //open a directory 6037*cdf0e10cSrcweir nError1 = testDirectory.open( ); 6038*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6039*cdf0e10cSrcweir 6040*cdf0e10cSrcweir //check the file name 6041*cdf0e10cSrcweir ::rtl::OUString strFilename; 6042*cdf0e10cSrcweir sal_Bool bOk1 = sal_False; 6043*cdf0e10cSrcweir sal_Bool bOk2 = sal_False; 6044*cdf0e10cSrcweir sal_Bool bOk3 = sal_False; 6045*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName ); 6046*cdf0e10cSrcweir for ( int nCount = 0; nCount < 3; nCount++ ) 6047*cdf0e10cSrcweir { 6048*cdf0e10cSrcweir //get three Items 6049*cdf0e10cSrcweir nError1 = testDirectory.getNextItem( rItem, 2 ); 6050*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6051*cdf0e10cSrcweir nError1 = rItem.getFileStatus( rFileStatus ); 6052*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6053*cdf0e10cSrcweir switch ( nCount ) 6054*cdf0e10cSrcweir { 6055*cdf0e10cSrcweir case 0: bOk1 = compareFileName( rFileStatus.getFileName( ), aTmpName2 ) || compareFileName( rFileStatus.getFileName( ), aHidURL1); 6056*cdf0e10cSrcweir break; 6057*cdf0e10cSrcweir case 1: bOk2 = compareFileName( rFileStatus.getFileName( ), aTmpName1 ); 6058*cdf0e10cSrcweir break; 6059*cdf0e10cSrcweir case 2: bOk3 = compareFileName( rFileStatus.getFileName( ), aHidURL1) || compareFileName( rFileStatus.getFileName( ), aTmpName2 ); 6060*cdf0e10cSrcweir } 6061*cdf0e10cSrcweir } 6062*cdf0e10cSrcweir 6063*cdf0e10cSrcweir //close a directory 6064*cdf0e10cSrcweir nError1 = testDirectory.close( ); 6065*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6066*cdf0e10cSrcweir 6067*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: retrive three items and check their names.", 6068*cdf0e10cSrcweir ( sal_True == bOk1 ) && ( sal_True == bOk2 ) && ( sal_True == bOk3 ) ); 6069*cdf0e10cSrcweir } 6070*cdf0e10cSrcweir 6071*cdf0e10cSrcweir void getNextItem_002( ) 6072*cdf0e10cSrcweir { 6073*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 6074*cdf0e10cSrcweir nError1 = testDirectory.getNextItem( rItem ); 6075*cdf0e10cSrcweir 6076*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: retrive an item in a directory which is not opened, also test for nHint's default value.", 6077*cdf0e10cSrcweir ( ::osl::FileBase::E_INVAL == nError1 ) ); 6078*cdf0e10cSrcweir } 6079*cdf0e10cSrcweir 6080*cdf0e10cSrcweir void getNextItem_003( ) 6081*cdf0e10cSrcweir { 6082*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); //constructor 6083*cdf0e10cSrcweir 6084*cdf0e10cSrcweir //open a directory 6085*cdf0e10cSrcweir nError1 = testDirectory.open( ); 6086*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6087*cdf0e10cSrcweir 6088*cdf0e10cSrcweir for ( int nCount = 0; nCount < 4; nCount++ ) 6089*cdf0e10cSrcweir { 6090*cdf0e10cSrcweir nError2 = testDirectory.getNextItem( rItem, 3 ); 6091*cdf0e10cSrcweir } 6092*cdf0e10cSrcweir 6093*cdf0e10cSrcweir //close a directory 6094*cdf0e10cSrcweir nError1 = testDirectory.close( ); 6095*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6096*cdf0e10cSrcweir 6097*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: retrive 4 times in a directory which contain only 3 files.", 6098*cdf0e10cSrcweir ( ::osl::FileBase::E_NOENT == nError2 ) ); 6099*cdf0e10cSrcweir } 6100*cdf0e10cSrcweir 6101*cdf0e10cSrcweir void getNextItem_004( ) 6102*cdf0e10cSrcweir { 6103*cdf0e10cSrcweir //create a link file(can not on Windows), then check if getNextItem can get it. 6104*cdf0e10cSrcweir #ifdef UNX 6105*cdf0e10cSrcweir sal_Bool bOK = sal_False; 6106*cdf0e10cSrcweir ::rtl::OUString aUStr_LnkFileSys( aTempDirectorySys ), aUStr_SrcFileSys( aTempDirectorySys ); 6107*cdf0e10cSrcweir ( ( aUStr_LnkFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/tmpdir/link.file"); 6108*cdf0e10cSrcweir ( ( aUStr_SrcFileSys += aSlashURL ) += getCurrentPID( ) ) += ::rtl::OUString::createFromAscii("/tmpdir/tmpname"); 6109*cdf0e10cSrcweir rtl::OString strLinkFileName, strSrcFileName; 6110*cdf0e10cSrcweir strLinkFileName = OUStringToOString( aUStr_LnkFileSys, RTL_TEXTENCODING_ASCII_US ); 6111*cdf0e10cSrcweir strSrcFileName = OUStringToOString( aUStr_SrcFileSys, RTL_TEXTENCODING_ASCII_US ); 6112*cdf0e10cSrcweir 6113*cdf0e10cSrcweir //create a link file and link it to file "/tmp/PID/tmpdir/tmpname" 6114*cdf0e10cSrcweir sal_Int32 fd = symlink( strSrcFileName.getStr(), strLinkFileName.getStr() ); 6115*cdf0e10cSrcweir CPPUNIT_ASSERT( fd == 0 ); 6116*cdf0e10cSrcweir ::osl::Directory testDirectory( aTmpName3 ); 6117*cdf0e10cSrcweir 6118*cdf0e10cSrcweir //open a directory 6119*cdf0e10cSrcweir nError1 = testDirectory.open( ); 6120*cdf0e10cSrcweir ::rtl::OUString aFileName = ::rtl::OUString::createFromAscii("link.file"); 6121*cdf0e10cSrcweir 6122*cdf0e10cSrcweir while (1) { 6123*cdf0e10cSrcweir nError1 = testDirectory.getNextItem( rItem, 4 ); 6124*cdf0e10cSrcweir if (::osl::FileBase::E_None == nError1) { 6125*cdf0e10cSrcweir ::osl::FileStatus rFileStatus( FileStatusMask_FileName | FileStatusMask_Type ); 6126*cdf0e10cSrcweir rItem.getFileStatus( rFileStatus ); 6127*cdf0e10cSrcweir if ( compareFileName( rFileStatus.getFileName( ), aFileName) == sal_True ) 6128*cdf0e10cSrcweir { 6129*cdf0e10cSrcweir if ( FileStatus::Link == rFileStatus.getFileType( )) 6130*cdf0e10cSrcweir { 6131*cdf0e10cSrcweir bOK = sal_True; 6132*cdf0e10cSrcweir break; 6133*cdf0e10cSrcweir } 6134*cdf0e10cSrcweir } 6135*cdf0e10cSrcweir } 6136*cdf0e10cSrcweir else 6137*cdf0e10cSrcweir break; 6138*cdf0e10cSrcweir }; 6139*cdf0e10cSrcweir fd = std::remove( strLinkFileName.getStr() ); 6140*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "remove link file failed", fd == 0 ); 6141*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getNextItem function: check if can retrieve the link file name", 6142*cdf0e10cSrcweir ( bOK == sal_True ) ); 6143*cdf0e10cSrcweir #endif 6144*cdf0e10cSrcweir } 6145*cdf0e10cSrcweir 6146*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getNextItem ); 6147*cdf0e10cSrcweir CPPUNIT_TEST( getNextItem_001 ); 6148*cdf0e10cSrcweir CPPUNIT_TEST( getNextItem_002 ); 6149*cdf0e10cSrcweir CPPUNIT_TEST( getNextItem_003 ); 6150*cdf0e10cSrcweir CPPUNIT_TEST( getNextItem_004 ); 6151*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 6152*cdf0e10cSrcweir };// class getNextItem 6153*cdf0e10cSrcweir 6154*cdf0e10cSrcweir //--------------------------------------------------------------------- 6155*cdf0e10cSrcweir // testing the method 6156*cdf0e10cSrcweir // inline static RC getVolumeInfo( const ::rtl::OUString& ustrDirectoryURL, VolumeInfo& rInfo ) 6157*cdf0e10cSrcweir //--------------------------------------------------------------------- 6158*cdf0e10cSrcweir class getVolumeInfo : public CppUnit::TestFixture 6159*cdf0e10cSrcweir { 6160*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 6161*cdf0e10cSrcweir 6162*cdf0e10cSrcweir public: 6163*cdf0e10cSrcweir 6164*cdf0e10cSrcweir // test code. 6165*cdf0e10cSrcweir void checkValidMask(osl::VolumeInfo const& _aVolumeInfo, sal_Int32 _nMask) 6166*cdf0e10cSrcweir { 6167*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_FileSystemName) 6168*cdf0e10cSrcweir { 6169*cdf0e10cSrcweir //get file system name 6170*cdf0e10cSrcweir ::rtl::OUString aFileSysName( aNullURL ); 6171*cdf0e10cSrcweir aFileSysName = _aVolumeInfo.getFileSystemName( ); 6172*cdf0e10cSrcweir 6173*cdf0e10cSrcweir sal_Bool bRes2 = compareFileName( aFileSysName, aNullURL ); 6174*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getVolumeInfo function: getVolumeInfo of root directory.", 6175*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 6176*cdf0e10cSrcweir ( sal_False == bRes2 ) ); 6177*cdf0e10cSrcweir } 6178*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_Attributes) 6179*cdf0e10cSrcweir { 6180*cdf0e10cSrcweir sal_Bool b1 = _aVolumeInfo.getRemoteFlag(); 6181*cdf0e10cSrcweir sal_Bool b2 = _aVolumeInfo.getRemoveableFlag(); 6182*cdf0e10cSrcweir sal_Bool b3 = _aVolumeInfo.getCompactDiscFlag(); 6183*cdf0e10cSrcweir sal_Bool b4 = _aVolumeInfo.getFloppyDiskFlag(); 6184*cdf0e10cSrcweir sal_Bool b5 = _aVolumeInfo.getFixedDiskFlag(); 6185*cdf0e10cSrcweir sal_Bool b6 = _aVolumeInfo.getRAMDiskFlag(); 6186*cdf0e10cSrcweir 6187*cdf0e10cSrcweir rtl::OString sAttr; 6188*cdf0e10cSrcweir if (b1) sAttr = "Remote"; 6189*cdf0e10cSrcweir if (b2) sAttr += " Removeable"; 6190*cdf0e10cSrcweir if (b3) sAttr += " CDROM"; 6191*cdf0e10cSrcweir if (b4) sAttr += " Floppy"; 6192*cdf0e10cSrcweir if (b5) sAttr += " FixedDisk"; 6193*cdf0e10cSrcweir if (b6) sAttr += " RAMDisk"; 6194*cdf0e10cSrcweir 6195*cdf0e10cSrcweir t_print("Attributes: %s\n", sAttr.getStr() ); 6196*cdf0e10cSrcweir } 6197*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_TotalSpace) 6198*cdf0e10cSrcweir { 6199*cdf0e10cSrcweir // within Linux, df / * 1024 bytes is the result 6200*cdf0e10cSrcweir sal_uInt64 nSize = _aVolumeInfo.getTotalSpace(); 6201*cdf0e10cSrcweir t_print("Total space: %lld\n", nSize); 6202*cdf0e10cSrcweir } 6203*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_UsedSpace) 6204*cdf0e10cSrcweir { 6205*cdf0e10cSrcweir sal_uInt64 nSize = _aVolumeInfo.getUsedSpace(); 6206*cdf0e10cSrcweir t_print(" Used space: %lld\n", nSize); 6207*cdf0e10cSrcweir } 6208*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_FreeSpace) 6209*cdf0e10cSrcweir { 6210*cdf0e10cSrcweir sal_uInt64 nSize = _aVolumeInfo.getFreeSpace(); 6211*cdf0e10cSrcweir t_print(" Free space: %lld\n", nSize); 6212*cdf0e10cSrcweir } 6213*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_MaxNameLength) 6214*cdf0e10cSrcweir { 6215*cdf0e10cSrcweir sal_uInt32 nLength = _aVolumeInfo.getMaxNameLength(); 6216*cdf0e10cSrcweir t_print("max name length: %ld\n", nLength); 6217*cdf0e10cSrcweir } 6218*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_MaxPathLength) 6219*cdf0e10cSrcweir { 6220*cdf0e10cSrcweir sal_uInt32 nLength = _aVolumeInfo.getMaxPathLength(); 6221*cdf0e10cSrcweir t_print("max path length: %ld\n", nLength); 6222*cdf0e10cSrcweir } 6223*cdf0e10cSrcweir if (_nMask == VolumeInfoMask_FileSystemCaseHandling) 6224*cdf0e10cSrcweir { 6225*cdf0e10cSrcweir bool bIsCase = _aVolumeInfo.isCaseSensitiveFileSystem(); 6226*cdf0e10cSrcweir t_print("filesystem case sensitive: %s\n", bIsCase ? "yes" : "no"); 6227*cdf0e10cSrcweir } 6228*cdf0e10cSrcweir } 6229*cdf0e10cSrcweir 6230*cdf0e10cSrcweir void checkVolumeInfo(sal_Int32 _nMask) 6231*cdf0e10cSrcweir { 6232*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( _nMask ); 6233*cdf0e10cSrcweir //call getVolumeInfo here 6234*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aVolURL1, aVolumeInfo ); 6235*cdf0e10cSrcweir // LLA: IMHO it's not a bug, if VolumeInfo is not valid, it's a feature 6236*cdf0e10cSrcweir // LLA: CPPUNIT_ASSERT_MESSAGE("mask is not valid", sal_True == aVolumeInfo.isValid( _nMask ) ); 6237*cdf0e10cSrcweir if (aVolumeInfo.isValid( _nMask)) 6238*cdf0e10cSrcweir { 6239*cdf0e10cSrcweir checkValidMask(aVolumeInfo, _nMask); 6240*cdf0e10cSrcweir } 6241*cdf0e10cSrcweir } 6242*cdf0e10cSrcweir 6243*cdf0e10cSrcweir 6244*cdf0e10cSrcweir void getVolumeInfo_001_1( ) 6245*cdf0e10cSrcweir { 6246*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FileSystemName; 6247*cdf0e10cSrcweir checkVolumeInfo(mask); 6248*cdf0e10cSrcweir } 6249*cdf0e10cSrcweir void getVolumeInfo_001_2( ) 6250*cdf0e10cSrcweir { 6251*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_Attributes; 6252*cdf0e10cSrcweir checkVolumeInfo(mask); 6253*cdf0e10cSrcweir } 6254*cdf0e10cSrcweir void getVolumeInfo_001_3( ) 6255*cdf0e10cSrcweir { 6256*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_TotalSpace; 6257*cdf0e10cSrcweir checkVolumeInfo(mask); 6258*cdf0e10cSrcweir } 6259*cdf0e10cSrcweir void getVolumeInfo_001_4( ) 6260*cdf0e10cSrcweir { 6261*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_UsedSpace; 6262*cdf0e10cSrcweir checkVolumeInfo(mask); 6263*cdf0e10cSrcweir } 6264*cdf0e10cSrcweir void getVolumeInfo_001_5( ) 6265*cdf0e10cSrcweir { 6266*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FreeSpace; 6267*cdf0e10cSrcweir checkVolumeInfo(mask); 6268*cdf0e10cSrcweir } 6269*cdf0e10cSrcweir void getVolumeInfo_001_6( ) 6270*cdf0e10cSrcweir { 6271*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_MaxNameLength; 6272*cdf0e10cSrcweir checkVolumeInfo(mask); 6273*cdf0e10cSrcweir } 6274*cdf0e10cSrcweir void getVolumeInfo_001_7( ) 6275*cdf0e10cSrcweir { 6276*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_MaxPathLength; 6277*cdf0e10cSrcweir checkVolumeInfo(mask); 6278*cdf0e10cSrcweir } 6279*cdf0e10cSrcweir void getVolumeInfo_001_8( ) 6280*cdf0e10cSrcweir { 6281*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FileSystemCaseHandling; 6282*cdf0e10cSrcweir checkVolumeInfo(mask); 6283*cdf0e10cSrcweir } 6284*cdf0e10cSrcweir 6285*cdf0e10cSrcweir void getVolumeInfo_002( ) 6286*cdf0e10cSrcweir { 6287*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FileSystemName; 6288*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 6289*cdf0e10cSrcweir //call getVolumeInfo here 6290*cdf0e10cSrcweir 6291*cdf0e10cSrcweir // LLA: rtl::OUString aRootSysURL; 6292*cdf0e10cSrcweir // LLA: nError1 = osl::File::getFileURLFromSystemPath(aRootSys, aRootSysURL); 6293*cdf0e10cSrcweir // LLA: 6294*cdf0e10cSrcweir // LLA: CPPUNIT_ASSERT_MESSAGE( "can't convert root path to file url", 6295*cdf0e10cSrcweir // LLA: ( osl::FileBase::E_NONE == nError1 ) ); 6296*cdf0e10cSrcweir 6297*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aRootSys, aVolumeInfo ); 6298*cdf0e10cSrcweir 6299*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getVolumeInfo function: use system path as parameter.", 6300*cdf0e10cSrcweir ( osl::FileBase::E_INVAL == nError1 ) ); 6301*cdf0e10cSrcweir } 6302*cdf0e10cSrcweir 6303*cdf0e10cSrcweir void getVolumeInfo_003( ) 6304*cdf0e10cSrcweir { 6305*cdf0e10cSrcweir sal_Int32 mask = VolumeInfoMask_FileSystemName; 6306*cdf0e10cSrcweir ::osl::VolumeInfo aVolumeInfo( mask ); 6307*cdf0e10cSrcweir //call getVolumeInfo here 6308*cdf0e10cSrcweir nError1 = ::osl::Directory::getVolumeInfo( aTmpName3, aVolumeInfo ); 6309*cdf0e10cSrcweir 6310*cdf0e10cSrcweir // LLA: in Windows, it reply no error, it did not pass in (W32). 6311*cdf0e10cSrcweir #ifdef UNX 6312*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for getVolumeInfo function: non-existence test. ", 6313*cdf0e10cSrcweir ( osl::FileBase::E_NOENT == nError1 ) ); 6314*cdf0e10cSrcweir #endif 6315*cdf0e10cSrcweir } 6316*cdf0e10cSrcweir 6317*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( getVolumeInfo ); 6318*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_1 ); 6319*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_2 ); 6320*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_3 ); 6321*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_4 ); 6322*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_5 ); 6323*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_6 ); 6324*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_7 ); 6325*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_001_8 ); 6326*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_002 ); 6327*cdf0e10cSrcweir CPPUNIT_TEST( getVolumeInfo_003 ); 6328*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 6329*cdf0e10cSrcweir };// class getVolumeInfo 6330*cdf0e10cSrcweir 6331*cdf0e10cSrcweir 6332*cdf0e10cSrcweir //--------------------------------------------------------------------- 6333*cdf0e10cSrcweir // testing the method 6334*cdf0e10cSrcweir // inline static RC create( const ::rtl::OUString& ustrDirectoryURL ) 6335*cdf0e10cSrcweir //--------------------------------------------------------------------- 6336*cdf0e10cSrcweir class create : public CppUnit::TestFixture 6337*cdf0e10cSrcweir { 6338*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 6339*cdf0e10cSrcweir 6340*cdf0e10cSrcweir public: 6341*cdf0e10cSrcweir 6342*cdf0e10cSrcweir // test code. 6343*cdf0e10cSrcweir void create_001( ) 6344*cdf0e10cSrcweir { 6345*cdf0e10cSrcweir //create directory in $TEMP/tmpdir 6346*cdf0e10cSrcweir nError1 = ::osl::Directory::create( aTmpName3 ); 6347*cdf0e10cSrcweir //check for existence 6348*cdf0e10cSrcweir nError2 = ::osl::Directory::create( aTmpName3 ); 6349*cdf0e10cSrcweir //remove it 6350*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 6351*cdf0e10cSrcweir 6352*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for create function: create a directory and check its existence.", 6353*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 6354*cdf0e10cSrcweir ( osl::FileBase::E_EXIST== nError2 ) ); 6355*cdf0e10cSrcweir } 6356*cdf0e10cSrcweir 6357*cdf0e10cSrcweir void create_002( ) 6358*cdf0e10cSrcweir { 6359*cdf0e10cSrcweir //create directory in /tmpname 6360*cdf0e10cSrcweir nError1 = ::osl::Directory::create( aTmpName7 ); 6361*cdf0e10cSrcweir #if defined (WNT ) 6362*cdf0e10cSrcweir nError1 = osl::FileBase::E_ACCES; /// in Windows, you can create directory in c:/ any way. 6363*cdf0e10cSrcweir deleteTestDirectory( aTmpName7 ); 6364*cdf0e10cSrcweir #endif 6365*cdf0e10cSrcweir 6366*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for create function: create a directory in root for access test.", 6367*cdf0e10cSrcweir ( osl::FileBase::E_ACCES == nError1 ) ); 6368*cdf0e10cSrcweir } 6369*cdf0e10cSrcweir 6370*cdf0e10cSrcweir void create_003( ) 6371*cdf0e10cSrcweir { 6372*cdf0e10cSrcweir //create directory in /tmpname 6373*cdf0e10cSrcweir nError1 = ::osl::Directory::create( aSysPath1 ); 6374*cdf0e10cSrcweir 6375*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for create function: create a directory using system path.", 6376*cdf0e10cSrcweir ( osl::FileBase::E_INVAL == nError1 ) ); 6377*cdf0e10cSrcweir } 6378*cdf0e10cSrcweir 6379*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( create ); 6380*cdf0e10cSrcweir CPPUNIT_TEST( create_001 ); 6381*cdf0e10cSrcweir CPPUNIT_TEST( create_002 ); 6382*cdf0e10cSrcweir CPPUNIT_TEST( create_003 ); 6383*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 6384*cdf0e10cSrcweir };// class create 6385*cdf0e10cSrcweir 6386*cdf0e10cSrcweir //--------------------------------------------------------------------- 6387*cdf0e10cSrcweir // testing the method 6388*cdf0e10cSrcweir // inline static RC remove( const ::rtl::OUString& ustrDirectoryURL ) 6389*cdf0e10cSrcweir //--------------------------------------------------------------------- 6390*cdf0e10cSrcweir class remove : public CppUnit::TestFixture 6391*cdf0e10cSrcweir { 6392*cdf0e10cSrcweir ::osl::FileBase::RC nError1, nError2; 6393*cdf0e10cSrcweir 6394*cdf0e10cSrcweir public: 6395*cdf0e10cSrcweir 6396*cdf0e10cSrcweir // test code. 6397*cdf0e10cSrcweir void remove_001( ) 6398*cdf0e10cSrcweir { 6399*cdf0e10cSrcweir //create directory in $TEMP/tmpdir 6400*cdf0e10cSrcweir nError1 = ::osl::Directory::create( aTmpName3 ); 6401*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6402*cdf0e10cSrcweir //remove it 6403*cdf0e10cSrcweir nError1 = ::osl::Directory::remove( aTmpName3 ); 6404*cdf0e10cSrcweir //check for existence 6405*cdf0e10cSrcweir ::osl::Directory rDirectory( aTmpName3 ); 6406*cdf0e10cSrcweir nError2 = rDirectory.open( ); 6407*cdf0e10cSrcweir 6408*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a directory and check its existence.", 6409*cdf0e10cSrcweir ( osl::FileBase::E_None == nError1 ) && 6410*cdf0e10cSrcweir ( osl::FileBase::E_NOENT == nError2 ) ); 6411*cdf0e10cSrcweir } 6412*cdf0e10cSrcweir 6413*cdf0e10cSrcweir void remove_002( ) 6414*cdf0e10cSrcweir { 6415*cdf0e10cSrcweir //create directory in $TEMP/tmpdir 6416*cdf0e10cSrcweir nError1 = ::osl::Directory::create( aTmpName3 ); 6417*cdf0e10cSrcweir CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 ); 6418*cdf0e10cSrcweir //try to remove it by system path 6419*cdf0e10cSrcweir nError1 = ::osl::Directory::remove( aSysPath3 ); 6420*cdf0e10cSrcweir //check for existence 6421*cdf0e10cSrcweir ::osl::Directory rDirectory( aTmpName3 ); 6422*cdf0e10cSrcweir nError2 = rDirectory.open( ); 6423*cdf0e10cSrcweir if ( osl::FileBase::E_NOENT != nError2 ) 6424*cdf0e10cSrcweir ::osl::Directory::remove( aTmpName3 ); 6425*cdf0e10cSrcweir 6426*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: remove a directory by its system path, and check its existence.", 6427*cdf0e10cSrcweir ( osl::FileBase::E_INVAL == nError1 ) ); 6428*cdf0e10cSrcweir } 6429*cdf0e10cSrcweir 6430*cdf0e10cSrcweir void remove_003( ) 6431*cdf0e10cSrcweir { 6432*cdf0e10cSrcweir //try to remove a non-existed directory 6433*cdf0e10cSrcweir nError1 = ::osl::Directory::remove( aTmpName6 ); 6434*cdf0e10cSrcweir 6435*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: try to remove a non-existed directory.", 6436*cdf0e10cSrcweir ( osl::FileBase::E_NOENT == nError1 ) ); 6437*cdf0e10cSrcweir } 6438*cdf0e10cSrcweir 6439*cdf0e10cSrcweir void remove_004( ) 6440*cdf0e10cSrcweir { 6441*cdf0e10cSrcweir createTestFile( aTmpName6 ); 6442*cdf0e10cSrcweir sal_Bool bExist = ifFileExist( aTmpName6 ); 6443*cdf0e10cSrcweir //try to remove file. 6444*cdf0e10cSrcweir nError1 = ::osl::Directory::remove( aTmpName6 ); 6445*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 6446*cdf0e10cSrcweir 6447*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( "test for remove function: try to remove a file but not directory.", 6448*cdf0e10cSrcweir bExist == sal_True &&(( osl::FileBase::E_NOTDIR == nError1 ) || ( osl::FileBase::E_NOENT == nError1 )) ); 6449*cdf0e10cSrcweir } 6450*cdf0e10cSrcweir 6451*cdf0e10cSrcweir void remove_005( ) 6452*cdf0e10cSrcweir { 6453*cdf0e10cSrcweir createTestDirectory( aTmpName3 ); 6454*cdf0e10cSrcweir createTestFile( aTmpName4 ); 6455*cdf0e10cSrcweir nError1 = ::osl::Directory::remove( aTmpName3 ); 6456*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 6457*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 6458*cdf0e10cSrcweir ::rtl::OUString suError = ::rtl::OUString::createFromAscii("test for remove function: try to remove a directory that is not empty.") + errorToStr( nError1 ); 6459*cdf0e10cSrcweir #if defined ( SOLARIS ) 6460*cdf0e10cSrcweir //on UNX, the implementation uses rmdir(), which EEXIST is thrown on Solaris when the directory is not empty, refer to: 'man -s 2 rmdir', while on linux, ENOTEMPTY is thrown. 6461*cdf0e10cSrcweir //EEXIST The directory contains entries other than those for "." and "..". 6462*cdf0e10cSrcweir t_print("#Solaris test\n"); 6463*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( osl::FileBase::E_EXIST == nError1 ) ); 6464*cdf0e10cSrcweir #else 6465*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE( suError, ( osl::FileBase::E_NOTEMPTY == nError1 ) ); 6466*cdf0e10cSrcweir #endif 6467*cdf0e10cSrcweir } 6468*cdf0e10cSrcweir 6469*cdf0e10cSrcweir CPPUNIT_TEST_SUITE( remove ); 6470*cdf0e10cSrcweir CPPUNIT_TEST( remove_001 ); 6471*cdf0e10cSrcweir CPPUNIT_TEST( remove_002 ); 6472*cdf0e10cSrcweir CPPUNIT_TEST( remove_003 ); 6473*cdf0e10cSrcweir CPPUNIT_TEST( remove_004 ); 6474*cdf0e10cSrcweir CPPUNIT_TEST( remove_005 ); 6475*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END( ); 6476*cdf0e10cSrcweir };// class remove 6477*cdf0e10cSrcweir 6478*cdf0e10cSrcweir //######################################## 6479*cdf0e10cSrcweir // TEST Directory::createPath 6480*cdf0e10cSrcweir //######################################## 6481*cdf0e10cSrcweir 6482*cdf0e10cSrcweir #ifdef WNT 6483*cdf0e10cSrcweir # define PATH_BUFFER_SIZE MAX_PATH 6484*cdf0e10cSrcweir #else 6485*cdf0e10cSrcweir # define PATH_BUFFER_SIZE PATH_MAX 6486*cdf0e10cSrcweir #endif 6487*cdf0e10cSrcweir 6488*cdf0e10cSrcweir char TEST_PATH_POSTFIX[] = "hello/world"; 6489*cdf0e10cSrcweir 6490*cdf0e10cSrcweir //######################################## 6491*cdf0e10cSrcweir OUString get_test_path() 6492*cdf0e10cSrcweir { 6493*cdf0e10cSrcweir OUString tmp; 6494*cdf0e10cSrcweir FileBase::RC rc = FileBase::getTempDirURL(tmp); 6495*cdf0e10cSrcweir 6496*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE 6497*cdf0e10cSrcweir ( 6498*cdf0e10cSrcweir "Test path creation failed", 6499*cdf0e10cSrcweir rc == FileBase::E_None 6500*cdf0e10cSrcweir ); 6501*cdf0e10cSrcweir 6502*cdf0e10cSrcweir OUStringBuffer b(tmp); 6503*cdf0e10cSrcweir if (tmp.lastIndexOf('/') != (tmp.getLength() - 1)) 6504*cdf0e10cSrcweir b.appendAscii("/"); 6505*cdf0e10cSrcweir 6506*cdf0e10cSrcweir b.appendAscii(TEST_PATH_POSTFIX); 6507*cdf0e10cSrcweir 6508*cdf0e10cSrcweir return b.makeStringAndClear(); 6509*cdf0e10cSrcweir } 6510*cdf0e10cSrcweir 6511*cdf0e10cSrcweir //######################################## 6512*cdf0e10cSrcweir void rm_test_path(const OUString& path) 6513*cdf0e10cSrcweir { 6514*cdf0e10cSrcweir sal_Unicode buffer[PATH_BUFFER_SIZE]; 6515*cdf0e10cSrcweir rtl_copyMemory(buffer, path.getStr(), (path.getLength() + 1) * sizeof(sal_Unicode)); 6516*cdf0e10cSrcweir 6517*cdf0e10cSrcweir sal_Int32 i = rtl_ustr_lastIndexOfChar(buffer, '/'); 6518*cdf0e10cSrcweir if (i == path.getLength()) 6519*cdf0e10cSrcweir buffer[i] = 0; 6520*cdf0e10cSrcweir 6521*cdf0e10cSrcweir Directory::remove(buffer); 6522*cdf0e10cSrcweir 6523*cdf0e10cSrcweir i = rtl_ustr_lastIndexOfChar(buffer, '/'); 6524*cdf0e10cSrcweir buffer[i] = 0; 6525*cdf0e10cSrcweir Directory::remove(buffer); 6526*cdf0e10cSrcweir } 6527*cdf0e10cSrcweir 6528*cdf0e10cSrcweir //######################################## 6529*cdf0e10cSrcweir class DirCreatedObserver : public DirectoryCreationObserver 6530*cdf0e10cSrcweir { 6531*cdf0e10cSrcweir public: 6532*cdf0e10cSrcweir DirCreatedObserver() : i(0) 6533*cdf0e10cSrcweir { 6534*cdf0e10cSrcweir } 6535*cdf0e10cSrcweir 6536*cdf0e10cSrcweir virtual void DirectoryCreated(const rtl::OUString& /*aDirectoryUrl*/) 6537*cdf0e10cSrcweir { 6538*cdf0e10cSrcweir i++; 6539*cdf0e10cSrcweir }; 6540*cdf0e10cSrcweir 6541*cdf0e10cSrcweir int number_of_dirs_created() const 6542*cdf0e10cSrcweir { 6543*cdf0e10cSrcweir return i; 6544*cdf0e10cSrcweir } 6545*cdf0e10cSrcweir 6546*cdf0e10cSrcweir private: 6547*cdf0e10cSrcweir int i; 6548*cdf0e10cSrcweir }; 6549*cdf0e10cSrcweir 6550*cdf0e10cSrcweir 6551*cdf0e10cSrcweir //######################################## 6552*cdf0e10cSrcweir class createPath : public CppUnit::TestFixture 6553*cdf0e10cSrcweir { 6554*cdf0e10cSrcweir public: 6555*cdf0e10cSrcweir //########################################## 6556*cdf0e10cSrcweir createPath() 6557*cdf0e10cSrcweir {} 6558*cdf0e10cSrcweir 6559*cdf0e10cSrcweir //########################################## 6560*cdf0e10cSrcweir void with_relative_path() 6561*cdf0e10cSrcweir { 6562*cdf0e10cSrcweir FileBase::RC rc = Directory::createPath( 6563*cdf0e10cSrcweir OUString::createFromAscii(TEST_PATH_POSTFIX)); 6564*cdf0e10cSrcweir 6565*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE 6566*cdf0e10cSrcweir ( 6567*cdf0e10cSrcweir "osl_createDirectoryPath contract broken", 6568*cdf0e10cSrcweir rc == FileBase::E_INVAL 6569*cdf0e10cSrcweir ); 6570*cdf0e10cSrcweir } 6571*cdf0e10cSrcweir 6572*cdf0e10cSrcweir //########################################## 6573*cdf0e10cSrcweir void without_callback() 6574*cdf0e10cSrcweir { 6575*cdf0e10cSrcweir OUString tp_url = get_test_path(); 6576*cdf0e10cSrcweir 6577*cdf0e10cSrcweir rm_test_path(tp_url); 6578*cdf0e10cSrcweir 6579*cdf0e10cSrcweir FileBase::RC rc = Directory::createPath(tp_url); 6580*cdf0e10cSrcweir 6581*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE 6582*cdf0e10cSrcweir ( 6583*cdf0e10cSrcweir "osl_createDirectoryPath failed", 6584*cdf0e10cSrcweir rc == FileBase::E_None 6585*cdf0e10cSrcweir ); 6586*cdf0e10cSrcweir } 6587*cdf0e10cSrcweir 6588*cdf0e10cSrcweir //########################################## 6589*cdf0e10cSrcweir void with_callback() 6590*cdf0e10cSrcweir { 6591*cdf0e10cSrcweir OUString tp_url = get_test_path(); 6592*cdf0e10cSrcweir 6593*cdf0e10cSrcweir rm_test_path(tp_url); 6594*cdf0e10cSrcweir 6595*cdf0e10cSrcweir DirCreatedObserver* observer = new DirCreatedObserver; 6596*cdf0e10cSrcweir FileBase::RC rc = Directory::createPath(tp_url, observer); 6597*cdf0e10cSrcweir int nDirs = observer->number_of_dirs_created(); 6598*cdf0e10cSrcweir delete observer; 6599*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE 6600*cdf0e10cSrcweir ( 6601*cdf0e10cSrcweir "osl_createDirectoryPath failed", 6602*cdf0e10cSrcweir (rc == FileBase::E_None) && (nDirs > 0) 6603*cdf0e10cSrcweir ); 6604*cdf0e10cSrcweir 6605*cdf0e10cSrcweir } 6606*cdf0e10cSrcweir 6607*cdf0e10cSrcweir #ifdef WNT 6608*cdf0e10cSrcweir 6609*cdf0e10cSrcweir //########################################## 6610*cdf0e10cSrcweir char* get_unused_drive_letter() 6611*cdf0e10cSrcweir { 6612*cdf0e10cSrcweir static char m_aBuff[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 6613*cdf0e10cSrcweir 6614*cdf0e10cSrcweir DWORD ld = GetLogicalDrives(); 6615*cdf0e10cSrcweir DWORD i = 4; 6616*cdf0e10cSrcweir DWORD j = 2; 6617*cdf0e10cSrcweir 6618*cdf0e10cSrcweir while ((ld & i) && (i > 1)) 6619*cdf0e10cSrcweir { i = i << 1; j++; } 6620*cdf0e10cSrcweir 6621*cdf0e10cSrcweir if (i > 2) 6622*cdf0e10cSrcweir return m_aBuff + j; 6623*cdf0e10cSrcweir 6624*cdf0e10cSrcweir return NULL; 6625*cdf0e10cSrcweir } 6626*cdf0e10cSrcweir 6627*cdf0e10cSrcweir //########################################## 6628*cdf0e10cSrcweir void at_invalid_logical_drive() 6629*cdf0e10cSrcweir { 6630*cdf0e10cSrcweir char* drv = get_unused_drive_letter(); 6631*cdf0e10cSrcweir char buff[PATH_BUFFER_SIZE]; 6632*cdf0e10cSrcweir rtl_zeroMemory(buff, sizeof(buff)); 6633*cdf0e10cSrcweir 6634*cdf0e10cSrcweir strncpy(buff, drv, 1); 6635*cdf0e10cSrcweir strcat(buff, ":\\"); 6636*cdf0e10cSrcweir strcat(buff, TEST_PATH_POSTFIX); 6637*cdf0e10cSrcweir 6638*cdf0e10cSrcweir OUString path = OUString::createFromAscii(buff); 6639*cdf0e10cSrcweir OUString tp_url; 6640*cdf0e10cSrcweir FileBase::getFileURLFromSystemPath(path, tp_url); 6641*cdf0e10cSrcweir 6642*cdf0e10cSrcweir FileBase::RC rc = Directory::createPath(tp_url); 6643*cdf0e10cSrcweir 6644*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE 6645*cdf0e10cSrcweir ( 6646*cdf0e10cSrcweir "osl_createDirectoryPath doesn't fail on unused logical drive letters", 6647*cdf0e10cSrcweir rc != FileBase::E_None 6648*cdf0e10cSrcweir ); 6649*cdf0e10cSrcweir } 6650*cdf0e10cSrcweir 6651*cdf0e10cSrcweir //########################################## 6652*cdf0e10cSrcweir void with_UNC_path() 6653*cdf0e10cSrcweir { 6654*cdf0e10cSrcweir 6655*cdf0e10cSrcweir OUString tp_unc = OUString::createFromAscii("\\\\Tra-1\\TRA_D\\hello\\world\\"); 6656*cdf0e10cSrcweir OUString tp_url; 6657*cdf0e10cSrcweir FileBase::getFileURLFromSystemPath(tp_unc, tp_url); 6658*cdf0e10cSrcweir 6659*cdf0e10cSrcweir FileBase::RC rc = Directory::createPath(tp_url); 6660*cdf0e10cSrcweir 6661*cdf0e10cSrcweir CPPUNIT_ASSERT_MESSAGE 6662*cdf0e10cSrcweir ( 6663*cdf0e10cSrcweir "osl_createDirectoryPath fails with UNC path", 6664*cdf0e10cSrcweir rc == FileBase::E_None 6665*cdf0e10cSrcweir ); 6666*cdf0e10cSrcweir } 6667*cdf0e10cSrcweir 6668*cdf0e10cSrcweir #endif /* WNT */ 6669*cdf0e10cSrcweir 6670*cdf0e10cSrcweir CPPUNIT_TEST_SUITE(createPath); 6671*cdf0e10cSrcweir CPPUNIT_TEST(with_relative_path); 6672*cdf0e10cSrcweir CPPUNIT_TEST(without_callback); 6673*cdf0e10cSrcweir CPPUNIT_TEST(with_callback); 6674*cdf0e10cSrcweir #ifdef WNT 6675*cdf0e10cSrcweir CPPUNIT_TEST(at_invalid_logical_drive); 6676*cdf0e10cSrcweir 6677*cdf0e10cSrcweir // adapt the UNC path in method createDirectoryPath_with_UNC_path 6678*cdf0e10cSrcweir // in order to run this test successfully 6679*cdf0e10cSrcweir //CPPUNIT_TEST(with_UNC_path); 6680*cdf0e10cSrcweir #endif 6681*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_END(); 6682*cdf0e10cSrcweir 6683*cdf0e10cSrcweir }; // class createPath 6684*cdf0e10cSrcweir 6685*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 6686*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::ctors, "osl_Directory" ); 6687*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::open, "osl_Directory" ); 6688*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::isOpen, "osl_Directory" ); 6689*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::close, "osl_Directory" ); 6690*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::reset, "osl_Directory" ); 6691*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::getNextItem, "osl_Directory" ); 6692*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::getVolumeInfo, "osl_Directory" ); 6693*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::create, "osl_Directory" ); 6694*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::remove, "osl_Directory" ); 6695*cdf0e10cSrcweir CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_Directory::createPath, "osl_Directory" ); 6696*cdf0e10cSrcweir }// namespace osl_Directory 6697*cdf0e10cSrcweir 6698*cdf0e10cSrcweir 6699*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 6700*cdf0e10cSrcweir // this macro creates an empty function, which will called by the RegisterAllFunctions() 6701*cdf0e10cSrcweir // to let the user the possibility to also register some functions by hand. 6702*cdf0e10cSrcweir // ----------------------------------------------------------------------------- 6703*cdf0e10cSrcweir 6704*cdf0e10cSrcweir /// NOADDITIONAL; 6705*cdf0e10cSrcweir 6706*cdf0e10cSrcweir 6707*cdf0e10cSrcweir 6708*cdf0e10cSrcweir /** get Current PID. 6709*cdf0e10cSrcweir */ 6710*cdf0e10cSrcweir inline ::rtl::OUString getCurrentPID( ) 6711*cdf0e10cSrcweir { 6712*cdf0e10cSrcweir //~ Get current PID and turn it into OUString; 6713*cdf0e10cSrcweir int nPID = 0; 6714*cdf0e10cSrcweir #ifdef WNT 6715*cdf0e10cSrcweir nPID = GetCurrentProcessId(); 6716*cdf0e10cSrcweir #else 6717*cdf0e10cSrcweir nPID = getpid(); 6718*cdf0e10cSrcweir #endif 6719*cdf0e10cSrcweir return ( ::rtl::OUString::valueOf( ( long )nPID ) ); 6720*cdf0e10cSrcweir } 6721*cdf0e10cSrcweir 6722*cdf0e10cSrcweir 6723*cdf0e10cSrcweir /** Insert Current PID to the URL to avoid access violation between multiuser execution. 6724*cdf0e10cSrcweir */ 6725*cdf0e10cSrcweir inline void insertPID( ::rtl::OUString & pathname ) 6726*cdf0e10cSrcweir { 6727*cdf0e10cSrcweir //~ check if the path contain the temp directory, do nothing changes if not; 6728*cdf0e10cSrcweir if ( pathname.indexOf( aTempDirectoryURL ) && pathname.indexOf( aTempDirectorySys ) ) 6729*cdf0e10cSrcweir return; 6730*cdf0e10cSrcweir 6731*cdf0e10cSrcweir //~ format pathname to TEMP/USERPID/URL style; 6732*cdf0e10cSrcweir if ( !pathname.indexOf( aTempDirectoryURL ) ) 6733*cdf0e10cSrcweir { 6734*cdf0e10cSrcweir ::rtl::OUString strPID( getCurrentPID( ) ); 6735*cdf0e10cSrcweir ::rtl::OUString pathLeft = aTempDirectoryURL.copy( 0 ); 6736*cdf0e10cSrcweir ::rtl::OUString pathRight = pathname.copy( aTempDirectoryURL.getLength( ) ); 6737*cdf0e10cSrcweir pathname = pathLeft.copy( 0 ); 6738*cdf0e10cSrcweir ( ( pathname += aSlashURL ) += strPID ) += pathRight; 6739*cdf0e10cSrcweir } 6740*cdf0e10cSrcweir else 6741*cdf0e10cSrcweir { 6742*cdf0e10cSrcweir ::rtl::OUString strPID( getCurrentPID( ) ); 6743*cdf0e10cSrcweir ::rtl::OUString pathLeft = aTempDirectorySys.copy( 0 ); 6744*cdf0e10cSrcweir ::rtl::OUString pathRight = pathname.copy( aTempDirectorySys.getLength( ) ); 6745*cdf0e10cSrcweir pathname = pathLeft.copy( 0 ); 6746*cdf0e10cSrcweir ( ( pathname += aSlashURL ) += strPID ) += pathRight; 6747*cdf0e10cSrcweir } 6748*cdf0e10cSrcweir 6749*cdf0e10cSrcweir 6750*cdf0e10cSrcweir } 6751*cdf0e10cSrcweir 6752*cdf0e10cSrcweir /** to do some initialized work, we replace the NOADDITIONAL macro with the initialize work which 6753*cdf0e10cSrcweir will check the file and directory existence. and set some variables for test use. 6754*cdf0e10cSrcweir to simplify the initialize work, we seperate it into UNIX section and Windows section, the main task 6755*cdf0e10cSrcweir of initialization is adapt all URL defined in osl_File_Const.h to TEMP/USERPID/URL style format, 6756*cdf0e10cSrcweir since there may be an instance that multiuser execute test at the same time, and the temp file 6757*cdf0e10cSrcweir may not be clean up in this case due to access right problem. 6758*cdf0e10cSrcweir */ 6759*cdf0e10cSrcweir void RegisterAdditionalFunctions( FktRegFuncPtr _pFunc ) 6760*cdf0e10cSrcweir { 6761*cdf0e10cSrcweir (void)_pFunc; 6762*cdf0e10cSrcweir t_print( "Initializing..." ); 6763*cdf0e10cSrcweir 6764*cdf0e10cSrcweir //~ make sure the c:\temp exist, if not, create it. 6765*cdf0e10cSrcweir #if ( defined WNT ) 6766*cdf0e10cSrcweir if ( checkDirectory( aTempDirectoryURL, osl_Check_Mode_Exist ) != sal_True ) { 6767*cdf0e10cSrcweir t_print( "\n#C:\\temp is not exist, now creating\n" ); 6768*cdf0e10cSrcweir createTestDirectory( aTempDirectoryURL ); 6769*cdf0e10cSrcweir }; 6770*cdf0e10cSrcweir #endif 6771*cdf0e10cSrcweir 6772*cdf0e10cSrcweir //~ make sure the c:\temp\PID or /tmp/PID exist, if not, create it. initialize the user directory. 6773*cdf0e10cSrcweir ( aUserDirectoryURL += aSlashURL ) += getCurrentPID( ); 6774*cdf0e10cSrcweir ( aUserDirectorySys += aSlashURL ) += getCurrentPID( ); 6775*cdf0e10cSrcweir 6776*cdf0e10cSrcweir if ( checkDirectory( aUserDirectoryURL, osl_Check_Mode_Exist ) != sal_True ) { 6777*cdf0e10cSrcweir createTestDirectory( aUserDirectoryURL ); 6778*cdf0e10cSrcweir } 6779*cdf0e10cSrcweir 6780*cdf0e10cSrcweir //~ adapt all URL to the TEMP/USERPID/URL format; 6781*cdf0e10cSrcweir insertPID( aCanURL1 ); 6782*cdf0e10cSrcweir insertPID( aTmpName3 ); 6783*cdf0e10cSrcweir insertPID( aTmpName4 ); 6784*cdf0e10cSrcweir insertPID( aTmpName5 ); 6785*cdf0e10cSrcweir insertPID( aTmpName6 ); 6786*cdf0e10cSrcweir insertPID( aTmpName8 ); 6787*cdf0e10cSrcweir insertPID( aTmpName9 ); 6788*cdf0e10cSrcweir insertPID( aLnkURL1 ); 6789*cdf0e10cSrcweir insertPID( aFifoSys ); 6790*cdf0e10cSrcweir insertPID( aSysPath1 ); 6791*cdf0e10cSrcweir insertPID( aSysPath2 ); 6792*cdf0e10cSrcweir insertPID( aSysPath3 ); 6793*cdf0e10cSrcweir insertPID( aSysPath4 ); 6794*cdf0e10cSrcweir 6795*cdf0e10cSrcweir t_print( "Done.\n" ); 6796*cdf0e10cSrcweir 6797*cdf0e10cSrcweir } 6798*cdf0e10cSrcweir 6799*cdf0e10cSrcweir 6800*cdf0e10cSrcweir //~ do some clean up work after all test completed. 6801*cdf0e10cSrcweir class GlobalObject 6802*cdf0e10cSrcweir { 6803*cdf0e10cSrcweir public: 6804*cdf0e10cSrcweir ~GlobalObject() 6805*cdf0e10cSrcweir { 6806*cdf0e10cSrcweir try 6807*cdf0e10cSrcweir { 6808*cdf0e10cSrcweir //~ make sure the c:\temp\PID or /tmp/PID exist, if yes, delete it. 6809*cdf0e10cSrcweir t_print( "\n#Do some clean-ups ...\n" ); 6810*cdf0e10cSrcweir if ( checkDirectory( aUserDirectoryURL, osl_Check_Mode_Exist ) == sal_True ) { 6811*cdf0e10cSrcweir deleteTestDirectory( aUserDirectoryURL ); 6812*cdf0e10cSrcweir } 6813*cdf0e10cSrcweir 6814*cdf0e10cSrcweir // LLA: t_print("after deleteTestDirectory\n"); 6815*cdf0e10cSrcweir //~ special clean up task in Windows and Unix seperately; 6816*cdf0e10cSrcweir #if ( defined UNX ) || ( defined OS2 ) 6817*cdf0e10cSrcweir //~ some clean up task for UNIX OS 6818*cdf0e10cSrcweir ; 6819*cdf0e10cSrcweir #else 6820*cdf0e10cSrcweir //~ some clean up task for Windows OS 6821*cdf0e10cSrcweir //~ check if some files are in the way, remove them if necessary. 6822*cdf0e10cSrcweir if ( ifFileExist( aTmpName6 ) == sal_True ) 6823*cdf0e10cSrcweir deleteTestFile( aTmpName6 ); 6824*cdf0e10cSrcweir if ( ifFileExist( aTmpName4 ) == sal_True ) 6825*cdf0e10cSrcweir deleteTestFile( aTmpName4 ); 6826*cdf0e10cSrcweir if ( checkDirectory( aTmpName4, osl_Check_Mode_Exist ) == sal_True ) 6827*cdf0e10cSrcweir deleteTestDirectory( aTmpName4 ); 6828*cdf0e10cSrcweir if ( ifFileExist( aTmpName3 ) == sal_True ) 6829*cdf0e10cSrcweir deleteTestFile( aTmpName3 ); 6830*cdf0e10cSrcweir if ( checkDirectory( aTmpName3, osl_Check_Mode_Exist ) == sal_True ) 6831*cdf0e10cSrcweir deleteTestDirectory( aTmpName3 ); 6832*cdf0e10cSrcweir 6833*cdf0e10cSrcweir ::rtl::OUString aUStr( aUserDirectoryURL ); 6834*cdf0e10cSrcweir concatURL( aUStr, aHidURL1 ); 6835*cdf0e10cSrcweir if ( ifFileExist( aUStr ) == sal_True ) 6836*cdf0e10cSrcweir deleteTestFile( aUStr ); 6837*cdf0e10cSrcweir 6838*cdf0e10cSrcweir ::rtl::OUString aUStr1( aRootURL ); 6839*cdf0e10cSrcweir concatURL( aUStr1, aTmpName2 ); 6840*cdf0e10cSrcweir if ( ifFileExist( aUStr1 ) == sal_True ) 6841*cdf0e10cSrcweir deleteTestFile( aUStr1 ); 6842*cdf0e10cSrcweir #endif 6843*cdf0e10cSrcweir 6844*cdf0e10cSrcweir } 6845*cdf0e10cSrcweir catch (CppUnit::Exception &e) 6846*cdf0e10cSrcweir { 6847*cdf0e10cSrcweir t_print("Exception caught in GlobalObject dtor(). Exception message: '%s'. Source line: %d\n", e.what(), e.sourceLine().lineNumber()); 6848*cdf0e10cSrcweir } 6849*cdf0e10cSrcweir catch (...) 6850*cdf0e10cSrcweir { 6851*cdf0e10cSrcweir t_print("Exception caught (...) in GlobalObject dtor()\n"); 6852*cdf0e10cSrcweir } 6853*cdf0e10cSrcweir } 6854*cdf0e10cSrcweir }; 6855*cdf0e10cSrcweir 6856*cdf0e10cSrcweir GlobalObject theGlobalObject; 6857