2010-10-14 08:30:07 +02:00
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2003-04-17 07:34:31 +00:00
/*************************************************************************
*
2008-04-10 10:29:15 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
2003-04-17 07:34:31 +00:00
*
2010-02-12 15:01:35 +01:00
* Copyright 2000 , 2010 Oracle and / or its affiliates .
2003-04-17 07:34:31 +00:00
*
2008-04-10 10:29:15 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2003-04-17 07:34:31 +00:00
*
2008-04-10 10:29:15 +00:00
* This file is part of OpenOffice . org .
2003-04-17 07:34:31 +00:00
*
2008-04-10 10:29:15 +00:00
* OpenOffice . org is free software : you can redistribute it and / or modify
* it under the terms of the GNU Lesser General Public License version 3
* only , as published by the Free Software Foundation .
2003-04-17 07:34:31 +00:00
*
2008-04-10 10:29:15 +00:00
* OpenOffice . org is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU Lesser General Public License version 3 for more details
* ( a copy is included in the LICENSE file that accompanied this code ) .
2003-04-17 07:34:31 +00:00
*
2008-04-10 10:29:15 +00:00
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice . org . If not , see
* < http : //www.openoffice.org/license.html>
* for a copy of the LGPLv3 License .
2003-04-17 07:34:31 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-17 07:49:26 +00:00
// MARKER(update_precomp.py): autogen include statement, do not remove
# include "precompiled_sal.hxx"
2011-07-10 14:43:03 +03:00
# ifdef IOS
# define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTest_qa_osl_File
# endif
2003-04-17 07:34:31 +00:00
//------------------------------------------------------------------------
// include files
//------------------------------------------------------------------------
# include <sal/types.h>
# include <rtl/ustring.hxx>
2003-12-11 11:30:40 +00:00
# include <rtl/ustrbuf.hxx>
2003-04-17 07:34:31 +00:00
2004-02-03 12:36:49 +00:00
# include "osl/thread.h"
# include "rtl/ustrbuf.hxx"
2003-04-17 07:34:31 +00:00
# include <osl/file.hxx>
# include <osl_File_Const.h>
2011-02-06 22:57:15 +01:00
# include <cppunit/TestFixture.h>
# include <cppunit/extensions/HelperMacros.h>
# include <cppunit/plugin/TestPlugIn.h>
2003-04-17 07:34:31 +00:00
using namespace osl ;
2011-03-03 22:09:48 +01:00
using : : rtl : : OUString ;
using : : rtl : : OUStringToOString ;
using : : rtl : : OString ;
using : : rtl : : OStringToOUString ;
2003-04-17 07:34:31 +00:00
//------------------------------------------------------------------------
// helper functions
//------------------------------------------------------------------------
2003-11-18 15:38:22 +00:00
/** detailed wrong message.
2003-04-17 07:34:31 +00:00
*/
2003-12-11 11:30:40 +00:00
inline : : rtl : : OString errorToString ( const : : osl : : FileBase : : RC _nError )
2003-04-17 07:34:31 +00:00
{
2003-12-11 11:30:40 +00:00
: : rtl : : OString sResult ;
switch ( _nError ) {
2003-04-17 07:34:31 +00:00
case : : osl : : FileBase : : E_None :
2003-12-11 11:30:40 +00:00
sResult = " Success " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_PERM :
2003-12-11 11:30:40 +00:00
sResult = " Operation not permitted " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_NOENT :
2003-12-11 11:30:40 +00:00
sResult = " No such file or directory " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_EXIST :
2003-12-11 11:30:40 +00:00
sResult = " Already Exist " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_ACCES :
2003-12-11 11:30:40 +00:00
sResult = " Permission denied " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_INVAL :
2003-12-11 11:30:40 +00:00
sResult = " The format of the parameters was not valid " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_NOTDIR :
2003-12-11 11:30:40 +00:00
sResult = " Not a directory " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_ISDIR :
2003-12-11 11:30:40 +00:00
sResult = " Is a directory " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_BADF :
2003-12-11 11:30:40 +00:00
sResult = " Bad file " ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileBase : : E_NOTEMPTY :
2003-12-11 11:30:40 +00:00
sResult = " The directory is not empty " ;
2003-04-17 07:34:31 +00:00
break ;
default :
2003-12-11 11:30:40 +00:00
sResult = " Unknown Error " ;
2003-04-17 07:34:31 +00:00
break ;
}
2003-12-11 11:30:40 +00:00
return sResult ;
}
2011-02-06 22:57:15 +01:00
rtl : : OString errorToStr ( : : osl : : FileBase : : RC const & nError )
2003-12-11 11:30:40 +00:00
{
2011-02-06 22:57:15 +01:00
rtl : : OString suBuf ;
suBuf + = " The returned error is: " ;
suBuf + = errorToString ( nError ) ;
suBuf + = " ! \n " ;
return suBuf ;
2003-04-17 07:34:31 +00:00
}
/** print a file type name.
*/
inline void printFileType ( const : : osl : : FileStatus : : Type nType )
{
2011-02-06 22:57:15 +01:00
printf ( " #printFileType# " ) ;
2003-04-17 07:34:31 +00:00
switch ( nType ) {
case : : osl : : FileStatus : : Directory :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: Directory. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Volume :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: volume device. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Regular :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: regular file. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Fifo :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: fifo. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Socket :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: socket. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Link :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: link file. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Special :
2011-02-06 22:57:15 +01:00
printf ( " This file is a: special. \n " ) ;
2003-04-17 07:34:31 +00:00
break ;
case : : osl : : FileStatus : : Unknown :
2011-02-06 22:57:15 +01:00
printf ( " The file type is unknown %d \n " , nType ) ;
2003-04-17 07:34:31 +00:00
break ;
}
}
/** print a file attributes.
*/
inline void printFileAttributes ( const sal_Int64 nAttributes )
{
2011-02-06 22:57:15 +01:00
printf ( " #printFileAttributes# This file is a: ( " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_ReadOnly ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " ReadOnly " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_Hidden ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " Hidden " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_Executable ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " Executable " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_GrpWrite ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " GrpWrite " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_GrpRead ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " GrpRead " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_GrpExe ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " GrpExe " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_OwnWrite ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " OwnWrite " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_OwnRead ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " OwnRead " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_OwnExe ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " OwnExe " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_OthWrite ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " OthWrite " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_OthRead ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " OthRead " ) ;
2011-04-20 20:35:58 +02:00
if ( ( nAttributes | osl_File_Attribute_OthExe ) = = nAttributes )
2011-02-06 22:57:15 +01:00
printf ( " OthExe " ) ;
printf ( " ) file! \n " ) ;
2003-04-17 07:34:31 +00:00
}
2003-11-18 15:38:22 +00:00
/** print an output wrong message.
*/
inline void printError ( const : : osl : : FileBase : : RC nError )
{
2011-02-06 22:57:15 +01:00
printf ( " #printError# " ) ;
printf ( " %s \n " , errorToStr ( nError ) . getStr ( ) ) ;
2003-11-18 15:38:22 +00:00
}
2003-04-17 07:34:31 +00:00
/** print an signed Integer Number.
*/
inline void printInt ( sal_Int64 i )
{
2011-02-06 22:57:15 +01:00
printf ( " #printInt_i64# " ) ;
2011-02-08 09:06:32 +00:00
printf ( " The Integer64 is % " SAL_PRIdINT64 " \n " , i ) ;
2003-04-17 07:34:31 +00:00
}
/** print an unsigned Integer Number.
*/
inline void printInt ( sal_uInt64 i )
{
2011-02-06 22:57:15 +01:00
printf ( " #printInt_u64# " ) ;
2011-02-08 09:06:32 +00:00
printf ( " The unsigned Integer64 is % " SAL_PRIuUINT64 " \n " , i ) ;
2003-04-17 07:34:31 +00:00
}
/** print Boolean value.
*/
inline void printBool ( sal_Bool bOk )
{
2011-02-06 22:57:15 +01:00
printf ( " #printBool# " ) ;
( sal_True = = bOk ) ? printf ( " YES! \n " ) : printf ( " NO! \n " ) ;
2003-04-17 07:34:31 +00:00
}
/** print struct TimeValue in local time format.
*/
inline void printTime ( TimeValue * tv )
{
oslDateTime * pDateTime = ( oslDateTime * ) malloc ( sizeof ( oslDateTime ) ) ;
CPPUNIT_ASSERT_MESSAGE ( " Error in printTime() function,malloc " , pDateTime ! = NULL ) ;
TimeValue * pLocalTV = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ;
CPPUNIT_ASSERT_MESSAGE ( " Error in printTime() function,malloc " , pLocalTV ! = NULL ) ;
CPPUNIT_ASSERT_MESSAGE ( " Error in printTime() function,osl_getLocalTimeFromSystemTime " , sal_True = = osl_getLocalTimeFromSystemTime ( tv , pLocalTV ) ) ;
CPPUNIT_ASSERT_MESSAGE ( " Error in printTime() function,osl_gepDateTimeFromTimeValue " , sal_True = = osl_getDateTimeFromTimeValue ( pLocalTV , pDateTime ) ) ;
2011-02-06 22:57:15 +01:00
printf ( " #printTime# " ) ;
printf ( " Time is: %d/%d/%d " , pDateTime - > Month , pDateTime - > Day , pDateTime - > Year ) ;
2003-04-17 07:34:31 +00:00
switch ( pDateTime - > DayOfWeek )
{
2011-02-06 22:57:15 +01:00
case 0 : printf ( " Sun. " ) ; break ;
case 1 : printf ( " Mon. " ) ; break ;
case 2 : printf ( " Tue. " ) ; break ;
case 3 : printf ( " Thr. " ) ; break ;
case 4 : printf ( " Wen. " ) ; break ;
case 5 : printf ( " Fri. " ) ; break ;
case 6 : printf ( " Sat. " ) ; break ;
2003-04-17 07:34:31 +00:00
}
2011-02-06 22:57:15 +01:00
printf ( " %d:%d:%d %d nsecs \n " , pDateTime - > Hours , pDateTime - > Minutes , pDateTime - > Seconds , ( int ) pDateTime - > NanoSeconds ) ;
2003-04-17 07:34:31 +00:00
free ( pDateTime ) ;
free ( pLocalTV ) ;
}
/** compare two TimeValue, unit is "ms", since Windows time precision is better than UNX.
*/
2011-04-16 09:08:29 +02:00
/* FIXME: the above assertion is bogus */
2003-04-17 07:34:31 +00:00
2011-04-16 09:08:29 +02:00
# if ( defined UNX ) //precision of time in Windows is better than UNX
2003-04-17 07:34:31 +00:00
# define delta 2000 //time precision, 2000ms
# else
2003-05-27 13:19:09 +00:00
# define delta 1800 //time precision, 1.8s
2003-04-17 07:34:31 +00:00
# endif
2004-05-03 07:57:00 +00:00
inline sal_Int64 t_abs64 ( sal_Int64 _nValue )
2003-04-17 07:34:31 +00:00
{
2004-05-03 07:57:00 +00:00
// std::abs() seems to have some ambiguity problems (so-texas)
// return abs(_nValue);
2011-02-06 22:57:15 +01:00
printf ( " t_abs64(%ld) \n " , ( long ) _nValue ) ;
2004-05-03 07:57:00 +00:00
// CPPUNIT_ASSERT(_nValue < 2147483647);
2003-05-27 13:19:09 +00:00
2004-05-03 07:57:00 +00:00
if ( _nValue < 0 )
{
_nValue = - _nValue ;
}
return _nValue ;
}
2003-04-17 07:34:31 +00:00
2004-05-03 07:57:00 +00:00
inline sal_Bool t_compareTime ( TimeValue * m_aEndTime , TimeValue * m_aStartTime , sal_Int32 nDelta )
{
// sal_uInt64 uTimeValue;
// sal_Int64 iTimeValue;
//
// iTimeValue = t_abs64(( tv1->Seconds - tv2->Seconds) * 1000000000 + tv1->Nanosec - tv2->Nanosec);
// uTimeValue = ( iTimeValue / 1000000 );
sal_Int32 nDeltaSeconds = m_aEndTime - > Seconds - m_aStartTime - > Seconds ;
sal_Int32 nDeltaNanoSec = sal_Int32 ( m_aEndTime - > Nanosec ) - sal_Int32 ( m_aStartTime - > Nanosec ) ;
if ( nDeltaNanoSec < 0 )
{
nDeltaNanoSec = 1000000000 + nDeltaNanoSec ;
nDeltaSeconds - - ;
}
sal_Int32 nDeltaMilliSec = ( nDeltaSeconds * 1000 ) + ( nDeltaNanoSec / 1000000 ) ;
return ( nDeltaMilliSec < nDelta ) ;
2003-04-17 07:34:31 +00:00
}
/** compare two OUString file name.
*/
inline sal_Bool compareFileName ( const : : rtl : : OUString & ustr1 , const : : rtl : : OUString & ustr2 )
{
2003-11-18 15:38:22 +00:00
sal_Bool bOk ;
//on Windows, the seperatar is '\', so here change to '/', then compare
# if defined (WNT )
: : rtl : : OUString ustr1new , ustr2new ;
sal_Unicode reverseSlash = ( sal_Unicode ) ' \\ ' ;
2003-04-17 07:34:31 +00:00
2003-11-18 15:38:22 +00:00
if ( ustr1 . lastIndexOf ( reverseSlash ) ! = - 1 )
ustr1new = ustr1 . replace ( reverseSlash , ( sal_Unicode ) ' / ' ) ;
else
ustr1new = ustr1 ;
if ( ustr2 . lastIndexOf ( reverseSlash ) ! = - 1 )
ustr2new = ustr2 . replace ( reverseSlash , ( sal_Unicode ) ' / ' ) ;
else
ustr2new = ustr2 ;
bOk = ustr1new . equalsIgnoreAsciiCase ( ustr2new ) ;
# else
bOk = ustr1 . equalsIgnoreAsciiCase ( ustr2 ) ;
# endif
2003-04-17 07:34:31 +00:00
return bOk ;
}
/** compare a OUString and an ASCII file name.
*/
inline sal_Bool compareFileName ( const : : rtl : : OUString & ustr , const sal_Char * astr )
{
2007-11-20 18:28:54 +00:00
( void ) ustr ;
2003-04-17 07:34:31 +00:00
: : rtl : : OUString ustr1 = rtl : : OUString : : createFromAscii ( astr ) ;
2011-02-06 22:57:15 +01:00
sal_Bool bOk = ustr1 . equalsIgnoreAsciiCase ( ustr1 ) ; // TODO: does it really compare with the same var?
2003-04-17 07:34:31 +00:00
return bOk ;
}
/** simple version to judge if a file name or directory name is a URL or a system path, just to see if it
is start with " file:/// " ; .
*/
inline sal_Bool isURL ( const sal_Char * pathname )
{
return ( 0 = = strncmp ( pathname , FILE_PREFIX , sizeof ( FILE_PREFIX ) - 1 ) ) ;
}
/** simple version to judge if a file name or directory name is a URL or a system path, just to see if it
is start with " file:/// " ; .
*/
inline sal_Bool isURL ( const : : rtl : : OUString pathname )
{
return ( ( pathname . indexOf ( aPreURL ) = = 0 ) ? sal_True : sal_False ) ;
}
/** concat two part to form a URL or system path, add PATH_SEPERATOR between them if necessary, add "file:///" to begining if necessary.
*/
inline void concatURL ( : : rtl : : OUString & pathname1 , const : : rtl : : OUString & pathname2 )
{
//check if pathname1 is full qualified URL;
if ( ! isURL ( pathname1 ) )
{
: : rtl : : OUString aPathName = pathname1 . copy ( 0 ) ;
: : osl : : FileBase : : getFileURLFromSystemPath ( pathname1 , aPathName ) ; //convert if not full qualified URL
pathname1 = aPathName . copy ( 0 ) ;
}
sal_Int32 index = 0 ;
//check if '/' is in the end of pathname1 or at the begin of pathname2;
if ( ( ( index = pathname1 . lastIndexOf ( aSlashURL ) ) ! = ( pathname1 . getLength ( ) - 1 ) ) & &
( ( index = pathname2 . indexOf ( aSlashURL ) ) ! = 0 ) )
pathname1 + = aSlashURL ;
pathname1 + = pathname2 ;
}
/** create a temp test file using OUString name of full qualified URL or system path.
*/
inline void createTestFile ( const : : rtl : : OUString filename )
{
: : rtl : : OUString aPathURL = filename . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( filename ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( filename , aPathURL ) ; //convert if not full qualified URL
2004-05-03 07:57:00 +00:00
File aFile ( aPathURL ) ;
2010-12-11 19:43:44 +00:00
nError = aFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create ) ;
2004-03-19 13:48:16 +00:00
//CPPUNIT_ASSERT_MESSAGE( "In createTestFile Function: creation ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) );
if ( ( : : osl : : FileBase : : E_None ! = nError ) & & ( nError ! = : : osl : : FileBase : : E_EXIST ) )
2004-05-03 07:57:00 +00:00
{
2011-02-06 22:57:15 +01:00
printf ( " createTestFile failed! \n " ) ;
2004-05-03 07:57:00 +00:00
}
aFile . close ( ) ;
2003-04-17 07:34:31 +00:00
}
/** create a temp test file using OUString name of full qualified URL or system path in a base directory.
*/
inline void createTestFile ( const : : rtl : : OUString basename , const : : rtl : : OUString filename )
{
2003-11-18 15:38:22 +00:00
: : rtl : : OUString aBaseURL = basename . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aBaseURL , filename ) ;
createTestFile ( aBaseURL ) ;
}
/** detete a temp test file using OUString name.
*/
inline void deleteTestFile ( const : : rtl : : OUString filename )
{
2011-02-06 22:57:15 +01:00
// LLA: printf("deleteTestFile\n");
2003-04-17 07:34:31 +00:00
: : rtl : : OUString aPathURL = filename . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( filename ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( filename , aPathURL ) ; //convert if not full qualified URL
2003-05-27 13:19:09 +00:00
2011-04-20 20:35:58 +02:00
nError = : : osl : : File : : setAttributes ( aPathURL , osl_File_Attribute_GrpWrite | osl_File_Attribute_OwnWrite | osl_File_Attribute_OthWrite ) ; // if readonly, make writtenable.
2003-05-27 13:19:09 +00:00
CPPUNIT_ASSERT_MESSAGE ( " In deleteTestFile Function: set writtenable " , ( : : osl : : FileBase : : E_None = = nError ) | | ( : : osl : : FileBase : : E_NOENT = = nError ) ) ;
2003-04-17 07:34:31 +00:00
nError = : : osl : : File : : remove ( aPathURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " In deleteTestFile Function: remove " , ( : : osl : : FileBase : : E_None = = nError ) | | ( nError = = : : osl : : FileBase : : E_NOENT ) ) ;
}
/** delete a temp test file using OUString name of full qualified URL or system path in a base directory.
*/
inline void deleteTestFile ( const : : rtl : : OUString basename , const : : rtl : : OUString filename )
{
: : rtl : : OUString aBaseURL = basename . copy ( 0 ) ;
concatURL ( aBaseURL , filename ) ;
deleteTestFile ( aBaseURL ) ;
}
/** create a temp test directory using OUString name of full qualified URL or system path.
*/
inline void createTestDirectory ( const : : rtl : : OUString dirname )
{
: : rtl : : OUString aPathURL = dirname . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( dirname ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( dirname , aPathURL ) ; //convert if not full qualified URL
nError = : : osl : : Directory : : create ( aPathURL ) ;
2004-03-19 13:48:16 +00:00
//CPPUNIT_ASSERT_MESSAGE( "In createTestDirectory Function: creation: ", ( ::osl::FileBase::E_None == nError ) || ( nError == ::osl::FileBase::E_EXIST ) );
if ( ( : : osl : : FileBase : : E_None ! = nError ) & & ( nError ! = : : osl : : FileBase : : E_EXIST ) )
2011-02-06 22:57:15 +01:00
printf ( " createTestDirectory failed! \n " ) ;
2003-04-17 07:34:31 +00:00
}
/** create a temp test directory using OUString name of full qualified URL or system path in a base directory.
*/
inline void createTestDirectory ( const : : rtl : : OUString basename , const : : rtl : : OUString dirname )
{
: : rtl : : OUString aBaseURL = basename . copy ( 0 ) ;
: : rtl : : OString aString ;
concatURL ( aBaseURL , dirname ) ;
createTestDirectory ( aBaseURL ) ;
}
/** delete a temp test directory using OUString name of full qualified URL or system path.
*/
inline void deleteTestDirectory ( const : : rtl : : OUString dirname )
{
: : rtl : : OUString aPathURL = dirname . copy ( 0 ) ;
: : osl : : FileBase : : RC nError ;
if ( ! isURL ( dirname ) )
: : osl : : FileBase : : getFileURLFromSystemPath ( dirname , aPathURL ) ; //convert if not full qualified URL
2003-05-27 13:19:09 +00:00
: : osl : : Directory testDir ( aPathURL ) ;
if ( testDir . isOpen ( ) = = sal_True )
testDir . close ( ) ; //close if still open.
2003-04-17 07:34:31 +00:00
nError = : : osl : : Directory : : remove ( aPathURL ) ;
2011-02-21 15:38:13 +00:00
2011-02-06 22:57:15 +01:00
rtl : : OString strError ( RTL_CONSTASCII_STRINGPARAM ( " In deleteTestDirectory function: remove Directory " ) ) ;
strError + = : : rtl : : OUStringToOString ( aPathURL , RTL_TEXTENCODING_ASCII_US ) ;
CPPUNIT_ASSERT_MESSAGE ( strError . getStr ( ) , ( : : osl : : FileBase : : E_None = = nError ) | | ( nError = = : : osl : : FileBase : : E_NOENT ) ) ;
2003-04-17 07:34:31 +00:00
}
/** delete a temp test directory using OUString name of full qualified URL or system path in a base directory.
*/
inline void deleteTestDirectory ( const : : rtl : : OUString basename , const : : rtl : : OUString dirname )
{
: : rtl : : OUString aBaseURL = basename . copy ( 0 ) ;
concatURL ( aBaseURL , dirname ) ;
deleteTestDirectory ( aBaseURL ) ;
}
/** Check for the file and directory access right.
*/
typedef enum {
2003-05-27 13:19:09 +00:00
osl_Check_Mode_Exist ,
2003-04-17 07:34:31 +00:00
osl_Check_Mode_OpenAccess ,
osl_Check_Mode_ReadAccess ,
osl_Check_Mode_WriteAccess
} oslCheckMode ;
2003-11-18 15:38:22 +00:00
// not used here
2003-05-27 13:19:09 +00:00
inline sal_Bool checkFile ( const : : rtl : : OUString & str , oslCheckMode nCheckMode )
2003-04-17 07:34:31 +00:00
{
2003-05-27 13:19:09 +00:00
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : File testFile ( str ) ;
2011-02-06 22:57:15 +01:00
sal_Bool bCheckResult ;
2003-04-17 07:34:31 +00:00
2003-05-27 13:19:09 +00:00
bCheckResult = sal_False ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read ) ;
2003-05-27 13:19:09 +00:00
if ( ( : : osl : : FileBase : : E_NOENT ! = nError1 ) & & ( : : osl : : FileBase : : E_ACCES ! = nError1 ) ) {
switch ( nCheckMode ) {
case osl_Check_Mode_Exist :
/// check if the file is exist.
if ( : : osl : : FileBase : : E_None = = nError1 )
bCheckResult = sal_True ;
break ;
case osl_Check_Mode_OpenAccess :
/// check if the file is openable.
if ( : : osl : : FileBase : : E_None = = nError1 )
bCheckResult = sal_True ;
break ;
case osl_Check_Mode_WriteAccess :
2010-12-11 19:54:14 +00:00
/// check the file name and whether it can be written.
2003-05-27 13:19:09 +00:00
/// write chars into the file.
sal_uInt64 nCount_write ;
nError2 = testFile . write ( pBuffer_Char , 10 , nCount_write ) ;
if ( : : osl : : FileBase : : E_None = = nError2 )
bCheckResult = sal_True ;
break ;
default :
bCheckResult = sal_False ;
} /// swith
nError2 = testFile . close ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " in CheckFile() function, close file " , nError2 = = FileBase : : E_None ) ;
}
return bCheckResult ;
2003-04-17 07:34:31 +00:00
}
2003-11-18 15:38:22 +00:00
//check if the file exist
inline sal_Bool ifFileExist ( const : : rtl : : OUString & str )
{
2011-02-06 22:57:15 +01:00
sal_Bool bCheckResult = sal_False ;
2003-11-18 15:38:22 +00:00
/*#ifdef WNT
2011-02-06 22:57:15 +01:00
: : rtl : : OUString aUStr = str . copy ( 0 ) ;
2003-11-18 15:38:22 +00:00
if ( isURL ( str ) )
: : osl : : FileBase : : getSystemPathFromFileURL ( str , aUStr ) ;
: : rtl : : OString aString = : : rtl : : OUStringToOString ( aUStr , RTL_TEXTENCODING_ASCII_US ) ;
const char * path = aString . getStr ( ) ;
if ( ( _access ( path , 0 ) ) ! = - 1 )
bCheckResult = sal_True ;
# else* /
2004-03-19 13:48:16 +00:00
: : rtl : : OString aString = : : rtl : : OUStringToOString ( str , RTL_TEXTENCODING_ASCII_US ) ;
2007-11-20 18:28:54 +00:00
// const char *path = aString.getStr( );
2003-11-18 15:38:22 +00:00
: : osl : : File testFile ( str ) ;
2010-12-11 19:43:44 +00:00
bCheckResult = ( osl : : FileBase : : E_None = = testFile . open ( osl_File_OpenFlag_Read ) ) ;
2004-03-19 13:48:16 +00:00
//if (bCheckResult)
2011-02-06 22:57:15 +01:00
//printf("%s exist!\n", path);
2004-03-19 13:48:16 +00:00
//else
2011-02-06 22:57:15 +01:00
//printf("%s not exist!\n", path);
2003-11-18 15:38:22 +00:00
//#endif
return bCheckResult ;
}
//check if the file can be writen
inline sal_Bool ifFileCanWrite ( const : : rtl : : OUString & str )
{
2011-02-06 22:57:15 +01:00
sal_Bool bCheckResult = sal_False ;
2003-11-18 15:38:22 +00:00
//on Windows, the file has no write right, but can be written
# ifdef WNT
2011-02-06 22:57:15 +01:00
: : rtl : : OUString aUStr = str . copy ( 0 ) ;
2003-11-18 15:38:22 +00:00
if ( isURL ( str ) )
: : osl : : FileBase : : getSystemPathFromFileURL ( str , aUStr ) ;
: : rtl : : OString aString = : : rtl : : OUStringToOString ( aUStr , RTL_TEXTENCODING_ASCII_US ) ;
const char * path = aString . getStr ( ) ;
if ( ( _access ( path , 2 ) ) ! = - 1 )
bCheckResult = sal_True ;
2010-12-11 19:43:44 +00:00
//on UNX, just test if open success with osl_File_OpenFlag_Write
2003-11-18 15:38:22 +00:00
# else
: : osl : : File testFile ( str ) ;
2010-12-11 19:43:44 +00:00
bCheckResult = ( osl : : FileBase : : E_None = = testFile . open ( osl_File_OpenFlag_Write ) ) ;
2003-11-18 15:38:22 +00:00
# endif
return bCheckResult ;
}
2003-04-17 07:34:31 +00:00
inline sal_Bool checkDirectory ( const : : rtl : : OUString & str , oslCheckMode nCheckMode )
{
rtl : : OUString aUString ;
DirectoryItem rItem ;
FileBase : : RC rc ;
2003-05-27 13:19:09 +00:00
sal_Bool bCheckResult = sal_False ;
2003-04-17 07:34:31 +00:00
2004-05-03 07:57:00 +00:00
//::std::auto_ptr<Directory> pDir( new Directory( str ) );
Directory aDir ( str ) ;
rc = aDir . open ( ) ;
2003-04-17 07:34:31 +00:00
2003-05-27 13:19:09 +00:00
if ( ( : : osl : : FileBase : : E_NOENT ! = rc ) & & ( : : osl : : FileBase : : E_ACCES ! = rc ) ) {
switch ( nCheckMode ) {
case osl_Check_Mode_Exist :
if ( rc = = : : osl : : FileBase : : E_None )
bCheckResult = sal_True ;
break ;
case osl_Check_Mode_OpenAccess :
if ( rc = = : : osl : : FileBase : : E_None )
bCheckResult = sal_True ;
break ;
case osl_Check_Mode_ReadAccess :
2004-05-03 07:57:00 +00:00
//rc = pDir->getNextItem( rItem, 0 );
rc = aDir . getNextItem ( rItem , 0 ) ;
2003-05-27 13:19:09 +00:00
if ( ( rc = = : : osl : : FileBase : : E_None ) | | ( rc = = : : osl : : FileBase : : E_NOENT ) )
bCheckResult = sal_True ;
else
bCheckResult = sal_False ;
break ;
case osl_Check_Mode_WriteAccess :
( ( aUString + = str ) + = aSlashURL ) + = aTmpName2 ;
2004-05-03 07:57:00 +00:00
//if ( ( rc = pDir->create( aUString ) ) == ::osl::FileBase::E_None )
if ( ( rc = Directory : : create ( aUString ) ) = = : : osl : : FileBase : : E_None )
2003-05-27 13:19:09 +00:00
{
bCheckResult = sal_True ;
2004-05-03 07:57:00 +00:00
//rc = pDir->remove( aUString );
rc = Directory : : remove ( aUString ) ;
2003-05-27 13:19:09 +00:00
CPPUNIT_ASSERT ( rc = = : : osl : : FileBase : : E_None ) ;
}
else
bCheckResult = sal_False ;
break ;
default :
2003-04-17 07:34:31 +00:00
bCheckResult = sal_False ;
2003-05-27 13:19:09 +00:00
} // switch
2003-04-17 07:34:31 +00:00
2004-05-03 07:57:00 +00:00
rc = aDir . close ( ) ;
2003-05-27 13:19:09 +00:00
CPPUNIT_ASSERT ( rc = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
2004-05-03 07:57:00 +00:00
} //if
2003-04-17 07:34:31 +00:00
return bCheckResult ;
}
2003-11-18 15:38:22 +00:00
/** construct error message
*/
2011-02-06 22:57:15 +01:00
inline : : rtl : : OString outputError ( const : : rtl : : OString & returnVal , const : : rtl : : OString & rightVal , const sal_Char * msg = " " )
2003-11-18 15:38:22 +00:00
{
2011-02-06 22:57:15 +01:00
: : rtl : : OString aString ;
2003-11-18 15:38:22 +00:00
if ( returnVal . equals ( rightVal ) )
2011-02-06 22:57:15 +01:00
return aString ;
aString + = msg ;
aString + = " : the returned value is ' " ;
aString + = returnVal ;
aString + = " ', but the value should be ' " ;
aString + = rightVal ;
aString + = " '. " ;
return aString ;
2003-11-18 15:38:22 +00:00
}
2003-04-17 07:34:31 +00:00
/** Change file mode, two version in UNIX and Windows;.
*/
2011-04-16 09:08:29 +02:00
# if ( defined UNX ) //chmod() method is differ in Windows
2003-04-17 07:34:31 +00:00
inline void changeFileMode ( : : rtl : : OUString & filepath , sal_Int32 mode )
{
rtl : : OString aString ;
rtl : : OUString aUStr = filepath . copy ( 0 ) ;
if ( isURL ( filepath ) )
: : osl : : FileBase : : getSystemPathFromFileURL ( filepath , aUStr ) ;
aString = : : rtl : : OUStringToOString ( aUStr , RTL_TEXTENCODING_ASCII_US ) ;
chmod ( aString . getStr ( ) , mode ) ;
}
# else //Windows version
inline void changeFileMode ( : : rtl : : OUString & filepath , sal_Int32 mode )
{
2007-11-20 18:28:54 +00:00
( void ) filepath ;
( void ) mode ;
2011-02-06 22:57:15 +01:00
printf ( " this method is not implemented yet " ) ;
2003-04-17 07:34:31 +00:00
}
# endif
2003-10-06 12:40:17 +00:00
inline : : rtl : : OUString getCurrentPID ( void ) ;
2003-04-17 07:34:31 +00:00
2003-05-27 13:19:09 +00:00
2003-04-17 07:34:31 +00:00
//------------------------------------------------------------------------
// Beginning of the test cases for FileBase class
//------------------------------------------------------------------------
namespace osl_FileBase
{
//---------------------------------------------------------------------
// testing the method
// static inline RC getAbsoluteFileURL( const ::rtl::OUString& ustrBaseDirectoryURL,
// const ::rtl::OUString& ustrRelativeFileURL,
2011-02-06 22:57:15 +01:00
// ::rtl::OUString& ustrAbsoluteFileURL )
2003-04-17 07:34:31 +00:00
//---------------------------------------------------------------------
class getAbsoluteFileURL : public CppUnit : : TestFixture
{
2011-02-06 22:57:15 +01:00
//::osl::FileBase aFileBase;
: : rtl : : OUString aResultURL1 , aResultURL2 , aResultURL3 , aResultURL4 , aResultURL5 , aResultURL6 ;
// ::osl::FileBase::RC nError;
sal_Bool bOk ;
2003-04-17 07:34:31 +00:00
public :
2004-03-19 13:48:16 +00:00
void check_getAbsoluteFileURL ( rtl : : OUString const & _suBaseURL , rtl : : OString const & _sRelativeURL , : : osl : : FileBase : : RC _nAssumeError , rtl : : OUString const & _suAssumeResultStr ) ;
void getAbsoluteFileURL_001_1 ( ) ;
void getAbsoluteFileURL_001_2 ( ) ;
void getAbsoluteFileURL_001_3 ( ) ;
void getAbsoluteFileURL_001_4 ( ) ;
void getAbsoluteFileURL_001_5 ( ) ;
void getAbsoluteFileURL_001_6 ( ) ;
void getAbsoluteFileURL_001_7 ( ) ;
void getAbsoluteFileURL_001_8 ( ) ;
void getAbsoluteFileURL_002 ( ) ;
void getAbsoluteFileURL_003 ( ) ;
void getAbsoluteFileURL_004 ( ) ;
CPPUNIT_TEST_SUITE ( getAbsoluteFileURL ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_1 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_2 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_3 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_4 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_5 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_6 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_7 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_001_8 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_002 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_003 ) ;
CPPUNIT_TEST ( getAbsoluteFileURL_004 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; //class getAbsoluteFileURL
void getAbsoluteFileURL : : check_getAbsoluteFileURL ( rtl : : OUString const & _suBaseURL , rtl : : OString const & _sRelativeURL , : : osl : : FileBase : : RC _nAssumeError , rtl : : OUString const & _suAssumeResultStr )
{
rtl : : OUString suRelativeURL = rtl : : OStringToOUString ( _sRelativeURL , RTL_TEXTENCODING_UTF8 ) ;
rtl : : OString sBaseURL = rtl : : OUStringToOString ( _suBaseURL , RTL_TEXTENCODING_UTF8 ) ;
rtl : : OUString suResultURL ;
2004-05-03 07:57:00 +00:00
osl : : FileBase : : RC nError = FileBase : : getAbsoluteFileURL ( _suBaseURL , suRelativeURL , suResultURL ) ;
2004-03-19 13:48:16 +00:00
rtl : : OString sResultURL = rtl : : OUStringToOString ( suResultURL , RTL_TEXTENCODING_UTF8 ) ;
rtl : : OString sError = errorToString ( nError ) ;
2011-02-06 22:57:15 +01:00
printf ( " getAbsoluteFileURL('%s','%s') deliver absolute URL: '%s', error '%s' \n " , sBaseURL . getStr ( ) , _sRelativeURL . getStr ( ) , sResultURL . getStr ( ) , sError . getStr ( ) ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_ASSERT_MESSAGE ( " Assumption is wrong: error number is wrong " , nError = = _nAssumeError ) ;
if ( nError = = : : osl : : FileBase : : E_None )
{
sal_Bool bStrAreEqual = _suAssumeResultStr . equals ( suResultURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " Assumption is wrong: ResultURL is not equal to expected URL " , bStrAreEqual = = sal_True ) ;
}
}
2003-04-17 07:34:31 +00:00
2004-03-19 13:48:16 +00:00
void getAbsoluteFileURL : : getAbsoluteFileURL_001_1 ( )
{
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /relative/file1 " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , " relative/file1 " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_2 ( )
{
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /relative/file2 " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , " relative/./file2 " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_3 ( )
{
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /file3 " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , " relative/../file3 " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_4 ( )
{
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /file4 " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , " ././relative/../file4 " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_5 ( )
{
rtl : : OUString suAssume ;
# if ( defined UNX )
2010-12-10 18:31:39 +01:00
suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /relative/ " ) ) ) ;
2004-03-19 13:48:16 +00:00
# else
2010-12-10 18:31:39 +01:00
suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /relative " ) ) ) ;
2004-03-19 13:48:16 +00:00
# endif
check_getAbsoluteFileURL ( aUserDirectoryURL , " ././relative/. " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_6 ( )
{
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /.relative " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , " ./.relative " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_7 ( )
{
rtl : : OUString suAssume ;
# if (defined UNX )
2010-12-10 18:31:39 +01:00
suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /.a/ " ) ) ) ;
2004-03-19 13:48:16 +00:00
# else //windows
2010-12-10 18:31:39 +01:00
suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /.a " ) ) ) ;
2004-03-19 13:48:16 +00:00
# endif
check_getAbsoluteFileURL ( aUserDirectoryURL , " ./.a/mydir/.. " , : : osl : : FileBase : : E_None , suAssume ) ;
}
void getAbsoluteFileURL : : getAbsoluteFileURL_001_8 ( )
{
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmp/ok " ) ) ) ;
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , " tmp//ok " , : : osl : : FileBase : : E_None , suAssume ) ;
# else
check_getAbsoluteFileURL ( aUserDirectoryURL , " tmp//ok " , : : osl : : FileBase : : E_INVAL , suAssume ) ;
# endif
}
void getAbsoluteFileURL : : getAbsoluteFileURL_002 ( )
{
2011-04-16 09:08:29 +02:00
# if ( defined UNX ) //Link is not defined in Windows
2004-03-19 13:48:16 +00:00
: : rtl : : OUString aUStr_AbsURL , aUStr_LnkFileSys ( aTempDirectorySys ) , aUStr_SrcFileSys ( aTempDirectorySys ) ;
2010-12-10 18:31:39 +01:00
( ( aUStr_LnkFileSys + = aSlashURL ) + = getCurrentPID ( ) ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /link.file " ) ) ;
( ( aUStr_SrcFileSys + = aSlashURL ) + = getCurrentPID ( ) ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /canonical.name " ) ) ;
2003-04-17 07:34:31 +00:00
2004-03-19 13:48:16 +00:00
rtl : : OString strLinkFileName , strSrcFileName ;
strLinkFileName = OUStringToOString ( aUStr_LnkFileSys , RTL_TEXTENCODING_ASCII_US ) ;
strSrcFileName = OUStringToOString ( aUStr_SrcFileSys , RTL_TEXTENCODING_ASCII_US ) ;
createTestFile ( aCanURL1 ) ;
sal_Int32 fd = symlink ( strSrcFileName . getStr ( ) , strLinkFileName . getStr ( ) ) ;
CPPUNIT_ASSERT ( fd = = 0 ) ;
rtl : : OString sLnkURL = OUStringToOString ( aLnkURL1 , RTL_TEXTENCODING_ASCII_US ) ;
2010-12-10 18:31:39 +01:00
rtl : : OUString suAssume = aUserDirectoryURL . concat ( rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /canonical.name " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUserDirectoryURL , sLnkURL , : : osl : : FileBase : : E_None , suAssume ) ;
deleteTestFile ( aCanURL1 ) ;
fd = remove ( strLinkFileName . getStr ( ) ) ;
CPPUNIT_ASSERT ( fd = = 0 ) ;
# endif
}
//please see line# 930
void getAbsoluteFileURL : : getAbsoluteFileURL_003 ( )
{
}
void getAbsoluteFileURL : : getAbsoluteFileURL_004 ( )
{
//create two level directories under $Temp/PID/
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aUStrUpBase = aUserDirectoryURL + : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /test1 " ) ) ;
2004-03-19 13:48:16 +00:00
createTestDirectory ( aUStrUpBase ) ;
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aUStrBase = aUserDirectoryURL + : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /test1/dir1 " ) ) ;
2004-03-19 13:48:16 +00:00
createTestDirectory ( aUStrBase ) ;
2010-12-10 18:31:39 +01:00
: : rtl : : OUString suAssume = aUserDirectoryURL . concat ( : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /mytestfile " ) ) ) ;
2004-03-19 13:48:16 +00:00
check_getAbsoluteFileURL ( aUStrBase , " ../../mytestfile " , : : osl : : FileBase : : E_None , suAssume ) ;
deleteTestDirectory ( aUStrBase ) ;
deleteTestDirectory ( aUStrUpBase ) ;
}
2003-04-17 07:34:31 +00:00
//---------------------------------------------------------------------
2004-03-19 13:48:16 +00:00
// testing two methods:
2003-04-17 07:34:31 +00:00
// static inline RC getSystemPathFromFileURL( const ::rtl::OUString& ustrFileURL,
2004-03-19 13:48:16 +00:00
// ::rtl::OUString& ustrSystemPath )
// static RC getFileURLFromSystemPath( const ::rtl::OUString & ustrSystemPath,
// ::rtl::OUString & ustrFileURL );
2003-04-17 07:34:31 +00:00
//---------------------------------------------------------------------
2004-03-19 13:48:16 +00:00
class SystemPath_FileURL : public CppUnit : : TestFixture
2003-04-17 07:34:31 +00:00
{
2004-05-03 07:57:00 +00:00
//::osl::FileBase aFileBase;
2003-12-11 11:30:40 +00:00
// ::rtl::OUString aUStr;
// ::osl::FileBase::RC nError;
2003-04-17 07:34:31 +00:00
2004-03-19 13:48:16 +00:00
//void check_getSystemPathFromFileURL(rtl::OString const& _sURL, ::osl::FileBase::RC _nAssumeError, rtl::OString const& _sAssumeResultStr);
void check_SystemPath_FileURL ( rtl : : OString const & _sSource , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sAssumeResultStr , sal_Bool bDirection = sal_True ) ;
void checkWNTBehaviour_getSystemPathFromFileURL ( rtl : : OString const & _sURL , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sWNTAssumeResultString ) ;
void checkUNXBehaviour_getSystemPathFromFileURL ( rtl : : OString const & _sURL , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sUnixAssumeResultString ) ;
void checkWNTBehaviour_getFileURLFromSystemPath ( rtl : : OString const & _sSysPath , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sWNTAssumeResultString ) ;
void checkUNXBehaviour_getFileURLFromSystemPath ( rtl : : OString const & _sSysPath , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sUnixAssumeResultString ) ;
2003-12-11 11:30:40 +00:00
public :
2003-04-17 07:34:31 +00:00
// test code.
2003-12-11 11:30:40 +00:00
void getSystemPathFromFileURL_001_1 ( ) ;
void getSystemPathFromFileURL_001_2 ( ) ;
void getSystemPathFromFileURL_001_21 ( ) ;
2004-03-19 13:48:16 +00:00
void getSystemPathFromFileURL_001_22 ( ) ;
2003-12-11 11:30:40 +00:00
void getSystemPathFromFileURL_001_3 ( ) ;
void getSystemPathFromFileURL_001_31 ( ) ;
void getSystemPathFromFileURL_001_4 ( ) ;
2004-03-19 13:48:16 +00:00
void getSystemPathFromFileURL_001_41 ( ) ;
2003-12-11 11:30:40 +00:00
void getSystemPathFromFileURL_001_5 ( ) ;
void getSystemPathFromFileURL_001_51 ( ) ;
void getSystemPathFromFileURL_001_52 ( ) ;
void getSystemPathFromFileURL_001_53 ( ) ;
void getSystemPathFromFileURL_001_6 ( ) ;
void getSystemPathFromFileURL_001_61 ( ) ;
void getSystemPathFromFileURL_001_7 ( ) ;
void getSystemPathFromFileURL_001_71 ( ) ;
void getSystemPathFromFileURL_001_8 ( ) ;
2004-03-19 13:48:16 +00:00
void getSystemPathFromFileURL_001_81 ( ) ;
2003-12-11 11:30:40 +00:00
void getSystemPathFromFileURL_001_9 ( ) ;
void getSystemPathFromFileURL_001_91 ( ) ;
void getSystemPathFromFileURL_001_92 ( ) ;
void getSystemPathFromFileURL_004 ( ) ;
void getSystemPathFromFileURL_005 ( ) ;
2003-04-17 07:34:31 +00:00
2004-03-19 13:48:16 +00:00
//test case fot getFileURLFromSystemPath
void getFileURLFromSystemPath_001 ( ) ;
void getFileURLFromSystemPath_002 ( ) ;
void getFileURLFromSystemPath_003 ( ) ;
void getFileURLFromSystemPath_004 ( ) ;
void getFileURLFromSystemPath_005 ( ) ;
CPPUNIT_TEST_SUITE ( SystemPath_FileURL ) ;
2003-12-11 11:30:40 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_1 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_2 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_21 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_22 ) ;
2003-12-11 11:30:40 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_3 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_31 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_4 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_41 ) ;
2003-12-11 11:30:40 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_5 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_51 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_52 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_53 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_6 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_61 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_7 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_71 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_8 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_81 ) ;
2003-12-11 11:30:40 +00:00
CPPUNIT_TEST ( getSystemPathFromFileURL_001_9 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_91 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_001_92 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_004 ) ;
CPPUNIT_TEST ( getSystemPathFromFileURL_005 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_TEST ( getFileURLFromSystemPath_001 ) ;
CPPUNIT_TEST ( getFileURLFromSystemPath_002 ) ;
CPPUNIT_TEST ( getFileURLFromSystemPath_003 ) ;
CPPUNIT_TEST ( getFileURLFromSystemPath_004 ) ;
CPPUNIT_TEST ( getFileURLFromSystemPath_005 ) ;
2003-12-11 11:30:40 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
2004-03-19 13:48:16 +00:00
} ; // class SystemPath_FileURL
2003-04-17 07:34:31 +00:00
2004-03-19 13:48:16 +00:00
// if bDirection==sal_True, check getSystemPathFromFileURL
// if bDirection==sal_False, check getFileURLFromSystemPath
void SystemPath_FileURL : : check_SystemPath_FileURL ( rtl : : OString const & _sSource , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sAssumeResultStr , sal_Bool bDirection )
{
// PRE: URL as String
rtl : : OUString suSource ;
rtl : : OUString suStr ;
suSource = rtl : : OStringToOUString ( _sSource , RTL_TEXTENCODING_UTF8 ) ;
: : osl : : FileBase : : RC nError ;
if ( bDirection = = sal_True )
nError = osl : : FileBase : : getSystemPathFromFileURL ( suSource , suStr ) ;
else
nError = osl : : FileBase : : getFileURLFromSystemPath ( suSource , suStr ) ;
// if the given string is gt length 0,
// we check also this string
rtl : : OString sStr = rtl : : OUStringToOString ( suStr , RTL_TEXTENCODING_UTF8 ) ;
rtl : : OString sError = errorToString ( nError ) ;
if ( bDirection = = sal_True )
2011-02-06 22:57:15 +01:00
printf ( " getSystemPathFromFileURL('%s') deliver system path: '%s', error '%s' \n " , _sSource . getStr ( ) , sStr . getStr ( ) , sError . getStr ( ) ) ;
2004-03-19 13:48:16 +00:00
else
2011-02-06 22:57:15 +01:00
printf ( " getFileURLFromSystemPath('%s') deliver File URL: '%s', error '%s' \n " , _sSource . getStr ( ) , sStr . getStr ( ) , sError . getStr ( ) ) ;
2003-12-11 11:30:40 +00:00
// rtl::OUString suStrEncode = rtl::Uri::encode(suStr, rtl_UriCharClassUnoParamValue, rtl_UriEncodeKeepEscapes, RTL_TEXTENCODING_UTF8);
// sStr = rtl::OUStringToOString(suStr, RTL_TEXTENCODING_UTF8);
2011-02-06 22:57:15 +01:00
// printf("UTF8: %s\n", sStr.getStr() );
2003-12-11 11:30:40 +00:00
if ( _sAssumeResultStr . getLength ( ) > 0 )
{
sal_Bool bStrAreEqual = _sAssumeResultStr . equals ( sStr ) ;
CPPUNIT_ASSERT_MESSAGE ( " Assumption is wrong " ,
nError = = _nAssumeError & & bStrAreEqual = = sal_True ) ;
}
else
{
CPPUNIT_ASSERT_MESSAGE ( " Assumption is wrong " , nError = = _nAssumeError ) ;
2003-04-17 07:34:31 +00:00
}
2003-12-11 11:30:40 +00:00
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : checkWNTBehaviour_getSystemPathFromFileURL ( rtl : : OString const & _sURL , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sWNTAssumeResultString )
{
# if ( defined WNT )
check_SystemPath_FileURL ( _sURL , _nAssumeError , _sWNTAssumeResultString ) ;
2007-11-20 18:28:54 +00:00
# else
( void ) _sURL ;
( void ) _nAssumeError ;
( void ) _sWNTAssumeResultString ;
2004-03-19 13:48:16 +00:00
# endif
}
2003-12-11 11:30:40 +00:00
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : checkUNXBehaviour_getSystemPathFromFileURL ( rtl : : OString const & _sURL , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sUnixAssumeResultString )
{
# if ( defined UNX )
check_SystemPath_FileURL ( _sURL , _nAssumeError , _sUnixAssumeResultString ) ;
2007-11-20 18:28:54 +00:00
# else
( void ) _sURL ;
( void ) _nAssumeError ;
( void ) _sUnixAssumeResultString ;
2004-03-19 13:48:16 +00:00
# endif
}
void SystemPath_FileURL : : checkWNTBehaviour_getFileURLFromSystemPath ( rtl : : OString const & _sSysPath , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sWNTAssumeResultString )
2003-12-11 11:30:40 +00:00
{
# if ( defined WNT )
2004-03-19 13:48:16 +00:00
check_SystemPath_FileURL ( _sSysPath , _nAssumeError , _sWNTAssumeResultString , sal_False ) ;
2007-11-20 18:28:54 +00:00
# else
( void ) _sSysPath ;
( void ) _nAssumeError ;
( void ) _sWNTAssumeResultString ;
2003-12-11 11:30:40 +00:00
# endif
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : checkUNXBehaviour_getFileURLFromSystemPath ( rtl : : OString const & _sSysPath , : : osl : : FileBase : : RC _nAssumeError , rtl : : OString const & _sUnixAssumeResultString )
2003-12-11 11:30:40 +00:00
{
# if ( defined UNX )
2004-03-19 13:48:16 +00:00
check_SystemPath_FileURL ( _sSysPath , _nAssumeError , _sUnixAssumeResultString , sal_False ) ;
2007-11-20 18:28:54 +00:00
# else
( void ) _sSysPath ;
( void ) _nAssumeError ;
( void ) _sUnixAssumeResultString ;
2003-12-11 11:30:40 +00:00
# endif
}
/** LLA: Test for getSystemPathFromFileURL()
this test is splitted into 2 different OS tests ,
the first function checkUNXBehaviour . . . runs only on Unix based Systems ,
the second only on windows based systems
the first parameter are a file URL where we want to get the system path of ,
the second parameter is the assumed error of the osl_getSystemPathFromFileURL ( ) function ,
the thrid parameter is the assumed result string , the string will only test , if it ' s length is greater 0
*/
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_1 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_2 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " / " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " \\ " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_21 ( )
2003-12-11 11:30:40 +00:00
{
2004-03-19 13:48:16 +00:00
// rtl::OString sURL("%2f");
rtl : : OString sURL ( " %2F " ) ;
2003-12-11 11:30:40 +00:00
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " / " ) ; // LLA: this is may be a BUG
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_22 ( )
{
rtl : : OString sURL ( " file:///tmp%2Fmydir " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
void SystemPath_FileURL : : getSystemPathFromFileURL_001_3 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " a " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " a " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " a " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_31 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " tmpname " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " tmpname " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " tmpname " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_4 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:// " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_41 ( )
{
rtl : : OString sURL ( " file://localhost/tmp " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
void SystemPath_FileURL : : getSystemPathFromFileURL_001_5 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///tmp " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /tmp " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_51 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file://c:/tmp " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " c:/tmp " ) ; // LLA: this is may be a BUG
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_52 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///c:/tmp " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /c:/tmp " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " c: \\ tmp " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_53 ( )
2003-12-11 11:30:40 +00:00
{
// LLA: is this a legal file path?
rtl : : OString sURL ( " file:///c|/tmp " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /c|/tmp " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " c: \\ tmp " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_6 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///tmp/first " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /tmp/first " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_61 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///c:/tmp/first " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /c:/tmp/first " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " c: \\ tmp \\ first " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_7 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///tmp/../second " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /tmp/../second " ) ; // LLA: may be a BUG
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_71 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///c:/tmp/../second " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /c:/tmp/../second " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " c: \\ tmp \\ .. \\ second " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_8 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " ../tmp " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " ../tmp " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " .. \\ tmp " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_81 ( )
{
rtl : : OString sURL ( " file://~/tmp " ) ;
char * home_path ;
home_path = getenv ( " HOME " ) ;
rtl : : OString expResult ( home_path ) ;
expResult + = " /tmp " ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , expResult ) ;
// checkWNTBehaviour_getSystemPathFromFileURL(sURL, osl::FileBase::E_None, "\\tmp");
}
void SystemPath_FileURL : : getSystemPathFromFileURL_001_9 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///tmp/first%20second " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /tmp/first second " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_91 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " file:///c:/tmp/first%20second " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " /c:/tmp/first second " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " c: \\ tmp \\ first second " ) ;
}
2003-04-17 07:34:31 +00:00
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_001_92 ( )
2003-12-11 11:30:40 +00:00
{
rtl : : OString sURL ( " ca@#;+.,$///78no%01ni..name " ) ;
checkUNXBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_None , " " ) ;
checkWNTBehaviour_getSystemPathFromFileURL ( sURL , osl : : FileBase : : E_INVAL , " " ) ;
}
2003-11-18 15:38:22 +00:00
//normal legal case
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_004 ( )
2003-11-18 15:38:22 +00:00
{
2003-12-11 11:30:40 +00:00
: : rtl : : OUString aUStr ;
2011-02-06 22:57:15 +01:00
: : rtl : : OUString aUNormalURL ( aTmpName6 ) ;
: : rtl : : OUString aUResultURL ( aSysPath4 ) ;
: : osl : : FileBase : : RC nError = osl : : FileBase : : getSystemPathFromFileURL ( aUNormalURL , aUStr ) ;
2003-12-11 11:30:40 +00:00
2011-02-06 22:57:15 +01:00
sal_Bool bOk = compareFileName ( aUStr , aUResultURL ) ;
2003-12-11 11:30:40 +00:00
2011-02-06 22:57:15 +01:00
: : rtl : : OString sError ( " test for getSystemPathFromFileURL(' " ) ;
sError + = : : rtl : : OUStringToOString ( aUNormalURL , RTL_TEXTENCODING_ASCII_US ) ;
sError + = " ') function:use an absolute file URL, " ;
sError + = outputError ( : : rtl : : OUStringToOString ( aUStr , RTL_TEXTENCODING_ASCII_US ) ,
: : rtl : : OUStringToOString ( aUResultURL , RTL_TEXTENCODING_ASCII_US ) ) ;
2003-11-18 15:38:22 +00:00
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( sError . getStr ( ) , ( osl : : FileBase : : E_None = = nError ) & & ( sal_True = = bOk ) ) ;
2003-11-18 15:38:22 +00:00
}
//CJK charactors case
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getSystemPathFromFileURL_005 ( )
2003-11-18 15:38:22 +00:00
{
2003-12-11 11:30:40 +00:00
: : rtl : : OUString aUStr ;
2003-11-18 15:38:22 +00:00
createTestDirectory ( aTmpName10 ) ;
2011-02-06 22:57:15 +01:00
: : rtl : : OUString aUNormalURL ( aTmpName10 ) ;
: : rtl : : OUString aUResultURL ( aSysPath5 ) ;
2003-12-11 11:30:40 +00:00
2011-02-06 22:57:15 +01:00
: : osl : : FileBase : : RC nError = osl : : FileBase : : getSystemPathFromFileURL ( aUNormalURL , aUStr ) ;
2003-12-11 11:30:40 +00:00
2011-02-06 22:57:15 +01:00
sal_Bool bOk = compareFileName ( aUStr , aUResultURL ) ;
2003-12-11 11:30:40 +00:00
2011-02-06 22:57:15 +01:00
: : rtl : : OString sError ( " test for getSystemPathFromFileURL(' " ) ;
sError + = : : rtl : : OUStringToOString ( aUNormalURL , RTL_TEXTENCODING_ASCII_US ) ;
sError + = " ') function:use a CJK coded absolute URL, " ;
sError + = outputError ( : : rtl : : OUStringToOString ( aUStr , RTL_TEXTENCODING_ASCII_US ) ,
: : rtl : : OUStringToOString ( aUResultURL , RTL_TEXTENCODING_ASCII_US ) ) ;
2003-11-18 15:38:22 +00:00
deleteTestDirectory ( aTmpName10 ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( sError . getStr ( ) , ( osl : : FileBase : : E_None = = nError ) & & ( sal_True = = bOk ) ) ;
2003-04-17 07:34:31 +00:00
}
2011-02-06 22:57:15 +01:00
2004-03-19 13:48:16 +00:00
void SystemPath_FileURL : : getFileURLFromSystemPath_001 ( )
{
rtl : : OString sSysPath ( " ~/tmp " ) ;
2011-02-06 22:57:15 +01:00
char * home_path ;
home_path = getenv ( " HOME " ) ;
rtl : : OString expResult ( home_path ) ;
expResult = " file:// " + expResult + " /tmp " ;
2004-03-19 13:48:16 +00:00
checkUNXBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_None , expResult ) ;
checkWNTBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_None , " ~/tmp " ) ;
}
void SystemPath_FileURL : : getFileURLFromSystemPath_002 ( )
{
rtl : : OString sSysPath ( " c:/tmp " ) ;
checkUNXBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_None , " c:/tmp " ) ;
checkWNTBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_None , " file:///c:/tmp " ) ;
}
void SystemPath_FileURL : : getFileURLFromSystemPath_003 ( )
{
rtl : : OString sSysPath ( " file:///temp " ) ;
checkUNXBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_INVAL , " " ) ;
checkWNTBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_INVAL , " " ) ;
}
void SystemPath_FileURL : : getFileURLFromSystemPath_004 ( )
{
rtl : : OString sSysPath ( " //tmp//first start " ) ;
checkUNXBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_None , " file:///tmp/first%20start " ) ;
checkWNTBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_INVAL , " " ) ;
}
void SystemPath_FileURL : : getFileURLFromSystemPath_005 ( )
{
rtl : : OString sSysPath ( " " ) ;
checkUNXBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_INVAL , " " ) ;
checkWNTBehaviour_getFileURLFromSystemPath ( sSysPath , osl : : FileBase : : E_INVAL , " " ) ;
}
// start with "~user", not impletment
// void SystemPath_FileURL::getFileURLFromSystemPath_006()
2003-04-17 07:34:31 +00:00
//---------------------------------------------------------------------
// testing the method
// static inline RC searchFileURL( const ::rtl::OUString& ustrFileName,
// const ::rtl::OUString& ustrSearchPath,
// ::rtl::OUString& ustrFileURL )
//---------------------------------------------------------------------
class searchFileURL : public CppUnit : : TestFixture
{
2004-05-03 07:57:00 +00:00
//::osl::FileBase aFileBase;
2003-04-17 07:34:31 +00:00
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 , nError2 , nError3 , nError4 ;
public :
// test code.
void searchFileURL_001 ( )
{
/* search file is passed by system filename */
2003-11-18 15:38:22 +00:00
nError1 = : : osl : : FileBase : : searchFileURL ( aTmpName1 , aUserDirectorySys , aUStr ) ;
2003-04-17 07:34:31 +00:00
/* search file is passed by full qualified file URL */
2003-10-06 12:40:17 +00:00
nError2 = : : osl : : FileBase : : searchFileURL ( aCanURL1 , aUserDirectorySys , aUStr ) ;
2003-04-17 07:34:31 +00:00
/* search file is passed by relative file path */
2003-10-06 12:40:17 +00:00
nError3 = : : osl : : FileBase : : searchFileURL ( aRelURL4 , aUserDirectorySys , aUStr ) ;
2003-05-27 13:19:09 +00:00
2003-10-06 12:40:17 +00:00
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) " ,
2003-04-17 07:34:31 +00:00
( osl : : FileBase : : E_NOENT = = nError1 ) & &
( osl : : FileBase : : E_NOENT = = nError2 ) & &
( osl : : FileBase : : E_NOENT = = nError3 ) ) ;
}
void searchFileURL_002 ( )
{
/* search file is passed by system filename */
2003-10-06 12:40:17 +00:00
nError1 = : : osl : : FileBase : : searchFileURL ( aTempDirectorySys , aRootSys , aUStr ) ;
sal_Bool bOk1 = compareFileName ( aUStr , aTempDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
/* search file is passed by full qualified file URL */
2003-10-06 12:40:17 +00:00
nError2 = : : osl : : FileBase : : searchFileURL ( aTempDirectoryURL , aRootSys , aUStr ) ;
sal_Bool bOk2 = compareFileName ( aUStr , aTempDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
/* search file is passed by relative file path */
2003-10-06 12:40:17 +00:00
nError3 = : : osl : : FileBase : : searchFileURL ( aRelURL5 , aRootSys , aUStr ) ;
sal_Bool bOk3 = compareFileName ( aUStr , aTempDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
/* search file is passed by an exist file */
createTestFile ( aCanURL1 ) ;
2003-10-06 12:40:17 +00:00
nError4 = : : osl : : FileBase : : searchFileURL ( aCanURL4 , aUserDirectorySys , aUStr ) ;
2003-04-17 07:34:31 +00:00
sal_Bool bOk4 = compareFileName ( aUStr , aCanURL1 ) ;
deleteTestFile ( aCanURL1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for searchFileURL function: system filename/URL filename/relative path, system directory, searched file already exist. " ,
( osl : : FileBase : : E_None = = nError1 ) & &
( osl : : FileBase : : E_None = = nError2 ) & &
( osl : : FileBase : : E_None = = nError3 ) & &
( osl : : FileBase : : E_None = = nError4 ) & &
( sal_True = = bOk1 ) & &
( sal_True = = bOk2 ) & &
( sal_True = = bOk3 ) & &
( sal_True = = bOk4 ) ) ;
}
void searchFileURL_003 ( )
{
OSLTEST_DECLARE ( SystemPathList , TEST_PLATFORM_ROOT " : " TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP " : " TEST_PLATFORM_ROOT " system/path " ) ;
2003-10-06 12:40:17 +00:00
nError1 = : : osl : : FileBase : : searchFileURL ( aUserDirectoryURL , aSystemPathList , aUStr ) ;
sal_Bool bOk = compareFileName ( aUStr , aUserDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for searchFileURL function: search directory is a list of system paths " ,
( osl : : FileBase : : E_None = = nError1 ) & &
( sal_True = = bOk ) ) ;
}
void searchFileURL_004 ( )
{
OSLTEST_DECLARE ( SystemPathList , TEST_PLATFORM_ROOT PATH_LIST_DELIMITER TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP PATH_LIST_DELIMITER TEST_PLATFORM_ROOT " system/path/../name " ) ;
2003-10-06 12:40:17 +00:00
nError1 = : : osl : : FileBase : : searchFileURL ( aUserDirectoryURL , aSystemPathList , aUStr ) ;
sal_Bool bOk = compareFileName ( aUStr , aUserDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for searchFileURL function: search directory is a list of system paths " ,
( osl : : FileBase : : E_None = = nError1 ) & &
( sal_True = = bOk ) ) ;
}
void searchFileURL_005 ( )
{
2003-10-06 12:40:17 +00:00
nError1 = : : osl : : FileBase : : searchFileURL ( aUserDirectoryURL , aNullURL , aUStr ) ;
sal_Bool bOk = compareFileName ( aUStr , aUserDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for searchFileURL function: search directory is NULL " ,
( osl : : FileBase : : E_None = = nError1 ) & &
( sal_True = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( searchFileURL ) ;
CPPUNIT_TEST ( searchFileURL_001 ) ;
CPPUNIT_TEST ( searchFileURL_002 ) ;
CPPUNIT_TEST ( searchFileURL_003 ) ;
CPPUNIT_TEST ( searchFileURL_004 ) ;
CPPUNIT_TEST ( searchFileURL_005 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class searchFileURL
//---------------------------------------------------------------------
// testing the method
// static inline RC getTempDirURL( ::rtl::OUString& ustrTempDirURL )
//---------------------------------------------------------------------
class getTempDirURL : public CppUnit : : TestFixture
{
2004-05-03 07:57:00 +00:00
//::osl::FileBase aFileBase;
2003-04-17 07:34:31 +00:00
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError ;
public :
// initialization
void setUp ( )
{
2004-05-03 07:57:00 +00:00
nError = FileBase : : getTempDirURL ( aUStr ) ;
2003-04-17 07:34:31 +00:00
}
void tearDown ( )
{
}
// test code.
void getTempDirURL_001 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getTempDirURL function: excution " ,
( osl : : FileBase : : E_None = = nError ) ) ;
}
void getTempDirURL_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getTempDirURL function: test for open and write access rights " ,
checkDirectory ( aUStr , osl_Check_Mode_OpenAccess ) & &
checkDirectory ( aUStr , osl_Check_Mode_ReadAccess ) & &
2003-11-18 15:38:22 +00:00
checkDirectory ( aUStr , osl_Check_Mode_WriteAccess ) ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( getTempDirURL ) ;
CPPUNIT_TEST ( getTempDirURL_001 ) ;
CPPUNIT_TEST ( getTempDirURL_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getTempDirURL
//---------------------------------------------------------------------
// testing the method
// static inline RC createTempFile( ::rtl::OUString* pustrDirectoryURL,
// oslFileHandle* pHandle,
// ::rtl::OUString* pustrTempFileURL)
//---------------------------------------------------------------------
class createTempFile : public CppUnit : : TestFixture
{
2004-05-03 07:57:00 +00:00
//::osl::FileBase aFileBase;
2003-04-17 07:34:31 +00:00
: : osl : : FileBase : : RC nError1 , nError2 ;
2003-05-27 13:19:09 +00:00
sal_Bool bOK ;
2003-04-17 07:34:31 +00:00
oslFileHandle * pHandle ;
: : rtl : : OUString * pUStr_DirURL ;
: : rtl : : OUString * pUStr_FileURL ;
public :
2004-05-03 07:57:00 +00:00
2003-04-17 07:34:31 +00:00
// initialization
void setUp ( )
{
pHandle = new oslFileHandle ( ) ;
2004-05-03 07:57:00 +00:00
pUStr_DirURL = new : : rtl : : OUString ( aUserDirectoryURL ) ;
2003-04-17 07:34:31 +00:00
pUStr_FileURL = new : : rtl : : OUString ( ) ;
2004-05-03 07:57:00 +00:00
//*pUStr_DirURL = aUserDirectoryURL; /// create temp file in /tmp/PID or c:\temp\PID.*/
2003-04-17 07:34:31 +00:00
}
void tearDown ( )
{
delete pUStr_DirURL ;
delete pUStr_FileURL ;
2004-05-03 07:57:00 +00:00
delete pHandle ;
2003-04-17 07:34:31 +00:00
}
// test code.
void createTempFile_001 ( )
{
2004-05-03 07:57:00 +00:00
nError1 = FileBase : : createTempFile ( pUStr_DirURL , pHandle , pUStr_FileURL ) ;
2003-05-27 13:19:09 +00:00
: : osl : : File testFile ( * pUStr_FileURL ) ;
2010-12-11 19:43:44 +00:00
nError2 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-11-18 15:38:22 +00:00
if ( osl : : FileBase : : E_EXIST = = nError2 ) {
2003-05-27 13:19:09 +00:00
osl_closeFile ( * pHandle ) ;
deleteTestFile ( * pUStr_FileURL ) ;
}
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for createTempFile function: create temp file and test the existence " ,
2003-05-27 13:19:09 +00:00
( osl : : FileBase : : E_None = = nError1 ) & & ( pHandle ! = NULL ) & & ( osl : : FileBase : : E_EXIST = = nError2 ) ) ;
2003-04-17 07:34:31 +00:00
}
void createTempFile_002 ( )
{
2003-11-18 15:38:22 +00:00
bOK = sal_False ;
2004-05-03 07:57:00 +00:00
nError1 = FileBase : : createTempFile ( pUStr_DirURL , pHandle , pUStr_FileURL ) ;
2003-05-27 13:19:09 +00:00
: : osl : : File testFile ( * pUStr_FileURL ) ;
2010-12-11 19:43:44 +00:00
nError2 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " createTempFile function: create a temp file, but it does not exist " ,
( osl : : FileBase : : E_None = = nError1 ) & & ( pHandle ! = NULL ) & &
( osl : : FileBase : : E_EXIST = = nError2 ) ) ;
//check file if have the write permission
if ( osl : : FileBase : : E_EXIST = = nError2 ) {
bOK = ifFileCanWrite ( * pUStr_FileURL ) ;
2003-05-27 13:19:09 +00:00
osl_closeFile ( * pHandle ) ;
deleteTestFile ( * pUStr_FileURL ) ;
}
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open and write access rights, in (W32), it did not have write access right, but it should be writtenable. " ,
2003-05-27 13:19:09 +00:00
( sal_True = = bOK ) ) ;
}
void createTempFile_003 ( )
{
2004-05-03 07:57:00 +00:00
nError1 = FileBase : : createTempFile ( pUStr_DirURL , pHandle , 0 ) ;
2003-11-18 15:38:22 +00:00
//the temp file will be removed when return from createTempFile
bOK = ( pHandle ! = NULL & & pHandle ! = 0 ) ;
2003-05-27 13:19:09 +00:00
if ( sal_True = = bOK )
osl_closeFile ( * pHandle ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for createTempFile function: set pUStrFileURL to 0 to let it remove the file after call. " ,
2003-11-18 15:38:22 +00:00
( : : osl : : FileBase : : E_None = = nError1 ) & & ( sal_True = = bOK ) ) ;
}
void createTempFile_004 ( )
{
2004-05-03 07:57:00 +00:00
nError1 = FileBase : : createTempFile ( pUStr_DirURL , 0 , pUStr_FileURL ) ;
2003-11-18 15:38:22 +00:00
bOK = ( pUStr_FileURL ! = 0 ) ;
: : osl : : File testFile ( * pUStr_FileURL ) ;
2010-12-11 19:43:44 +00:00
nError2 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-11-18 15:38:22 +00:00
deleteTestFile ( * pUStr_FileURL ) ;
CPPUNIT_ASSERT_MESSAGE ( " createTempFile function: create a temp file, but it does not exist " ,
( osl : : FileBase : : E_None = = nError1 ) & & ( osl : : FileBase : : E_EXIST = = nError2 ) & & ( sal_True = = bOK ) ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( createTempFile ) ;
CPPUNIT_TEST ( createTempFile_001 ) ;
CPPUNIT_TEST ( createTempFile_002 ) ;
2003-05-27 13:19:09 +00:00
CPPUNIT_TEST ( createTempFile_003 ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_TEST ( createTempFile_004 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class createTempFile
// -----------------------------------------------------------------------------
2003-05-27 13:19:09 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileBase : : getAbsoluteFileURL , " osl_FileBase " ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileBase : : SystemPath_FileURL , " osl_FileBase " ) ;
// CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_FileBase::getFileURLFromSystemPath, "osl_FileBase" );
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileBase : : searchFileURL , " osl_FileBase " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileBase : : getTempDirURL , " osl_FileBase " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileBase : : createTempFile , " osl_FileBase " ) ;
} // namespace osl_FileBase
//------------------------------------------------------------------------
// Beginning of the test cases for VolumeInfo class
//------------------------------------------------------------------------
namespace osl_VolumeInfo
{
//---------------------------------------------------------------------
// testing the method
// VolumeInfo( sal_uInt32 nMask ): _nMask( nMask )
//---------------------------------------------------------------------
class ctors : public CppUnit : : TestFixture
{
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : VolumeDevice aVolumeDevice1 ;
public :
// initialization
void setUp ( )
{
}
void tearDown ( )
{
}
// test code.
void ctors_001 ( )
{
: : osl : : VolumeInfo aVolumeInfo ( 0 ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aRootURL , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_uInt64 uiTotalSpace = aVolumeInfo . getTotalSpace ( ) ;
sal_uInt32 uiMaxPathLength = aVolumeInfo . getMaxPathLength ( ) ;
aUStr = aVolumeInfo . getFileSystemName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: mask is empty " ,
( 0 = = uiTotalSpace ) & &
( 0 = = uiMaxPathLength ) & &
sal_True = = compareFileName ( aUStr , aNullURL ) ) ;
}
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-04-17 07:34:31 +00:00
void ctors_002 ( )
{
2011-04-11 23:19:35 +02:00
: : osl : : VolumeInfo aVolumeInfo ( osl_VolumeInfo_Mask_TotalSpace |
osl_VolumeInfo_Mask_UsedSpace |
osl_VolumeInfo_Mask_FileSystemName ) ;
2003-04-17 07:34:31 +00:00
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL4 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
//CPPUNIT_ASSERT( aVolumeInfo.isValid( mask ) );
sal_uInt64 uiTotalSpace = aVolumeInfo . getTotalSpace ( ) ;
sal_uInt64 uiUsedSpace = aVolumeInfo . getUsedSpace ( ) ;
aUStr = aVolumeInfo . getFileSystemName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: mask is specified as certain valid fields, and get the masked fields " ,
( 0 ! = uiTotalSpace ) & &
( 0 ! = uiUsedSpace ) & &
sal_True = = compareFileName ( aUStr , " nfs " ) ) ;
}
2003-11-18 15:38:22 +00:00
# else /// Windows version,here we can not determine whichvolume in Windows is serve as an nfs volume.
2003-05-27 13:19:09 +00:00
void ctors_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: mask is specified as certain valid fields, and get the masked fields( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-04-17 07:34:31 +00:00
void ctors_003 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask1 = osl_VolumeInfo_Mask_FreeSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo1 ( mask1 ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aRootURL , aVolumeInfo1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo1 . isValid ( mask1 ) ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_uInt64 uiTotalSpace1 = aVolumeInfo1 . getTotalSpace ( ) ;
aUStr = aVolumeInfo1 . getFileSystemName ( ) ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask2 = osl_VolumeInfo_Mask_TotalSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo2 ( mask2 ) ;
nError2 = : : osl : : Directory : : getVolumeInfo ( aRootURL , aVolumeInfo2 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo2 . isValid ( mask2 ) ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError2 ) ;
sal_uInt64 uiTotalSpace2 = aVolumeInfo2 . getTotalSpace ( ) ;
2003-05-27 13:19:09 +00:00
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) " ,
2003-04-17 07:34:31 +00:00
( 0 = = uiTotalSpace1 ) & & ( 0 ! = uiTotalSpace2 ) & &
sal_True = = compareFileName ( aUStr , aNullURL ) ) ;
}
CPPUNIT_TEST_SUITE ( ctors ) ;
CPPUNIT_TEST ( ctors_001 ) ;
CPPUNIT_TEST ( ctors_002 ) ;
CPPUNIT_TEST ( ctors_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool isValid( sal_uInt32 nMask ) const
//---------------------------------------------------------------------
class isValid : public CppUnit : : TestFixture
{
: : osl : : VolumeDevice aVolumeDevice ;
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
}
void tearDown ( )
{
}
// test code.
void isValid_001 ( )
{
sal_Int32 mask = 0 ;
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL4 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isValid function: no fields specified. " ,
sal_True = = aVolumeInfo . isValid ( mask ) ) ;
}
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-04-17 07:34:31 +00:00
void isValid_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes | osl_VolumeInfo_Mask_TotalSpace | osl_VolumeInfo_Mask_UsedSpace |
2003-04-17 07:34:31 +00:00
osl_VolumeInfo_Mask_FreeSpace | osl_VolumeInfo_Mask_MaxNameLength |
osl_VolumeInfo_Mask_MaxPathLength | osl_VolumeInfo_Mask_FileSystemName ;
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL4 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isValid function: all valid fields specified for a nfs volume. " ,
sal_True = = aVolumeInfo . isValid ( mask ) ) ;
}
2003-11-18 15:38:22 +00:00
# else /// Windows version,here we can not determine whichvolume in Windows is serve as an nfs volume.
2003-05-27 13:19:09 +00:00
void isValid_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for isValid function: all valid fields specified for a nfs volume.( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-04-17 07:34:31 +00:00
void isValid_003 ( )
{
: : osl : : VolumeDevice aVolumeDevice1 ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk1 = aVolumeInfo . isValid ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL2 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk2 = aVolumeInfo . isValid ( mask ) ;
2011-04-11 23:19:35 +02:00
CPPUNIT_ASSERT_MESSAGE ( " test for isValid function: osl_VolumeInfo_Mask_Attributes, it should be valid for some volume such as /, floppy, cdrom, etc. but it did not pass " ,
2003-04-17 07:34:31 +00:00
( sal_True = = bOk1 ) & & ( sal_True = = bOk2 ) ) ;
}
CPPUNIT_TEST_SUITE ( isValid ) ;
CPPUNIT_TEST ( isValid_001 ) ;
CPPUNIT_TEST ( isValid_002 ) ;
CPPUNIT_TEST ( isValid_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class isValid
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool getRemoteFlag() const
//---------------------------------------------------------------------
class getRemoteFlag : public CppUnit : : TestFixture
{
: : osl : : VolumeDevice aVolumeDevice ;
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// test code.
void getRemoteFlag_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getRemoteFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getRemoteFlag function: get a volume device which is not remote. " ,
( sal_False = = bOk ) ) ;
}
2011-04-16 09:08:29 +02:00
# if ( defined UNX ) //remote Volume is different in Solaris and Windows
2003-04-17 07:34:31 +00:00
void getRemoteFlag_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL4 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getRemoteFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getRemoteFlag function: get a volume device which is remote( Solaris version ). " ,
( sal_True = = bOk ) ) ;
}
# else //Windows version
void getRemoteFlag_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getRemoteFlag function: get a volume device which is remote( Windows version ) " ,
1 = = 1 ) ;
}
# endif
CPPUNIT_TEST_SUITE ( getRemoteFlag ) ;
CPPUNIT_TEST ( getRemoteFlag_001 ) ;
CPPUNIT_TEST ( getRemoteFlag_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getRemoteFlag
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool getRemoveableFlag() const
//---------------------------------------------------------------------
class getRemoveableFlag : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// test code.
void getRemoveableFlag_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getRemoveableFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getRemoveableFlag function: get a volume device which is not removable. " ,
sal_False = = bOk ) ;
}
void getRemoveableFlag_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL2 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getRemoveableFlag ( ) ;
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. " ,
sal_True = = bOk ) ;
}
CPPUNIT_TEST_SUITE ( getRemoveableFlag ) ;
CPPUNIT_TEST ( getRemoveableFlag_001 ) ;
CPPUNIT_TEST ( getRemoveableFlag_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getRemoveableFlag
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool getCompactDiscFlag() const
//---------------------------------------------------------------------
class getCompactDiscFlag : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getCompactDiscFlag_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getCompactDiscFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getCompactDiscFlag function: get a volume device which is not a cdrom. " ,
( sal_False = = bOk ) ) ;
}
void getCompactDiscFlag_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL6 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getCompactDiscFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getCompactDiscFlag function: get a cdrom volume device flag, it did not pass. " ,
( sal_True = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( getCompactDiscFlag ) ;
CPPUNIT_TEST ( getCompactDiscFlag_001 ) ;
CPPUNIT_TEST ( getCompactDiscFlag_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getCompactDiscFlag
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool getFloppyDiskFlag() const
//---------------------------------------------------------------------
class getFloppyDiskFlag : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getFloppyDiskFlag_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getFloppyDiskFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFloppyDiskFlag function: get a volume device which is not a floppy disk. " ,
( sal_False = = bOk ) ) ;
}
void getFloppyDiskFlag_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL2 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getFloppyDiskFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFloppyDiskFlag function: get a floppy volume device flag, it did not pass. " ,
( sal_True = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( getFloppyDiskFlag ) ;
CPPUNIT_TEST ( getFloppyDiskFlag_001 ) ;
CPPUNIT_TEST ( getFloppyDiskFlag_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFloppyDiskFlag
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool getFixedDiskFlag() const
//---------------------------------------------------------------------
class getFixedDiskFlag : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getFixedDiskFlag_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL2 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getFixedDiskFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFixedDiskFlag function: get a volume device which is not a fixed disk. " ,
( sal_False = = bOk ) ) ;
}
void getFixedDiskFlag_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getFixedDiskFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFixedDiskFlag function: get a fixed disk volume device flag, it did not pass. " ,
( sal_True = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( getFixedDiskFlag ) ;
CPPUNIT_TEST ( getFixedDiskFlag_001 ) ;
CPPUNIT_TEST ( getFixedDiskFlag_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFixedDiskFlag
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool getRAMDiskFlag() const
//---------------------------------------------------------------------
class getRAMDiskFlag : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getRAMDiskFlag_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getRAMDiskFlag ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getRAMDiskFlag function: get a volume device which is not a RAM disk. " ,
( sal_False = = bOk ) ) ;
}
void getRAMDiskFlag_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = aVolumeInfo . getRAMDiskFlag ( ) ;
2003-05-27 13:19:09 +00:00
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). " ,
2003-04-17 07:34:31 +00:00
( sal_True = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( getRAMDiskFlag ) ;
CPPUNIT_TEST ( getRAMDiskFlag_001 ) ;
CPPUNIT_TEST ( getRAMDiskFlag_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getRAMDiskFlag
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt64 getTotalSpace() const
//---------------------------------------------------------------------
class getTotalSpace : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getTotalSpace_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiTotalSpace = aVolumeInfo . getTotalSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getTotalSpace function: get total space of Fixed disk volume mounted on /, it should not be 0 " ,
0 ! = uiTotalSpace ) ;
}
2003-05-27 13:19:09 +00:00
# if defined( UNX )
void getTotalSpace_002 ( )
2003-04-17 07:34:31 +00:00
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL3 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiTotalSpace = aVolumeInfo . getTotalSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getTotalSpace function: get total space of /proc, it should be 0 " ,
0 = = uiTotalSpace ) ;
}
2003-11-18 15:38:22 +00:00
# else /// Windows version, in Windows, there is no /proc directory
2003-05-27 13:19:09 +00:00
void getTotalSpace_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getTotalSpace function:not applicable for /proc( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-04-17 07:34:31 +00:00
# if defined(SOLARIS)
void getTotalSpace_003 ( )
{
struct statvfs aStatFS ;
static const sal_Char name [ ] = " / " ;
memset ( & aStatFS , 0 , sizeof ( aStatFS ) ) ;
statvfs ( name , & aStatFS ) ;
sal_uInt64 TotalSpace = aStatFS . f_frsize * aStatFS . f_blocks ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiTotalSpace = aVolumeInfo . getTotalSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getTotalSpace function: get total space by hand, then compare with getTotalSpace, it did not pass " ,
uiTotalSpace = = TotalSpace ) ;
}
2003-11-18 15:38:22 +00:00
# else /// Windows version
2003-04-17 07:34:31 +00:00
void getTotalSpace_003 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getTotalSpace function:not implemented yet( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-05-27 13:19:09 +00:00
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE ( getTotalSpace ) ;
CPPUNIT_TEST ( getTotalSpace_001 ) ;
CPPUNIT_TEST ( getTotalSpace_002 ) ;
CPPUNIT_TEST ( getTotalSpace_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getTotalSpace
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt64 getFreeSpace() const
//---------------------------------------------------------------------
class getFreeSpace : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getFreeSpace_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiFreeSpace = aVolumeInfo . getFreeSpace ( ) ;
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 " ,
0 ! = uiFreeSpace ) ;
}
2003-05-27 13:19:09 +00:00
# if defined( UNX )
2003-04-17 07:34:31 +00:00
void getFreeSpace_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL3 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiFreeSpace = aVolumeInfo . getFreeSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFreeSpace function: get free space of /proc, it should be 0 " ,
0 = = uiFreeSpace ) ;
}
2003-11-18 15:38:22 +00:00
# else /// Windows version, in Windows, there is no /proc directory
2003-05-27 13:19:09 +00:00
void getFreeSpace_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getFreeSpace function: not applicable for /proc( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-04-17 07:34:31 +00:00
# if defined(SOLARIS)
void getFreeSpace_003 ( )
{
struct statvfs aStatFS ;
static const sal_Char name [ ] = " / " ;
memset ( & aStatFS , 0 , sizeof ( aStatFS ) ) ;
statvfs ( name , & aStatFS ) ;
sal_uInt64 FreeSpace = aStatFS . f_bfree * aStatFS . f_frsize ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiFreeSpace = aVolumeInfo . getFreeSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFreeSpace function: get free space by hand, then compare with getFreeSpace, it did not pass " ,
uiFreeSpace = = FreeSpace ) ;
}
# else //Windows version
void getFreeSpace_003 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getFreeSpace function: not implemented yet( Windows version ) " ,
1 = = 1 ) ;
}
# endif
CPPUNIT_TEST_SUITE ( getFreeSpace ) ;
CPPUNIT_TEST ( getFreeSpace_001 ) ;
CPPUNIT_TEST ( getFreeSpace_002 ) ;
CPPUNIT_TEST ( getFreeSpace_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFreeSpace
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt64 getUsedSpace() const
//---------------------------------------------------------------------
class getUsedSpace : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getUsedSpace_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiUsedSpace = aVolumeInfo . getUsedSpace ( ) ;
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 " ,
0 ! = uiUsedSpace ) ;
}
2003-05-27 13:19:09 +00:00
# if defined( UNX )
2003-04-17 07:34:31 +00:00
void getUsedSpace_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL3 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiUsedSpace = aVolumeInfo . getUsedSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getUsedSpace function: get used space of /proc, it should be 0 " ,
0 = = uiUsedSpace ) ;
}
2003-05-27 13:19:09 +00:00
# else /// Windows version, in Windows, there is no /proc directory
void getUsedSpace_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getUsedSpace function: not applicable for /proc( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-04-17 07:34:31 +00:00
# if defined(SOLARIS)
void getUsedSpace_003 ( )
{
struct statvfs aStatFS ;
static const sal_Char name [ ] = " / " ;
memset ( & aStatFS , 0 , sizeof ( aStatFS ) ) ;
statvfs ( name , & aStatFS ) ;
sal_uInt64 UsedSpace = ( aStatFS . f_blocks - aStatFS . f_bavail ) * aStatFS . f_frsize ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiUsedSpace = aVolumeInfo . getUsedSpace ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getUsedSpace function: get used space by hand, then compare with getUsedSpace, it did not pass " ,
uiUsedSpace = = UsedSpace ) ;
}
# else //Windows version
void getUsedSpace_003 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getUsedSpace function: not implemented yet( Windows version ) " ,
1 = = 1 ) ;
}
# endif
CPPUNIT_TEST_SUITE ( getUsedSpace ) ;
CPPUNIT_TEST ( getUsedSpace_001 ) ;
CPPUNIT_TEST ( getUsedSpace_002 ) ;
CPPUNIT_TEST ( getUsedSpace_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getUsedSpace
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt32 getMaxNameLength() const
//---------------------------------------------------------------------
class getMaxNameLength : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getMaxNameLength_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_MaxNameLength ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt32 uiMaxNameLength = aVolumeInfo . getMaxNameLength ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getMaxNameLength function: get max name length of Fixed disk volume mounted on /, it should not be 0 " ,
0 ! = uiMaxNameLength ) ;
}
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-04-17 07:34:31 +00:00
void getMaxNameLength_002 ( )
{
struct statvfs aStatFS ;
static const sal_Char name [ ] = " / " ;
memset ( & aStatFS , 0 , sizeof ( aStatFS ) ) ;
statvfs ( name , & aStatFS ) ;
sal_uInt64 MaxNameLength = aStatFS . f_namemax ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_MaxNameLength ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiMaxNameLength = aVolumeInfo . getMaxNameLength ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getMaxNameLength function: get max name length by hand, then compare with getMaxNameLength " ,
uiMaxNameLength = = MaxNameLength ) ;
}
# else //Windows version
void getMaxNameLength_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getMaxNameLength function: not implemented yet( Windows version ) " ,
1 = = 1 ) ;
}
# endif
CPPUNIT_TEST_SUITE ( getMaxNameLength ) ;
CPPUNIT_TEST ( getMaxNameLength_001 ) ;
CPPUNIT_TEST ( getMaxNameLength_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getMaxNameLength
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt32 getMaxPathLength() const
//---------------------------------------------------------------------
class getMaxPathLength : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getMaxPathLength_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_MaxPathLength ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt32 uiMaxPathLength = aVolumeInfo . getMaxPathLength ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getMaxPathLength function: get max path length of Fixed disk volume mounted on /, it should not be 0 " ,
0 ! = uiMaxPathLength ) ;
}
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-04-17 07:34:31 +00:00
void getMaxPathLength_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_MaxPathLength ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
sal_uInt64 uiMaxPathLength = aVolumeInfo . getMaxPathLength ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getMaxPathLength function: get max path length by hand, then compare with getMaxPathLength " ,
uiMaxPathLength = = PATH_MAX ) ;
}
# else //Windows version
void getMaxPathLength_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getMaxPathLength function: not implemented yet( Windows version ) " ,
1 = = 1 ) ;
}
# endif
CPPUNIT_TEST_SUITE ( getMaxPathLength ) ;
CPPUNIT_TEST ( getMaxPathLength_001 ) ;
CPPUNIT_TEST ( getMaxPathLength_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getMaxPathLength
//---------------------------------------------------------------------
// testing the method
// inline ::rtl::OUString getFileSystemName() const
//---------------------------------------------------------------------
class getFileSystemName : public CppUnit : : TestFixture
{
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getFileSystemName_001 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
aUStr = aVolumeInfo . getFileSystemName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileSystemName function: get file system name of Fixed disk volume mounted on /, it should not be empty string " ,
sal_False = = compareFileName ( aNullURL , aUStr ) ) ;
}
# if defined(SOLARIS)
void getFileSystemName_002 ( )
{
struct statvfs aStatFS ;
static const sal_Char name [ ] = " / " ;
memset ( & aStatFS , 0 , sizeof ( aStatFS ) ) ;
statvfs ( name , & aStatFS ) ;
sal_Char * astrFileSystemName = aStatFS . f_basetype ;
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT ( sal_True = = aVolumeInfo . isValid ( mask ) ) ;
aUStr = aVolumeInfo . getFileSystemName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileSystemName function: get file system name by hand, then compare with getFileSystemName " ,
sal_True = = compareFileName ( aUStr , astrFileSystemName ) ) ;
}
# else //Windows version
void getFileSystemName_002 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getFileSystemName function: not implemented yet( Windows version ) " ,
1 = = 1 ) ;
}
# endif
CPPUNIT_TEST_SUITE ( getFileSystemName ) ;
CPPUNIT_TEST ( getFileSystemName_001 ) ;
CPPUNIT_TEST ( getFileSystemName_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFileSystemName
//---------------------------------------------------------------------
// testing the method
// inline VolumeDevice getDeviceHandle() const
//---------------------------------------------------------------------
class getDeviceHandle : public CppUnit : : TestFixture
{
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 ;
public :
// test code.
void getDeviceHandle_001 ( )
{
2011-04-11 23:19:35 +02:00
: : osl : : VolumeInfo aVolumeInfo ( osl_VolumeInfo_Mask_Attributes ) ;
2003-04-17 07:34:31 +00:00
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
CPPUNIT_ASSERT ( osl : : FileBase : : E_None = = nError1 ) ;
: : osl : : VolumeDevice aVolumeDevice1 ( aVolumeInfo . getDeviceHandle ( ) ) ;
sal_Bool bOk = compareFileName ( aNullURL , aVolumeDevice1 . getMountPath ( ) ) ;
2003-05-27 13:19:09 +00:00
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). " ,
2003-04-17 07:34:31 +00:00
( sal_False = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( getDeviceHandle ) ;
CPPUNIT_TEST ( getDeviceHandle_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getDeviceHandle
// -----------------------------------------------------------------------------
2003-10-06 12:40:17 +00:00
/*CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( osl_VolumeInfo::ctors, "osl_VolumeInfo" );
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : isValid , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getRemoteFlag , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getRemoveableFlag , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getCompactDiscFlag , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getFloppyDiskFlag , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getFixedDiskFlag , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getRAMDiskFlag , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getTotalSpace , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getFreeSpace , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getUsedSpace , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getMaxNameLength , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getMaxPathLength , " osl_VolumeInfo " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getFileSystemName , " osl_VolumeInfo " ) ;
2003-10-06 12:40:17 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_VolumeInfo : : getDeviceHandle , " osl_VolumeInfo " ) ; */
2003-04-17 07:34:31 +00:00
} // namespace osl_VolumeInfo
//------------------------------------------------------------------------
// Beginning of the test cases for VolumeDevice class
//------------------------------------------------------------------------
namespace osl_FileStatus
{
//---------------------------------------------------------------------
// testing the method
// FileStatus( sal_uInt32 nMask ): _nMask( nMask )
//---------------------------------------------------------------------
class ctors : public CppUnit : : TestFixture
{
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
: : std : : auto_ptr < Directory > pDir ( new Directory ( aTmpName3 ) ) ;
nError1 = pDir - > open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = pDir - > getNextItem ( rItem , 0 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2004-05-03 07:57:00 +00:00
pDir - > close ( ) ;
/*
Directory aDir ( aTmpName3 ) ;
nError1 = aDir . open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = aDir . getNextItem ( rItem , 0 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
aDir . close ( ) ;
*/
2003-04-17 07:34:31 +00:00
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void ctors_001 ( )
{
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_All ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
aUStr = rFileStatus . getFileName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: mask all and see the file name " ,
sal_True = = compareFileName ( aUStr , aTmpName2 ) ) ;
}
void ctors_002 ( )
{
: : osl : : FileStatus rFileStatus ( 0 ) ;
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
aUStr = rFileStatus . getFileName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: mask is empty " ,
sal_True = = compareFileName ( aUStr , aNullURL ) ) ;
}
CPPUNIT_TEST_SUITE ( ctors ) ;
CPPUNIT_TEST ( ctors_001 ) ;
CPPUNIT_TEST ( ctors_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool isValid( sal_uInt32 nMask ) const
//---------------------------------------------------------------------
class isValid : public CppUnit : : TestFixture
{
: : rtl : : OUString aUStr ;
: : osl : : Directory * pDir ;
: : osl : : DirectoryItem rItem_file , rItem_link ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
pDir = new Directory ( aTmpName3 ) ;
2004-05-03 07:57:00 +00:00
//::std::auto_ptr<Directory> pDir( new Directory( aTmpName3 ) );
: : osl : : FileBase : : RC nError1 = pDir - > open ( ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = pDir - > getNextItem ( rItem_file , 1 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
2004-05-03 07:57:00 +00:00
: : osl : : FileBase : : RC nError1 = pDir - > close ( ) ;
delete pDir ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError1 ) . getStr ( ) , : : osl : : FileBase : : E_None = = nError1 ) ;
2003-04-17 07:34:31 +00:00
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void isValid_001 ( )
{
sal_uInt32 mask = 0 ;
: : osl : : FileStatus rFileStatus ( mask ) ;
2003-12-11 11:30:40 +00:00
: : osl : : FileBase : : RC nError1 = rItem_file . getFileStatus ( rFileStatus ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
sal_Bool bOk = rFileStatus . isValid ( mask ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isValid function: no fields specified " ,
( sal_True = = bOk ) ) ;
}
2003-12-11 11:30:40 +00:00
void check_FileStatus ( : : osl : : FileStatus const & _aStatus )
{
rtl : : OString sStat ;
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_Type ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " type " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_Attributes ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " attributes " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_CreationTime ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " ctime " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_AccessTime ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " atime " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_ModifyTime ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " mtime " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_FileSize ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " filesize " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_FileName ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " filename " ;
}
2011-04-13 20:54:25 +02:00
if ( _aStatus . isValid ( osl_FileStatus_Mask_FileURL ) )
2003-12-11 11:30:40 +00:00
{
sStat + = " fileurl " ;
}
2011-02-06 22:57:15 +01:00
printf ( " mask: %s \n " , sStat . getStr ( ) ) ;
2003-12-11 11:30:40 +00:00
}
2003-04-17 07:34:31 +00:00
void isValid_002 ( )
{
2003-11-18 15:38:22 +00:00
createTestFile ( aTmpName6 ) ;
2011-04-13 20:54:25 +02:00
sal_uInt32 mask_file = ( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_Attributes |
osl_FileStatus_Mask_CreationTime | osl_FileStatus_Mask_AccessTime |
osl_FileStatus_Mask_ModifyTime | osl_FileStatus_Mask_FileSize |
osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_FileURL ) ;
2003-04-17 07:34:31 +00:00
: : osl : : FileStatus rFileStatus ( mask_file ) ;
2003-12-11 11:30:40 +00:00
: : osl : : FileBase : : RC nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem_file ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem_file . getFileStatus ( rFileStatus ) ;
2003-11-18 15:38:22 +00:00
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError1 ) . getStr ( ) , : : osl : : FileBase : : E_None = = nError1 ) ;
2003-04-17 07:34:31 +00:00
2003-12-11 11:30:40 +00:00
// LLA: this is wrong, we never should try to check on all masks
// only on one.
// Second, it's not a bug, if a value is not valid, it's an unhandled feature.
2011-02-06 22:57:15 +01:00
// sal_Bool bOk = rFileStatus.isValid( mask_file );
2003-12-11 11:30:40 +00:00
check_FileStatus ( rFileStatus ) ;
2003-11-18 15:38:22 +00:00
deleteTestFile ( aTmpName6 ) ;
2011-04-13 20:54:25 +02:00
// CPPUNIT_ASSERT_MESSAGE( "test for isValid function: regular file mask fields test, #osl_FileStatus_Mask_CreationTime# should be valid field for regular file, but feedback is invalid",
2003-12-11 11:30:40 +00:00
// ( sal_True == bOk ) );
2003-04-17 07:34:31 +00:00
}
2003-11-18 15:38:22 +00:00
//Link is not defined in Windows, and on Linux, we can not get the directory item of the link file
2003-12-11 11:30:40 +00:00
// LLA: we have to differ to filesystems, normal filesystems support links (EXT2, ...)
// castrated filesystems don't (FAT, FAT32)
// Windows NT NTFS support links, but the windows api don't :-(
2003-04-17 07:34:31 +00:00
void isValid_003 ( )
{
2003-11-18 15:38:22 +00:00
# if defined ( UNX )
2004-03-19 13:48:16 +00:00
// ::osl::FileBase::RC nError;
2003-04-17 07:34:31 +00:00
sal_Int32 fd ;
2003-10-06 12:40:17 +00:00
: : rtl : : OUString aUStr_LnkFileSys ( aTempDirectorySys ) , aUStr_SrcFileSys ( aTempDirectorySys ) ;
2010-12-10 18:31:39 +01:00
( ( aUStr_LnkFileSys + = aSlashURL ) + = getCurrentPID ( ) ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmpdir/link.file " ) ) ;
( ( aUStr_SrcFileSys + = aSlashURL ) + = getCurrentPID ( ) ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmpdir/tmpname " ) ) ;
2003-12-11 11:30:40 +00:00
rtl : : OString strLinkFileName ;
rtl : : OString strSrcFileName ;
strLinkFileName = OUStringToOString ( aUStr_LnkFileSys , RTL_TEXTENCODING_ASCII_US ) ;
strSrcFileName = OUStringToOString ( aUStr_SrcFileSys , RTL_TEXTENCODING_ASCII_US ) ;
2003-10-06 12:40:17 +00:00
//create a link file and link it to file "/tmp/PID/tmpdir/tmpname"
2003-12-11 11:30:40 +00:00
fd = symlink ( strSrcFileName . getStr ( ) , strLinkFileName . getStr ( ) ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( fd = = 0 ) ;
2003-12-11 11:30:40 +00:00
2003-11-18 15:38:22 +00:00
// testDirectory is "/tmp/PID/tmpdir/"
: : osl : : Directory testDirectory ( aTmpName3 ) ;
2003-12-11 11:30:40 +00:00
: : osl : : FileBase : : RC nError1 = testDirectory . open ( ) ;
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aFileName ( RTL_CONSTASCII_USTRINGPARAM ( " link.file " ) ) ;
2003-11-18 15:38:22 +00:00
sal_Bool bOk = sal_False ;
while ( 1 ) {
nError1 = testDirectory . getNextItem ( rItem_link , 4 ) ;
if ( : : osl : : FileBase : : E_None = = nError1 ) {
2011-04-13 20:54:25 +02:00
sal_uInt32 mask_link = osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_LinkTargetURL ;
2003-11-18 15:38:22 +00:00
: : osl : : FileStatus rFileStatus ( mask_link ) ;
rItem_link . getFileStatus ( rFileStatus ) ;
if ( compareFileName ( rFileStatus . getFileName ( ) , aFileName ) = = sal_True )
{
2011-02-06 22:57:15 +01:00
//printf("find the link file");
2011-04-13 20:54:25 +02:00
if ( sal_True = = rFileStatus . isValid ( osl_FileStatus_Mask_LinkTargetURL ) )
2003-11-18 15:38:22 +00:00
{
bOk = sal_True ;
break ;
}
}
}
else
break ;
} ;
2003-04-17 07:34:31 +00:00
2011-03-01 14:45:57 +00:00
fd = remove ( strLinkFileName . getStr ( ) ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( fd = = 0 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isValid function: link file, check for LinkTargetURL " ,
( sal_True = = bOk ) ) ;
# endif
2003-11-18 15:38:22 +00:00
}
2003-04-17 07:34:31 +00:00
void isValid_004 ( )
{
2011-04-13 20:54:25 +02:00
sal_uInt32 mask_file_all = osl_FileStatus_Mask_All ;
2003-04-17 07:34:31 +00:00
: : osl : : FileStatus rFileStatus_all ( mask_file_all ) ;
2003-12-11 11:30:40 +00:00
: : osl : : FileBase : : RC nError1 = rItem_file . getFileStatus ( rFileStatus_all ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2003-12-11 11:30:40 +00:00
check_FileStatus ( rFileStatus_all ) ;
// LLA: this is wrong
// sal_Bool bOk1 = rFileStatus_all.isValid( mask_file_all );
2003-04-17 07:34:31 +00:00
2011-04-13 20:54:25 +02:00
sal_uInt32 mask_file_val = osl_FileStatus_Mask_Validate ;
2003-04-17 07:34:31 +00:00
: : osl : : FileStatus rFileStatus_val ( mask_file_val ) ;
nError1 = rItem_file . getFileStatus ( rFileStatus_val ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2003-12-11 11:30:40 +00:00
// sal_Bool bOk2 = rFileStatus_val.isValid( mask_file_val );
2003-04-17 07:34:31 +00:00
2003-12-11 11:30:40 +00:00
check_FileStatus ( rFileStatus_val ) ;
// 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).",
// ( sal_False == bOk1 ) && ( sal_True == bOk2 ) );
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( isValid ) ;
CPPUNIT_TEST ( isValid_001 ) ;
CPPUNIT_TEST ( isValid_002 ) ;
CPPUNIT_TEST ( isValid_003 ) ;
CPPUNIT_TEST ( isValid_004 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
//---------------------------------------------------------------------
// testing the method
// inline Type getFileType() const
//---------------------------------------------------------------------
class getFileType : public CppUnit : : TestFixture
{
: : rtl : : OUString aUStr ;
: : osl : : FileBase : : RC nError1 , nError2 ;
2003-12-11 11:30:40 +00:00
: : osl : : DirectoryItem m_aItem_1 , m_aItem_2 , m_aVolumeItem , m_aFifoItem ;
: : osl : : DirectoryItem m_aLinkItem , m_aSocketItem , m_aSpecialItem ;
2003-04-17 07:34:31 +00:00
public :
// initialization
void setUp ( )
{
// create a tempfile: $TEMP/tmpdir/tmpname.
// a tempdirectory: $TEMP/tmpdir/tmpdir.
2003-11-18 15:38:22 +00:00
// use $ROOT/staroffice as volume ---> use dev/fd as volume.
2003-04-17 07:34:31 +00:00
// and get their directory item.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName3 , aTmpName2 ) ;
createTestDirectory ( aTmpName3 , aTmpName1 ) ;
: : std : : auto_ptr < Directory > pDir ( new Directory ( aTmpName3 ) ) ;
nError1 = pDir - > open ( ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_ASSERT_MESSAGE ( " open aTmpName3 failed! " , : : osl : : FileBase : : E_None = = nError1 ) ;
2003-11-18 15:38:22 +00:00
//getNextItem can not assure which item retrieved
2004-05-03 07:57:00 +00:00
nError1 = pDir - > getNextItem ( m_aItem_1 , 1 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_ASSERT_MESSAGE ( " get first item failed! " , : : osl : : FileBase : : E_None = = nError1 ) ;
2003-12-11 11:30:40 +00:00
2004-05-03 07:57:00 +00:00
nError1 = pDir - > getNextItem ( m_aItem_2 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_ASSERT_MESSAGE ( " get second item failed! " , : : osl : : FileBase : : E_None = = nError1 ) ;
2004-05-03 07:57:00 +00:00
pDir - > close ( ) ;
2004-03-19 13:48:16 +00:00
//mindy: failed on my RH9,so removed temporaly
//nError1 = ::osl::DirectoryItem::get( aVolURL2, m_aVolumeItem );
//CPPUNIT_ASSERT_MESSAGE("get volume item failed!", ::osl::FileBase::E_None == nError1 );
2003-12-11 11:30:40 +00:00
2003-04-17 07:34:31 +00:00
}
void tearDown ( )
{
// remove all in $TEMP/tmpdir.
deleteTestDirectory ( aTmpName3 , aTmpName1 ) ;
deleteTestFile ( aTmpName3 , aTmpName2 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void getFileType_001 ( )
{
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileName ) ;
2003-12-11 11:30:40 +00:00
nError1 = m_aItem_1 . getFileStatus ( rFileStatus ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " getFileStatus failed " , : : osl : : FileBase : : E_None = = nError1 ) ;
2003-12-11 11:30:40 +00:00
check_FileType ( rFileStatus ) ;
}
void check_FileType ( osl : : FileStatus const & _rFileStatus )
{
2003-11-18 15:38:22 +00:00
sal_Bool bOK = sal_False ;
2011-04-13 20:54:25 +02:00
if ( _rFileStatus . isValid ( osl_FileStatus_Mask_FileName ) )
2003-12-11 11:30:40 +00:00
{
rtl : : OUString suFilename = _rFileStatus . getFileName ( ) ;
2003-04-17 07:34:31 +00:00
2011-04-13 20:54:25 +02:00
if ( _rFileStatus . isValid ( osl_FileStatus_Mask_Type ) )
2003-12-11 11:30:40 +00:00
{
osl : : FileStatus : : Type eType = _rFileStatus . getFileType ( ) ;
if ( compareFileName ( suFilename , aTmpName2 ) = = sal_True )
{
// regular
bOK = ( eType = = osl : : FileStatus : : Regular ) ;
}
if ( compareFileName ( suFilename , aTmpName1 ) = = sal_True )
{
// directory
bOK = ( eType = = : : osl : : FileStatus : : Directory ) ;
}
CPPUNIT_ASSERT_MESSAGE ( " test for getFileType function: " ,
2003-11-18 15:38:22 +00:00
( bOK = = sal_True ) ) ;
2003-04-17 07:34:31 +00:00
}
2003-12-11 11:30:40 +00:00
}
// LLA: it's not a bug, if a FileStatus not exist, so no else
}
2003-04-17 07:34:31 +00:00
void getFileType_002 ( )
{
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileName ) ;
2003-12-11 11:30:40 +00:00
nError1 = m_aItem_2 . getFileStatus ( rFileStatus ) ;
2003-04-17 07:34:31 +00:00
2003-12-11 11:30:40 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
check_FileType ( rFileStatus ) ;
2003-04-17 07:34:31 +00:00
}
void getFileType_003 ( )
{
2003-12-11 11:30:40 +00:00
}
2003-04-17 07:34:31 +00:00
2004-01-05 20:20:14 +00:00
/*
* LLA : removed , m_aSocketItem is wrong initialised .
*/
// LLA: void getFileType_005( )
// LLA: {
// LLA: #if defined ( SOLARIS ) //Socket file may differ in Windows
// LLA: // nError1 = ::osl::DirectoryItem::get( aTypeURL1, m_aSocketItem );
2010-12-10 18:31:39 +01:00
// LLA: nError1 = ::osl::DirectoryItem::get( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/dev/null")), m_aSocketItem );
2004-01-05 20:20:14 +00:00
// LLA: printError(nError1);
// LLA: CPPUNIT_ASSERT_MESSAGE("get Socket type file failed", ::osl::FileBase::E_None == nError1 );
// LLA:
// LLA: //check for File type
2011-04-13 20:54:25 +02:00
// LLA: ::osl::FileStatus rFileStatus( osl_FileStatus_Mask_Type );
2004-01-05 20:20:14 +00:00
// LLA:
// LLA: nError1 = m_aSocketItem.getFileStatus( rFileStatus );
// LLA: CPPUNIT_ASSERT_MESSAGE("getFileStatus failed", ::osl::FileBase::E_None == nError1 );
// LLA:
2011-04-13 20:54:25 +02:00
// LLA: if (rFileStatus.isValid( osl_FileStatus_Mask_Type ))
2004-01-05 20:20:14 +00:00
// LLA: {
// LLA: osl::FileStatus::Type eType = rFileStatus.getFileType( );
// LLA: printFileType(eType);
// LLA: CPPUNIT_ASSERT_MESSAGE( "test for getFileType function: Socket, Solaris version ",
// LLA: ( eType == ::osl::FileStatus::Socket ) );
// LLA: }
// LLA: #endif
// LLA: }
2003-04-17 07:34:31 +00:00
2003-11-18 15:38:22 +00:00
// deprecated since there is a same case Directory::getNextItem_004
/*#if defined 0 //( UNX ) //( SOLARIS ) //Link file is not defined in Windows
2003-04-17 07:34:31 +00:00
void getFileType_006 ( )
{
2003-12-11 11:30:40 +00:00
nError1 = : : osl : : DirectoryItem : : get ( aTypeURL3 , m_aLinkItem ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check for File type
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Type ) ;
2003-12-11 11:30:40 +00:00
nError1 = m_aLinkItem . getFileStatus ( rFileStatus ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for getFileType function: Link, UNX version " ,
2003-04-17 07:34:31 +00:00
( : : osl : : FileStatus : : Link = = rFileStatus . getFileType ( ) ) ) ;
}
2003-11-18 15:38:22 +00:00
# endif * /
2003-04-17 07:34:31 +00:00
void getFileType_007 ( )
{
2003-12-11 11:30:40 +00:00
# if defined ( SOLARIS ) //Special file is differ in Windows
nError1 = : : osl : : DirectoryItem : : get ( aTypeURL2 , m_aSpecialItem ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check for File type
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Type ) ;
2003-12-11 11:30:40 +00:00
nError1 = m_aSpecialItem . getFileStatus ( rFileStatus ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 20:54:25 +02:00
if ( rFileStatus . isValid ( osl_FileStatus_Mask_Type ) )
2003-12-11 11:30:40 +00:00
{
osl : : FileStatus : : Type eType = rFileStatus . getFileType ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileType function: Special, Solaris version " ,
( eType = = : : osl : : FileStatus : : Special ) ) ;
}
2003-04-17 07:34:31 +00:00
# endif
2003-12-11 11:30:40 +00:00
}
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE ( getFileType ) ;
CPPUNIT_TEST ( getFileType_001 ) ;
CPPUNIT_TEST ( getFileType_002 ) ;
CPPUNIT_TEST ( getFileType_003 ) ;
2004-01-05 20:20:14 +00:00
// LLA: CPPUNIT_TEST( getFileType_005 );
2003-11-18 15:38:22 +00:00
//CPPUNIT_TEST( getFileType_006 );
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST ( getFileType_007 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFileType
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt64 getAttributes() const
//---------------------------------------------------------------------
class getAttributes : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL , aTypeURL_Hid ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem , rItem_hidden ;
public :
// initialization
void setUp ( )
{
2003-10-06 12:40:17 +00:00
aTypeURL = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL , aTmpName2 ) ;
createTestFile ( aTypeURL ) ;
nError = : : osl : : DirectoryItem : : get ( aTypeURL , rItem ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
2003-10-06 12:40:17 +00:00
aTypeURL_Hid = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL_Hid , aHidURL1 ) ;
createTestFile ( aTypeURL_Hid ) ;
nError = : : osl : : DirectoryItem : : get ( aTypeURL_Hid , rItem_hidden ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
}
void tearDown ( )
{
deleteTestFile ( aTypeURL ) ;
deleteTestFile ( aTypeURL_Hid ) ;
}
// test code.
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-11-18 15:38:22 +00:00
//windows only 3 file attributes: normal, readonly, hidden
2003-04-17 07:34:31 +00:00
void getAttributes_001 ( )
{
changeFileMode ( aTypeURL , S_IRUSR | S_IRGRP | S_IROTH ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for getAttributes function: ReadOnly, GrpRead, OwnRead, OthRead( UNX version ) " ,
2011-04-20 20:35:58 +02:00
( osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead ) = =
2003-04-17 07:34:31 +00:00
rFileStatus . getAttributes ( ) ) ;
}
# else //Windows version
void getAttributes_001 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getAttributes function: ReadOnly, GrpRead, OwnRead, OthRead( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2003-11-18 15:38:22 +00:00
2003-04-17 07:34:31 +00:00
void getAttributes_002 ( )
{
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-04-17 07:34:31 +00:00
changeFileMode ( aTypeURL , S_IXUSR | S_IXGRP | S_IXOTH ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
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 ) " ,
2011-04-20 20:35:58 +02:00
( osl_File_Attribute_ReadOnly | osl_File_Attribute_Executable | osl_File_Attribute_GrpExe | osl_File_Attribute_OwnExe | osl_File_Attribute_OthExe ) = =
2003-04-17 07:34:31 +00:00
rFileStatus . getAttributes ( ) ) ;
# endif
2003-11-18 15:38:22 +00:00
}
2003-04-17 07:34:31 +00:00
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-04-17 07:34:31 +00:00
void getAttributes_003 ( )
{
changeFileMode ( aTypeURL , S_IWUSR | S_IWGRP | S_IWOTH ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getAttributes function: GrpWrite, OwnWrite, OthWrite( Solaris version ) " ,
2011-04-20 20:35:58 +02:00
( osl_File_Attribute_GrpWrite | osl_File_Attribute_OwnWrite | osl_File_Attribute_OthWrite ) = =
2003-04-17 07:34:31 +00:00
rFileStatus . getAttributes ( ) ) ;
}
# else //Windows version
void getAttributes_003 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getAttributes function: GrpWrite, OwnWrite, OthWrite( Windows version ) " ,
1 = = 1 ) ;
}
# endif
2011-04-16 09:08:29 +02:00
# if ( defined UNX ) //hidden file definition may different in Windows
2003-04-17 07:34:31 +00:00
void getAttributes_004 ( )
{
2011-04-20 20:35:58 +02:00
sal_Int32 test_Attributes = osl_File_Attribute_Hidden ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-04-17 07:34:31 +00:00
nError = rItem_hidden . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
test_Attributes & = rFileStatus . getAttributes ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getAttributes function: Hidden files( Solaris version ) " ,
2011-04-20 20:35:58 +02:00
test_Attributes = = osl_File_Attribute_Hidden ) ;
2003-04-17 07:34:31 +00:00
}
# else //Windows version
void getAttributes_004 ( )
{
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aUserHiddenFileURL ( RTL_CONSTASCII_USTRINGPARAM ( " file:///c:/AUTOEXEC.BAT " ) ) ;
2003-11-18 15:38:22 +00:00
nError = : : osl : : DirectoryItem : : get ( aUserHiddenFileURL , rItem_hidden ) ;
CPPUNIT_ASSERT_MESSAGE ( " get item fail " , nError = = FileBase : : E_None ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-11-18 15:38:22 +00:00
nError = rItem_hidden . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " Hidden files(Windows version), please check if hidden file c:/AUTOEXEC.BAT exists " ,
2011-04-20 20:35:58 +02:00
( rFileStatus . getAttributes ( ) & osl_File_Attribute_Hidden ) ! = 0 ) ;
2003-04-17 07:34:31 +00:00
}
# endif
CPPUNIT_TEST_SUITE ( getAttributes ) ;
CPPUNIT_TEST ( getAttributes_001 ) ;
CPPUNIT_TEST ( getAttributes_002 ) ;
CPPUNIT_TEST ( getAttributes_003 ) ;
CPPUNIT_TEST ( getAttributes_004 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getAttributes
//---------------------------------------------------------------------
// testing the method
// inline TimeValue getAccessTime() const
//---------------------------------------------------------------------
class getAccessTime : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
2003-10-06 12:40:17 +00:00
aTypeURL = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL , aTmpName2 ) ;
createTestFile ( aTypeURL ) ;
nError = : : osl : : DirectoryItem : : get ( aTypeURL , rItem ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
}
void tearDown ( )
{
deleteTestFile ( aTypeURL ) ;
}
// test code.
void getAccessTime_001 ( )
{
TimeValue * pTV_current = NULL ;
CPPUNIT_ASSERT ( ( pTV_current = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
TimeValue * pTV_access = NULL ;
CPPUNIT_ASSERT ( ( pTV_access = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_AccessTime ) ;
2003-11-18 15:38:22 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
2003-04-17 07:34:31 +00:00
sal_Bool bOk = osl_getSystemTime ( pTV_current ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT ( sal_True = = bOk & & nError = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
* pTV_access = rFileStatus . getAccessTime ( ) ;
2004-05-03 07:57:00 +00:00
sal_Bool bOK = t_compareTime ( pTV_access , pTV_current , delta ) ;
2003-04-17 07:34:31 +00:00
free ( pTV_current ) ;
free ( pTV_access ) ;
2003-11-18 15:38:22 +00:00
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. " ,
2003-05-27 13:19:09 +00:00
sal_True = = bOK ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( getAccessTime ) ;
CPPUNIT_TEST ( getAccessTime_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getAccessTime
//---------------------------------------------------------------------
// testing the method
// inline TimeValue getModifyTime() const
//---------------------------------------------------------------------
class getModifyTime : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem ;
public :
// test code.
void getModifyTime_001 ( )
{
TimeValue * pTV_current = NULL ;
CPPUNIT_ASSERT ( ( pTV_current = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
//create file
2003-10-06 12:40:17 +00:00
aTypeURL = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL , aTmpName2 ) ;
createTestFile ( aTypeURL ) ;
//get current time
sal_Bool bOk = osl_getSystemTime ( pTV_current ) ;
CPPUNIT_ASSERT ( sal_True = = bOk ) ;
//get instance item and filestatus
nError = : : osl : : DirectoryItem : : get ( aTypeURL , rItem ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_ModifyTime ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
//get modify time
TimeValue * pTV_modify = NULL ;
CPPUNIT_ASSERT ( ( pTV_modify = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
* pTV_modify = rFileStatus . getModifyTime ( ) ;
2004-05-03 07:57:00 +00:00
sal_Bool bOK = t_compareTime ( pTV_modify , pTV_current , delta ) ;
2003-04-17 07:34:31 +00:00
//delete file
deleteTestFile ( aTypeURL ) ;
free ( pTV_current ) ;
2003-05-27 13:19:09 +00:00
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. " ,
sal_True = = bOK ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( getModifyTime ) ;
CPPUNIT_TEST ( getModifyTime_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getModifyTime
//---------------------------------------------------------------------
// testing the method
// inline sal_uInt64 getFileSize() const
//---------------------------------------------------------------------
class getFileSize : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
2003-10-06 12:40:17 +00:00
aTypeURL = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL , aTmpName2 ) ;
createTestFile ( aTypeURL ) ;
nError = : : osl : : DirectoryItem : : get ( aTypeURL , rItem ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
}
void tearDown ( )
{
deleteTestFile ( aTypeURL ) ;
}
// test code.
void getFileSize_001 ( )
{
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileSize ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
sal_uInt64 uFileSize = rFileStatus . getFileSize ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileSize function: empty file " ,
0 = = uFileSize ) ;
}
void getFileSize_002 ( )
{
2003-11-18 15:38:22 +00:00
: : osl : : File testfile ( aTypeURL ) ;
2010-12-11 19:43:44 +00:00
nError = testfile . open ( osl_File_OpenFlag_Write | osl_File_OpenFlag_Read ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError ) ;
2003-11-18 15:38:22 +00:00
nError = testfile . setSize ( TEST_FILE_SIZE ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError ) ;
2003-11-18 15:38:22 +00:00
nError = : : osl : : DirectoryItem : : get ( aTypeURL , rItem ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileSize ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
sal_uInt64 uFileSize = rFileStatus . getFileSize ( ) ;
2003-05-27 13:19:09 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for getFileSize function: file with size of TEST_FILE_SIZE, did not pass in (W32). " ,
2003-04-17 07:34:31 +00:00
TEST_FILE_SIZE = = uFileSize ) ;
}
CPPUNIT_TEST_SUITE ( getFileSize ) ;
CPPUNIT_TEST ( getFileSize_001 ) ;
CPPUNIT_TEST ( getFileSize_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFileSize
//---------------------------------------------------------------------
// testing the method
// inline ::rtl::OUString getFileName() const
//---------------------------------------------------------------------
class getFileName : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
2003-10-06 12:40:17 +00:00
aTypeURL = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL , aTmpName2 ) ;
createTestFile ( aTypeURL ) ;
nError = : : osl : : DirectoryItem : : get ( aTypeURL , rItem ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
}
void tearDown ( )
{
deleteTestFile ( aTypeURL ) ;
}
// test code.
void getFileName_001 ( )
{
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
: : rtl : : OUString aFileName = rFileStatus . getFileName ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileName function: name compare with specify " ,
sal_True = = compareFileName ( aFileName , aTmpName2 ) ) ;
}
CPPUNIT_TEST_SUITE ( getFileName ) ;
CPPUNIT_TEST ( getFileName_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFileName
//---------------------------------------------------------------------
// testing the method
// inline ::rtl::OUString getFileURL() const
//---------------------------------------------------------------------
class getFileURL : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
2003-05-27 13:19:09 +00:00
createTestFile ( aTmpName6 ) ;
nError = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
}
void tearDown ( )
{
2003-05-27 13:19:09 +00:00
deleteTestFile ( aTmpName6 ) ;
2003-04-17 07:34:31 +00:00
}
// test code.
void getFileURL_001 ( )
{
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileURL ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError = = FileBase : : E_None ) ;
: : rtl : : OUString aFileURL = rFileStatus . getFileURL ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileURL function: " ,
2003-05-27 13:19:09 +00:00
sal_True = = compareFileName ( aFileURL , aTmpName6 ) ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( getFileURL ) ;
CPPUNIT_TEST ( getFileURL_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFileURL
//---------------------------------------------------------------------
// testing the method
// inline ::rtl::OUString getLinkTargetURL() const
//---------------------------------------------------------------------
class getLinkTargetURL : public CppUnit : : TestFixture
{
: : rtl : : OUString aTypeURL ;
: : osl : : FileBase : : RC nError ;
: : osl : : DirectoryItem rItem ;
public :
// test code.
// initialization
void setUp ( )
{
2003-10-06 12:40:17 +00:00
aTypeURL = aUserDirectoryURL . copy ( 0 ) ;
2003-04-17 07:34:31 +00:00
concatURL ( aTypeURL , aTmpName2 ) ;
createTestFile ( aTypeURL ) ;
}
void tearDown ( )
{
deleteTestFile ( aTypeURL ) ;
}
2011-04-16 09:08:29 +02:00
# if ( defined UNX ) //Link file is not define in Windows
2003-04-17 07:34:31 +00:00
void getLinkTargetURL_001 ( )
{
//create a link file;
2003-10-06 12:40:17 +00:00
: : rtl : : OUString aUStr_LnkFileSys ( aTempDirectorySys ) , aUStr_SrcFileSys ( aTempDirectorySys ) ;
2010-12-10 18:31:39 +01:00
( ( aUStr_LnkFileSys + = aSlashURL ) + = getCurrentPID ( ) ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /link.file " ) ) ;
( ( aUStr_SrcFileSys + = aSlashURL ) + = getCurrentPID ( ) ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmpname " ) ) ;
2003-12-11 11:30:40 +00:00
rtl : : OString strLinkFileName , strSrcFileName ;
strLinkFileName = OUStringToOString ( aUStr_LnkFileSys , RTL_TEXTENCODING_ASCII_US ) ;
strSrcFileName = OUStringToOString ( aUStr_SrcFileSys , RTL_TEXTENCODING_ASCII_US ) ;
2003-10-06 12:40:17 +00:00
2003-04-17 07:34:31 +00:00
sal_Int32 fd ;
2003-12-11 11:30:40 +00:00
fd = symlink ( strSrcFileName . getStr ( ) , strLinkFileName . getStr ( ) ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " in creating link file " , fd = = 0 ) ;
//get linkTarget URL
nError = : : osl : : DirectoryItem : : get ( aLnkURL1 , rItem ) ;
CPPUNIT_ASSERT_MESSAGE ( " in getting link file item " , nError = = FileBase : : E_None ) ;
2003-12-11 11:30:40 +00:00
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_LinkTargetURL ) ;
2003-04-17 07:34:31 +00:00
nError = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT_MESSAGE ( " in getting link file status " , nError = = FileBase : : E_None ) ;
: : rtl : : OUString aFileURL = rFileStatus . getLinkTargetURL ( ) ;
//remove link file
2003-12-11 11:30:40 +00:00
fd = remove ( strLinkFileName . getStr ( ) ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " in deleting link file " , fd = = 0 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getLinkTargetURL function: Solaris version, creat a file, and a link file link to it, get its LinkTargetURL and compare " ,
sal_True = = compareFileName ( aFileURL , aTypeURL ) ) ;
}
# else
void getLinkTargetURL_001 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " test for getLinkTargetURL function: Windows version, not tested " ,
2003-10-06 12:40:17 +00:00
1 ) ;
2003-04-17 07:34:31 +00:00
}
# endif
CPPUNIT_TEST_SUITE ( getLinkTargetURL ) ;
CPPUNIT_TEST ( getLinkTargetURL_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getLinkTargetURL
// -----------------------------------------------------------------------------
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : ctors , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : isValid , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getFileType , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getAttributes , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getAccessTime , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getModifyTime , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getFileSize , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getFileName , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getFileURL , " osl_FileStatus " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_FileStatus : : getLinkTargetURL , " osl_FileStatus " ) ;
} // namespace osl_FileStatus
//------------------------------------------------------------------------
// Beginning of the test cases for File class
//------------------------------------------------------------------------
namespace osl_File
{
//---------------------------------------------------------------------
// testing the method
// File( const ::rtl::OUString& ustrFileURL )
//---------------------------------------------------------------------
class ctors : public CppUnit : : TestFixture
{
2003-12-11 11:30:40 +00:00
// ::osl::FileBase::RC nError1;
2003-04-17 07:34:31 +00:00
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void ctors_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
: : osl : : FileBase : : RC nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-12-11 11:30:40 +00:00
: : osl : : FileBase : : RC nError2 = testFile . close ( ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: initialize a File and test its open and close " ,
( : : osl : : FileBase : : E_None = = nError1 ) & & ( : : osl : : FileBase : : E_None = = nError2 ) ) ;
}
void ctors_002 ( )
{
: : osl : : File testFile ( aTmpName5 ) ;
sal_Char buffer [ 30 ] = " Test for File constructor " ;
sal_uInt64 nCount ;
2010-12-11 19:43:44 +00:00
: : osl : : FileBase : : RC nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-12-11 11:30:40 +00:00
: : osl : : FileBase : : RC nError2 = testFile . write ( buffer , 30 , nCount ) ;
2003-04-17 07:34:31 +00:00
testFile . close ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: test relative file URL, this test show that relative file URL is also acceptable " ,
( : : osl : : FileBase : : E_None = = nError1 ) & & ( : : osl : : FileBase : : E_None = = nError2 ) ) ;
}
CPPUNIT_TEST_SUITE ( ctors ) ;
CPPUNIT_TEST ( ctors_001 ) ;
CPPUNIT_TEST ( ctors_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
//---------------------------------------------------------------------
// testing the method
// inline RC open( sal_uInt32 uFlags )
//---------------------------------------------------------------------
class open : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 , nError3 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void open_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
nError2 = testFile . close ( ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " close error " , : : osl : : FileBase : : E_None = = nError2 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open function: open a regular file " ,
: : osl : : FileBase : : E_None = = nError1 ) ;
}
void open_002 ( )
{
: : osl : : File testFile ( aTmpName3 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open function: open a directory " ,
2003-05-27 13:19:09 +00:00
( File : : E_INVAL = = nError1 ) | | ( File : : E_ACCES = = nError1 ) ) ;
2003-04-17 07:34:31 +00:00
}
void open_003 ( )
{
: : osl : : File testFile ( aCanURL1 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open function: open a non-exist file " ,
File : : E_NOENT = = nError1 ) ;
}
void open_004 ( )
{
: : rtl : : OUString aTestFile ( aRootURL ) ;
concatURL ( aTestFile , aTmpName2 ) ;
: : osl : : File testFile ( aTestFile ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-05-27 13:19:09 +00:00
sal_Bool bOK = ( File : : E_ACCES = = nError1 ) ;
# if defined (WNT )
bOK = sal_True ; /// in Windows, you can create file in c:/ any way.
testFile . close ( ) ;
deleteTestFile ( aTestFile ) ;
# endif
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open function: create an illegal file " ,
2003-05-27 13:19:09 +00:00
bOK = = sal_True ) ;
2003-04-17 07:34:31 +00:00
}
void open_005 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open function: create an exist file " ,
File : : E_EXIST = = nError1 ) ;
}
void open_006 ( )
{
: : osl : : File testFile ( aCanURL1 ) ;
sal_Char buffer_write [ 30 ] = " Test for File open " ;
sal_Char buffer_read [ 30 ] ;
sal_uInt64 nCount_write , nCount_read ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write | osl_File_OpenFlag_Create ) ;
2003-04-17 07:34:31 +00:00
nError2 = testFile . write ( buffer_write , 30 , nCount_write ) ;
2011-04-13 22:28:58 +02:00
: : osl : : FileBase : : RC nError4 = testFile . setPos ( osl_Pos_Absolut , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError4 ) ;
nError3 = testFile . read ( buffer_read , 10 , nCount_read ) ;
: : osl : : FileBase : : RC nError5 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError5 ) ;
: : osl : : FileBase : : RC nError6 = testFile . remove ( aCanURL1 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError6 ) ;
2010-12-11 19:43:44 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for open function: test for osl_File_OpenFlag_Read, osl_File_OpenFlag_Write and osl_File_OpenFlag_Create " ,
2003-04-17 07:34:31 +00:00
( : : osl : : FileBase : : E_None = = nError1 ) & &
( : : osl : : FileBase : : E_None = = nError2 ) & &
( : : osl : : FileBase : : E_None = = nError3 ) & &
( 30 = = nCount_write ) & &
( 10 = = nCount_read ) ) ;
}
CPPUNIT_TEST_SUITE ( open ) ;
CPPUNIT_TEST ( open_001 ) ;
CPPUNIT_TEST ( open_002 ) ;
CPPUNIT_TEST ( open_003 ) ;
CPPUNIT_TEST ( open_004 ) ;
CPPUNIT_TEST ( open_005 ) ;
CPPUNIT_TEST ( open_006 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class open
//---------------------------------------------------------------------
// testing the method
// inline RC close()
//---------------------------------------------------------------------
class close : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 , nError3 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void close_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError2 = testFile . close ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for close function: close a regular file " ,
: : osl : : FileBase : : E_None = = nError2 ) ;
}
void close_002 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError2 = testFile . close ( ) ;
2011-04-13 22:28:58 +02:00
nError3 = testFile . setPos ( osl_Pos_Absolut , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for close function: manipulate a file after it has been closed " ,
( : : osl : : FileBase : : E_None = = nError2 ) & &
( : : osl : : FileBase : : E_None ! = nError3 ) ) ;
}
CPPUNIT_TEST_SUITE ( close ) ;
CPPUNIT_TEST ( close_001 ) ;
CPPUNIT_TEST ( close_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class close
//---------------------------------------------------------------------
// testing the method
// inline RC setPos( sal_uInt32 uHow, sal_Int64 uPos )
//---------------------------------------------------------------------
class setPos : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void setPos_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_Char buffer_read [ 2 ] ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:28:58 +02:00
nError1 = testFile . setPos ( osl_Pos_Absolut , 26 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . read ( buffer_read , 1 , nCount_read ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:28:58 +02:00
CPPUNIT_ASSERT_MESSAGE ( " test for setPos function: test for osl_Pos_Absolut, set the position to 26, test if the 26th char in file is correct " ,
2003-04-17 07:34:31 +00:00
buffer_read [ 0 ] = = pBuffer_Char [ 26 ] ) ;
}
void setPos_002 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_Char buffer_read [ 2 ] ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:28:58 +02:00
nError1 = testFile . setPos ( osl_Pos_Absolut , sizeof ( pBuffer_Char ) - 2 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:43:54 +02:00
nError1 = testFile . setPos ( osl_Pos_Current , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . read ( buffer_read , 1 , nCount_read ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:43:54 +02:00
CPPUNIT_ASSERT_MESSAGE ( " test for setPos function: test for osl_Pos_Current, set the position to end, test if the ( end -1 ) char in file is correct " ,
2003-04-17 07:34:31 +00:00
buffer_read [ 0 ] = = pBuffer_Char [ sizeof ( pBuffer_Char ) - 2 ] ) ;
}
void setPos_003 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_Char buffer_read [ 2 ] ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2004-03-19 13:48:16 +00:00
//the file size is smaller than 100
2011-04-13 22:43:55 +02:00
nError1 = testFile . setPos ( osl_Pos_End , - 100 ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_ASSERT_MESSAGE ( " should return error " , : : osl : : FileBase : : E_INVAL = = nError1 ) ;
2011-04-13 22:43:55 +02:00
nError1 = testFile . setPos ( osl_Pos_End , - 53 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . read ( buffer_read , 1 , nCount_read ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:43:55 +02:00
CPPUNIT_ASSERT_MESSAGE ( " test for setPos function: test for osl_Pos_End, set the position to end, test if the first char in file is correct " ,
2003-04-17 07:34:31 +00:00
buffer_read [ 0 ] = = pBuffer_Char [ 0 ] ) ;
}
CPPUNIT_TEST_SUITE ( setPos ) ;
CPPUNIT_TEST ( setPos_001 ) ;
CPPUNIT_TEST ( setPos_002 ) ;
CPPUNIT_TEST ( setPos_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class setPos
//---------------------------------------------------------------------
// testing the method
// inline RC getPos( sal_uInt64& uPos )
//---------------------------------------------------------------------
class getPos : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void getPos_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_uInt64 nFilePointer ;
2004-03-19 13:48:16 +00:00
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_INVAL = = nError1 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:28:58 +02:00
nError1 = testFile . setPos ( osl_Pos_Absolut , 26 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getPos function: set the position to 26, get position and check if it is right " ,
26 = = nFilePointer ) ;
}
CPPUNIT_TEST_SUITE ( getPos ) ;
CPPUNIT_TEST ( getPos_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getPos
//---------------------------------------------------------------------
// testing the method
// inline RC isEndOfFile( sal_Bool *pIsEOF )
//---------------------------------------------------------------------
class isEndOfFile : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void isEndOfFile_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_Bool bEOF = sal_False ;
sal_Bool * pEOF = & bEOF ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:43:55 +02:00
nError1 = testFile . setPos ( osl_Pos_End , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . isEndOfFile ( pEOF ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isEndOfFile function: set the position to end, check if reach end " ,
sal_True = = * pEOF ) ;
}
void isEndOfFile_002 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_Bool bEOF = sal_False ;
sal_Bool * pEOF = & bEOF ;
sal_uInt64 nFilePointer = 0 ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:28:58 +02:00
nError1 = testFile . setPos ( osl_Pos_Absolut , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
* pEOF = sal_False ;
while ( ! ( * pEOF ) )
{
nError1 = testFile . isEndOfFile ( pEOF ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:43:54 +02:00
nError1 = testFile . setPos ( osl_Pos_Current , 1 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isEndOfFile function: use isEndOfFile to move pointer step by step " ,
sizeof ( pBuffer_Char ) + 1 = = nFilePointer ) ;
}
CPPUNIT_TEST_SUITE ( isEndOfFile ) ;
CPPUNIT_TEST ( isEndOfFile_001 ) ;
CPPUNIT_TEST ( isEndOfFile_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class isEndOfFile
//---------------------------------------------------------------------
// testing the method
// inline RC setSize( sal_uInt64 uSize )
//---------------------------------------------------------------------
class setSize : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void setSize_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2004-03-19 13:48:16 +00:00
// sal_Bool bEOF = sal_False;
// sal_Bool *pEOF = &bEOF;
2003-04-17 07:34:31 +00:00
sal_uInt64 nFilePointer ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//enlarge the file to size of 100;
nError1 = testFile . setSize ( 100 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//get the file size;
2011-04-13 22:43:55 +02:00
nError1 = testFile . setPos ( osl_Pos_End , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for setSize function: enlarge the file " ,
100 = = nFilePointer ) ;
}
void setSize_002 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
2004-03-19 13:48:16 +00:00
// sal_Bool bEOF = sal_False;
// sal_Bool *pEOF = &bEOF;
2003-04-17 07:34:31 +00:00
sal_uInt64 nFilePointer ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//enlarge the file to size of 100;
nError1 = testFile . setSize ( 10 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//get the file size;
2011-04-13 22:43:55 +02:00
nError1 = testFile . setPos ( osl_Pos_End , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for setSize function: truncate the file " ,
10 = = nFilePointer ) ;
}
2004-03-19 13:48:16 +00:00
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE ( setSize ) ;
CPPUNIT_TEST ( setSize_001 ) ;
CPPUNIT_TEST ( setSize_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class setSize
//---------------------------------------------------------------------
// testing the method
// inline RC read( void *pBuffer, sal_uInt64 uBytesRequested, sal_uInt64& rBytesRead )
//---------------------------------------------------------------------
class read : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void read_001 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_uInt64 nFilePointer ;
sal_Char buffer_read [ 10 ] ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . read ( buffer_read , 10 , nCount_read ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for read function: read whole content in the file to a buffer " ,
( 10 = = nFilePointer ) & & ( 0 = = strncmp ( buffer_read , pBuffer_Char , 10 ) ) ) ;
}
void read_002 ( )
{
: : osl : : File testFile ( aTmpName4 ) ;
sal_uInt64 nFilePointer ;
sal_Char buffer_read [ 26 ] ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-04-13 22:28:58 +02:00
nError1 = testFile . setPos ( osl_Pos_Absolut , 26 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . read ( buffer_read , 26 , nCount_read ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for read function: read from a special positon in the file " ,
( 52 = = nFilePointer ) & & ( 26 = = nCount_read ) & & ( 0 = = strncmp ( buffer_read , & pBuffer_Char [ 26 ] , 26 ) ) ) ;
}
CPPUNIT_TEST_SUITE ( read ) ;
CPPUNIT_TEST ( read_001 ) ;
CPPUNIT_TEST ( read_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class read
//---------------------------------------------------------------------
// testing the method
// inline RC write(const void *pBuffer, sal_uInt64 uBytesToWrite, sal_uInt64& rBytesWritten)
//---------------------------------------------------------------------
class write : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void write_001 ( )
{
: : osl : : File testFile ( aTmpName6 ) ;
sal_uInt64 nFilePointer ;
sal_Char buffer_read [ 10 ] ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//write chars into the file.
nError1 = testFile . write ( pBuffer_Char , 10 , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//get the current pointer;
nError1 = testFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//reset pointer to the begining;
2011-04-13 22:28:58 +02:00
nError1 = testFile . setPos ( osl_Pos_Absolut , 0 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . read ( buffer_read , 10 , nCount_read ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
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 " ,
( 10 = = nFilePointer ) & &
( 0 = = strncmp ( buffer_read , pBuffer_Char , 10 ) ) & &
( 10 = = nCount_write ) ) ;
}
CPPUNIT_TEST_SUITE ( write ) ;
CPPUNIT_TEST ( write_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class write
//---------------------------------------------------------------------
// testing the method
// inline RC readLine( ::rtl::ByteSequence& aSeq )
//---------------------------------------------------------------------
class readLine : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
: : rtl : : ByteSequence aSequence ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpname.
createTestFile ( aTmpName6 ) ;
//write some strings into the file.
: : osl : : File testFile ( aTmpName6 ) ;
2003-10-06 12:40:17 +00:00
sal_Char ppStrSeq [ 3 ] [ 27 ] = { " abcde \n " ,
2003-04-17 07:34:31 +00:00
" 1234567890 \n " ,
" ABCDEFGHIJKLMNOPQRSTUVWXYZ "
} ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
for ( int nCount = 0 ; nCount < 3 ; nCount + + )
{
nError1 = testFile . write ( ppStrSeq [ nCount ] , strlen ( ppStrSeq [ nCount ] ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void readLine_001 ( )
{
: : osl : : File testFile ( aTmpName6 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . readLine ( aSequence ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for readLine function: read the first line of the file. " ,
( : : osl : : FileBase : : E_None = = nError1 ) & &
( 0 = = strncmp ( ( const char * ) aSequence . getArray ( ) , pBuffer_Char , 5 ) ) ) ;
}
void readLine_002 ( )
{
: : osl : : File testFile ( aTmpName6 ) ;
sal_Bool bEOF = sal_False ;
sal_Bool * pEOF = & bEOF ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Read | osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
for ( int nCount = 0 ; nCount < 3 ; nCount + + )
{
nError1 = testFile . readLine ( aSequence ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
nError1 = testFile . isEndOfFile ( pEOF ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for readLine function: read three lines of the file and check the file pointer moving. " ,
* pEOF & &
( 0 = = strncmp ( ( const char * ) aSequence . getArray ( ) , & pBuffer_Char [ 26 ] , 26 ) ) ) ;
}
CPPUNIT_TEST_SUITE ( readLine ) ;
CPPUNIT_TEST ( readLine_001 ) ;
CPPUNIT_TEST ( readLine_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class readLine
//---------------------------------------------------------------------
// testing the method
// inline static RC copy( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL )
//---------------------------------------------------------------------
class copy : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void copy_001 ( )
{
: : osl : : File testFile ( aTmpName6 ) ;
//copy $TEMP/tmpdir/tmpname to $TEMP/tmpname.
nError1 = : : osl : : File : : copy ( aTmpName4 , aTmpName6 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-04-17 07:34:31 +00:00
deleteTestFile ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: copy file to upper directory " ,
: : osl : : FileBase : : E_EXIST = = nError1 ) ;
}
void copy_002 ( )
{
//copy $TEMP/tmpdir/tmpname to $TEMP/tmpdir.
nError1 = : : osl : : File : : copy ( aTmpName4 , aTmpName3 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: use directory as destination " ,
2003-05-27 13:19:09 +00:00
( : : osl : : FileBase : : E_ISDIR = = nError1 ) | | ( : : osl : : FileBase : : E_ACCES = = nError1 ) ) ;
2003-04-17 07:34:31 +00:00
}
void copy_003 ( )
{
//copy $TEMP/tmpdir/tmpname to $ROOT/tmpname.
nError1 = : : osl : : File : : copy ( aTmpName4 , aTmpName7 ) ;
2003-05-27 13:19:09 +00:00
# if defined (WNT )
nError1 = : : osl : : FileBase : : E_ACCES ; /// for Windows, c:/ is writtenable any way.
deleteTestFile ( aTmpName7 ) ;
# endif
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: copy to an illigal place " ,
: : osl : : FileBase : : E_ACCES = = nError1 ) ;
}
void copy_004 ( )
{
//copy $TEMP/tmpname to $TEMP/tmpdir/tmpname.
nError1 = : : osl : : File : : copy ( aTmpName6 , aTmpName4 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: copy a not exist file " ,
: : osl : : FileBase : : E_NOENT = = nError1 ) ;
}
void copy_005 ( )
{
//copy $TEMP/tmpname to $TEMP/system.path using system path.
nError1 = : : osl : : File : : copy ( aTmpName6 , aSysPath1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: copy a file using system file path " ,
: : osl : : FileBase : : E_INVAL = = nError1 ) ;
}
2004-03-19 13:48:16 +00:00
void copy_006 ( )
{
createTestFile ( aTmpName6 ) ;
File tmpFile ( aTmpName6 ) ;
2010-12-11 19:43:44 +00:00
FileBase : : RC err = tmpFile . open ( osl_File_OpenFlag_Write | osl_File_OpenFlag_Read ) ;
2007-11-20 18:28:54 +00:00
( void ) err ;
2004-03-19 13:48:16 +00:00
tmpFile . setSize ( 200 ) ;
tmpFile . close ( ) ;
//copy to new path
nError1 = : : osl : : File : : copy ( aTmpName6 , aTmpName4 ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
//check if is the new file
File newFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
newFile . open ( osl_File_OpenFlag_Write | osl_File_OpenFlag_Read ) ;
2011-04-13 22:43:55 +02:00
newFile . setPos ( osl_Pos_End , 0 ) ;
2004-03-19 13:48:16 +00:00
// CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
sal_uInt64 nFilePointer ;
nError1 = newFile . getPos ( nFilePointer ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
newFile . close ( ) ;
deleteTestFile ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: the dest file exist " ,
nFilePointer = = 200 ) ;
}
//copyLink has not been impletmented yet
void copy_007 ( )
{
# if ( defined UNX )
CPPUNIT_ASSERT_MESSAGE ( " test for copy function: source file is link file " ,
: : osl : : FileBase : : E_INVAL = = nError1 ) ;
# endif
}
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE ( copy ) ;
CPPUNIT_TEST ( copy_001 ) ;
CPPUNIT_TEST ( copy_002 ) ;
CPPUNIT_TEST ( copy_003 ) ;
CPPUNIT_TEST ( copy_004 ) ;
CPPUNIT_TEST ( copy_005 ) ;
2011-02-21 15:38:13 +00:00
CPPUNIT_TEST ( copy_006 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class copy
//---------------------------------------------------------------------
// testing the method
// inline static RC move( const ::rtl::OUString& ustrSourceFileURL, const ::rtl::OUString& ustrDestFileURL )
//---------------------------------------------------------------------
class move : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void move_001 ( )
{
//rename $TEMP/tmpdir/tmpname to $TEMP/canonical.name.
nError1 = : : osl : : File : : move ( aTmpName4 , aCanURL1 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check
: : osl : : File testFile ( aCanURL1 ) ;
2010-12-11 19:43:44 +00:00
nError2 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-04-17 07:34:31 +00:00
deleteTestFile ( aCanURL1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for move function: rename file to another directory " ,
: : osl : : FileBase : : E_EXIST = = nError2 ) ;
}
void move_002 ( )
{
//move $TEMP/tmpdir/tmpname to $TEMP/tmpdir.
nError1 = : : osl : : File : : move ( aTmpName4 , aTmpName3 ) ;
2003-11-18 15:38:22 +00:00
//returned ::osl::FileBase::E_ACCES on WNT
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for move function: use directory as destination " ,
2003-11-18 15:38:22 +00:00
( : : osl : : FileBase : : E_ACCES = = nError1 | | : : osl : : FileBase : : E_ISDIR = = nError1 ) | | ( : : osl : : FileBase : : E_EXIST = = nError1 ) ) ;
2003-04-17 07:34:31 +00:00
}
void move_003 ( )
{
//move $TEMP/tmpdir/tmpname to $ROOT/tmpname.
nError1 = : : osl : : File : : move ( aTmpName4 , aTmpName7 ) ;
2003-05-27 13:19:09 +00:00
# if defined (WNT )
nError1 = : : osl : : FileBase : : E_ACCES ; /// for Windows, c:/ is writtenable any way.
deleteTestFile ( aTmpName7 ) ;
# endif
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for move function: move to an illigal place " ,
: : osl : : FileBase : : E_ACCES = = nError1 ) ;
}
void move_004 ( )
{
//move $TEMP/tmpname to $TEMP/tmpdir/tmpname.
nError1 = : : osl : : File : : move ( aTmpName6 , aTmpName4 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for move function: move a not exist file " ,
: : osl : : FileBase : : E_NOENT = = nError1 ) ;
}
void move_005 ( )
{
//move $TEMP/tmpname to $TEMP/system.path using system path.
nError1 = : : osl : : File : : move ( aTmpName6 , aSysPath1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for move function: move a file using system file " ,
: : osl : : FileBase : : E_INVAL = = nError1 ) ;
}
void move_006 ( )
{
//move directory $TEMP/tmpname to $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName6 ) ;
nError1 = : : osl : : File : : move ( aTmpName6 , aTmpName4 ) ;
2003-11-18 15:38:22 +00:00
//move file $TEMP/tmpdir/tmpname to $TEMP/tmpname
nError2 = : : osl : : File : : move ( aTmpName4 , aTmpName6 ) ;
2003-04-17 07:34:31 +00:00
deleteTestDirectory ( aTmpName6 ) ;
2003-05-27 13:19:09 +00:00
# if defined ( WNT )
deleteTestDirectory ( aTmpName4 ) ; // in Windows, it can be moved!!!!! this is only for not influence the following test.
2003-11-18 15:38:22 +00:00
deleteTestFile ( aTmpName6 ) ;
nError1 = : : osl : : FileBase : : E_NOTDIR ;
nError2 = : : osl : : FileBase : : E_ISDIR ;
2003-05-27 13:19:09 +00:00
# endif
CPPUNIT_ASSERT_MESSAGE ( " test for move function: move a directory to an exist file with same name, did not pass in (W32) " ,
2003-11-18 15:38:22 +00:00
: : osl : : FileBase : : E_NOTDIR = = nError1 & & : : osl : : FileBase : : E_ISDIR = = nError2 ) ;
2003-04-17 07:34:31 +00:00
}
void move_007 ( )
{
//create directory $TEMP/tmpname.
createTestDirectory ( aTmpName6 ) ;
//move directory $TEMP/tmpdir to $TEMP/tmpname/tmpdir
nError1 = : : osl : : File : : move ( aTmpName3 , aTmpName8 ) ;
//check
nError2 = : : osl : : Directory : : create ( aTmpName8 ) ;
: : osl : : File : : move ( aTmpName8 , aTmpName3 ) ;
deleteTestDirectory ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for move function: move a directory to an exist file with same name " ,
( : : osl : : FileBase : : E_None = = nError1 ) & &
( : : osl : : FileBase : : E_EXIST = = nError2 ) ) ;
}
2004-03-19 13:48:16 +00:00
// oldpath and newpath are not on the same filesystem.EXDEV,no such error no on Solaris, only on linux
void move_008 ( )
{
CPPUNIT_ASSERT_MESSAGE ( " oldpath and newpath are not on the same filesystem, should error returns " ,
: : osl : : FileBase : : E_None = = nError1 ) ;
}
//bugid# 115420, after the bug fix, add the case
void move_009 ( )
{
//create directory $TEMP/tmpname.
createTestDirectory ( aTmpName6 ) ;
//create directory $TEMP/tmpname/tmpdir
createTestDirectory ( aTmpName8 ) ;
//move directory $TEMP/tmpname to $TEMP/tmpname/tmpdir/tmpname
2010-12-10 18:31:39 +01:00
rtl : : OUString newName = aTmpName8 + OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmpname " ) ) ;
2004-03-19 13:48:16 +00:00
nError1 = : : osl : : File : : move ( aTmpName3 , newName ) ;
2010-12-10 18:31:39 +01:00
//deleteTestDirectory( newName + OUString(RTL_CONSTASCII_USTRINGPARAM("/tmpname")) );
2004-03-19 13:48:16 +00:00
//deleteTestDirectory( newName );
deleteTestDirectory ( aTmpName8 ) ;
deleteTestDirectory ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for move function: move a directory to it's subdirectory " ,
: : osl : : FileBase : : E_None ! = nError1 ) ;
}
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE ( move ) ;
CPPUNIT_TEST ( move_001 ) ;
CPPUNIT_TEST ( move_002 ) ;
CPPUNIT_TEST ( move_003 ) ;
CPPUNIT_TEST ( move_004 ) ;
CPPUNIT_TEST ( move_005 ) ;
CPPUNIT_TEST ( move_006 ) ;
CPPUNIT_TEST ( move_007 ) ;
2004-03-19 13:48:16 +00:00
// CPPUNIT_TEST( move_008 );
//CPPUNIT_TEST( move_009 );
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class move
//---------------------------------------------------------------------
// testing the method
// inline static RC remove( const ::rtl::OUString& ustrFileURL )
//---------------------------------------------------------------------
class remove : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
sal_uInt64 nCount_write , nCount_read ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
//write chars into the file.
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError1 = testFile . open ( osl_File_OpenFlag_Write ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . write ( pBuffer_Char , sizeof ( pBuffer_Char ) , nCount_write ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = testFile . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void remove_001 ( )
{
//remove $TEMP/tmpdir/tmpname.
nError1 = : : osl : : File : : remove ( aTmpName4 ) ;
//check
: : osl : : File testFile ( aTmpName4 ) ;
2010-12-11 19:43:44 +00:00
nError2 = testFile . open ( osl_File_OpenFlag_Create ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: remove a file " ,
( : : osl : : FileBase : : E_None = = nError1 ) & &
( : : osl : : FileBase : : E_EXIST ! = nError2 ) ) ;
}
void remove_002 ( )
{
//remove $TEMP/tmpname.
nError1 = : : osl : : File : : remove ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: remove a file not exist " ,
( : : osl : : FileBase : : E_NOENT = = nError1 ) ) ;
}
void remove_003 ( )
{
//remove $TEMP/system/path.
nError1 = : : osl : : File : : remove ( aSysPath2 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: removing a file not using full qualified URL " ,
( : : osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
void remove_004 ( )
{
//remove $TEMP/tmpdir.
nError1 = : : osl : : File : : remove ( aTmpName3 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: remove a directory " ,
2003-05-27 13:19:09 +00:00
( : : osl : : FileBase : : E_ISDIR = = nError1 ) | | ( : : osl : : FileBase : : E_ACCES = = nError1 ) ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( remove ) ;
CPPUNIT_TEST ( remove_001 ) ;
CPPUNIT_TEST ( remove_002 ) ;
CPPUNIT_TEST ( remove_003 ) ;
CPPUNIT_TEST ( remove_004 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class remove
//---------------------------------------------------------------------
// testing the method
// inline static RC setAttributes( const ::rtl::OUString& ustrFileURL, sal_uInt64 uAttributes )
//---------------------------------------------------------------------
class setAttributes : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : DirectoryItem rItem , rItem_hidden ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void setAttributes_001 ( )
{
2011-04-20 20:35:58 +02:00
//on windows, only can set 2 attributes: osl_File_Attribute_ReadOnly, osl_File_Attribute_Hidden
2003-11-18 15:38:22 +00:00
# ifdef UNX
2003-04-17 07:34:31 +00:00
//set the file to readonly
2011-04-20 20:35:58 +02:00
nError2 = : : osl : : File : : setAttributes ( aTmpName6 , osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT ( nError2 = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
//get the file attributes
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for setAttributes function: set file attributes and get it to verify. " ,
2011-04-20 20:35:58 +02:00
( osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead ) = =
2003-04-17 07:34:31 +00:00
rFileStatus . getAttributes ( ) ) ;
2003-11-18 15:38:22 +00:00
# else
//please see GetFileAttributes
2011-04-20 20:35:58 +02:00
nError2 = : : osl : : File : : setAttributes ( aTmpName6 , osl_File_Attribute_ReadOnly ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT ( nError2 = = FileBase : : E_None ) ;
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
//get the file attributes
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-11-18 15:38:22 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
//here the file has 2 Attributes: FILE_ATTRIBUTE_READONLY and FILE_ATTRIBUTE_NORMAL,
// but FILE_ATTRIBUTE_NORMAL is valid only if used alone, so this is maybe a bug
/*::rtl::OString aString = ::rtl::OUStringToOString( aTmpName6, RTL_TEXTENCODING_ASCII_US );
DWORD dwFileAttributes = GetFileAttributes ( aString . getStr ( ) ) ;
if ( dwFileAttributes & FILE_ATTRIBUTE_NORMAL )
2011-02-06 22:57:15 +01:00
printf ( " has normal attribute " ) ;
2003-11-18 15:38:22 +00:00
if ( dwFileAttributes & FILE_ATTRIBUTE_READONLY )
2011-02-06 22:57:15 +01:00
printf ( " has readonly attribute " ) ;
2003-11-18 15:38:22 +00:00
*/
CPPUNIT_ASSERT_MESSAGE ( " test for setAttributes function: set file attributes READONLY and get it to verify. " ,
2011-04-20 20:35:58 +02:00
( osl_File_Attribute_ReadOnly & rFileStatus . getAttributes ( ) ) ! = 0 ) ;
2003-11-18 15:38:22 +00:00
# endif
}
void setAttributes_002 ( )
{
//on UNX, can not set hidden attribute to file, rename file can set the attribute
# ifdef WNT
//set the file to hidden
2011-04-20 20:35:58 +02:00
nError2 = : : osl : : File : : setAttributes ( aTmpName6 , osl_File_Attribute_Hidden ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT ( nError2 = = FileBase : : E_None ) ;
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
//get the file attributes
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_Attributes ) ;
2003-11-18 15:38:22 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for setAttributes function: set file attributes and get it to verify. " ,
2011-04-20 20:35:58 +02:00
( osl_File_Attribute_Hidden & rFileStatus . getAttributes ( ) ) ! = 0 ) ;
2003-11-18 15:38:22 +00:00
# endif
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( setAttributes ) ;
CPPUNIT_TEST ( setAttributes_001 ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_TEST ( setAttributes_002 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class setAttributes
//---------------------------------------------------------------------
// testing the method
// inline static RC setTime(
// const ::rtl::OUString& ustrFileURL,
// const TimeValue& rCreationTime,
// const TimeValue& rLastAccessTime,
// const TimeValue& rLastWriteTime )
//---------------------------------------------------------------------
class setTime : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void setTime_001 ( )
{
TimeValue * pTV_current = NULL ;
CPPUNIT_ASSERT ( ( pTV_current = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
TimeValue * pTV_creation = NULL ;
CPPUNIT_ASSERT ( ( pTV_creation = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
TimeValue * pTV_access = NULL ;
CPPUNIT_ASSERT ( ( pTV_access = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
TimeValue * pTV_modify = NULL ;
CPPUNIT_ASSERT ( ( pTV_modify = ( TimeValue * ) malloc ( sizeof ( TimeValue ) ) ) ! = NULL ) ;
//get current time
sal_Bool bOk = osl_getSystemTime ( pTV_current ) ;
CPPUNIT_ASSERT ( sal_True = = bOk ) ;
//set the file time
nError2 = : : osl : : File : : setTime ( aTmpName6 , * pTV_current , * pTV_current , * pTV_current ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError2 ) . getStr ( ) , nError2 = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
//get the file access time, creation time, modify time
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError1 ) . getStr ( ) , nError1 = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_AccessTime ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError1 ) . getStr ( ) , nError1 = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
* pTV_access = rFileStatus . getAccessTime ( ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus1 ( osl_FileStatus_Mask_CreationTime ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus1 ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError1 ) . getStr ( ) , nError1 = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
* pTV_creation = rFileStatus1 . getCreationTime ( ) ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus2 ( osl_FileStatus_Mask_ModifyTime ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus2 ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( errorToStr ( nError1 ) . getStr ( ) , nError1 = = FileBase : : E_None ) ;
2003-04-17 07:34:31 +00:00
* pTV_modify = rFileStatus2 . getModifyTime ( ) ;
2004-03-19 13:48:16 +00:00
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. " ,
2004-05-03 07:57:00 +00:00
sal_True = = t_compareTime ( pTV_access , pTV_current , delta ) ) ;
2004-03-19 13:48:16 +00:00
# if defined ( WNT )
//Unfortunately there is no way to get the creation time of a file under Unix (its a Windows only feature).
//That means the flag osl_FileStatus_Mask_CreationTime should be deprecated under Unix.
CPPUNIT_ASSERT_MESSAGE ( " test for setTime function: set creation time then get it. " ,
2004-05-03 07:57:00 +00:00
sal_True = = t_compareTime ( pTV_creation , pTV_current , delta ) ) ;
2004-03-19 13:48:16 +00:00
# endif
CPPUNIT_ASSERT_MESSAGE ( " test for setTime function: set modify time then get it. " ,
2004-05-03 07:57:00 +00:00
sal_True = = t_compareTime ( pTV_modify , pTV_current , delta ) ) ;
2003-11-18 15:38:22 +00:00
free ( pTV_current ) ;
free ( pTV_creation ) ;
free ( pTV_access ) ;
free ( pTV_modify ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( setTime ) ;
CPPUNIT_TEST ( setTime_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class setTime
2004-03-19 13:48:16 +00:00
//---------------------------------------------------------------------
// testing the method
// inline static RC sync()
//---------------------------------------------------------------------
class sync : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test case: if The file is located on a read only file system.
void sync_001 ( )
{
# ifdef UNX
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
File tmp_file ( aTmpName6 ) ;
FileBase : : RC err = tmp_file . open ( osl_File_OpenFlag_Write ) ;
CPPUNIT_ASSERT_MESSAGE ( " File open failed " , err = = FileBase : : E_None ) ;
char buffer [ 50000 ] ;
sal_uInt64 written = 0 ;
nError1 = tmp_file . write ( ( void * ) buffer , sizeof ( buffer ) , written ) ;
CPPUNIT_ASSERT_MESSAGE ( " write failed! " , nError1 = = FileBase : : E_None ) ;
//set the file to readonly
2011-04-20 20:35:58 +02:00
nError2 = : : osl : : File : : setAttributes ( aTmpName6 , osl_File_Attribute_ReadOnly | osl_File_Attribute_GrpRead | osl_File_Attribute_OwnRead | osl_File_Attribute_OthRead ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_ASSERT ( nError2 = = FileBase : : E_None ) ;
nError2 = tmp_file . sync ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " can not sync to readonly file! " , nError2 = = FileBase : : E_None ) ;
tmp_file . close ( ) ;
# endif
}
//test case:no enough space, how to create such case???see test_cpy_wrt_file.cxx::test_osl_writeFile
CPPUNIT_TEST_SUITE ( sync ) ;
CPPUNIT_TEST ( sync_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class setTime
2003-04-17 07:34:31 +00:00
// -----------------------------------------------------------------------------
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : ctors , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : open , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : close , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : setPos , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : getPos , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : isEndOfFile , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : setSize , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : read , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : write , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : readLine , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : copy , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : move , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : remove , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : setAttributes , " osl_File " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : setTime , " osl_File " ) ;
2004-03-19 13:48:16 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_File : : sync , " osl_File " ) ;
2003-04-17 07:34:31 +00:00
} // namespace osl_File
//------------------------------------------------------------------------
// Beginning of the test cases for DirectoryItem class
//------------------------------------------------------------------------
namespace osl_DirectoryItem
{
//---------------------------------------------------------------------
// testing the method
// DirectoryItem(): _pData( NULL )
//---------------------------------------------------------------------
class ctors : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void ctors_001 ( )
{
: : osl : : File testFile ( aTmpName6 ) ;
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: initialize a new instance of DirectoryItem and get an item to check. " ,
: : osl : : FileBase : : E_None = = nError1 ) ;
}
CPPUNIT_TEST_SUITE ( ctors ) ;
CPPUNIT_TEST ( ctors_001 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
//---------------------------------------------------------------------
// testing the method
// DirectoryItem( const DirectoryItem& rItem ): _pData( rItem._pData)
//---------------------------------------------------------------------
class copy_assin_Ctors : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void copy_assin_Ctors_001 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( FileBase : : E_None = = nError1 ) ;
: : osl : : DirectoryItem copyItem ( rItem ) ; //copy constructor
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError1 = copyItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy_assin_Ctors function: use copy constructor to get an item and check filename. " ,
( sal_True = = compareFileName ( rFileStatus . getFileName ( ) , aTmpName2 ) ) ) ;
}
void copy_assin_Ctors_002 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( FileBase : : E_None = = nError1 ) ;
: : osl : : DirectoryItem copyItem ;
copyItem = rItem ; //assinment operator
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError1 = copyItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for copy_assin_Ctors function: test assinment operator here since it is same as copy constructor in test way. " ,
( sal_True = = compareFileName ( rFileStatus . getFileName ( ) , aTmpName2 ) ) ) ;
}
CPPUNIT_TEST_SUITE ( copy_assin_Ctors ) ;
CPPUNIT_TEST ( copy_assin_Ctors_001 ) ;
CPPUNIT_TEST ( copy_assin_Ctors_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class copy_assin_Ctors
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool is()
//---------------------------------------------------------------------
class is : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void is_001 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
CPPUNIT_ASSERT_MESSAGE ( " test for is function: use an uninitialized instance. " ,
! rItem . is ( ) ) ;
}
void is_002 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
CPPUNIT_ASSERT ( FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for is function: use an uninitialized instance. " ,
( sal_True = = rItem . is ( ) ) ) ;
}
CPPUNIT_TEST_SUITE ( is ) ;
CPPUNIT_TEST ( is_001 ) ;
CPPUNIT_TEST ( is_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class is
//---------------------------------------------------------------------
// testing the method
// static inline RC get( const ::rtl::OUString& ustrFileURL, DirectoryItem& rItem )
//---------------------------------------------------------------------
class get : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpname.
createTestFile ( aTmpName6 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpname.
deleteTestFile ( aTmpName6 ) ;
}
// test code.
void get_001 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError2 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
//check the file name
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( nError1 = = FileBase : : E_None ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for get function: use copy constructor to get an item and check filename. " ,
( : : osl : : FileBase : : E_None = = nError2 ) & &
( sal_True = = compareFileName ( rFileStatus . getFileName ( ) , aTmpName2 ) ) ) ;
}
void get_002 ( )
{
: : osl : : DirectoryItem rItem ;
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aSysPath1 , rItem ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for get function: use a system name instead of a URL. " ,
FileBase : : E_INVAL = = nError1 ) ;
}
void get_003 ( )
{
: : osl : : DirectoryItem rItem ;
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName3 , rItem ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for get function: use a non existed file URL. " ,
FileBase : : E_NOENT = = nError1 ) ;
}
CPPUNIT_TEST_SUITE ( get ) ;
CPPUNIT_TEST ( get_001 ) ;
CPPUNIT_TEST ( get_002 ) ;
CPPUNIT_TEST ( get_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class get
//---------------------------------------------------------------------
// testing the method
// inline RC getFileStatus( FileStatus& rStatus )
//---------------------------------------------------------------------
class getFileStatus : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void getFileStatus_001 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName4 , rItem ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check the file name
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError2 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileStatus function: get file status and check filename " ,
( : : osl : : FileBase : : E_None = = nError2 ) & &
( sal_True = = compareFileName ( rFileStatus . getFileName ( ) , aTmpName2 ) ) ) ;
}
void getFileStatus_002 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName6 , rItem ) ;
//check the file name
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError2 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileStatus function: file not existed " ,
( : : osl : : FileBase : : E_INVAL = = nError2 ) ) ;
}
void getFileStatus_003 ( )
{
: : osl : : DirectoryItem rItem ; //constructor
//get the DirectoryItem.
nError1 = : : osl : : DirectoryItem : : get ( aTmpName3 , rItem ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check the file name
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError2 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getFileStatus function: get directory information " ,
( : : osl : : FileBase : : E_None = = nError2 ) & &
( sal_True = = compareFileName ( rFileStatus . getFileName ( ) , aTmpName1 ) ) ) ;
}
CPPUNIT_TEST_SUITE ( getFileStatus ) ;
CPPUNIT_TEST ( getFileStatus_001 ) ;
CPPUNIT_TEST ( getFileStatus_002 ) ;
CPPUNIT_TEST ( getFileStatus_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getFileStatus
2003-10-06 12:40:17 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_DirectoryItem : : ctors , " osl_DirectoryItem " ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_DirectoryItem : : copy_assin_Ctors , " osl_DirectoryItem " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_DirectoryItem : : is , " osl_DirectoryItem " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_DirectoryItem : : get , " osl_DirectoryItem " ) ;
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( osl_DirectoryItem : : getFileStatus , " osl_DirectoryItem " ) ;
} // namespace osl_DirectoryItem
2011-02-16 21:41:14 +00:00
//Use to deliberately silence warnings for a deliberate error
extern " C " void SAL_CALL suppressOslDebugMessage ( const sal_Char * , sal_Int32 , const sal_Char * )
{
}
2003-04-17 07:34:31 +00:00
//------------------------------------------------------------------------
// Beginning of the test cases for Directory class
//------------------------------------------------------------------------
namespace osl_Directory
{
//---------------------------------------------------------------------
// testing the method
// Directory( const ::rtl::OUString& strPath ): _pData( 0 ), _aPath( strPath )
//---------------------------------------------------------------------
class ctors : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
2004-03-19 13:48:16 +00:00
// LLA: t_print("tearDown done.\n");
2003-04-17 07:34:31 +00:00
}
// test code.
void ctors_001 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//close a directory
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError2 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: create an instance and check open and close " ,
( : : osl : : FileBase : : E_None = = nError1 ) & &
( : : osl : : FileBase : : E_None = = nError2 ) ) ;
}
void ctors_002 ( )
{
: : osl : : Directory testDirectory ( aTmpName9 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//close a directory
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError2 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for ctors function: relative URL, :-), it is also worked " ,
( : : osl : : FileBase : : E_None = = nError1 ) & &
( : : osl : : FileBase : : E_None = = nError2 ) ) ;
}
CPPUNIT_TEST_SUITE ( ctors ) ;
CPPUNIT_TEST ( ctors_001 ) ;
CPPUNIT_TEST ( ctors_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class ctors
//---------------------------------------------------------------------
// testing the method
// inline RC open()
//---------------------------------------------------------------------
class open : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void open_001 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
//check if directory is opened.
sal_Bool bOk = testDirectory . isOpen ( ) ;
//close a directory
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for open function: open a directory and check for open " ,
( sal_True = = bOk ) & &
( : : osl : : FileBase : : E_None = = nError1 ) & &
( : : osl : : FileBase : : E_None = = nError2 ) ) ;
}
void open_002 ( )
{
: : osl : : Directory testDirectory ( aTmpName6 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
if ( : : osl : : FileBase : : E_None = = nError1 )
{
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError2 ) ;
}
CPPUNIT_ASSERT_MESSAGE ( " test for open function: open a file that is not existed " ,
( : : osl : : FileBase : : E_NOENT = = nError1 ) ) ;
}
void open_003 ( )
{
2003-10-06 12:40:17 +00:00
: : osl : : Directory testDirectory ( aUserDirectorySys ) ; //constructor
2003-04-17 07:34:31 +00:00
//open a directory
nError1 = testDirectory . open ( ) ;
if ( : : osl : : FileBase : : E_None = = nError1 )
{
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError2 ) ;
}
CPPUNIT_ASSERT_MESSAGE ( " test for open function: using system path " ,
( : : osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
void open_004 ( )
{
: : osl : : Directory testDirectory ( aTmpName4 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
if ( : : osl : : FileBase : : E_None = = nError1 )
{
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError2 ) ;
}
CPPUNIT_ASSERT_MESSAGE ( " test for open function: open a file instead of a directory " ,
2003-05-27 13:19:09 +00:00
( : : osl : : FileBase : : E_NOTDIR = = nError1 ) | | ( : : osl : : FileBase : : E_ACCES ) ) ;
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( open ) ;
CPPUNIT_TEST ( open_001 ) ;
CPPUNIT_TEST ( open_002 ) ;
CPPUNIT_TEST ( open_003 ) ;
CPPUNIT_TEST ( open_004 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class open
//---------------------------------------------------------------------
// testing the method
// inline sal_Bool isOpen() { return _pData != NULL; };
//---------------------------------------------------------------------
class isOpen : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempfile in $TEMP/tmpdir/tmpname.
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
}
void tearDown ( )
{
// remove the tempfile in $TEMP/tmpdir/tmpname.
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void isOpen_001 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
//check if directory is opened.
sal_Bool bOk = testDirectory . isOpen ( ) ;
//close a directory
nError2 = testDirectory . close ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isOpen function: open a directory and check for open " ,
( sal_True = = bOk ) ) ;
}
void isOpen_002 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//check if directory is opened.
sal_Bool bOk = testDirectory . isOpen ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isOpen function: do not open a directory and check for open " ,
! ( sal_True = = bOk ) ) ;
}
CPPUNIT_TEST_SUITE ( isOpen ) ;
CPPUNIT_TEST ( isOpen_001 ) ;
CPPUNIT_TEST ( isOpen_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class isOpen
//---------------------------------------------------------------------
// testing the method
// inline RC close()
//---------------------------------------------------------------------
class close : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// initialization
void setUp ( )
{
// create a tempdirectory : $TEMP/tmpdir.
createTestDirectory ( aTmpName3 ) ;
}
void tearDown ( )
{
// remove a tempdirectory : $TEMP/tmpdir.
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void close_001 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
//close a directory
nError2 = testDirectory . close ( ) ;
//check if directory is opened.
sal_Bool bOk = testDirectory . isOpen ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isOpen function: close a directory and check for open " ,
! ( sal_True = = bOk ) ) ;
}
void close_002 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//close a directory
nError1 = testDirectory . close ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for isOpen function: close a not opened directory " ,
( : : osl : : FileBase : : E_BADF = = nError1 ) ) ;
}
CPPUNIT_TEST_SUITE ( close ) ;
CPPUNIT_TEST ( close_001 ) ;
CPPUNIT_TEST ( close_002 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class close
//---------------------------------------------------------------------
// testing the method
// inline RC reset()
//---------------------------------------------------------------------
class reset : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
// create a tempdirectory : $TEMP/tmpdir.
createTestDirectory ( aTmpName3 ) ;
// create three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
createTestFile ( aTmpName3 , aTmpName2 ) ;
createTestFile ( aTmpName3 , aTmpName1 ) ;
createTestFile ( aTmpName3 , aHidURL1 ) ;
}
void tearDown ( )
{
// remove three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
deleteTestFile ( aTmpName3 , aHidURL1 ) ;
deleteTestFile ( aTmpName3 , aTmpName1 ) ;
deleteTestFile ( aTmpName3 , aTmpName2 ) ;
// remove a tempdirectory : $TEMP/tmpdir.
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void reset_001 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//get first Item
nError1 = testDirectory . getNextItem ( rItem , 1 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-02-06 22:57:15 +01:00
//check the file name of first Item
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatusFirst ( osl_FileStatus_Mask_FileName ) ;
2011-02-06 22:57:15 +01:00
nError1 = rItem . getFileStatus ( rFileStatusFirst ) ;
2003-04-17 07:34:31 +00:00
//get second Item
2003-11-18 15:38:22 +00:00
//mindy: nError1 = testDirectory.getNextItem( rItem, 0 );
//mindy: CPPUNIT_ASSERT( ::osl::FileBase::E_None == nError1 );
2003-04-17 07:34:31 +00:00
//reset enumeration
nError2 = testDirectory . reset ( ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError2 ) ;
2003-11-18 15:38:22 +00:00
//get reseted Item, if reset does not work, getNextItem() should return the second Item (aTmpName1)
2003-04-17 07:34:31 +00:00
nError1 = testDirectory . getNextItem ( rItem , 0 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-02-06 22:57:15 +01:00
//check the file name again
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
nError1 = rItem . getFileStatus ( rFileStatus ) ;
//close a directory
nError1 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-02-06 22:57:15 +01:00
sal_Bool bOK1 , bOK2 , bOK3 ;
2003-11-18 15:38:22 +00:00
bOK1 = compareFileName ( rFileStatus . getFileName ( ) , aTmpName2 ) ;
bOK2 = compareFileName ( rFileStatus . getFileName ( ) , aHidURL1 ) ;
2011-02-06 22:57:15 +01:00
bOK3 = compareFileName ( rFileStatus . getFileName ( ) , rFileStatusFirst . getFileName ( ) ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for reset function: get two directory item, reset it, then get again, check the filename " ,
( : : osl : : FileBase : : E_None = = nError2 ) & &
2011-02-06 22:57:15 +01:00
( sal_True = = bOK1 | | bOK2 | | bOK3 ) ) ;
2003-04-17 07:34:31 +00:00
}
void reset_002 ( )
{
: : osl : : Directory testDirectory ( aTmpName6 ) ; //constructor
//close a directory
nError1 = testDirectory . reset ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for reset function: reset a non existed directory " ,
( : : osl : : FileBase : : E_NOENT = = nError1 ) ) ;
}
void reset_003 ( )
{
: : osl : : Directory testDirectory ( aTmpName4 ) ; //constructor
//close a directory
nError1 = testDirectory . reset ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for reset function: reset a file instead of a directory " ,
2003-05-27 13:19:09 +00:00
( : : osl : : FileBase : : E_NOTDIR = = nError1 ) | | ( : : osl : : FileBase : : E_NOENT = = nError1 ) ) ;
2003-04-17 07:34:31 +00:00
}
void reset_004 ( )
{
2003-10-06 12:40:17 +00:00
: : osl : : Directory testDirectory ( aUserDirectorySys ) ; //constructor
2003-04-17 07:34:31 +00:00
//close a directory
nError1 = testDirectory . reset ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for reset function: use a system path " ,
( : : osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
CPPUNIT_TEST_SUITE ( reset ) ;
CPPUNIT_TEST ( reset_001 ) ;
CPPUNIT_TEST ( reset_002 ) ;
CPPUNIT_TEST ( reset_003 ) ;
CPPUNIT_TEST ( reset_004 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class reset
//---------------------------------------------------------------------
// testing the method
// inline RC getNextItem( DirectoryItem& rItem, sal_uInt32 nHint = 0 )
//---------------------------------------------------------------------
class getNextItem : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
: : osl : : DirectoryItem rItem ;
public :
// initialization
void setUp ( )
{
// create a tempdirectory : $TEMP/tmpdir.
createTestDirectory ( aTmpName3 ) ;
// create three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
createTestFile ( aTmpName3 , aTmpName2 ) ;
createTestFile ( aTmpName3 , aTmpName1 ) ;
createTestFile ( aTmpName3 , aHidURL1 ) ;
2003-11-18 15:38:22 +00:00
2003-04-17 07:34:31 +00:00
}
void tearDown ( )
{
// remove three files : $TEMP/tmpdir/tmpname, $TEMP/tmpdir/tmpdir, $TEMP/tmpdir/hiddenfile,
deleteTestFile ( aTmpName3 , aHidURL1 ) ;
deleteTestFile ( aTmpName3 , aTmpName1 ) ;
deleteTestFile ( aTmpName3 , aTmpName2 ) ;
// remove a tempdirectory : $TEMP/tmpdir.
deleteTestDirectory ( aTmpName3 ) ;
}
// test code.
void getNextItem_001 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//check the file name
: : rtl : : OUString strFilename ;
2007-11-20 18:28:54 +00:00
sal_Bool bOk1 = sal_False ;
sal_Bool bOk2 = sal_False ;
sal_Bool bOk3 = sal_False ;
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName ) ;
2003-04-17 07:34:31 +00:00
for ( int nCount = 0 ; nCount < 3 ; nCount + + )
{
//get three Items
nError1 = testDirectory . getNextItem ( rItem , 2 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
nError1 = rItem . getFileStatus ( rFileStatus ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2011-02-06 22:57:15 +01:00
// a special order is not guaranteed. So any file may occur on any time.
// But every file name should occur only once.
if ( bOk1 = = sal_False & & compareFileName ( rFileStatus . getFileName ( ) , aTmpName1 ) )
2003-04-17 07:34:31 +00:00
{
2011-02-06 22:57:15 +01:00
bOk1 = sal_True ;
2003-04-17 07:34:31 +00:00
}
2011-02-06 22:57:15 +01:00
if ( bOk2 = = sal_False & & compareFileName ( rFileStatus . getFileName ( ) , aTmpName2 ) )
{
bOk2 = sal_True ;
}
if ( bOk3 = = sal_False & & compareFileName ( rFileStatus . getFileName ( ) , aHidURL1 ) )
{
bOk3 = sal_True ;
}
}
2003-04-17 07:34:31 +00:00
//close a directory
nError1 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getNextItem function: retrive three items and check their names. " ,
( sal_True = = bOk1 ) & & ( sal_True = = bOk2 ) & & ( sal_True = = bOk3 ) ) ;
}
void getNextItem_002 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
2011-02-16 21:41:14 +00:00
//deliberate error, suppress run-time warning
pfunc_osl_printDetailedDebugMessage pOldDebugMessageFunc = osl_setDetailedDebugMessageFunc ( & suppressOslDebugMessage ) ;
2003-04-17 07:34:31 +00:00
nError1 = testDirectory . getNextItem ( rItem ) ;
2011-02-16 21:41:14 +00:00
osl_setDetailedDebugMessageFunc ( pOldDebugMessageFunc ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for getNextItem function: retrive an item in a directory which is not opened, also test for nHint's default value. " ,
( : : osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
void getNextItem_003 ( )
{
: : osl : : Directory testDirectory ( aTmpName3 ) ; //constructor
//open a directory
nError1 = testDirectory . open ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
for ( int nCount = 0 ; nCount < 4 ; nCount + + )
{
nError2 = testDirectory . getNextItem ( rItem , 3 ) ;
}
//close a directory
nError1 = testDirectory . close ( ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getNextItem function: retrive 4 times in a directory which contain only 3 files. " ,
( : : osl : : FileBase : : E_NOENT = = nError2 ) ) ;
}
2003-11-18 15:38:22 +00:00
void getNextItem_004 ( )
{
//create a link file(can not on Windows), then check if getNextItem can get it.
# ifdef UNX
2011-02-06 22:57:15 +01:00
sal_Bool bLnkOK = sal_False ;
sal_Bool bFoundOK = sal_False ;
2003-11-18 15:38:22 +00:00
: : rtl : : OUString aUStr_LnkFileSys ( aTempDirectorySys ) , aUStr_SrcFileSys ( aTempDirectorySys ) ;
2011-02-06 22:57:15 +01:00
( aUStr_LnkFileSys + = aSlashURL ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmpdir/link.file " ) ) ;
( aUStr_SrcFileSys + = aSlashURL ) + = : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /tmpdir/tmpname " ) ) ;
2003-11-18 15:38:22 +00:00
2011-02-06 22:57:15 +01:00
: : rtl : : OString strLinkFileName , strSrcFileName ;
strLinkFileName = OUStringToOString ( aUStr_LnkFileSys , RTL_TEXTENCODING_ASCII_US ) ;
strSrcFileName = OUStringToOString ( aUStr_SrcFileSys , RTL_TEXTENCODING_ASCII_US ) ;
// create a link file and link it to file "/tmp/PID/tmpdir/tmpname"
sal_Int32 fd = symlink ( strSrcFileName . getStr ( ) , strLinkFileName . getStr ( ) ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT ( fd = = 0 ) ;
: : osl : : Directory testDirectory ( aTmpName3 ) ;
//open a directory
nError1 = testDirectory . open ( ) ;
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
2010-12-10 18:31:39 +01:00
: : rtl : : OUString aFileName ( RTL_CONSTASCII_USTRINGPARAM ( " link.file " ) ) ;
2003-11-18 15:38:22 +00:00
while ( 1 ) {
nError1 = testDirectory . getNextItem ( rItem , 4 ) ;
if ( : : osl : : FileBase : : E_None = = nError1 ) {
2011-04-13 20:54:25 +02:00
: : osl : : FileStatus rFileStatus ( osl_FileStatus_Mask_FileName | osl_FileStatus_Mask_Type ) ;
2003-11-18 15:38:22 +00:00
rItem . getFileStatus ( rFileStatus ) ;
if ( compareFileName ( rFileStatus . getFileName ( ) , aFileName ) = = sal_True )
{
2011-02-06 22:57:15 +01:00
bFoundOK = sal_True ;
2003-11-18 15:38:22 +00:00
if ( FileStatus : : Link = = rFileStatus . getFileType ( ) )
{
2011-02-06 22:57:15 +01:00
bLnkOK = sal_True ;
2003-11-18 15:38:22 +00:00
break ;
}
}
}
else
break ;
} ;
2003-12-11 11:30:40 +00:00
fd = std : : remove ( strLinkFileName . getStr ( ) ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " remove link file failed " , fd = = 0 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getNextItem function: check if can retrieve the link file name " ,
2011-02-06 22:57:15 +01:00
( bFoundOK = = sal_True ) ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getNextItem function: check if link file has file type link " ,
( bLnkOK = = sal_True ) ) ;
2003-11-18 15:38:22 +00:00
# endif
}
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE ( getNextItem ) ;
CPPUNIT_TEST ( getNextItem_001 ) ;
CPPUNIT_TEST ( getNextItem_002 ) ;
CPPUNIT_TEST ( getNextItem_003 ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_TEST ( getNextItem_004 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getNextItem
//---------------------------------------------------------------------
// testing the method
// inline static RC getVolumeInfo( const ::rtl::OUString& ustrDirectoryURL, VolumeInfo& rInfo )
//---------------------------------------------------------------------
class getVolumeInfo : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// test code.
2003-11-18 15:38:22 +00:00
void checkValidMask ( osl : : VolumeInfo const & _aVolumeInfo , sal_Int32 _nMask )
{
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_FileSystemName )
2003-04-17 07:34:31 +00:00
{
//get file system name
: : rtl : : OUString aFileSysName ( aNullURL ) ;
2003-11-18 15:38:22 +00:00
aFileSysName = _aVolumeInfo . getFileSystemName ( ) ;
2003-04-17 07:34:31 +00:00
2003-11-18 15:38:22 +00:00
sal_Bool bRes2 = compareFileName ( aFileSysName , aNullURL ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for getVolumeInfo function: getVolumeInfo of root directory. " ,
( osl : : FileBase : : E_None = = nError1 ) & &
2003-11-18 15:38:22 +00:00
( sal_False = = bRes2 ) ) ;
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_Attributes )
2003-11-18 15:38:22 +00:00
{
sal_Bool b1 = _aVolumeInfo . getRemoteFlag ( ) ;
sal_Bool b2 = _aVolumeInfo . getRemoveableFlag ( ) ;
sal_Bool b3 = _aVolumeInfo . getCompactDiscFlag ( ) ;
sal_Bool b4 = _aVolumeInfo . getFloppyDiskFlag ( ) ;
sal_Bool b5 = _aVolumeInfo . getFixedDiskFlag ( ) ;
sal_Bool b6 = _aVolumeInfo . getRAMDiskFlag ( ) ;
rtl : : OString sAttr ;
if ( b1 ) sAttr = " Remote " ;
if ( b2 ) sAttr + = " Removeable " ;
if ( b3 ) sAttr + = " CDROM " ;
if ( b4 ) sAttr + = " Floppy " ;
if ( b5 ) sAttr + = " FixedDisk " ;
if ( b6 ) sAttr + = " RAMDisk " ;
2011-02-06 22:57:15 +01:00
printf ( " Attributes: %s \n " , sAttr . getStr ( ) ) ;
2003-11-18 15:38:22 +00:00
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_TotalSpace )
2003-11-18 15:38:22 +00:00
{
// within Linux, df / * 1024 bytes is the result
sal_uInt64 nSize = _aVolumeInfo . getTotalSpace ( ) ;
2011-02-08 09:06:32 +00:00
printf ( " Total space: % " SAL_PRIuUINT64 " \n " , nSize ) ;
2003-11-18 15:38:22 +00:00
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_UsedSpace )
2003-11-18 15:38:22 +00:00
{
sal_uInt64 nSize = _aVolumeInfo . getUsedSpace ( ) ;
2011-02-08 09:06:32 +00:00
printf ( " Used space: % " SAL_PRIuUINT64 " \n " , nSize ) ;
2003-11-18 15:38:22 +00:00
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_FreeSpace )
2003-11-18 15:38:22 +00:00
{
sal_uInt64 nSize = _aVolumeInfo . getFreeSpace ( ) ;
2011-02-08 09:06:32 +00:00
printf ( " Free space: % " SAL_PRIuUINT64 " \n " , nSize ) ;
2003-11-18 15:38:22 +00:00
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_MaxNameLength )
2003-11-18 15:38:22 +00:00
{
sal_uInt32 nLength = _aVolumeInfo . getMaxNameLength ( ) ;
2011-02-08 09:06:32 +00:00
printf ( " max name length: % " SAL_PRIuUINT32 " \n " , nLength ) ;
2003-11-18 15:38:22 +00:00
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_MaxPathLength )
2003-11-18 15:38:22 +00:00
{
sal_uInt32 nLength = _aVolumeInfo . getMaxPathLength ( ) ;
2011-02-08 09:06:32 +00:00
printf ( " max path length: % " SAL_PRIuUINT32 " \n " , nLength ) ;
2003-11-18 15:38:22 +00:00
}
2011-04-11 23:19:35 +02:00
if ( _nMask = = osl_VolumeInfo_Mask_FileSystemCaseHandling )
2003-11-18 15:38:22 +00:00
{
bool bIsCase = _aVolumeInfo . isCaseSensitiveFileSystem ( ) ;
2011-02-06 22:57:15 +01:00
printf ( " filesystem case sensitive: %s \n " , bIsCase ? " yes " : " no " ) ;
2003-11-18 15:38:22 +00:00
}
}
void checkVolumeInfo ( sal_Int32 _nMask )
{
: : osl : : VolumeInfo aVolumeInfo ( _nMask ) ;
//call getVolumeInfo here
nError1 = : : osl : : Directory : : getVolumeInfo ( aVolURL1 , aVolumeInfo ) ;
// LLA: IMHO it's not a bug, if VolumeInfo is not valid, it's a feature
// LLA: CPPUNIT_ASSERT_MESSAGE("mask is not valid", sal_True == aVolumeInfo.isValid( _nMask ) );
if ( aVolumeInfo . isValid ( _nMask ) )
{
checkValidMask ( aVolumeInfo , _nMask ) ;
}
}
void getVolumeInfo_001_1 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_2 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_Attributes ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_3 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_TotalSpace ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_4 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_UsedSpace ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_5 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FreeSpace ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_6 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_MaxNameLength ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_7 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_MaxPathLength ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
}
void getVolumeInfo_001_8 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemCaseHandling ;
2003-11-18 15:38:22 +00:00
checkVolumeInfo ( mask ) ;
2003-04-17 07:34:31 +00:00
}
void getVolumeInfo_002 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
//call getVolumeInfo here
2003-11-18 15:38:22 +00:00
// LLA: rtl::OUString aRootSysURL;
// LLA: nError1 = osl::File::getFileURLFromSystemPath(aRootSys, aRootSysURL);
// LLA:
// LLA: CPPUNIT_ASSERT_MESSAGE( "can't convert root path to file url",
// LLA: ( osl::FileBase::E_NONE == nError1 ) );
2003-04-17 07:34:31 +00:00
nError1 = : : osl : : Directory : : getVolumeInfo ( aRootSys , aVolumeInfo ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for getVolumeInfo function: use system path as parameter. " ,
( osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
void getVolumeInfo_003 ( )
{
2011-04-11 23:19:35 +02:00
sal_Int32 mask = osl_VolumeInfo_Mask_FileSystemName ;
2003-04-17 07:34:31 +00:00
: : osl : : VolumeInfo aVolumeInfo ( mask ) ;
//call getVolumeInfo here
nError1 = : : osl : : Directory : : getVolumeInfo ( aTmpName3 , aVolumeInfo ) ;
2003-11-18 15:38:22 +00:00
// LLA: in Windows, it reply no error, it did not pass in (W32).
2011-07-10 14:37:36 +03:00
# if defined(UNX) && !defined(IOS)
2003-11-18 15:38:22 +00:00
CPPUNIT_ASSERT_MESSAGE ( " test for getVolumeInfo function: non-existence test. " ,
2003-04-17 07:34:31 +00:00
( osl : : FileBase : : E_NOENT = = nError1 ) ) ;
2003-11-18 15:38:22 +00:00
# endif
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( getVolumeInfo ) ;
2003-11-18 15:38:22 +00:00
CPPUNIT_TEST ( getVolumeInfo_001_1 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_2 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_3 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_4 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_5 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_6 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_7 ) ;
CPPUNIT_TEST ( getVolumeInfo_001_8 ) ;
2003-04-17 07:34:31 +00:00
CPPUNIT_TEST ( getVolumeInfo_002 ) ;
CPPUNIT_TEST ( getVolumeInfo_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class getVolumeInfo
//---------------------------------------------------------------------
// testing the method
// inline static RC create( const ::rtl::OUString& ustrDirectoryURL )
//---------------------------------------------------------------------
class create : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// test code.
void create_001 ( )
{
//create directory in $TEMP/tmpdir
nError1 = : : osl : : Directory : : create ( aTmpName3 ) ;
//check for existence
2003-05-27 13:19:09 +00:00
nError2 = : : osl : : Directory : : create ( aTmpName3 ) ;
2003-04-17 07:34:31 +00:00
//remove it
deleteTestDirectory ( aTmpName3 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for create function: create a directory and check its existence. " ,
( osl : : FileBase : : E_None = = nError1 ) & &
2003-05-27 13:19:09 +00:00
( osl : : FileBase : : E_EXIST = = nError2 ) ) ;
2003-04-17 07:34:31 +00:00
}
void create_002 ( )
{
2011-02-21 15:38:13 +00:00
# if !defined (WNT) && !defined (MACOSX) && defined (SAL_UNX)
if ( geteuid ( ) = = 0 ) //don't test if building as root
return ;
rtl : : OUString aTmpDir ;
nError1 = FileBase : : createTempFile ( NULL , NULL , & aTmpDir ) ;
CPPUNIT_ASSERT_MESSAGE ( " temp File creation failed " , osl : : FileBase : : E_None = = nError1 ) ;
nError1 = : : osl : : File : : remove ( aTmpDir ) ;
CPPUNIT_ASSERT_MESSAGE ( " temp File removal failed " , osl : : FileBase : : E_None = = nError1 ) ;
nError1 = : : osl : : Directory : : create ( aTmpDir ) ;
: : rtl : : OString sError ( " test for create function: create a directory ' " ) ;
sError + = : : rtl : : OUStringToOString ( aTmpDir , RTL_TEXTENCODING_ASCII_US ) ;
sError + = " ' and check its existence. " ;
CPPUNIT_ASSERT_MESSAGE ( sError . getStr ( ) , osl : : FileBase : : E_None = = nError1 ) ;
osl_setFileAttributes ( aTmpDir . pData , 0 ) ; //no access allowed now
//Shouldn't be possible now to create a dir underneath it
rtl : : OUString aTmpSubLevel = aTmpDir + OUString ( RTL_CONSTASCII_USTRINGPARAM ( " /notallowedhere " ) ) ;
nError1 = : : osl : : Directory : : create ( aTmpSubLevel ) ;
//allow removal
osl_setFileAttributes ( aTmpDir . pData ,
osl_File_Attribute_OwnRead |
osl_File_Attribute_OwnWrite |
osl_File_Attribute_OwnExe ) ;
deleteTestDirectory ( aTmpDir ) ;
sError = : : rtl : : OString ( " test for create function: create a directory under ' " ) ;
sError + = : : rtl : : OUStringToOString ( aTmpDir , RTL_TEXTENCODING_ASCII_US ) ;
sError + = " ' for access test. " ;
CPPUNIT_ASSERT_MESSAGE ( sError . getStr ( ) , osl : : FileBase : : E_ACCES = = nError1 ) ;
2003-05-27 13:19:09 +00:00
# endif
2003-04-17 07:34:31 +00:00
}
void create_003 ( )
{
//create directory in /tmpname
nError1 = : : osl : : Directory : : create ( aSysPath1 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for create function: create a directory using system path. " ,
( osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
CPPUNIT_TEST_SUITE ( create ) ;
CPPUNIT_TEST ( create_001 ) ;
CPPUNIT_TEST ( create_002 ) ;
CPPUNIT_TEST ( create_003 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class create
//---------------------------------------------------------------------
// testing the method
// inline static RC remove( const ::rtl::OUString& ustrDirectoryURL )
//---------------------------------------------------------------------
class remove : public CppUnit : : TestFixture
{
: : osl : : FileBase : : RC nError1 , nError2 ;
public :
// test code.
void remove_001 ( )
{
//create directory in $TEMP/tmpdir
nError1 = : : osl : : Directory : : create ( aTmpName3 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//remove it
nError1 = : : osl : : Directory : : remove ( aTmpName3 ) ;
//check for existence
: : osl : : Directory rDirectory ( aTmpName3 ) ;
nError2 = rDirectory . open ( ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: remove a directory and check its existence. " ,
( osl : : FileBase : : E_None = = nError1 ) & &
( osl : : FileBase : : E_NOENT = = nError2 ) ) ;
}
void remove_002 ( )
{
//create directory in $TEMP/tmpdir
nError1 = : : osl : : Directory : : create ( aTmpName3 ) ;
CPPUNIT_ASSERT ( : : osl : : FileBase : : E_None = = nError1 ) ;
//try to remove it by system path
nError1 = : : osl : : Directory : : remove ( aSysPath3 ) ;
//check for existence
: : osl : : Directory rDirectory ( aTmpName3 ) ;
nError2 = rDirectory . open ( ) ;
if ( osl : : FileBase : : E_NOENT ! = nError2 )
: : osl : : Directory : : remove ( aTmpName3 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: remove a directory by its system path, and check its existence. " ,
( osl : : FileBase : : E_INVAL = = nError1 ) ) ;
}
void remove_003 ( )
{
//try to remove a non-existed directory
nError1 = : : osl : : Directory : : remove ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: try to remove a non-existed directory. " ,
( osl : : FileBase : : E_NOENT = = nError1 ) ) ;
}
void remove_004 ( )
{
createTestFile ( aTmpName6 ) ;
2003-11-18 15:38:22 +00:00
sal_Bool bExist = ifFileExist ( aTmpName6 ) ;
2003-04-17 07:34:31 +00:00
//try to remove file.
nError1 = : : osl : : Directory : : remove ( aTmpName6 ) ;
deleteTestFile ( aTmpName6 ) ;
CPPUNIT_ASSERT_MESSAGE ( " test for remove function: try to remove a file but not directory. " ,
2003-11-18 15:38:22 +00:00
bExist = = sal_True & & ( ( osl : : FileBase : : E_NOTDIR = = nError1 ) | | ( osl : : FileBase : : E_NOENT = = nError1 ) ) ) ;
2003-04-17 07:34:31 +00:00
}
void remove_005 ( )
{
createTestDirectory ( aTmpName3 ) ;
createTestFile ( aTmpName4 ) ;
nError1 = : : osl : : Directory : : remove ( aTmpName3 ) ;
deleteTestFile ( aTmpName4 ) ;
deleteTestDirectory ( aTmpName3 ) ;
2011-02-06 22:57:15 +01:00
: : rtl : : OString sError = " test for remove function: try to remove a directory that is not empty. " ;
sError + = errorToStr ( nError1 ) . getStr ( ) ;
2003-12-11 11:30:40 +00:00
# if defined ( SOLARIS )
2003-11-18 15:38:22 +00:00
//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.
//EEXIST The directory contains entries other than those for "." and "..".
2011-02-06 22:57:15 +01:00
printf ( " #Solaris test \n " ) ;
CPPUNIT_ASSERT_MESSAGE ( sError . getStr ( ) , ( osl : : FileBase : : E_EXIST = = nError1 ) ) ;
2003-11-18 15:38:22 +00:00
# else
2011-02-06 22:57:15 +01:00
CPPUNIT_ASSERT_MESSAGE ( sError . getStr ( ) , ( osl : : FileBase : : E_NOTEMPTY = = nError1 ) ) ;
2003-11-18 15:38:22 +00:00
# endif
2003-04-17 07:34:31 +00:00
}
CPPUNIT_TEST_SUITE ( remove ) ;
CPPUNIT_TEST ( remove_001 ) ;
CPPUNIT_TEST ( remove_002 ) ;
CPPUNIT_TEST ( remove_003 ) ;
CPPUNIT_TEST ( remove_004 ) ;
CPPUNIT_TEST ( remove_005 ) ;
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class remove
2004-02-03 12:36:49 +00:00
//########################################
// TEST Directory::createPath
//########################################
# ifdef WNT
# define PATH_BUFFER_SIZE MAX_PATH
# else
# define PATH_BUFFER_SIZE PATH_MAX
# endif
char TEST_PATH_POSTFIX [ ] = " hello/world " ;
//########################################
OUString get_test_path ( )
{
2011-02-14 11:11:24 +01:00
static OUString test_path ;
if ( test_path . isEmpty ( ) )
{
OUString tmp ;
FileBase : : RC rc = FileBase : : getTempDirURL ( tmp ) ;
CPPUNIT_ASSERT_MESSAGE
(
" Getting the location of TMP dir failed " ,
rc = = FileBase : : E_None
) ;
OUString system_path ;
rc = FileBase : : getSystemPathFromFileURL ( tmp , system_path ) ;
CPPUNIT_ASSERT_MESSAGE
(
" Cannot convert the TMP dir to system path " ,
rc = = FileBase : : E_None
) ;
OString tmp_x ( rtl : : OUStringToOString ( system_path , RTL_TEXTENCODING_UTF8 ) ) ;
if ( tmp_x . lastIndexOf ( ' / ' ) ! = ( tmp_x . getLength ( ) - 1 ) )
tmp_x + = rtl : : OString ( ' / ' ) ;
# ifndef WNT
// FIXME would be nice to create unique dir even on Windows
tmp_x + = rtl : : OString ( " XXXXXX " ) ;
char * out = mkdtemp ( const_cast < char * > ( tmp_x . getStr ( ) ) ) ;
CPPUNIT_ASSERT_MESSAGE
(
" mkdtemp call failed " ,
out ! = NULL
) ;
tmp_x + = rtl : : OString ( ' / ' ) ;
# endif
tmp_x + = rtl : : OString ( TEST_PATH_POSTFIX ) ;
2004-02-03 12:36:49 +00:00
2011-02-14 11:11:24 +01:00
rc = FileBase : : getFileURLFromSystemPath ( rtl : : OStringToOUString ( tmp_x , RTL_TEXTENCODING_UTF8 ) , test_path ) ;
2004-02-03 12:36:49 +00:00
2011-02-14 11:11:24 +01:00
CPPUNIT_ASSERT_MESSAGE
(
" Cannot convert the system path back to an URL " ,
rc = = FileBase : : E_None
) ;
}
return test_path ;
2004-02-03 12:36:49 +00:00
}
//########################################
void rm_test_path ( const OUString & path )
{
sal_Unicode buffer [ PATH_BUFFER_SIZE ] ;
rtl_copyMemory ( buffer , path . getStr ( ) , ( path . getLength ( ) + 1 ) * sizeof ( sal_Unicode ) ) ;
sal_Int32 i = rtl_ustr_lastIndexOfChar ( buffer , ' / ' ) ;
if ( i = = path . getLength ( ) )
buffer [ i ] = 0 ;
Directory : : remove ( buffer ) ;
i = rtl_ustr_lastIndexOfChar ( buffer , ' / ' ) ;
buffer [ i ] = 0 ;
Directory : : remove ( buffer ) ;
}
//########################################
class DirCreatedObserver : public DirectoryCreationObserver
{
public :
DirCreatedObserver ( ) : i ( 0 )
{
}
2007-11-20 18:28:54 +00:00
virtual void DirectoryCreated ( const rtl : : OUString & /*aDirectoryUrl*/ )
2004-02-03 12:36:49 +00:00
{
i + + ;
} ;
int number_of_dirs_created ( ) const
{
return i ;
}
private :
int i ;
} ;
//########################################
class createPath : public CppUnit : : TestFixture
{
public :
//##########################################
createPath ( )
{ }
//##########################################
void with_relative_path ( )
{
FileBase : : RC rc = Directory : : createPath (
2010-12-10 19:09:53 +01:00
OUString ( RTL_CONSTASCII_USTRINGPARAM ( TEST_PATH_POSTFIX ) ) ) ;
2004-02-03 12:36:49 +00:00
CPPUNIT_ASSERT_MESSAGE
(
" osl_createDirectoryPath contract broken " ,
rc = = FileBase : : E_INVAL
) ;
}
//##########################################
void without_callback ( )
{
OUString tp_url = get_test_path ( ) ;
rm_test_path ( tp_url ) ;
FileBase : : RC rc = Directory : : createPath ( tp_url ) ;
CPPUNIT_ASSERT_MESSAGE
(
" osl_createDirectoryPath failed " ,
rc = = FileBase : : E_None
) ;
}
//##########################################
void with_callback ( )
{
OUString tp_url = get_test_path ( ) ;
rm_test_path ( tp_url ) ;
DirCreatedObserver * observer = new DirCreatedObserver ;
FileBase : : RC rc = Directory : : createPath ( tp_url , observer ) ;
2004-05-03 07:57:00 +00:00
int nDirs = observer - > number_of_dirs_created ( ) ;
delete observer ;
2004-02-03 12:36:49 +00:00
CPPUNIT_ASSERT_MESSAGE
(
" osl_createDirectoryPath failed " ,
2004-05-03 07:57:00 +00:00
( rc = = FileBase : : E_None ) & & ( nDirs > 0 )
2004-02-03 12:36:49 +00:00
) ;
}
2004-05-03 07:57:00 +00:00
# ifdef WNT
2004-02-03 12:36:49 +00:00
//##########################################
char * get_unused_drive_letter ( )
{
2004-05-03 07:57:00 +00:00
static char m_aBuff [ ] = " ABCDEFGHIJKLMNOPQRSTUVWXYZ " ;
2004-02-03 12:36:49 +00:00
DWORD ld = GetLogicalDrives ( ) ;
DWORD i = 4 ;
DWORD j = 2 ;
while ( ( ld & i ) & & ( i > 1 ) )
{ i = i < < 1 ; j + + ; }
if ( i > 2 )
2004-05-03 07:57:00 +00:00
return m_aBuff + j ;
2004-02-03 12:36:49 +00:00
return NULL ;
}
//##########################################
void at_invalid_logical_drive ( )
{
char * drv = get_unused_drive_letter ( ) ;
char buff [ PATH_BUFFER_SIZE ] ;
rtl_zeroMemory ( buff , sizeof ( buff ) ) ;
strncpy ( buff , drv , 1 ) ;
strcat ( buff , " : \\ " ) ;
strcat ( buff , TEST_PATH_POSTFIX ) ;
OUString path = OUString : : createFromAscii ( buff ) ;
OUString tp_url ;
FileBase : : getFileURLFromSystemPath ( path , tp_url ) ;
FileBase : : RC rc = Directory : : createPath ( tp_url ) ;
CPPUNIT_ASSERT_MESSAGE
(
" osl_createDirectoryPath doesn't fail on unused logical drive letters " ,
rc ! = FileBase : : E_None
) ;
}
//##########################################
void with_UNC_path ( )
{
2010-12-10 18:31:39 +01:00
OUString tp_unc ( RTL_CONSTASCII_USTRINGPARAM ( " \\ \\ Tra-1 \\ TRA_D \\ hello \\ world \\ " ) ) ;
2004-02-03 12:36:49 +00:00
OUString tp_url ;
FileBase : : getFileURLFromSystemPath ( tp_unc , tp_url ) ;
FileBase : : RC rc = Directory : : createPath ( tp_url ) ;
CPPUNIT_ASSERT_MESSAGE
(
" osl_createDirectoryPath fails with UNC path " ,
rc = = FileBase : : E_None
) ;
}
2004-05-03 07:57:00 +00:00
# endif /* WNT */
2004-02-03 12:36:49 +00:00
CPPUNIT_TEST_SUITE ( createPath ) ;
CPPUNIT_TEST ( with_relative_path ) ;
CPPUNIT_TEST ( without_callback ) ;
CPPUNIT_TEST ( with_callback ) ;
# ifdef WNT
CPPUNIT_TEST ( at_invalid_logical_drive ) ;
// adapt the UNC path in method createDirectoryPath_with_UNC_path
// in order to run this test successfully
//CPPUNIT_TEST(with_UNC_path);
# endif
CPPUNIT_TEST_SUITE_END ( ) ;
} ; // class createPath
2003-04-17 07:34:31 +00:00
// -----------------------------------------------------------------------------
2011-02-06 22:57:15 +01:00
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : ctors ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : open ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : isOpen ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : close ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : reset ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : getNextItem ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : getVolumeInfo ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : create ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : remove ) ;
CPPUNIT_TEST_SUITE_REGISTRATION ( osl_Directory : : createPath ) ;
2003-04-17 07:34:31 +00:00
} // namespace osl_Directory
2011-02-08 11:36:32 +01:00
CPPUNIT_PLUGIN_IMPLEMENT ( ) ;
2003-05-27 13:19:09 +00:00
2003-10-06 12:40:17 +00:00
/** get Current PID.
*/
inline : : rtl : : OUString getCurrentPID ( )
{
//~ Get current PID and turn it into OUString;
int nPID = 0 ;
# ifdef WNT
nPID = GetCurrentProcessId ( ) ;
# else
nPID = getpid ( ) ;
# endif
return ( : : rtl : : OUString : : valueOf ( ( long ) nPID ) ) ;
}
//~ do some clean up work after all test completed.
class GlobalObject
{
public :
~ GlobalObject ( )
{
try
{
//~ special clean up task in Windows and Unix seperately;
2011-04-16 09:08:29 +02:00
# if ( defined UNX )
2003-10-06 12:40:17 +00:00
//~ some clean up task for UNIX OS
;
# else
//~ some clean up task for Windows OS
//~ check if some files are in the way, remove them if necessary.
2003-11-18 15:38:22 +00:00
if ( ifFileExist ( aTmpName6 ) = = sal_True )
2003-10-06 12:40:17 +00:00
deleteTestFile ( aTmpName6 ) ;
2003-11-18 15:38:22 +00:00
if ( ifFileExist ( aTmpName4 ) = = sal_True )
2003-10-06 12:40:17 +00:00
deleteTestFile ( aTmpName4 ) ;
if ( checkDirectory ( aTmpName4 , osl_Check_Mode_Exist ) = = sal_True )
deleteTestDirectory ( aTmpName4 ) ;
2003-11-18 15:38:22 +00:00
if ( ifFileExist ( aTmpName3 ) = = sal_True )
2003-10-06 12:40:17 +00:00
deleteTestFile ( aTmpName3 ) ;
if ( checkDirectory ( aTmpName3 , osl_Check_Mode_Exist ) = = sal_True )
deleteTestDirectory ( aTmpName3 ) ;
: : rtl : : OUString aUStr ( aUserDirectoryURL ) ;
concatURL ( aUStr , aHidURL1 ) ;
2003-11-18 15:38:22 +00:00
if ( ifFileExist ( aUStr ) = = sal_True )
2003-10-06 12:40:17 +00:00
deleteTestFile ( aUStr ) ;
: : rtl : : OUString aUStr1 ( aRootURL ) ;
concatURL ( aUStr1 , aTmpName2 ) ;
2003-11-18 15:38:22 +00:00
if ( ifFileExist ( aUStr1 ) = = sal_True )
2003-10-06 12:40:17 +00:00
deleteTestFile ( aUStr1 ) ;
# endif
}
2011-06-13 15:17:59 +01:00
catch ( const CppUnit : : Exception & e )
2003-10-06 12:40:17 +00:00
{
2011-02-06 22:57:15 +01:00
printf ( " Exception caught in GlobalObject dtor(). Exception message: '%s'. Source line: %d \n " , e . what ( ) , e . sourceLine ( ) . lineNumber ( ) ) ;
2003-10-06 12:40:17 +00:00
}
catch ( . . . )
{
2011-02-06 22:57:15 +01:00
printf ( " Exception caught (...) in GlobalObject dtor() \n " ) ;
2003-10-06 12:40:17 +00:00
}
}
} ;
GlobalObject theGlobalObject ;
2010-10-14 08:30:07 +02:00
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */