wvsettings20/tsrc/basic/private/TestTools/IMPSSAPSettingsStoreTestUtils.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 08:41:52 +0200
changeset 0 094583676ce7
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: TestUtils for SAP settings store module tests
*
*/


//  Include Files
#include <E32Math.h>
#include "f32file.h"
#include "IMPSSAPSettingsStoreTestUtils.h"
#include "CIMPSSAPSettingsStore.h"
#include "CIMPSSAPSettings.h"
#include "CIMPSSAPSettingsList.h"
#include "CIMPSSAPSettingsListItem.h"


//  CONSTANTS AND MACROS
//SAP strings and consts to use in filling
_LIT( KSAPName, "SAPName" );
_LIT( KDefaultSAPName, "Default SAP" );
_LIT( KSAPAddres, "SAPAddr" );
_LIT( KSAPUserId, "SAPUserId" );
_LIT( KSAPUserPassword, "SAPUserPwd" );
_LIT( KHTTPProxyAddres, "ProxyAddr" );
_LIT( KHTTPProxyUserId, "ProxyUserId" );
_LIT( KHTTPProxyUserPassword, "ProxyUserPwd" );
_LIT( KCLientId, "CLientId" );

_LIT( KServerAuthenticationUsername, "SAUsername" );
_LIT( KServerAuthenticationPassword, "SAPassword" );
_LIT( KServerAcceptedContentType, "application/vnd" );

_LIT( KKey8, "Key8" );
_LIT( KKey16, "Key16" );
_LIT( KKeyInt, "KeyInt" );

_LIT8( KOpaque8, "Value8" );
_LIT( KOpaque16, "Value16" );

const TInt KHighlevelServices = EIMPSServicesIM + EIMPSServicesPEC;

const TInt KAuthorizationMode = EIMPSAuthModeUnspecified;

const TInt KSAPPort = 100;
const TInt KHTTPProxyPort = 200;
const TInt KAP = 300;

const TInt KOpaqueInt = 1234;

//format string for SAP naming
_LIT( KNumberFormat, ": %d" );


//local data types
struct TSAPName
    {
    const TText*    iName;
    };

//Pre defined string array for SAP names
//NOTE! This must have atleast two items
LOCAL_D TSAPName const KSAPNames[] =
    {
        { _S( "abcd1" ) },
    { _S( "AAaaa" ) },
    { _S( "abcd2" ) },
    { _S( "AAAaa" ) },
    { _S( "Aaaaa" ) },
    { _S( "abcd0" ) },
    { _S( "abcde" ) },
    { _S( "kiiii" ) },
    { _S( "+*?=)" ) },
    { _S( "kkkkk" ) },
    { _S( "Oooyy" ) },
    { _S( "Öööyy" ) },
    { _S( "Äääyy" ) },
    { 0 }
    };




//---------------------------------------------------------------
// METHODS
//---------------------------------------------------------------
//
IMPSSAPSettingsStoreTestUtils::IMPSSAPSettingsStoreTestUtils()
    {
    }

IMPSSAPSettingsStoreTestUtils::~IMPSSAPSettingsStoreTestUtils()
    {
    }


//---------------------------------------------------------------
// Store deletion
//---------------------------------------------------------------
//
/*void IMPSSAPSettingsStoreTestUtils::DeleteStoresL( TUint aStoreId )
    {
    DeleteNormalStoreL( aStoreId );
    DeleteDefaultStoresL( aStoreId );
    }


void IMPSSAPSettingsStoreTestUtils::DeleteNormalStoreL( TUint aStoreId )
    {

    {
    TFileName fileName;
    AppendDbName( fileName, aStoreId );
    DoDeleteNormalFileL( fileName );
    }

    {
    TFileName fileName;
    AppendIniName( fileName, aStoreId );
    DoDeleteNormalFileL( fileName );
    }

    }
*/
/*
void IMPSSAPSettingsStoreTestUtils::DeleteDefaultStoresL( TUint aStoreId )
    {
    TFileName fileNameSearch;

        {
        TFileName dbFileName;
        AppendDbName( dbFileName, aStoreId, ETrue );
        fileNameSearch.Append( TParsePtrC( dbFileName ).Path() );
        fileNameSearch.Append( TParsePtrC( dbFileName ).NameAndExt() );
        }
    DoDeleteDefaultFilesL( fileNameSearch );

    fileNameSearch.Zero();
        {
        TFileName iniFileName;
        AppendIniName( iniFileName, aStoreId, ETrue );
        fileNameSearch.Append( TParsePtrC( iniFileName ).Path() );
        fileNameSearch.Append( TParsePtrC( iniFileName ).NameAndExt() );
        }


    DoDeleteDefaultFilesL( fileNameSearch );
    }

*/

