installationservices/swtransactionservices/test/tintegrityservices/source/tintegrityservicesstep.cpp
branchRCL_3
changeset 26 8b7f4e561641
parent 25 7333d7932ef7
child 27 e8965914fac7
--- a/installationservices/swtransactionservices/test/tintegrityservices/source/tintegrityservicesstep.cpp	Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1487 +0,0 @@
-/*
-* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*
-*/
-
-
-/**
- @file 
- @test
- @internalTechnology
-*/
- 
-#include "tintegrityservicesstep.h"
-#include <s32file.h>
-#include "journal.h"
-#include "journalfile.h"
-
-
-/////////////////////////////////////////////////////////////////////
-// CIntegrityServicesStep
-/////////////////////////////////////////////////////////////////////
-CIntegrityServicesStepBase::CIntegrityServicesStepBase(CStsTestServer &aStsTestServer):CStsBaseTestStep(aStsTestServer)
-	{
-	}
-void CIntegrityServicesStepBase::ImplTestStepPreambleL()
-	{
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::ImplTestStepPreambleL()"));
-	__UHEAP_MARK;
-
-	// Install an active scheduler
-	CActiveScheduler* s = new (ELeave) CActiveScheduler;
-	s->Install(s);
-	
-	User::LeaveIfError(iIntegritySession.Connect());
-
-	ReadFailureSettingsL();	
-	}
-
-void CIntegrityServicesStepBase::ImplTestStepPostambleL()
-	{
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::ImplTestStepPostambleL()"));
-	// Remove the installed active scheduler
-	CActiveScheduler* s = CActiveScheduler::Current();
-	s->Install(NULL);
-	delete s;
-
-	iIntegritySession.Close();
-
-__UHEAP_MARKEND;
-
-	
-	}
-
-void CIntegrityServicesStepBase::GetStringArrayFromConfigL(const TDesC& aSectName, const TDesC& aKeyName, RArray<TPtrC>& aArray)
-	{
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::GetStringArrayFromConfigL()"));
-	_LIT(KKeyFormat, "-%02d");
-	HBufC* buf = HBufC::NewLC(aKeyName.Length() + KKeyFormat().Length());
-	TPtr ptr(buf->Des());
-	INFO_PRINTF2(_L("Parsing attribute: %S"), &aKeyName);
-
-	TInt i = 0;
-	TBool cont = ETrue;
-	do
-		{
-		++i;
-		ptr = aKeyName;
-		ptr.AppendFormat(KKeyFormat(), i);
-		TPtrC val;
-
-		cont = GetStringFromConfig(aSectName, ptr, val);
-		if (cont)
-			{
-			User::LeaveIfError(aArray.Append(val));
-			}
-		} while (cont);
-
-	INFO_PRINTF2(_L("Element count: %d"), i-1);
-	CleanupStack::PopAndDestroy(buf);
-	}
-
-TBool CIntegrityServicesStepBase::CheckFilesL()
-	{
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::CheckFilesL()"));
-	TInt result = ETrue;
-	RArray<TPtrC> fileArray;
-	CleanupClosePushL(fileArray);
-	
-	GetStringArrayFromConfigL(ConfigSection(), KPresent, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		if(FileExistsL(fileArray[file]))
-			{
-			INFO_PRINTF2(_L("%S was found"), &fileArray[file]);
-			}
-		else
-			{
-			ERR_PRINTF2(_L("%S was not found"), &fileArray[file]);
-			result = EFalse;
-			}
-		}
-	fileArray.Reset();
-	
-	GetStringArrayFromConfigL(ConfigSection(), KAbsent, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		if(FileExistsL(fileArray[file]))
-			{
-			ERR_PRINTF2(_L("%S was found"), &fileArray[file]);
-			result = EFalse;
-			}
-		else
-			{
-			INFO_PRINTF2(_L("%S was not found"), &fileArray[file]);
-			}
-		}
-	fileArray.Reset();
-	CleanupStack::PopAndDestroy(&fileArray);
-	return result;
-	}
-
-void CIntegrityServicesStepBase::ReadFailureSettingsL()
-	{		
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::ReadFailureSettings()"));
-	TPtrC failType;
-	if(!GetStringFromConfig(ConfigSection(), KFailType, failType))
-		{
-		failType.Set(KNullDesC);
-		}
-		
-	TPtrC failPosition;
-	if(!GetStringFromConfig(ConfigSection(), KFailPosition, failPosition))
-		{
-		failPosition.Set(KNullDesC);
-		}
-		
-	TPtrC failFileName;
-	if(!GetStringFromConfig(ConfigSection(), KFailFileName, failFileName))
-		{
-		failFileName.Set(KNullDesC);
-		}
-	
-	iIntegritySession.SetSimulatedFailureL(failType, failPosition, failFileName);
-	}
-	
-void CIntegrityServicesStepBase::doInstallL()
-	{
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::doInstallL()"));
-	RArray<TPtrC> fileArray;
-	CleanupClosePushL(fileArray);
-	
-	GetStringArrayFromConfigL(ConfigSection(), KRemoveFile, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		INFO_PRINTF2(_L("RemovingFile: %S"), &fileArray[file]);
-		
-		iIntegritySession.RemoveL(fileArray[file]);
-		}
-	fileArray.Reset();
-	
-	
-	GetStringArrayFromConfigL(ConfigSection(), KAddFile, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		INFO_PRINTF2(_L("AddingFile: %S"), &fileArray[file]);
-		iIntegritySession.AddL(fileArray[file]);
-		iIntegritySession.CreateNewTestFileL(fileArray[file]);
-		}
-	fileArray.Reset();
-
-	GetStringArrayFromConfigL(ConfigSection(), KTempFile, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		INFO_PRINTF2(_L("TemporaryFile: %S"), &fileArray[file]);
-		iIntegritySession.TemporaryL(fileArray[file]);
-		iIntegritySession.CreateTempTestFileL(fileArray[file]);
-		}
-	fileArray.Reset();
-
-	RArray<TPtrC> operationArray;
-	CleanupClosePushL(operationArray);
-	
-	GetStringArrayFromConfigL(ConfigSection(), KArbitraryOpFile, fileArray);
-	GetStringArrayFromConfigL(ConfigSection(), KOperation, operationArray);
-	TInt fileCount = fileArray.Count();
-	
-	if (fileCount != operationArray.Count())
-		{
-		ERR_PRINTF3(_L("Number of files (%d) does not match number of operations (%d)"), fileCount, operationArray.Count());
-		SetTestStepResult(EFail);
-		}
-	else
-		{
-		for (TInt file = 0; file < fileCount;file++)
-			{
-			if (operationArray[file].CompareF(KAddFile) == 0)
-				{
-				INFO_PRINTF2(_L("AddingFile: %S"), &fileArray[file]);
-				iIntegritySession.AddL(fileArray[file]);
-				iIntegritySession.CreateNewTestFileL(fileArray[file]);
-				}
-			else if (operationArray[file].CompareF(KRemoveFile) == 0)
-				{
-				INFO_PRINTF2(_L("RemovingFile: %S"), &fileArray[file]);
-				iIntegritySession.RemoveL(fileArray[file]);
-				}
-			else if (operationArray[file].CompareF(KTempFile) == 0)
-				{
-				INFO_PRINTF2(_L("TemporaryFile: %S"), &fileArray[file]);
-				iIntegritySession.TemporaryL(fileArray[file]);
-				iIntegritySession.CreateTempTestFileL(fileArray[file]);
-				}
-			else
-				{
-				ERR_PRINTF3(_L("Operation %S not understood, skipping file %S"), &operationArray[file], &fileArray[file]);
-				}
-			}
-		}
-	CleanupStack::PopAndDestroy(2, &fileArray);
-	
-	iIntegritySession.CommitL();
-	}
-
-void CIntegrityServicesStepBase::doRecoverL()
-	{
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::doRecoverL()"));
-	iIntegritySession.RollBackL(EFalse);
-	}
-
-void CIntegrityServicesStepBase::doCleanupL()
-	{
-	
-	INFO_PRINTF1(_L("CIntegrityServicesStepBase::doCleanupL()"));
-	RArray<TPtrC> fileArray;
-	CleanupClosePushL(fileArray);
-	
-	GetStringArrayFromConfigL(ConfigSection(), KCleanupFile, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		TRAPD(err, DeleteFileL(fileArray[file]));
-		if(err != KErrNone && err != KErrPathNotFound && err != KErrNotFound)
-			{
-			User::Leave(err);
-			}
-		}
-	fileArray.Reset();
-	GetStringArrayFromConfigL(ConfigSection(), KCleanupDirectory, fileArray);
-	for (TInt file = 0; file < fileArray.Count();file++)
-		{
-		TRAPD(err, DeleteFileL(fileArray[file]));
-		if(err != KErrNone && err != KErrPathNotFound && err != KErrNotFound)
-			{
-			User::Leave(err);
-			}
-		}
-	fileArray.Reset();
-	CleanupStack::PopAndDestroy(&fileArray);
-	}
-
-/////////////////////////////////////////////////////////////////////
-// CInstallStep
-/////////////////////////////////////////////////////////////////////
-CInstallStep::CInstallStep(CStsTestServer &aStsTestServer):CIntegrityServicesStepBase(aStsTestServer)
-	{
-	SetTestStepName(KInstall);
-	}
-
-void CInstallStep::ImplTestStepL()
-	{
-	INFO_PRINTF1(_L("CInstallStep::ImplTestStepL()"));
-	TRAPD(err, doInstallL());
-	
-	if(err == KErrNone || err == KIntegrityServicesSimulatedBatteryFailure)
-		{
-		if(CheckFilesL())
-			{
-			SetTestStepResult(EPass);
-			}
-		else
-			{
-			SetTestStepResult(EFail);
-			}
-		}
-	else
-		{
-		User::Leave(err);
-		}
-	
-	}
-
-/////////////////////////////////////////////////////////////////////
-// CRecoverStep
-/////////////////////////////////////////////////////////////////////
-CRecoverStep::CRecoverStep(CStsTestServer &aStsTestServer):CIntegrityServicesStepBase(aStsTestServer)
-	{
-	SetTestStepName(KRecover);
-	}
-
-void CRecoverStep::ImplTestStepL()
-	{
-	INFO_PRINTF1(_L("CRecoverStep::ImplTestStepL()"));
-	// begin recovery
-	TRAPD(err, doRecoverL());
-	
-	if(err == KErrNone || err == KIntegrityServicesSimulatedBatteryFailure)
-		{
-		if(CheckFilesL())
-			{
-			SetTestStepResult(EPass);
-			}
-		else
-			{
-			SetTestStepResult(EFail);
-			}
-		}
-	else
-		{
-		User::Leave(err);
-		}
-
-	
-	}
-
-/////////////////////////////////////////////////////////////////////
-// CCleanupStep
-/////////////////////////////////////////////////////////////////////
-CCleanupStep::CCleanupStep(CStsTestServer &aStsTestServer):CIntegrityServicesStepBase(aStsTestServer)
-	{
-	SetTestStepName(KCleanup);
-	}
-
-void CCleanupStep::ImplTestStepL()
-	{
-	INFO_PRINTF1(_L("CCleanupStep::ImplTestStepL()"));
-	doCleanupL();
-	
-	SetTestStepResult(EPass);
-	
-	}
-
-/////////////////////////////////////////////////////////////////////
-// CRecoverStep
-/////////////////////////////////////////////////////////////////////
-CCheckStep::CCheckStep(CStsTestServer &aStsTestServer):CIntegrityServicesStepBase(aStsTestServer)
-	{
-	SetTestStepName(KCheck);
-	}
-
-void CCheckStep::ImplTestStepL()
-	{
-	INFO_PRINTF1(_L("CCheckStep::ImplTestStepL()"));
-	// Just check for files
-	if(CheckFilesL())
-		{
-		SetTestStepResult(EPass);
-		}
-	else
-		{
-		SetTestStepResult(EFail);
-		}
-		
-	
-	}
-
-
-//---------- new unit tests developed as part of the STS framework ----------
-using namespace Usif;
-
-//define event names for logging purposes (used in journal file unit tests and journal unit tests	
-_LIT(KENone, "ENone");
-_LIT(KERemovedFile,"ERemovedFile");
-_LIT(KEBackupFile,"EBackupFile");
-_LIT(KETempFile,"ETempFile");
-_LIT(KEAddedFile,"EAddedFile");
-_LIT(KECommitted,"ECommitted");
-_LIT(KEBackupFilesRemoved,"EBackupFilesRemoved");
-_LIT(KEAddedFilesRemoved,"EAddedFilesRemoved");
-_LIT(KERemovedFilesRestored,"ERemovedFilesRestored");
-_LIT(KETempFilesRemoved, "ETempFilesRemoved");
-	
-
-const TDesC* eventNames[] = {
-				&KENone,
-				&KERemovedFile,
-				&KEBackupFile,
-				&KETempFile,
-				&KEAddedFile,
-				&KECommitted,
-				&KEBackupFilesRemoved,
-				&KEAddedFilesRemoved,
-				&KERemovedFilesRestored,
-				&KETempFilesRemoved
-				};
-
-
-const TFileMode defaultJournalFileMode = TFileMode (TFileMode(EFileWrite) | TFileMode(EFileShareAny));
-
-CJournalFileUnitTest::CJournalFileUnitTest(CStsTestServer &aStsTestServer): CStsBaseTestStep(aStsTestServer)
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KJournalFileUnitTest);
-	}
-
-CJournalFileUnitTest::~CJournalFileUnitTest()
-	{
-	delete testJournalFile;
-	iFs.Close();
-	iLoader.Close();
-	}
-
-
-void CJournalFileUnitTest::ImplTestStepPreambleL()
-/**
- @return - void code
- Override of base class virtual
- */
-	{
-	INFO_PRINTF1(_L("JournalFileUnitTest Preamble"));
-	User::LeaveIfError(iFs.Connect());
-	User::LeaveIfError(iLoader.Connect());
-	testJournalFile = CTestFile::NewL(iFs);
-	SetTestStepResult(EPass);
-	
-	}
-
-void CJournalFileUnitTest::ImplTestStepL()
-/**
- @return - void code
- Override of base class pure virtual
- */
-	{
-	INFO_PRINTF1(_L("JournalFileUnitTest in test step"));
-	SetTestStepResult(EPass);
-	
-	TPtrC journalFilePathInIni = GetTargetFilePathFromConfigL();
-	TParsePtrC journalFilePathParse(journalFilePathInIni);
-	TDriveUnit journaldrive(journalFilePathParse.Drive());
-	HBufC* targetFileName = HBufC::NewLC(KMaxFileName);
-	HBufC* backupFileName = HBufC::NewLC(KMaxFileName);
-	
-	CJournalFile* journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-
-	//feed incorrect file to the journalfile (ie: file's on other drive)
-	TPtr targetFileNameBasePtr(targetFileName->Des());
-	targetFileNameBasePtr.Append(TDriveUnit(journaldrive+1).Name());
-	targetFileNameBasePtr.Append(journalFilePathParse.Path());
-
-	TPtr targetFileNamePtr(targetFileNameBasePtr);
-	targetFileNamePtr.Append(_L("dummyadd.txt"));
-
-	TPtr targetBackupFileNamePtr(backupFileName->Des());
-
-	TInt err(0);
-	
-	TInt seekPosition(0);
-	TInt seekToEndPosition(0);
-	TIntValue intValue = {0};
-	TIntValue extraByte = {0xFF};
-
-	TRAP(err, journalFile->AddL(targetFileNamePtr));
-	if(err!=KErrBadName)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::AddL() returned incorrect error code. KErrBadName is expected %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-	targetFileNamePtr.Set(targetFileNameBasePtr);
-	targetFileNamePtr.Append(_L("dummytemp.txt"));
-	TRAP(err, journalFile->TemporaryL(targetFileNamePtr));
-	if(err!=KErrBadName)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::RemoveL() returned incorrect error code. KErrBadName is expected %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-
-	targetFileNamePtr.Set(targetFileNameBasePtr);
-	targetFileNamePtr.Append(_L("dummyremove.txt"));
-	TRAP(err, journalFile->RemoveL(targetFileNamePtr, targetBackupFileNamePtr));
-	if(err!=KErrBadName)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::RemoveL() returned incorrect error code. KErrBadName is expected %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-
-	*targetFileName = KEmptyString;
-	targetFileNameBasePtr.Set(targetFileName->Des());
-	targetFileNameBasePtr.Append(journalFilePathParse.DriveAndPath());
-
-	CleanupStack::PopAndDestroy(journalFile);
-	DeleteFileL(journalFilePathInIni);	
-//-------------------------------------------------------------------------------------	
-//Steps: 
-//	1.) create a CJournalFile object
-//	2.) set last event by invoking CJournalFile::EventL() (this sets the iLastEvent as well as writes the event value to the journal file on disk)
-//	3.) destroy object 
-//	4.) corrupt information by overwriting the event value in the file to requested invalid value
-//	5.) recreate CjournalFile object -> this will trigger CJournalFile::ReadEntryL
-//  note: the purpose of this testcase to excersise the main switch-case in CJournalFile::ReadEntryL		
-//-------------------------------------------------------------------------------------
-	
-	TIntegrityServicesEvent eventsToSet[] = {ERemovedFile, 
-											 EBackupFile, 
-											 ETempFile,
-											 EAddedFile,
-											 ECommitted,
-											 EBackupFilesRemoved,
-											 EAddedFilesRemoved,
-											 //ETempFilesRemoved,
-											 ERemovedFilesRestored,
-											 };
-	TInt numOfInvalidEvents[] = {6, //number of invalid events for ERemovedFile
-								 1, //number of invalid events for EBackupFile
-								 6, //number of invalid events for ETempFile
-								 6, //number of invalid events for EAddedFile
-								 7, //number of invalid events for ECommitted
-								 9, //number of invalid events for EBackupFilesRemoved
-								 6, //number of invalid events for EAddedFilesRemoved
-								 //ETempFilesRemoved
-								 9 //number of invalid events for ERemovedFilesRestored
-	                             };
-	TIntegrityServicesEvent invalidEvents[][10] = {{EBackupFile, ECommitted, EBackupFilesRemoved, EAddedFilesRemoved, ERemovedFilesRestored, ETempFilesRemoved}, //invalid events for ERemovedFile
-			                                        {EBackupFile}, //invalid events for EBackupFile, this is not really invalid value for EBackupFile, actually EBackupFile itself is invalid on its own in the file
-													{EBackupFile, ECommitted, EBackupFilesRemoved, EAddedFilesRemoved, ERemovedFilesRestored, ETempFilesRemoved}, //invalid events for ETempFile
-													{EBackupFile, ECommitted, EBackupFilesRemoved, EAddedFilesRemoved, ERemovedFilesRestored, ETempFilesRemoved}, //invalid events for EAddedFile
-													{ENone, EBackupFile, ECommitted, EBackupFilesRemoved, EAddedFilesRemoved, ERemovedFilesRestored, ETempFilesRemoved}, //invalid events for ECommitted
-													{ENone, ERemovedFile, EBackupFile, ETempFile, EAddedFile, EBackupFilesRemoved, EAddedFilesRemoved, ERemovedFilesRestored, ETempFilesRemoved}, //invalid events for EBackupFilesRemoved
-													{ENone, EBackupFile, EBackupFilesRemoved, EAddedFilesRemoved, ERemovedFilesRestored, ETempFilesRemoved}, //invalid events for EAddedFilesRemoved
-													//{}, //invalid events for ETempFilesRemoved
-													{ENone, ERemovedFile, EBackupFile, ETempFile, EAddedFile, ECommitted, EBackupFilesRemoved, ETempFilesRemoved, ERemovedFilesRestored} //invalid events for ERemovedFilesRestored
-	                                               };
-	
-	ASSERT(sizeof(eventsToSet)/sizeof(TIntegrityServicesEvent) == sizeof(numOfInvalidEvents)/sizeof(TInt) == sizeof(invalidEvents)/(sizeof(TIntegrityServicesEvent)*10));
-	for (TInt i=0; i<sizeof(eventsToSet)/sizeof(TIntegrityServicesEvent); ++i)
-	{
-	for(TInt j=0; j<numOfInvalidEvents[i]; ++j)
-		{
-		journalFile=0;
-		journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-		journalFile->EventL(invalidEvents[i][j]); //set last event to any of the requested invalid events (also writes it to jounral file)
-		CleanupStack::PopAndDestroy(journalFile);
-		intValue.int32 = static_cast<TInt32>(eventsToSet[i]);
-		seekPosition=0;
-		OpenJournalFileL(journalFilePathInIni, defaultJournalFileMode);
-		SeekInJournalFileL(ESeekStart, seekPosition);
-		WriteIntToJournalFileL(intValue, Mode32Bit); //write the requested event to journal file (overwrites last event set by EventL())
-		seekToEndPosition=0;
-		SeekInJournalFileL(ESeekEnd, seekToEndPosition);
-		WriteIntToJournalFileL(extraByte, Mode8Bit);
-		CloseJournalFile();
-		//force a Sync and catch the error that should be KErrCorrupt
-		journalFile=0;
-		TRAPD(err, 
-				journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-				CleanupStack::PopAndDestroy(journalFile);
-				);
-		if(err!=KErrCorrupt)
-			{
-			ERR_PRINTF4(_L("<font color=red>CJournalFile::SynchL() returned incorrect error code. KErrCorrupt is expected and %d is returned! Conditions: last event set via EventL(): %S  Event written into journal file: %S</font>"), err, eventNames[invalidEvents[i][j]], eventNames[eventsToSet[i]]);
-			SetTestStepResult(EFail);
-			}
-		DeleteFileL(journalFilePathInIni);
-		}
-	}	
-//-------------------------------------------------------------------------------------	
-//Steps: 
-//	1.) create a journal file using CJournalFile::NewLC
-//  2.) add an item via AddL() or TemporaryL()	
-//	2.) corrupt disk information in the filename written into the file
-//	3.) try to recreate journal object using CJournalFile::NewLC
-//	4.) expect KErrCorrupt
-//-------------------------------------------------------------------------------------
-
-	targetFileNamePtr.Set(targetFileNameBasePtr);
-	targetFileNamePtr.Append(_L("dummyadd_or_temp.txt"));
-	for(TInt i=0; i<2; i++)
-		{
-		//create a journal file and add an item via AddL() or TemporaryL()
-		journalFile=0;
-		journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-		if(i==0)
-			{
-			journalFile->AddL(targetFileNamePtr);
-			}
-		else if(i==1)
-			{
-			journalFile->TemporaryL(targetFileNamePtr);
-			}
-		CleanupStack::PopAndDestroy(journalFile);
-		//open journal file and corrupt it by overwriting the drive letter in the file's path
-		seekPosition=sizeof(TInt32)+1;
-		OpenJournalFileL(journalFilePathInIni, defaultJournalFileMode);
-		SeekInJournalFileL(ESeekStart, seekPosition);
-		intValue = ReadIntFromJournalFileL(Mode8Bit);
-		intValue.int8++; //corrupt drive letter (ie: 'c' ==> 'd')
-		SeekInJournalFileL(ESeekStart, seekPosition);
-		WriteIntToJournalFileL(intValue, Mode8Bit);
-		CloseJournalFile();
-		//check that CJournalFile recognizes corruption
-		journalFile=0;
-		TRAP(err, 
-				  journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-		          CleanupStack::PopAndDestroy(journalFile);
-			 );
-		if(err!=KErrCorrupt)
-			{
-			ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrCorrupt is expected and %d is returned!</font>"), err);
-			SetTestStepResult(EFail);
-			}
-		DeleteFileL(journalFilePathInIni);
-		}
-//-------------------------------------------------------------------------------------	
-//Steps: 
-//	1.) create a journal file using CJournalFile::NewLC
-//  2.) add an item via RemoveyL()	
-//	2.) corrupt disk information in various ways in the file
-//	3.) try to recreate journal object using CJournalFile::NewL
-//	4.) expect KErrCorrupt
-//-------------------------------------------------------------------------------------
-
-	journalFile=0;
-	journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-	targetFileNamePtr.Set(targetFileNameBasePtr);
-	targetFileNamePtr.Append(_L("dummyremove.txt"));
-	journalFile->RemoveL(targetFileNamePtr, targetBackupFileNamePtr);
-	CleanupStack::PopAndDestroy(journalFile);
-
-	OpenJournalFileL(journalFilePathInIni, defaultJournalFileMode);
-	seekPosition=sizeof(TInt32)+1+targetFileNamePtr.Length();
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	intValue.int32 = static_cast<TInt32>(EAddedFile); //corrupt operation: originally EBackupFile is recorded here
-	WriteIntToJournalFileL(intValue, Mode32Bit);
-	
-	//check that CJournalFile recognizes corruption
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrCorrupt)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrCorrupt is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	intValue.int32 = static_cast<TInt32>(EBackupFile); //restore original record
-	WriteIntToJournalFileL(intValue, Mode32Bit);
-
-	//check that journal file is not corrupted
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrNone)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrNone is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-
-	seekPosition=sizeof(TInt32)+1;
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	intValue = ReadIntFromJournalFileL(Mode8Bit); //read first file's drive letter
-	intValue.int8++; //corrupt drive letter (ie: 'c' ==> 'd')
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	WriteIntToJournalFileL(intValue, Mode8Bit); //write corrupt drive letter to file
-
-	//check that CJournalFile recognizes corruption
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrCorrupt)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrCorrupt is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-
-	intValue.int8--; //restore original drive letter
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	WriteIntToJournalFileL(intValue, Mode8Bit); //write original drive letter to file
-
-		
-	//check that journal file is not corrupted
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrNone)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrNone is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-
-	seekPosition=sizeof(TInt32)+1+targetFileNamePtr.Length()+sizeof(TInt32)+1;
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	intValue = ReadIntFromJournalFileL(Mode8Bit); //read second file's drive letter (backup file name)
-	intValue.int8++; //corrupt drive letter (ie: 'c' ==> 'd')
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	WriteIntToJournalFileL(intValue, Mode8Bit); //write corrupt drive letter to file
-
-	
-	//check that CJournalFile recognizes corruption
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrCorrupt)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrCorrupt is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-	
-	intValue.int8--; //restore original drive letter
-	SeekInJournalFileL(ESeekStart, seekPosition);
-	WriteIntToJournalFileL(intValue, Mode8Bit); //write original drive letter to file
-
-	//check that journal file is not corrupted
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrNone)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrNone is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-	CloseJournalFile();
-	INFO_PRINTF1(_L("Deleting journal file - Line 769"));
-	DeleteFileL(journalFilePathInIni);
-
-	
-	CreateJournalFileL(journalFilePathInIni, TFileMode(TFileMode(EFileWrite) | TFileMode(EFileShareExclusive)));
-	journalFile=0;
-	TRAP(err, 
-			journalFile = CJournalFile::NewLC(iFs, iLoader, journalFilePathInIni, journaldrive);
-    		CleanupStack::PopAndDestroy(journalFile);
-		);
-	if(err!=KErrInUse )
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournalFile::NewL() returned incorrect error code. KErrInUse is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-	CloseJournalFile();
-	INFO_PRINTF1(_L("Deleting journal file - Line 783"));
-	DeleteFileL(journalFilePathInIni);
-
-	CleanupStack::PopAndDestroy(2, targetFileName);
-	}
-
-void CJournalFileUnitTest::ImplTestStepPostambleL()
-/**
- @return - void code
- Override of base class virtual
- */
-	{
-	INFO_PRINTF1(_L("JournalFileUnitTest Postamble"));
-	delete testJournalFile;
-	testJournalFile=0;
-	iFs.Close();
-	iLoader.Close();
-	}
-
-void CJournalFileUnitTest::OpenJournalFileL(const TDesC& aFileName, TFileMode aMode)
-	{
-	testJournalFile->OpenJournalFileL(aFileName, aMode);
-	}
-
-void CJournalFileUnitTest::CreateJournalFileL(const TDesC& aFileName, TFileMode aMode)
-	{
-	testJournalFile->CreateJournalFileL(aFileName, aMode);
-	}
-
-void CJournalFileUnitTest::SeekInJournalFileL(TSeek aSeekMode, TInt &aPos)
-	{
-	testJournalFile->SeekInJournalFileL(aSeekMode, aPos);
-	}
-
-TIntValue CJournalFileUnitTest::ReadIntFromJournalFileL(TIntMode mode)
-	{
-	return testJournalFile->ReadIntFromJournalFileL(mode);
-	}
-
-void CJournalFileUnitTest::CloseJournalFile()
-	{
-	testJournalFile->CloseJournalFile();
-	}
-
-void CJournalFileUnitTest::WriteIntToJournalFileL(TIntValue value, TIntMode mode)
-	{
-	testJournalFile->WriteIntToJournalFileL(value, mode);
-	}
-
-
-
-/*static*/ CTestFile* CTestFile::NewL(RFs& aFs)
-	{
-	CTestFile* self = new(ELeave) CTestFile(aFs);
-	return self;
-	}
-
-CTestFile::CTestFile(RFs& aFs): iFs(aFs)
-	{
-	
-	}
-
-CTestFile::~CTestFile()
-	{
-	CloseJournalFile();
-	}
-
-void CTestFile::OpenJournalFileL(const TDesC& aFileName, TFileMode aMode)
-	{
-	TInt err = journalFile.Open(iFs, aFileName, aMode);
-	User::LeaveIfError(err);
-	}
-
-void CTestFile::CreateJournalFileL(const TDesC& aFileName, TFileMode aMode)
-	{
-	TInt err = iFs.MkDirAll(aFileName);
-	if(err != KErrNone && err != KErrAlreadyExists)
-		{
-		User::Leave(err);
-		}
-	err = journalFile.Create(iFs, aFileName, aMode);
-	User::LeaveIfError(err);
-	}
-
-void CTestFile::CloseJournalFile()
-	{
-	journalFile.Close();
-	}
-
-void CTestFile::WriteIntToJournalFileL(TIntValue value, TIntMode mode)
-	{
-	HBufC8* fileIOBuffer = HBufC8::NewLC(10);
-	TPtr8  fileIOBufferPtr(fileIOBuffer->Des());
-	TPckgC<TInt32> pckg(value.int32);
-	
-	switch(mode)
-		{
-		case Mode8Bit:
-		case Mode16Bit:
-		case Mode32Bit:
-			fileIOBufferPtr.Append(pckg);
-			User::LeaveIfError(journalFile.Write(fileIOBufferPtr, static_cast<TInt>(mode)));
-			break;
-		default:
-			User::Leave(KErrArgument);
-			break;
-		}
-	
-	CleanupStack::PopAndDestroy(fileIOBuffer);
-	}
-
-TIntValue CTestFile::ReadIntFromJournalFileL(TIntMode mode)
-	{
-	HBufC8* fileIOBuffer = HBufC8::NewLC(10);
-	TPtr8  fileIOBufferPtr(fileIOBuffer->Des());
-	User::LeaveIfError(journalFile.Read(fileIOBufferPtr, static_cast<TInt>(mode)));
-	TIntValue ret = {0};
-	
-	switch(mode)
-		{
-		case Mode8Bit: 
-		case Mode16Bit:
-		case Mode32Bit:
-			{
-			for(TInt i=0; i<static_cast<TInt>(mode); ++i)
-				{
-				ret.int32 |=  TInt32((*fileIOBuffer)[i]) << (8*i);
-				}
-			break;
-			}
-		default:
-			User::Leave(KErrArgument);
-			break;
-		}
-	CleanupStack::PopAndDestroy(fileIOBuffer);
-	return ret;
-	}
-	
-void CTestFile::SeekInJournalFileL(TSeek aSeekMode, TInt &aPos)
-	{
-	User::LeaveIfError(journalFile.Seek(aSeekMode, aPos));
-	}
-
-
-
-//------------------------------------------------------------------------------------------------------------
-
-CJournalFileUnitTestScenarioBase::CJournalFileUnitTestScenarioBase(CStsTestServer &aStsTestServer): CStsBaseTestStep(aStsTestServer), iCleanupNeeded(ETrue)
-	{
-	}
-
-CJournalFileUnitTestScenarioBase::~CJournalFileUnitTestScenarioBase()
-	{
-	iFs.Close();
-	iLoader.Close();
-	delete iTargetFileName;
-	delete iBackupFileName;
-	}
-
-
-void CJournalFileUnitTestScenarioBase::ImplTestStepPreambleL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestScenarioBase Preamble"));
-	iJournalFileName.Set(GetTargetFilePathFromConfigL());
-	User::LeaveIfError(iFs.Connect());
-	User::LeaveIfError(iLoader.Connect());
-	iTargetFileName = HBufC::NewL(KMaxFileName);
-	iBackupFileName = HBufC::NewL(KMaxFileName);
-	TParsePtrC journalFilePathParse(iJournalFileName);
-	TPtr ptr(iTargetFileName->Des());
-	ptr.Append(journalFilePathParse.DriveAndPath());
-	ptr.Append(_L("journalfile_oom_test_dummyfile.txt"));
-	iJournaldrive = journalFilePathParse.Drive();
-	SetTestStepResult(EPass);
-	
-	}
-
-void CJournalFileUnitTestScenarioBase::ImplTestStepL()
-	{
-	CleanupStack::PushL(TCleanupItem(&CJournalFileUnitTestScenarioBase::InTestCleanup, this));
-	ImplTestCaseScenarioL();
-	CleanupStack::PopAndDestroy(this);
-	}
-
-void CJournalFileUnitTestScenarioBase::ImplTestStepPostambleL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestScenarioBase Postamble"));
-	
-	delete iTargetFileName; 
-	iTargetFileName=0;
-	delete iBackupFileName; 
-	iBackupFileName=0;
-	iFs.Close();
-	iLoader.Close();
-	TRAP_IGNORE(DeleteFileL(iJournalFileName));
-	}
-
-/*static*/void CJournalFileUnitTestScenarioBase::InTestCleanup(TAny* aObject)
-	{
-	CJournalFileUnitTestScenarioBase* object=static_cast<CJournalFileUnitTestScenarioBase*>(aObject);
-	object->INFO_PRINTF1(_L("CJournalFileUnitTestScenarioBase::InTestCleanup()"));
-	if(object->iCleanupNeeded)
-		{
-		TRAP_IGNORE(object->DeleteFileL(object->iJournalFileName));
-		}
-	}
-
-//------------------------------------------------------------------------------------------------------------
-CJournalFileUnitTestAdd::CJournalFileUnitTestAdd(CStsTestServer &aStsTestServer): CJournalFileUnitTestScenarioBase(aStsTestServer)
-	{
-	SetTestStepName(KJournalFileUnitTestAdd);
-	}
-void CJournalFileUnitTestAdd::ImplTestCaseScenarioL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestAdd in test step"));
-	CJournalFile* journalFile = CJournalFile::NewLC(iFs, iLoader, iJournalFileName, iJournaldrive);
-	journalFile->AddL(*iTargetFileName);
-	CleanupStack::PopAndDestroy(journalFile);
-	}
-//------------------------------------------------------------------------------------------------------------
-CJournalFileUnitTestTemp::CJournalFileUnitTestTemp(CStsTestServer &aStsTestServer): CJournalFileUnitTestScenarioBase(aStsTestServer)
-	{
-	SetTestStepName(KJournalFileUnitTestTemp);
-	}
-
-void CJournalFileUnitTestTemp::ImplTestCaseScenarioL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestTemp in test step"));
-	CJournalFile* journalFile = CJournalFile::NewLC(iFs, iLoader, iJournalFileName, iJournaldrive);
-	journalFile->TemporaryL(*iTargetFileName);
-	CleanupStack::PopAndDestroy(journalFile);
-	}
-
-//------------------------------------------------------------------------------------------------------------
-CJournalFileUnitTestRemove::CJournalFileUnitTestRemove(CStsTestServer &aStsTestServer): CJournalFileUnitTestScenarioBase(aStsTestServer)
-	{
-	SetTestStepName(KJournalFileUnitTestRemove);
-	}
-
-void CJournalFileUnitTestRemove::ImplTestCaseScenarioL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestRemove in test step"));
-	TPtr backupFileNamePtr(iBackupFileName->Des());
-	CJournalFile* journalFile = CJournalFile::NewLC(iFs, iLoader, iJournalFileName, iJournaldrive);
-	journalFile->RemoveL(*iTargetFileName, backupFileNamePtr);
-	CleanupStack::PopAndDestroy(journalFile);
-	}
-//------------------------------------------------------------------------------------------------------------
-CJournalFileUnitTestRead::CJournalFileUnitTestRead(CStsTestServer &aStsTestServer): CJournalFileUnitTestScenarioBase(aStsTestServer)
-	{
-	iCleanupNeeded=EFalse;
-	SetTestStepName(KJournalFileUnitTestRead);
-	}
-
-void CJournalFileUnitTestRead::ImplTestCaseScenarioL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestRead in test step"));
-	CJournalFile* journalFile = CJournalFile::NewLC(iFs, iLoader, iJournalFileName, iJournaldrive);
-	CleanupStack::PopAndDestroy(journalFile);
-	}
-//------------------------------------------------------------------------------------------------------------
-CJournalFileUnitTestEvent::CJournalFileUnitTestEvent(CStsTestServer &aStsTestServer): CJournalFileUnitTestScenarioBase(aStsTestServer)
-	{
-	}
-
-void CJournalFileUnitTestEvent::ImplTestCaseScenarioL()
-	{
-	INFO_PRINTF1(_L("CJournalFileUnitTestEvent in test step"));
-	CJournalFile* journalFile = CJournalFile::NewLC(iFs, iLoader, iJournalFileName, iJournaldrive);
-	journalFile->EventL(ECommitted);
-	CleanupStack::PopAndDestroy(journalFile);
-	}
-//------------------------------------------------------------------------------------------------------------
-
-//------------------------------------------------------------------------------------------------------------
-CJournalUnitTest::CJournalUnitTest(CStsTestServer &aStsTestServer): CStsBaseTestStep(aStsTestServer)
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KJournalUnitTest);
-	}
-
-CJournalUnitTest::~CJournalUnitTest()
-	{
-	delete iTestFileInterface;
-	iFs.Close();
-	iLoader.Close();
-	}
-
-void CJournalUnitTest::ImplTestStepPreambleL()
-	{
-	INFO_PRINTF1(_L("JournalFileUnitTest Preamble"));
-	iJournalPathInIni.Set(GetTargetFilePathFromConfigL());
-	iTrID = GetTransactionIdFromConfigL();
-	User::LeaveIfError(iFs.Connect());
-	User::LeaveIfError(iLoader.Connect());
-	iTestFileInterface = CTestFile::NewL(iFs);
-	SetTestStepResult(EPass);
-	
-	}
-
-void CJournalUnitTest::ImplTestStepL()
-	{
-	INFO_PRINTF1(_L("JournalUnitTest in test step"));
-	SetTestStepResult(EPass);
-	TestCase1L();
-	}
-
-void CJournalUnitTest::ImplTestStepPostambleL()
-	{
-	INFO_PRINTF1(_L("JournalFileUnitTest Postamble"));
-	delete iTestFileInterface;
-	iTestFileInterface=0;
-	iFs.Close();
-	iLoader.Close();
-	}
-
-void CJournalUnitTest::TestCase1L()
-	{
-	INFO_PRINTF1(_L("JournalFileUnitTest Test Case1"));
-
-//-------------------------------------------------------------------------------------	
-//Steps: 
-//	1.) create a corrupt journal file on C drive (by writing invalid event into the file /eg: with a value of EAddedFile+1000/) 
-//	2.) Create a journal
-//	3.) Add a file to the journal on C drive by invoking CJounral::AddL() 
-//	4.) this will create a new journal file object representing journal activity on drive C, however due to the corrupt file being already on the C drive CJournalFile::NewLC will throw KErrCorrupt
-//  5.) expect KErrCorrupt	
-//  note: the purpose of this testcase to excersise the conditional branches in CJournal::PrepareToWriteL		
-//-------------------------------------------------------------------------------------
-	
-	TInt err=0;
-	TDriveUnit driveUnitC(KDriveLetterC);
-	TDriveUnit driveUnitE(KDriveLetterE);
-	
-	
-	HBufC* journalFileName = HBufC::NewLC(KMaxFileName);
-	HBufC* targetFileName = HBufC::NewLC(KMaxFileName);
-	
-	TPtr journalFileNamePtr(journalFileName->Des());
-	journalFileNamePtr.Append(driveUnitC.Name());
-	CJournal::CreateJournalFileNameL(iTrID, iJournalPathInIni, journalFileNamePtr); 
-	
-	//create file path base (eg: drive:\path\)
-	TPtr targetFileNameBasePtr(targetFileName->Des());
-	targetFileNameBasePtr.Append(driveUnitC.Name());
-	targetFileNameBasePtr.Append(iJournalPathInIni);
-	
-	//open up the file via the test file interface (for writing corrupt data)
-	iTestFileInterface->CreateJournalFileL(journalFileNamePtr, defaultJournalFileMode);
-	TInt seekPosition=0;
-	TIntValue intValue = {0};
-	intValue.int32=static_cast<TInt32>(EAddedFile)+1000; //corrupt data in file (eg: write operation value to an invalid value)
-	//corrupt data in journal file
-	iTestFileInterface->SeekInJournalFileL(ESeekStart, seekPosition);
-	iTestFileInterface->WriteIntToJournalFileL(intValue, Mode32Bit);
-	iTestFileInterface->CloseJournalFile();
-
-	TPtr targetFileNamePtr(targetFileNameBasePtr);
-	targetFileNamePtr.Append(_L("dummyadd.txt"));
-	
-	//create a journal and add a file on C drive: that will force CJournalFile to read in and process the  
-	//previously created corrupt file. As the file contains corrupt information CJournalFile construction is expected to fail with KErrCorrupt 
-	CJournal* journal = CJournal::NewLC(iFs, iLoader, iTrID, iJournalPathInIni);
-	TRAP(err, journal->AddL(targetFileNamePtr));
-	if(err!=KErrCorrupt)
-		{
-		ERR_PRINTF2(_L("<font color=red>CJournal::AddL() returned incorrect error code. KErrCorrupt is expected and %d is returned!</font>"), err);
-		SetTestStepResult(EFail);
-		}
-	CleanupStack::PopAndDestroy(journal); journal=0;
-
-	//clean up: delete created journal file and drive file (.drv)
-	DeleteFileL(*journalFileName);
-	//reuse targetFileName buffer to create .drv filename to delete that file
-	*targetFileName=KEmptyString;
-	targetFileNamePtr.Set(targetFileName->Des());
-	CJournal::CreateDrvFileNameL(iTrID, iJournalPathInIni, targetFileNamePtr);
-	TRAP_IGNORE(DeleteFileL(targetFileNamePtr)); //clean up .drv file in case it's been created but avoid causing leave in case it hasn't 
-	
-	CleanupStack::PopAndDestroy(targetFileName);
-	CleanupStack::PopAndDestroy(journalFileName);
-	}
-
-//------------------------------------------------------------------------------------------------------------
-
-
-CJournalUnitTestScenarioBase::CJournalUnitTestScenarioBase(CStsTestServer &aStsTestServer): CStsBaseTestStep(aStsTestServer) 
-	{
-	iDriveUnitC = _L("c"); 
-	iDriveUnitE = _L("e");
-	}
-
-CJournalUnitTestScenarioBase::~CJournalUnitTestScenarioBase()
-	{
-	iFs.Close();
-	iLoader.Close();
-	delete iTargetFileName;
-	delete iJournalFileName;
-	delete iDrvFileName;
-	delete iBackupFileName;
-	}
-
-void CJournalUnitTestScenarioBase::ImplTestStepPreambleL()
-	{
-	INFO_PRINTF1(_L("CJournalUnitTestScenarioBase::ImplTestStepPreambleL()"));
-	iJournalPathInIni.Set(GetTargetFilePathFromConfigL());
-	iTrID = GetTransactionIdFromConfigL();
-	User::LeaveIfError(iFs.Connect());
-	User::LeaveIfError(iLoader.Connect());
-	iTargetFileName = HBufC::NewL(KMaxFileName);
-	iJournalFileName = HBufC::NewL(KMaxFileName);
-	iDrvFileName = HBufC::NewL(KMaxFileName);
-	iBackupFileName = HBufC::NewL(KMaxFileName);
-
-	TPtr ptr(iJournalFileName->Des());
-	ptr.Append(iDriveUnitC.Name());
-	ptr.Append(iJournalPathInIni);
-	ptr.AppendNumUC(iTrID, EHex);
-	ptr.Append(KKournalFileExt);
-	
-	ptr.Set(iTargetFileName->Des());
-	ptr.Append(iDriveUnitC.Name());
-	ptr.Append(iJournalPathInIni);
-
-	ptr.Set(iDrvFileName->Des());
-	CJournal::CreateDrvFileNameL(iTrID, iJournalPathInIni, ptr);
-
-	SetTestStepResult(EPass);
-	}
-
-void CJournalUnitTestScenarioBase::ImplTestStepL()
-	{
-	INFO_PRINTF1(_L("CJournalUnitTestScenarioBase::ImplTestStepL()"));
-
-	TPtr basePathPtr(iTargetFileName->Des());
-	TPtr fileNamePtr(basePathPtr);
-	TCleanupItem inTestCleanupItem(&CJournalUnitTestScenarioBase::InTestCleanUp, this);
-	CleanupStack::PushL(inTestCleanupItem);
-
-	CJournal* journal = CJournal::NewLC(iFs, iLoader, iTrID, iJournalPathInIni);
-	
-	*iBackupFileName=KEmptyString;
-	TPtr backupFileNamePtr(iBackupFileName->Des());
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("journal_oom_test_dummyremovefile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	journal->RemoveL(fileNamePtr, backupFileNamePtr);
-	*iBackupFileName=KEmptyString;
-	backupFileNamePtr.Set(iBackupFileName->Des());
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	journal->RemoveL(fileNamePtr, backupFileNamePtr);
-	
-	  
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("journal_oom_test_dummytempfile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	journal->TemporaryL(fileNamePtr);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	journal->TemporaryL(fileNamePtr);
-	
-	
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("journal_oom_test_dummyaddfile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	journal->AddL(fileNamePtr);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	journal->AddL(fileNamePtr);
-	  
-	ScenarioEndL(journal);
-	CleanupStack::PopAndDestroy(journal);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-void CJournalUnitTestScenarioBase::ImplTestStepPostambleL()
-	{
-	INFO_PRINTF1(_L("CJournalUnitTestScenarioBase::ImplTestStepPostambleL()"));
-	delete iTargetFileName;
-	iTargetFileName=0;
-	delete iJournalFileName;
-	iJournalFileName=0;
-	delete iDrvFileName;
-	iDrvFileName=0;
-	delete iBackupFileName;
-	iBackupFileName=0;
-	iFs.Close();
-	iLoader.Close();
-	}
-
-/*static*/ void CJournalUnitTestScenarioBase::InTestCleanUp(TAny* aObject)
-	{
-	CJournalUnitTestScenarioBase* object=static_cast<CJournalUnitTestScenarioBase*>(aObject);
-	object->INFO_PRINTF1(_L("CJournalUnitTestScenarioBase::InTestCleanUp()"));
-
-	TPtr ptr(object->iJournalFileName->Des());
-	ptr.Replace(0, 2, object->iDriveUnitC.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete journal file on C drive
-	ptr.Replace(0, 2, object->iDriveUnitE.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete journal file on E drive
-	TRAP_IGNORE(object->DeleteFileL(*(object->iDrvFileName))); //delete drv file on system drive
-	}
-
-//------------------------------------------------------------------------------------------------------------
-
-CJournalUnitTestInstall::CJournalUnitTestInstall(CStsTestServer &aStsTestServer): CJournalUnitTestScenarioBase(aStsTestServer)
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KJournalUnitTestInstall);
-	}
-
-void CJournalUnitTestInstall::ScenarioEndL(CJournal* aJournal)
-	{
-	aJournal->CommitL();
-	}
-
-//------------------------------------------------------------------------------------------------------------
-
-CJournalUnitTestRollback::CJournalUnitTestRollback(CStsTestServer &aStsTestServer): CJournalUnitTestScenarioBase(aStsTestServer)
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KJournalUnitTestRollback);
-	}
-
-void CJournalUnitTestRollback::ScenarioEndL(CJournal* aJournal)
-	{
-	aJournal->RollBackL();
-	}
-
-//------------------------------------------------------------------------------------------------------------
-
-
-CIntegrityServicesTestScenarioBase::CIntegrityServicesTestScenarioBase(CStsTestServer &aStsTestServer): CStsBaseTestStep(aStsTestServer) 
-	{
-	iDriveUnitC = _L("c"); 
-	iDriveUnitE = _L("e");
-	}
-
-CIntegrityServicesTestScenarioBase::~CIntegrityServicesTestScenarioBase()
-	{
-	iFs.Close();
-	iLoader.Close();
-	delete iTargetFileName;
-	delete iJournalFileName;
-	delete iDrvFileName;
-	delete iBackupFileName;
-	delete iTransactionBackupDirectoryPath;
-	}
-
-void CIntegrityServicesTestScenarioBase::ImplTestStepPreambleL()
-	{
-	INFO_PRINTF1(_L("IntegrityServicesTestOOM Preamble"));
-	iTargetPathInIni.Set(GetTargetFilePathFromConfigL());
-	iTrID = GetTransactionIdFromConfigL();
-	User::LeaveIfError(iFs.Connect());
-	User::LeaveIfError(iLoader.Connect());
-	iTargetFileName = HBufC::NewL(KMaxFileName);
-	iJournalFileName = HBufC::NewL(KMaxFileName);
-	iDrvFileName = HBufC::NewL(KMaxFileName);
-	iBackupFileName = HBufC::NewL(KMaxFileName);
-	iTransactionBackupDirectoryPath = HBufC::NewL(KMaxFileName);
-
-	TPtr ptr(iJournalFileName->Des());
-	ptr.Append(iDriveUnitC.Name());
-	CJournal::CreateJournalFileNameL(iTrID, KTransactionPath, ptr);
-
-	ptr.Set(iDrvFileName->Des());
-	CJournal::CreateDrvFileNameL(iTrID, KTransactionPath, ptr);
-	
-	TParsePtrC parse(*iDrvFileName);
-	ptr.Set(iTransactionBackupDirectoryPath->Des()); //this is the directory that holds the backup files for the transaction
-	ptr.Append(parse.DriveAndPath());
-	ptr.Append(parse.Name());
-	
-	ptr.Set(iTargetFileName->Des());
-	ptr.Append(iDriveUnitC.Name());
-	ptr.Append(iTargetPathInIni);
-	NormalizeDirectoryName(ptr); //removes trailing slash
-
-	SetTestStepResult(EPass);
-	}
-
-void CIntegrityServicesTestScenarioBase::ImplTestStepL()
-	{
-	TPtr basePathPtr(iTargetFileName->Des());
-	TPtr fileNamePtr(basePathPtr);
-	RFile newFile;
-	TUint fileMode(EFileShareExclusive | EFileWrite);
-	
-	TCleanupItem inTestCleanupItem(&CIntegrityServicesTestScenarioBase::InTestCleanUp, this);
-	CleanupStack::PushL(inTestCleanupItem);
-
-	CIntegrityServices* integrityServices = CIntegrityServices::NewLC(iTrID);
-	
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("\\integrityservices_oom_test_dummyremovefile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	integrityServices->RemoveL(fileNamePtr);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	integrityServices->RemoveL(fileNamePtr);
-	  
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("\\integrityservices_oom_test_dummyregistertempfile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	integrityServices->RegisterTemporaryL(fileNamePtr);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	integrityServices->RegisterTemporaryL(fileNamePtr);
-	
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("\\integrityservices_oom_test_dummycreatetempfile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	CleanupClosePushL(newFile);
-	integrityServices->CreateTemporaryL(fileNamePtr, newFile, fileMode);
-	CleanupStack::PopAndDestroy(&newFile);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	CleanupClosePushL(newFile);
-	integrityServices->CreateTemporaryL(fileNamePtr, newFile, fileMode);
-	CleanupStack::PopAndDestroy(&newFile);
-	
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("\\integrityservices_oom_test_dummyaddfile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	integrityServices->RegisterNewL(fileNamePtr);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	integrityServices->RegisterNewL(fileNamePtr);
-	 
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("\\integrityservices_oom_test_dummycreatenewfile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	CleanupClosePushL(newFile);
-	integrityServices->CreateNewL(fileNamePtr, newFile, fileMode);
-	CleanupStack::PopAndDestroy(&newFile);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	CleanupClosePushL(newFile);
-	integrityServices->CreateNewL(fileNamePtr, newFile, fileMode);
-	CleanupStack::PopAndDestroy(&newFile);
-	
-	fileNamePtr.Set(basePathPtr);
-	fileNamePtr.Append(_L("\\integrityservices_oom_test_dummyoverwritefile.txt"));
-	basePathPtr.Replace(0, 2, iDriveUnitC.Name());
-	CleanupClosePushL(newFile);
-	integrityServices->OverwriteL(fileNamePtr, newFile, fileMode);
-	CleanupStack::PopAndDestroy(&newFile);
-	basePathPtr.Replace(0, 2, iDriveUnitE.Name());
-	CleanupClosePushL(newFile);
-	integrityServices->OverwriteL(fileNamePtr, newFile, fileMode);
-	CleanupStack::PopAndDestroy(&newFile);
-	  
-	ScenarioEndL(integrityServices);
-	CleanupStack::PopAndDestroy(integrityServices);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-void CIntegrityServicesTestScenarioBase::ImplTestStepPostambleL()
-	{
-	INFO_PRINTF1(_L("IntegrityServicesTestOOM Postamble"));
-	delete iTargetFileName;
-	iTargetFileName=0;
-	delete iJournalFileName;
-	iJournalFileName=0;
-	delete iDrvFileName;
-	iDrvFileName=0;
-	delete iBackupFileName;
-	iBackupFileName=0;
-	delete iTransactionBackupDirectoryPath;
-	iTransactionBackupDirectoryPath=0;
-	iFs.Close();
-	iLoader.Close();
-	}
-
-/*static*/void CIntegrityServicesTestScenarioBase::InTestCleanUp(TAny* aObject)
-	{
-	CIntegrityServicesTestScenarioBase* object=static_cast<CIntegrityServicesTestScenarioBase*>(aObject);
-	//first clean up transaction related files
-	TPtr ptr(object->iJournalFileName->Des());
-	ptr.Replace(0, 2, object->iDriveUnitC.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete journal file on C drive
-	ptr.Replace(0, 2, object->iDriveUnitE.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete journal file on E drive
-	TRAP_IGNORE(object->DeleteFileL(*(object->iDrvFileName))); //delete drv file on system drive
-	ptr.Set(object->iTransactionBackupDirectoryPath->Des());
-	ptr.Replace(0, 2, object->iDriveUnitC.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete backup directory on C drive
-	ptr.Replace(0, 2, object->iDriveUnitE.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete backup directory on E drive
-	
-	//then clean up all the added/created/etc... files
-	ptr.Set(object->iTargetFileName->Des());
-	ptr.Replace(0, 2, object->iDriveUnitC.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete target dir on C drive
-	ptr.Replace(0, 2, object->iDriveUnitE.Name());
-	TRAP_IGNORE(object->DeleteFileL(ptr)); //delete target dir on E drive
-	
-	}
-
-void CIntegrityServicesTestScenarioBase::NormalizeDirectoryName(TDes& aFileName)
-{
-	TInt lastCharPos = aFileName.Length() - 1;
-	if ( lastCharPos >= 0 && aFileName[lastCharPos] == KPathDelimiter &&
-		 aFileName.Locate(KPathDelimiter) != lastCharPos) // Take care not to remove slash from "c:\" and the like
-		{
-		aFileName.Delete(lastCharPos, 1);
-		}			
-}
-
-//------------------------------------------------------------------------------------------------------------
-
-CIntegrityServicesTestInstall::CIntegrityServicesTestInstall(CStsTestServer &aStsTestServer): CIntegrityServicesTestScenarioBase(aStsTestServer)
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KIntegrityservicesUnitTestInstall);
-	}
-
-void CIntegrityServicesTestInstall::ScenarioEndL(Usif::CIntegrityServices* aIntegrServ)
-	{
-	aIntegrServ->CommitL();
-	}
-
-//------------------------------------------------------------------------------------------------------------
-
-CIntegrityServicesTestRollback::CIntegrityServicesTestRollback(CStsTestServer &aStsTestServer): CIntegrityServicesTestScenarioBase(aStsTestServer)
-	{
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KIntegrityservicesUnitTestRollback);
-	}
-
-void CIntegrityServicesTestRollback::ScenarioEndL(Usif::CIntegrityServices* aIntegrServ)
-	{
-	aIntegrServ->RollBackL();
-	}