diff -r 000000000000 -r 9736f095102e buildverification/autosmoketest/contacts/src/TestContactsBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buildverification/autosmoketest/contacts/src/TestContactsBase.cpp Tue Jan 26 15:16:33 2010 +0200 @@ -0,0 +1,176 @@ +// 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 "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: +// This CTestContactsBase +// +// + +// EPOC includes +#include +#include +#include +#include + +// User include +#include "TestContactsBase.h" + +/*@{*/ +// Literal constants +_LIT(KDef, "default"); +_LIT(KFileName, "filenameSecure"); +_LIT(KKey, "key"); +/*@}*/ + + +// constructor +CTestContactsBase::CTestContactsBase() +: iDatabase(NULL) +, iFieldDef(NULL) +, iSchedular(NULL) + { + } + +// destructor +CTestContactsBase::~CTestContactsBase() + { + delete iFieldDef; + iFieldDef=NULL; + + delete iSchedular; + iSchedular=NULL; + CActiveScheduler::Install(NULL); + } + +enum TVerdict CTestContactsBase::doTestStepPreambleL() + { + iSchedular=new (ELeave)CActiveScheduler(); + CActiveScheduler::Install(iSchedular); + + iFieldDef=new(ELeave) CContactItemFieldDef; + iFieldDef->AppendL(KUidContactFieldFamilyName); + iFieldDef->AppendL(KUidContactFieldGivenName); + return CTestStep::doTestStepPreambleL(); + } + +enum TVerdict CTestContactsBase::doTestStepPostambleL() + { + delete iFieldDef; + iFieldDef=NULL; + + delete iSchedular; + iSchedular=NULL; + CActiveScheduler::Install(NULL); + + return CTestStep::doTestStepPostambleL(); + } + +// Create a new database +void CTestContactsBase::CreateDatabase() + { + TPtrC ptrFileName; + TBool returnValue =GetStringFromConfig(ConfigSection(), KFileName, ptrFileName); + if (!returnValue) + returnValue=GetStringFromConfig(KDef, KFileName, ptrFileName); + + // Create database + if (returnValue) + { + INFO_PRINTF2(_L("filename = %S"), &ptrFileName); + TRAPD(r, iDatabase=CContactDatabase::ReplaceL(ptrFileName)) + if (r!=KErrNone) + { + ERR_PRINTF2(_L("Creating Contacts file failed. Error %d"), r); + SetTestStepResult(EFail); + } + } + else + { + INFO_PRINTF1(_L("No Contacts file specified. Open default file.")); + TRAPD(r, iDatabase=CContactDatabase::ReplaceL()) + if (r!=KErrNone) + { + ERR_PRINTF2(_L("Creating Contacts file failed. Error %d"), r); + SetTestStepResult(EFail); + } + } + } + +void CTestContactsBase::OpenDatabase() + { + TPtrC ptrFileName; + TBool returnValue =GetStringFromConfig(ConfigSection(), KFileName, ptrFileName); + if (!returnValue) + returnValue=GetStringFromConfig(KDef, KFileName, ptrFileName); + + // Open database + if (returnValue) + { + INFO_PRINTF2(_L("filename = %S"), &ptrFileName); + RaiseInstrumentationEventNotificationL(17); + TRAPD(r, iDatabase=CContactDatabase::OpenL(ptrFileName)); + RaiseInstrumentationEventNotificationL(18); + if (r!=KErrNone) + { + ERR_PRINTF2(_L("Opening Contacts file failed. Error %d"), r); + SetTestStepResult(EFail); + } + } + else + { + INFO_PRINTF1(_L("No Contacts file specified. Open default file.")); + RaiseInstrumentationEventNotificationL(17); + TRAPD(r, iDatabase=CContactDatabase::OpenL()); + RaiseInstrumentationEventNotificationL(18); + if (r!=KErrNone) + { + ERR_PRINTF2(_L("Opening Contacts file failed. Error %d"), r); + SetTestStepResult(EFail); + } + } + } + +void CTestContactsBase::CleanupDatabase() + { + delete iDatabase; + iDatabase=NULL; + } + +void CTestContactsBase::RaiseInstrumentationEventNotificationL(TInt aEventTag) + { + INFO_PRINTF2(_L("RaiseEventNotification %d"), aEventTag); + } + +CContactIdArray* CTestContactsBase::SearchEntriesL() +/** +This function searches in the contacts database and populates an array +with ids' of the contacts which satisfy the search criterion +read from the ini file. +@return - Pointer to the contact ID array +@leave system wide error code + */ + { + TPtrC ptrKey; + if (!GetStringFromConfig(ConfigSection(), KKey, ptrKey)) + { + ERR_PRINTF1(_L("No key value for entry")); + SetTestStepResult(EFail); + } + INFO_PRINTF2(_L("Key Value for Entry Search = %S"), &ptrKey); + + // The function searches the fields contained in the field definition + INFO_PRINTF1(_L("Searching through the database for entry")); + + CContactIdArray* ret=iDatabase->FindLC(ptrKey, iFieldDef); + CleanupStack::Pop(ret); + return ret; + }