/*
void IMPSSAPSettingsStoreTestUtils::UseDbL( TUint aStoreId,
                                          const TDesC* aSapDbToUse,
                                          const TDesC* aIniFileToUse )
    {
    DeleteNormalStoreL( aStoreId );

    if( aSapDbToUse )
        {
        TFileName sourceFile;
        sourceFile.Append( KSapDb_TestFileFolder );
        sourceFile.Append( *aSapDbToUse );

        TFileName destinationFile;
        AppendDbName( destinationFile, aStoreId, ETrue );
        CopyFileToNameL( sourceFile, destinationFile );
        }

    if( aIniFileToUse )
        {
        TFileName sourceFile;
        sourceFile.Append( KSapDb_TestFileFolder );
        sourceFile.Append( *aIniFileToUse );

        TFileName destinationFile;
        AppendIniName( destinationFile, aStoreId, ETrue );
        CopyFileToNameL( sourceFile, destinationFile );
        }
    }


void IMPSSAPSettingsStoreTestUtils::UseDefaultDbL( TUint aStoreId,
                                                 const TDesC& aSapDbToUse,
                                                 const TDesC* aIniFileToUse )
    {
    DeleteDefaultStoresL();

    {
    TFileName sourceFile;
    sourceFile.Append( KSapDb_TestFileFolder );
    sourceFile.Append( aSapDbToUse );

    TFileName destinationFile;
    destinationFile.Append( KDbDefaultFilesFolder );
    AppendDbName( destinationFile, aStoreId, EFalse );
    CopyFileToNameL( sourceFile, destinationFile );
    }

    if( aIniFileToUse )
        {
        TFileName sourceFile;
        sourceFile.Append( KSapDb_TestFileFolder );
        sourceFile.Append( *aIniFileToUse );

        TFileName destinationFile;
        destinationFile.Append( KDbDefaultFilesFolder );
        AppendIniName( destinationFile, aStoreId, EFalse );
        CopyFileToNameL( sourceFile, destinationFile );
        }
    }


//---------------------------------------------------------------
// Store size print
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::PrintStoreSizesL( TUint aStoreId )
    {
    RFs fs;
    User::LeaveIfError( fs.Connect() );
    CleanupClosePushL( fs );

    TFileName fileName;
    fileName.Append( KDbFileNameHead );
    fileName.AppendNum( aStoreId );
    fileName.Append( KDbFileNameTail );

    TParsePtr parse( fileName );
    TPtrC fileNameAndExt = parse.NameAndExt();

    TEntry entry;
    TInt err;

    err = fs.Entry( fileName, entry );
    if( err == KErrNone )
        {
        RDebug::Print( _L("%S size: %d bytes"), &fileNameAndExt, entry.iSize );
        }

    if( err == KErrNotFound )
        {
        RDebug::Print( _L("File not found.") );
        err = KErrNone;
        }
    User::LeaveIfError( err );

    CleanupStack::PopAndDestroy(); //fs
    }

*/

//---------------------------------------------------------------
// SAP name handling
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::UnigueSAPNameL( TUint& aNameIndex,
                                                    CIMPSSAPSettings& aSAP )
    {
    aNameIndex++;
    HBufC* name = HBufC::NewLC( aSAP.SAPName().Length() + 10 );
    TPtr namePtr( name->Des() );

    namePtr.Copy( aSAP.SAPName() );
    if ( namePtr.Length() > 4 )
        {
        namePtr.Delete( namePtr.Length() - 4, 4 );
        }
    namePtr.AppendFormat( KNumberFormat, aNameIndex );

    aSAP.SetSAPNameL( namePtr );

    CleanupStack::PopAndDestroy(); //name
    }



