diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgtestfw/TestActions/Email/Imap4/src/CMtfTestActionSetImap4ServiceParameters.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtestfw/TestActions/Email/Imap4/src/CMtfTestActionSetImap4ServiceParameters.cpp Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,170 @@ +// Copyright (c) 2003-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: +// __ACTION_INFO_BEGIN__ +// [Action Name] +// SetImap4ServiceParameters +// [Action Parameters] +// Session : Reference to the session. +// ServiceId : Value of the Imap4 service id. +// (ConfigIndexSettingsFile) : Value of config index for settings file. Default is 0. +// [Action Description] +// Sets parameters of Imap4 service. +// [APIs Used] +// CMsvEntry::SetEntryL +// CMsvEntry::EditStoreL +// CImImap4Settings::Reset +// CImImap4Settings::SetServerAddressL +// CImImap4Settings::SetLoginNameL +// CImImap4Settings::SetPasswordL +// CImImap4Settings::SetAutoSendOnConnect +// CImImap4Settings::StoreL +// CMsvStore::CommitL +// __ACTION_INFO_END__ +// +// + +/** + @file +*/ + + +#include + +#include +#include +#include + +#include "CMtfTestActionSetImap4ServiceParameters.h" +#include "CMtfTestCase.h" +#include "CMtfTestActionParameters.h" +#include "CMtfConfigurationType.h" +#include "CMtfTestActionUtilsImapScripts.h" +#include "CMtfTestActionUtilsConfigFileMachineName.h" + +_LIT(KServerName, "ServerName"); +_LIT(KEmailAddressExtension, "EmailAddressExtension"); +_LIT(KLoginName, "LoginName"); +_LIT(KPassword, "Password"); +_LIT(KFolderPath, "FolderPath"); +_LIT(KEmailDeleteFlag, "DeleteEmailWhenDisconnected"); +_LIT(KAutoSendFlag, "AutoSendFlag"); +_LIT(KImapSearchString,"ImapSearchString"); + +CMtfTestAction* CMtfTestActionSetImap4ServiceParameters::NewL(CMtfTestCase& aTestCase,CMtfTestActionParameters* aActionParameters) + { + CMtfTestActionSetImap4ServiceParameters* self = new (ELeave) CMtfTestActionSetImap4ServiceParameters(aTestCase); + CleanupStack::PushL(self); + self->ConstructL(aActionParameters); + CleanupStack::Pop(); + return self; + } + + +CMtfTestActionSetImap4ServiceParameters::CMtfTestActionSetImap4ServiceParameters(CMtfTestCase& aTestCase) + : CMtfSynchronousTestAction(aTestCase) + { + } + + +CMtfTestActionSetImap4ServiceParameters::~CMtfTestActionSetImap4ServiceParameters() + { + delete iParser; + } + + + +void CMtfTestActionSetImap4ServiceParameters::ExecuteActionL() + { + TestCase().INFO_PRINTF2(_L("Test Action %S start..."), &KTestActionSetImap4ServiceParameters); + CMsvSession* paramSession = ObtainParameterReferenceL(TestCase(),ActionParameters().Parameter(0)); + TMsvId paramServiceId = ObtainValueParameterL(TestCase(),ActionParameters().Parameter(1)); + TInt paramConfigIndex = ObtainValueParameterL(TestCase(),ActionParameters().Parameter(2),0); + + CImImap4Settings* settings = new(ELeave) CImImap4Settings(); + CleanupStack::PushL(settings); + TPtrC fileName = TestCase().GetConfigurationFileL(CMtfConfigurationType::EMtfImap4Settings,paramConfigIndex); + iParser = CMtfTestActionUtilsConfigFileParser::NewL(fileName); + + settings->Reset(); + + TPtrC serverName; + User::LeaveIfError(iParser->GetFieldAsString(KServerName,serverName)); + settings->SetServerAddressL(serverName); + + CMtfTestActionUtilsConfigFileMachineName* machineNameFile = NULL; + + TPtrC emailAddressExtension; + if (iParser->GetFieldAsString(KEmailAddressExtension, emailAddressExtension) == KErrNone) + { + machineNameFile = CMtfTestActionUtilsConfigFileMachineName::NewLC(emailAddressExtension); + } + else + { + machineNameFile = CMtfTestActionUtilsConfigFileMachineName::NewLC(serverName); + } + + TPtrC8 machineName(machineNameFile->MachineName()); + + TPtrC8 loginName; + if(iParser->GetFieldAsString8(KLoginName,loginName)==KErrNone) + { + settings->SetLoginNameL(loginName); + } + else + { + settings->SetLoginNameL(machineName); + } + + TPtrC8 password; + if(iParser->GetFieldAsString8(KPassword,password)==KErrNone) + { + settings->SetPasswordL(password); + } + else + { + settings->SetPasswordL(machineName); + } + + TPtrC8 folderPath; + TInt err = iParser->GetFieldAsString8(KFolderPath,folderPath); + if (err == KErrNone) + settings->SetFolderPathL(folderPath); + + TPtrC8 imapSearchString; + err = iParser->GetFieldAsString8(KImapSearchString,imapSearchString); + if (err == KErrNone) + settings->SetSearchStringL(imapSearchString); + + TInt emailDeleteFlag; + err = iParser->GetFieldAsInteger(KEmailDeleteFlag,emailDeleteFlag); + if (err == KErrNone) + settings->SetDeleteEmailsWhenDisconnecting(emailDeleteFlag); + + TInt autoSendFlag; + err = iParser->GetFieldAsInteger(KAutoSendFlag,autoSendFlag); + if (err == KErrNone) + settings->SetAutoSendOnConnect(autoSendFlag); + + CEmailAccounts* accounts = CEmailAccounts::NewLC(); + TImapAccount imapAccount; + accounts->GetImapAccountL(paramServiceId, imapAccount); + accounts->SaveImapSettingsL(imapAccount, *settings); + //Pop and destroy settings, machineNameFile and accounts + CleanupStack::PopAndDestroy(3, settings); + + TestCase().INFO_PRINTF2(_L("Test Action %S completed."), &KTestActionSetImap4ServiceParameters); + + TestCase().ActionCompletedL(*this); + } +