diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/biomsgfw/BDBTSRC/BioTest.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/biomsgfw/BDBTSRC/BioTest.h Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,233 @@ +// Copyright (c) 2000-2009 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: +// BioTest.h +// + +#ifndef __BIOTEST_H__ +#define __BIOTEST_H__ + +#include +#include "msvtestutilsbase.h" +#include "BIODB.H" +#include +#include + +// Constants +_LIT(KBifFolderV2, "\\resource\\messaging\\Bif\\"); + + +// The following must be defined by the test exe +GLREF_D RTest test; +LOCAL_C void doTestsL(); + +// Globals +TInt TestNum = 0; +class CBioTestUtils; +CBioTestUtils* theUtils = NULL; + +//********************************** +// CBioTestUtils +//********************************** + +class CBioTestUtils : public CTestUtils + { +public: + static CBioTestUtils* NewL(RTest& aTest); + CBioTestUtils(RTest& aTest); + void Panic(TInt aPanic); + // +public: + void Start(const TDesC& aDes); + void Complete(); + void End(TInt aRet); + // + void ClearBifFoldersL(); + void ClearBifFolderL(TInt aDrive); + TBool BifInstalledL(CBIODatabase& aDatabase, TUid aId); + TBool FindFileL(TParse& aParse, const TDesC& aDir, const TDesC& aName); + // +private: + void ConstructL(); + TBool DoFindFileL(TParse& aParse, TInt aDrive, const TDesC& aDir, const TDesC& aName); + // +private: + TInt iTestNum; + }; + + +CBioTestUtils* CBioTestUtils::NewL(RTest& aTest) + { + CBioTestUtils* self = new(ELeave)CBioTestUtils(aTest); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); // self + return self; + } + +CBioTestUtils::CBioTestUtils(RTest& aTest) +: CTestUtils(aTest) + { + } + +void CBioTestUtils::ConstructL() + { + CTestUtils::ConstructL(); + + // Is there a D-drive? + TVolumeInfo info; + Test()(FileSession().Volume(info, EDriveD) == KErrNone); + } + +void CBioTestUtils::Panic(TInt) + { + Test()(EFalse); + } + +void CBioTestUtils::Start(const TDesC& aDes) + { + if (iTestNum == 0) + Test().Start(aDes); + else + Test().Next(aDes); + + TestStart(++iTestNum, aDes); + } + +void CBioTestUtils::Complete() + { + TestFinish(iTestNum, KErrNone); + } + +void CBioTestUtils::End(TInt aRet) + { + if (!aRet) + TestHarnessCompleted(); + else + TestHarnessFailed(aRet); + + Test()(aRet == KErrNone); + + if (iTestNum > 0) + Test().End(); + + Test().Close(); + } + +void CBioTestUtils::ClearBifFoldersL() + { + ClearBifFolderL(EDriveC); + ClearBifFolderL(EDriveD); + } + +void CBioTestUtils::ClearBifFolderL(TInt aDrive) + { + CFileMan* fileMan = CFileMan::NewL(FileSession()); + CleanupStack::PushL(fileMan); + + // Get drive name + TDriveUnit unit(aDrive); + TPtrC drive(unit.Name()); + + // Generate path + TParse parse; + TInt error; + + User::LeaveIfError(parse.Set(KBifFolderV2(), &drive, NULL)); + + // Delete the folder + error = fileMan->RmDir(parse.DriveAndPath()); + if (error != KErrNotFound && error != KErrPathNotFound) + User::LeaveIfError(error); + + CleanupStack::PopAndDestroy(); // fileMan + } + +TBool CBioTestUtils::BifInstalledL(CBIODatabase& aDatabase, TUid aId) + { + TInt index; + TRAPD(error, aDatabase.GetBioIndexWithMsgIDL(aId, index)); + return !error; + } + +TBool CBioTestUtils::FindFileL(TParse& aParse, const TDesC& aDir, const TDesC& aName) + { + // Check rom + if (DoFindFileL(aParse, EDriveZ, aDir, aName)) + return ETrue; + + // Check alternate drive + if (DoFindFileL(aParse, EDriveD, aDir, aName)) + return ETrue; + + // Check internal disk + if (DoFindFileL(aParse, EDriveC, aDir, aName)) + return ETrue; + + // File not found + return EFalse; + } + +TBool CBioTestUtils::DoFindFileL(TParse& aParse, TInt aDrive, const TDesC& aDir, const TDesC& aName) + { + // Generate drive name + TDriveUnit unit(aDrive); + TPtrC drive(unit.Name()); + + // Generate path and see if file exists + User::LeaveIfError(aParse.Set(drive, &aDir, &aName)); + return BaflUtils::FileExists(FileSession(), aParse.FullName()); + } + +//********************************** +// Global +//********************************** + +LOCAL_C void SetupL() + { + CActiveScheduler::Install(new(ELeave)CActiveScheduler); + + // Create test class + theUtils = CBioTestUtils::NewL(test); + } + +LOCAL_C void Close(TInt aRet) + { + if (theUtils) + { + theUtils->End(aRet); + delete theUtils; + } + + delete CActiveScheduler::Current(); + } + +LOCAL_C void doMainL() + { + SetupL(); + doTestsL(); + } + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + __ASSERT_ALWAYS(cleanup, User::Invariant()); + TRAPD(ret,doMainL()); + Close(ret); + delete cleanup; + __UHEAP_MARKEND; + return KErrNone; + } + +#endif