//---------------------------------------------------------------
// SAP add
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::AddSAPSettingsL( CIMPSSAPSettingsStore& aStoreToAdd,
                                                     TInt aHowMany,
                                                     TUint32& aFirstUid,
                                                     TUint32& aLastUid,
                                                     TIMPSAccessGroup aGroup )
    {
    __ASSERT_ALWAYS( ( aHowMany >= 2 ), User::Panic( _L( "Add count" ), 1 ) );

    CIMPSSAPSettings* settings = CIMPSSAPSettings::NewL();
    CleanupStack::PushL( settings );

    TBuf< 15 > sapName;

    for ( TInt ii( 0 ); ii < aHowMany; ii++ )
        {
        sapName.Zero();
        sapName.Copy( KSAPName );
        sapName.AppendFormat( KNumberFormat, ii );

        settings->Reset();
        IMPSSAPSettingsStoreTestUtils::FillContainerL( *settings, sapName );

        TUint32 uid = aStoreToAdd.StoreNewSAPL( settings, aGroup );

        if ( ii == 0 )
            {
            aFirstUid = uid; //first id
            }

        aLastUid = uid; //last id
        }

    CleanupStack::PopAndDestroy(); //settings
    }



//---------------------------------------------------------------
// SAP add
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::AddSAPSettingsL( CIMPSSAPSettingsStore& aStoreToAdd,
                                                     TInt aHowMany,
                                                     TIMPSAccessGroup aGroup )
    {
    TUint32 firstUid = 0;
    TUint32 lastUid = 0;

    AddSAPSettingsL( aStoreToAdd, aHowMany, firstUid, lastUid, aGroup );
    }



//---------------------------------------------------------------
// SAP add
//---------------------------------------------------------------
//
TInt IMPSSAPSettingsStoreTestUtils::AddSAPSettingsWithLiteralNamesL( CIMPSSAPSettingsStore& aStoreToAdd,
                                                                     TUint32& aFirstUid,
                                                                     TUint32& aLastUid,
                                                                     TIMPSAccessGroup aGroup )
    {
    CIMPSSAPSettings* settings = CIMPSSAPSettings::NewL();
    CleanupStack::PushL( settings );
    TInt ii;

    for ( ii = 0 ; KSAPNames[ ii ].iName != NULL; ii++ )
        {
        settings->Reset();
        const TPtrC name = KSAPNames[ ii ].iName;
        FillContainerL( *settings, name );

        RDebug::Print( _L( "Storing literal name: %S " ), &name );
        TUint32 uid = aStoreToAdd.StoreNewSAPL( settings, aGroup );

        if ( ii == 0 )
            {
            aFirstUid = uid; //first id
            }

        aLastUid = uid; //last id
        }

    CleanupStack::PopAndDestroy(); //settings
    return ii;
    }


//---------------------------------------------------------------
// SAP deletion
//---------------------------------------------------------------
//
TInt IMPSSAPSettingsStoreTestUtils::DeleteAllSAPSettingsL( CIMPSSAPSettingsStore& aStoreToClear )
    {
    TInt deleteCount = 0;
    CIMPSSAPSettingsList* list = CIMPSSAPSettingsList::NewLC();
    aStoreToClear.PopulateSAPSettingsListL( *list, EIMPSAccessFilterAll );

    RDebug::Print( _L( "delete all SAPCount: %d" ), aStoreToClear.SAPCountL( EIMPSAccessFilterAll ) );

    if ( aStoreToClear.SAPCountL( EIMPSAccessFilterAll ) >= 1 )
        {
        //clear the store
        const TInt listCount = list->Count();
        for ( TInt ii( 0 ); ii < listCount ; ii++ )
            {
            aStoreToClear.DeleteSAPL( ( *list )[ ii ]->Uid() );
            deleteCount++;
            }
        }

    CleanupStack::PopAndDestroy(); // list
    return deleteCount;
    }



