diff -r e8c1ea2c6496 -r 8758140453c0 email/email/smtp/src/T_ModifySmtpSettings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/email/smtp/src/T_ModifySmtpSettings.cpp Thu Jan 21 12:53:44 2010 +0000 @@ -0,0 +1,130 @@ +// 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 the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// [TestStep Name] +// ModifySmtpSettings +// [Paramaters] +// SmtpAccountName :Name of the Smtp account +// SmtpConfigFileName :Config file from which the Smtp account settings are read +// ModifySmtpSettings Test Step is intended to modify existing settings and save to CenRep +// for the specified SMTP account Id +// +// + +/* user includes */ +#include "T_ModifySmtpSettings.h" +#include +#include + +/* epoc inlcudes */ +#include +#include +#include + +/* Literals used */ +_LIT(KSmtpAccountName,"SmtpAccountName"); +_LIT(KSmtpConfigFileName,"SmtpConfigFileName"); + +/** + Function : CT_MsgModifySmtpSettings + Description : Constructor + @param : aSharedDataSMTP Reference to CT_MsgSharedDataSmtp + @return : N/A +*/ +CT_MsgModifySmtpSettings::CT_MsgModifySmtpSettings(CT_MsgSharedDataSmtp& aSharedDataSMTP) +: CT_MsgSyncStepSMTP(aSharedDataSMTP) + { + SetTestStepName(KModifySmtpSettings); + } + +/** + Function : ~CT_MsgModifySmtpSettings + Description : Destructor + @return : N/A +*/ +CT_MsgModifySmtpSettings::~CT_MsgModifySmtpSettings() + { + } + +/** + Function : doTestStepL + Description : Reads the Smtp account name and config file name from the .ini file + and it then modifies the account with the settings read from the config file. + @return : TVerdict - Test step result + @leave : KMsvNullIndexEntryId Invalid SMTP account name specified +*/ +TVerdict CT_MsgModifySmtpSettings::doTestStepL() + { + INFO_PRINTF1(_L("Test Step: ModifySmtpSettings")); + // Read the SMTP account name from the ini file + TPtrC smtpAccountName; + if(!GetStringFromConfig(ConfigSection(), KSmtpAccountName, smtpAccountName)) + { + ERR_PRINTF1(_L("SMTP account name is not specified")); + SetTestStepResult(EFail); + } + else + { + // Read the SMTP Config file name from the ini file + TPtrC configFileName; + if(!GetStringFromConfig(ConfigSection(), KSmtpConfigFileName, configFileName)) + { + ERR_PRINTF1(_L("Configuration file path is not specified")); + SetTestStepResult(EFail); + } + else + { + // Retrieving the SMTP service Id for the given SMTP account + TMsvId smtpServiceId = CT_MsgUtilsCentralRepository::GetSmtpServiceIdL((TDes&)smtpAccountName); + INFO_PRINTF2(_L("SMTP service Id is %d"),smtpServiceId); + + if(smtpServiceId == KMsvNullIndexEntryId) + { + ERR_PRINTF1(_L("Invalid SMTP account name specified")); + SetTestStepResult(EFail); + } + // Creates the settings object + else + { + CEmailAccounts* emailAccounts = CEmailAccounts::NewLC(); + + CImSmtpSettings* smtpSettings = new(ELeave) CImSmtpSettings(); + CleanupStack::PushL(smtpSettings); + + CImIAPPreferences* smtpIapPrefs = CImIAPPreferences::NewLC(); + + // Loads the settings for the account with the current settings + TSmtpAccount smtpAccount; + emailAccounts->GetSmtpAccountL(smtpServiceId, smtpAccount); + emailAccounts->LoadSmtpSettingsL(smtpAccount, *smtpSettings); + emailAccounts->LoadSmtpIapSettingsL(smtpAccount, *smtpIapPrefs); + + // Reads the settings from the config file + TRAPD(err, CT_MsgUtilsReadEmailSettingsFromConfigFile::ReadSmtpSettingsFromConfigurationFileL(configFileName, *smtpSettings, *smtpIapPrefs)); + if(err) + { + ERR_PRINTF2(_L("Failure while setting the SMTP setting parameters, failed with error %d"), err); + SetTestStepError(err); + } + else + { + // Saves the new settings + emailAccounts->SaveSmtpSettingsL(smtpAccount, *smtpSettings); + emailAccounts->SaveSmtpIapSettingsL(smtpAccount, *smtpIapPrefs); + } + CleanupStack::PopAndDestroy(3, emailAccounts);// smtpIapPrefs,smtpSettings,emailAccounts + } + } + } + return TestStepResult(); + }