diff -r 000000000000 -r f979ecb2b13e pimappservices/calendar/tsrc/TestCalIndexFile/src/TestCalIndexFileAddEntryStep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappservices/calendar/tsrc/TestCalIndexFile/src/TestCalIndexFileAddEntryStep.cpp Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,133 @@ +// Copyright (c) 2006-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: +// + +#include "TestCalIndexFileAddEntryStep.h" +#include "TestCalIndexFileDefs.h" +#include +#include +#include +#include +#include +#include +#include + + +CTestCalIndexFileAddEntryStep::~CTestCalIndexFileAddEntryStep() +/** + * Destructor + */ + { + } + +CTestCalIndexFileAddEntryStep::CTestCalIndexFileAddEntryStep() +/** + * Constructor + */ + { + // **MUST** call SetTestStepName in the constructor as the controlling + // framework uses the test step name immediately following construction to set + // up the step's unique logging ID. + SetTestStepName(KTestCalIndexFileAddEntryStep); + } + + +TVerdict CTestCalIndexFileAddEntryStep::doTestStepPostambleL() + { + return TestStepResult(); + } + +TVerdict CTestCalIndexFileAddEntryStep::doTestStepL() + { + // this method assumes a pass. Checks that fail will stop + // the test step. If this method Leaves, then the TEF will + // catch it and the step will not be recorded as a pass. + + SetUpCalDirL(); + + AddCalendarFileL(); + AddIndexFileL(); + OpenAgendaL(); + + // use the base class version of ValidateDbContentsL as + // we have not added the entry + if (!CTestCalIndexFileStepBase::ValidateDbContentsL()) + { + INFO_PRINTF1(_L("Add Entry Step Failed validating DB contents before entry addition")); + CloseAgendaL(); + SetTestStepResult(EFail); + return EFail; + } + + AddEntryL(); + // The index file should be deleted as it is now out of date. + // It will be rebuilt when the session closes. + if (CheckIndexFilePresentL()) + { + INFO_PRINTF1(_L("Add Entry Step Failed - index file present when dirty")); + CloseAgendaL(); + SetTestStepResult(EFail); + return EFail; + } + + CloseAgendaL(); + if (!CheckIndexFilePresentL()) + { + INFO_PRINTF1(_L("Add Entry Step Failed - no index file created after add and close")); + SetTestStepResult(EFail); + return EFail; + } + + // make sure the added entry is still there + OpenAgendaL(); + if (!ValidateDbContentsL(ETrue)) + { + INFO_PRINTF1(_L("Add Entry Step Failed validating DB contents after addition")); + CloseAgendaL(); + SetTestStepResult(EFail); + return EFail; + } + CloseAgendaL(); + + SetTestStepResult(EPass); + return EPass; + } + + +void CTestCalIndexFileAddEntryStep::GetEntryInfoFromConfigL(RPointerArray& aEntriesInfo, TInt& aNumEntries, TBool aPerformCrudOps) + { + // first get the default entries from the file + CTestCalIndexFileStepBase::GetEntryInfoFromConfigL(aEntriesInfo, aNumEntries, aPerformCrudOps); + + if (aPerformCrudOps) + { + // now add the new entry info to the list + TPtrC entryString; + TBool readRes = EFalse; + readRes = GetStringFromConfig(ConfigSection(), KAddEntry, entryString); + if (!readRes) + { + INFO_PRINTF1(_L("Error in CTestCalIndexFileAddEntryStep::GetEntryInfoFromConfigL - entrytoadd not found in config file")); + User::Leave(KErrNotFound); + } + CConfigTestEntryInfo* inf = new(ELeave)CConfigTestEntryInfo(); + CleanupStack::PushL(inf); + ParseEntryStringL(*inf, entryString); + aEntriesInfo.Append(inf); + CleanupStack::Pop(inf); // now held in array + aNumEntries++; + } + } + +