//---------------------------------------------------------------
// SAP fill
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::RandomFillKey( TDes& aBuffer, TInt64& aSeed )
    {
    aBuffer.Zero();
    for ( TInt i( 0 ); i < aBuffer.MaxLength(); i++ )
        {
        TChar ch = Math::Rand( aSeed ) % 200 + 32;
        aBuffer.Append( ch );
        }
    }


void IMPSSAPSettingsStoreTestUtils::FillContainerL( CIMPSSAPSettings& aSettings,
                                                    const TDesC& aName )
    {
    if ( aName.Length() == 0 )
        {
        aSettings.SetSAPNameL( KSAPName );
        }
    else
        {
        aSettings.SetSAPNameL( aName );
        }

    aSettings.SetSAPAddressL( KSAPAddres );
    aSettings.SetSAPPort( KSAPPort );
    aSettings.SetSAPUserIdL( KSAPUserId );
    aSettings.SetSAPUserPasswordL( KSAPUserPassword );

    aSettings.SetHTTPProxyAddressL( KHTTPProxyAddres );
    aSettings.SetHTTPProxyUserIdL( KHTTPProxyUserId );
    aSettings.SetHTTPProxyUserPasswordL( KHTTPProxyUserPassword );
    aSettings.SetHTTPProxyPort( KHTTPProxyPort );

    aSettings.SetAccessPoint( KAP );
    aSettings.SetClientIdL( KCLientId );

    aSettings.SetHighLevelServices( KHighlevelServices );
    aSettings.SetAuthorizationMode( KAuthorizationMode );
    aSettings.SetServerAcceptedContentTypeL( KServerAcceptedContentType );
    aSettings.SetServerAuthenticationNameL( KServerAuthenticationUsername );
    aSettings.SetServerAuthenticationPasswordL( KServerAuthenticationPassword );

    aSettings.SetOpaqueDesC8( KKey8, KOpaque8 );
    aSettings.SetOpaqueDesC16( KKey16, KOpaque16 );
    aSettings.SetOpaqueInt( KKeyInt, KOpaqueInt );
    aSettings.SetAccessGroup( EIMPSIMAccessGroup );

    }

//---------------------------------------------------------------
// SAP fill
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::FillContainerPartiallyL( CIMPSSAPSettings& aSettings,
                                                             const TDesC& aName )
    {
    if ( aName.Length() == 0 )
        {
        aSettings.SetSAPNameL( KSAPName );
        }
    else
        {
        aSettings.SetSAPNameL( aName );
        }

    aSettings.SetSAPAddressL( KSAPAddres );
    aSettings.SetSAPUserPasswordL( KSAPUserPassword );

    aSettings.SetHTTPProxyUserIdL( KHTTPProxyUserId );
    aSettings.SetHTTPProxyPort( KHTTPProxyPort );
    aSettings.SetHTTPProxyUserPasswordL( KHTTPProxyUserPassword );
    aSettings.SetAccessGroup( EIMPSIMAccessGroup );
    }


//---------------------------------------------------------------
// SAP fill
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::FillContainerLongDataL( CIMPSSAPSettings& aSettings )
    {
    TTime seedtime;
    seedtime.HomeTime();

    TInt64 seed = seedtime.Int64();

    HBufC* buf = HBufC::NewLC( 128 );
    TPtr tmp = buf->Des();
    RandomFillKey( tmp, seed );

    aSettings.SetSAPNameL( *buf );

    aSettings.SetSAPAddressL( *buf );
    aSettings.SetSAPPort( KMaxTInt32 );
    aSettings.SetSAPUserIdL( *buf );
    aSettings.SetSAPUserPasswordL( *buf );

    aSettings.SetHTTPProxyAddressL( *buf );
    aSettings.SetHTTPProxyUserIdL( *buf );
    aSettings.SetHTTPProxyUserPasswordL( *buf );
    aSettings.SetHTTPProxyPort( KMaxTInt32 );

    aSettings.SetAccessPoint( KMaxTUint );
    aSettings.SetClientIdL( *buf );

    aSettings.SetServerAcceptedContentTypeL( *buf );
    aSettings.SetServerAuthenticationNameL( *buf );
    aSettings.SetServerAuthenticationPasswordL( *buf );

    aSettings.SetAccessGroup( EIMPSIMAccessGroup );

    CleanupStack::PopAndDestroy(); //buf
    }


//---------------------------------------------------------------
// SAP fill
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::FillContainerEvenLongerDataL( CIMPSSAPSettings& aSettings )
    {
    TTime seedtime;
    seedtime.HomeTime();
    TInt64 seed = seedtime.Int64();

    HBufC* buf = HBufC::NewLC( 300 );
    TPtr tmp = buf->Des();
    RandomFillKey( tmp, seed );

    aSettings.SetSAPNameL( *buf );
    aSettings.SetSAPAddressL( *buf );
    aSettings.SetSAPPort( KMaxTInt32 );
    aSettings.SetSAPUserIdL( *buf );
    aSettings.SetSAPUserPasswordL( *buf );

    aSettings.SetHTTPProxyAddressL( *buf );
    aSettings.SetHTTPProxyUserIdL( *buf );
    aSettings.SetHTTPProxyUserPasswordL( *buf );
    aSettings.SetHTTPProxyPort( KMaxTInt32 );

    aSettings.SetAccessPoint( KMaxTUint );
    aSettings.SetClientIdL( *buf );

    aSettings.SetServerAcceptedContentTypeL( *buf );
    aSettings.SetServerAuthenticationNameL( *buf );
    aSettings.SetServerAuthenticationPasswordL( *buf );
    aSettings.SetAccessGroup( EIMPSIMAccessGroup );

    CleanupStack::PopAndDestroy(); //buf
    }


//---------------------------------------------------------------
// SAP data check
//---------------------------------------------------------------
//
TBool IMPSSAPSettingsStoreTestUtils::Equals( CIMPSSAPSettings& aFirst,
                                             CIMPSSAPSettings& aSecond )
    {

    if ( aFirst.SAPName().Compare( aSecond.SAPName() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.SAPAddress().Compare( aSecond.SAPAddress() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.HTTPProxyAddress().Compare( aSecond.HTTPProxyAddress() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.SAPUserId().Compare( aSecond.SAPUserId() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.SAPUserPassword().Compare( aSecond.SAPUserPassword() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.HTTPProxyUserId().Compare( aSecond.HTTPProxyUserId() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.HTTPProxyUserPassword().Compare( aSecond.HTTPProxyUserPassword() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.SAPPort() != aSecond.SAPPort() )
        {
        return EFalse;
        }

    if ( aFirst.HTTPProxyPort() != aSecond.HTTPProxyPort() )
        {
        return EFalse;
        }

    if ( aFirst.AccessPoint() != aSecond.AccessPoint() )
        {
        return EFalse;
        }

    if ( aFirst.ClientId().Compare( aSecond.ClientId() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.HighLevelServices() != aSecond.HighLevelServices() )
        {
        return EFalse;
        }

    if ( aFirst.AuthorizationMode() != aSecond.AuthorizationMode() )
        {
        return EFalse;
        }

    if ( aFirst.ServerAuthenticationName().Compare( aSecond.ServerAuthenticationName() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.ServerAuthenticationPassword().Compare( aSecond.ServerAuthenticationPassword() ) != 0 )
        {
        return EFalse;
        }

    if ( aFirst.Protection() != aSecond.Protection() )
        {
        return EFalse;
        }

    return ETrue;
    }


/*

//---------------------------------------------------------------
// Store name access
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::AppendDbName( TFileName& aFileName,
                                                TUint aStoreId,
                                                TBool aFullPath )
    {
    if( aFullPath )
        {
        aFileName.Append( KDbFilesFolder );
        }

    aFileName.Append( KDbFileNameHead );
    aFileName.AppendNum( (TUint) aStoreId );
    aFileName.Append( KDbFileNameTail );
    }



void IMPSSAPSettingsStoreTestUtils::AppendIniName( TFileName& aFileName,
                                                 TUint aStoreId,
                                                 TBool aFullPath )
    {
    if( aFullPath )
        {
        aFileName.Append( KDbFilesFolder );
        }

    aFileName.Append( KDbIniFileNameHead );
    aFileName.AppendNum( (TUint) aStoreId );
    aFileName.Append( KDbIniFileNameTail );
    }


//---------------------------------------------------------------
// Raw file copy & delete
//---------------------------------------------------------------
//
void IMPSSAPSettingsStoreTestUtils::CopyFileToNameL( const TDesC& aSourceFile,
                                                   const TDesC& aDestinationFile )
    {
    RFs fs;
    User::LeaveIfError( fs.Connect() );
    CleanupClosePushL( fs );

    CFileMan* fileMan = CFileMan::NewL( fs );
    CleanupStack::PushL( fileMan );

    RDebug::Print( _L("Copying [%S] to [%S]"), &aSourceFile, &aDestinationFile );
    User::LeaveIfError( fileMan->Copy( aSourceFile, aDestinationFile ) );

    //make sure the file is now there
    TEntry entry;
    User::LeaveIfError( fs.Entry( aDestinationFile, entry ) );

    CleanupStack::PopAndDestroy( 2 ); //fileMan, fs
    }



void IMPSSAPSettingsStoreTestUtils::DoDeleteDefaultFilesL( const TDesC& aDefFileSearchName )
    {
    RFs fs;
    User::LeaveIfError( fs.Connect() );
    CleanupClosePushL( fs );

    CFileMan* fileMan = CFileMan::NewL( fs );
    CleanupStack::PushL( fileMan );


    TFindFile defaultDbFinder( fs );
    TInt defaultFound = defaultDbFinder.FindByDir( aDefFileSearchName, KNullDesC );
    while( defaultFound == KErrNone )
        {
        //default file found somewhere
        //try to delete it if ok
        TParsePtrC driveCheck( defaultDbFinder.File() );
        if( driveCheck.Drive().Compare( _L("C:") ) != 0 )
            {
            //found default db from somewhere else than C:
            if( driveCheck.Drive().Compare( _L("Z:") ) == 0 )
                {
                //found default from Z: ==> can't be removed EPOC code
                RDebug::Print( _L("NOTE!! Default file [%S] found from ROM!!"), &defaultDbFinder.File() );
                RDebug::Print( _L("NOTE!! Default file [%S] found from ROM!!"), &defaultDbFinder.File() );
                User::Panic( _L("Def DB on ROM"), 1 );
                }

            TInt err = fileMan->Delete( defaultDbFinder.File() );
            if( err != KErrNone )
                {
                RDebug::Print( _L("IMPSSAPSettingsStoreTestUtils:: Default file to delete [%S] failed: %d"),
                               &defaultDbFinder.File(), err );
                User::LeaveIfError( err );
                }
            }

        defaultFound = defaultDbFinder.Find();
        }

    CleanupStack::PopAndDestroy( 2 ); //fileMan, fs
    }


void IMPSSAPSettingsStoreTestUtils::DoDeleteNormalFileL( const TDesC& aFile )
    {
    RFs fs;
    User::LeaveIfError( fs.Connect() );
    CleanupClosePushL( fs );
    CFileMan* fileMan = CFileMan::NewL( fs );
    CleanupStack::PushL( fileMan );

    TInt err = fileMan->Attribs( aFile,
                                 KEntryAttNormal,
                                 KEntryAttReadOnly | KEntryAttArchive | KEntryAttSystem,
                                 TTime(0),
                                 0 );

    if( (err != KErrNone) && (err != KErrNotFound) )
        {
        RDebug::Print( _L("IMPSSAPSettingsStoreTestUtils::Normal delete [%S] failed: %d"), &aFile, err );
        User::LeaveIfError( err );
        }

    err = fileMan->Delete( aFile );
    if( (err != KErrNone) && (err != KErrNotFound) )
        {
        RDebug::Print( _L("IMPSSAPSettingsStoreTestUtils::Normal delete [%S] failed: %d"), &aFile, err );
        User::LeaveIfError( err );
        }

    CleanupStack::PopAndDestroy( 2 ); //fileMan, fs
    }
*/