diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgtestfw/TestActionUtils/src/CMtfTestActionUtilsPopScripts.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtestfw/TestActionUtils/src/CMtfTestActionUtilsPopScripts.cpp Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,459 @@ +// 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: +// + +/** + @file +*/ + + +#include "CMtfTestActionUtilsPopScripts.h" + +#include +#include +#include + +#include "CMtfTestActionUtilsConfigFileParser.h" +#include "CMtfTestActionUtilsConfigFileMachineName.h" + +#include "CMtfTestCase.h" +#include "CMtfTestActionParameters.h" + +// POP Settings + +_LIT(KCfgPopServerAddress, "PopServerAddress"); //* +_LIT(KEmailAddressExtension, "EmailAddressExtension"); +_LIT(KCfgPopLoginName, "PopLoginName"); //* +_LIT(KCfgPopPassword, "PopPassword"); //* +_LIT(KCfgPopMaxEmailSize, "PopMaxEmailSize"); //* +_LIT(KCfgPopPort, "PopPort"); //* +_LIT(KCfgPopInboxSynchronisationLimit, "PopInboxSynchronisationLimit"); //* +_LIT(KCfgPopSecureSockets, "PopSecureSockets"); //* +_LIT(KCfgPopSSLWrapper, "PopSSLWrapper"); //* +_LIT(KCfgPopGetMailOptions, "PopGetMailOptions"); //* +_LIT(KCfgPopPopulationLimit, "PopPopulationLimit"); //* +_LIT(KCfgPopAutoSendOnConnect, "PopAutoSendOnConnect" ); //* +_LIT(KCfgPopDeleteEmailsWhenDisconnecting, "PopDeleteEmailsWhenDisconnecting" ); //* +_LIT(KCfgPopAcknowledgeReceipts, "PopAcknowledgeReceipts" ); //* +_LIT(KCfgPopDisconnectedUserMode, "PopDisconnectedUserMode" ); //* +_LIT(KCfgPopAPOPEncryption, "PopAPOPEncryption" ); //* + + +_LIT(KCfgPopIapList , "PopIapList" ); + +// SMTP settings + +_LIT(KCfgSmtpServerAddress, "SmtpServerAddress"); //* +_LIT(KCfgSmtpEmailAddress, "SmtpEmailAddress"); //* +_LIT(KCfgSmtpBodyEncoding, "SmtpBodyEncoding"); //* +_LIT(KCfgSmtpReceiptAddress, "SmtpReceiptAddress"); //* +_LIT(KCfgSmtpRequestReceipts, "SmtpRequestReceipts"); //* +_LIT(KCfgSmtpSendMessageOption, "SmtpSendMessageOption"); //* Constants Added +_LIT(KCfgSmtpSetPort, "SmtpSetPort"); //* +_LIT(KCfgSmtpEmailAlias, "SmtpEmailAlias"); //* +_LIT(KCfgSmtpDefaultMsgCharSet, "SmtpMsgCharSet"); //* + + + +_LIT(KCfgSmtpSetReplyToAddress, "SmtpSetReplyToAddress"); //* +_LIT(KCfgSmtpSetAddVCardToEmail, "SmtpSetAddVCardToEmail"); //* +_LIT(KCfgSmtpSetAddSignatureToEmail, "SmtpSetAddSignatureToEmail"); //* +_LIT(KCfgSmtpSetSendCopyToSelf, "SmtpSetSendCopyToSelf"); //* +_LIT(KCfgSmtpSetLoginName, "SmtpSetLoginName"); //* +_LIT(KCfgSmtpSetPassword, "SmtpSetPassword"); //* +_LIT(KCfgSmtpSetSMTPAuth, "SmtpSetSMTPAuth"); //* +_LIT(KCfgSmtpSetInboxLoginDetails, "SmtpSetInboxLoginDetails"); //* + + +_LIT(KCfgSmtpSecureSockets, "SmtpSetSecureSockets"); //* +_LIT(KCfgSmtpSSLWrapper, "SmtpSetSSLWrapper"); //* + //???? Currently All in same file is this what is intended or are they intended to be in + // seperate files, which would require more index's ? + +_LIT(KCfgSmtpIapList , "SmtpIapList" ); + + +void CMtfTestActionUtilsPopScripts::ReadPopSettingsFromConfigurationFileL(CMtfTestCase& aTestCase, const TDesC& aSettingsFile, + CImPop3Settings& aPopSet, CImIAPPreferences& aPopIapPref, + CImSmtpSettings& aSmtpSet, CImIAPPreferences& aSmtpIapPref) +{ + CMtfTestActionUtilsConfigFileParser* scriptFileParser = CMtfTestActionUtilsConfigFileParser::NewL(aSettingsFile); + CleanupStack::PushL(scriptFileParser); + + TPtrC8 string8Ptr; + TPtrC stringPtr; + TInt intValue; + + + // POP3 settings + if(scriptFileParser->GetFieldAsString(KCfgPopServerAddress, stringPtr) == KErrNone) + { + aPopSet.SetServerAddressL(stringPtr); + } + + CMtfTestActionUtilsConfigFileMachineName* machineNameFile = NULL; + + TPtrC emailAddressExtension; + if (scriptFileParser->GetFieldAsString(KEmailAddressExtension, emailAddressExtension) == KErrNone) + { + machineNameFile = CMtfTestActionUtilsConfigFileMachineName::NewLC(emailAddressExtension); + } + else + { + machineNameFile = CMtfTestActionUtilsConfigFileMachineName::NewLC(stringPtr); + } + + TPtrC8 machineName(machineNameFile->MachineName()); + + if(scriptFileParser->GetFieldAsString8(KCfgPopLoginName, string8Ptr) == KErrNone) + { + aPopSet.SetLoginNameL(string8Ptr); + } + else + { + aPopSet.SetLoginNameL(machineName); + } + + if(scriptFileParser->GetFieldAsString8(KCfgPopPassword, string8Ptr) == KErrNone) + { + aPopSet.SetPasswordL(string8Ptr); + } + else + { + aPopSet.SetPasswordL(machineName); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopMaxEmailSize, intValue) == KErrNone) + { + aPopSet.SetMaxEmailSize(intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopPort, intValue) == KErrNone) + { + aPopSet.SetPort(intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopInboxSynchronisationLimit, intValue) == KErrNone) + { + aPopSet.SetInboxSynchronisationLimit(intValue); // ??? should this be SetInboxSynchronisation? + } + + + if(scriptFileParser->GetFieldAsInteger(KCfgPopSecureSockets, intValue) == KErrNone) + { + aPopSet.SetSecureSockets((TBool)intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopSSLWrapper, intValue) == KErrNone) + { + aPopSet.SetSSLWrapper((TBool)intValue); + } + + if(scriptFileParser->GetFieldAsString(KCfgPopGetMailOptions, stringPtr) == KErrNone) + { + TPop3GetMailOptions options = ObtainValueParameterL(aTestCase, stringPtr); + aPopSet.SetGetMailOptions(options); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopPopulationLimit, intValue) == KErrNone) + { + aPopSet.SetPopulationLimitL(intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopAutoSendOnConnect, intValue) == KErrNone) + { + aPopSet.SetAutoSendOnConnect((TBool) intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopDeleteEmailsWhenDisconnecting, intValue) == KErrNone) + { + aPopSet.SetDeleteEmailsWhenDisconnecting((TBool) intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopAcknowledgeReceipts, intValue) == KErrNone) + { + aPopSet.SetAcknowledgeReceipts((TBool) intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopDisconnectedUserMode, intValue) == KErrNone) + { + aPopSet.SetDisconnectedUserMode((TBool) intValue); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgPopAPOPEncryption, intValue) == KErrNone) + { + aPopSet.SetApop((TBool) intValue); + } + + scriptFileParser->GetFieldAsString(KCfgPopIapList, stringPtr); + + ReadIAPAndAddL( aTestCase, scriptFileParser, KCfgPopIapList, aPopIapPref ); + + + // SMTP settings + if(scriptFileParser->GetFieldAsString(KCfgSmtpServerAddress, stringPtr) == KErrNone) + { + aSmtpSet.SetServerAddressL(stringPtr); + } + + TPtrC emailAddr(machineNameFile->MachineNameEmail()); + if(scriptFileParser->GetFieldAsString(KCfgSmtpEmailAddress, stringPtr) == KErrNone) + { + aSmtpSet.SetEmailAddressL(stringPtr); + } + else + { + aSmtpSet.SetEmailAddressL(emailAddr); + } + + + if(scriptFileParser->GetFieldAsString(KCfgSmtpBodyEncoding, stringPtr) == KErrNone) + { + TMsgOutboxBodyEncoding setGetMailOptions = ObtainValueParameterL(aTestCase, stringPtr); + aSmtpSet.SetBodyEncoding(setGetMailOptions); + } + + if(scriptFileParser->GetFieldAsString(KCfgSmtpReceiptAddress, stringPtr) == KErrNone) + { + aSmtpSet.SetReceiptAddressL(stringPtr); + } + else + { + aSmtpSet.SetReceiptAddressL(emailAddr); + } + + + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpRequestReceipts, intValue) == KErrNone) + { + aSmtpSet.SetRequestReceipts( (TBool) intValue ); + } + + if(scriptFileParser->GetFieldAsString(KCfgSmtpSendMessageOption, stringPtr) == KErrNone) + { + TImSMTPSendMessageOption setSendMessageOption = ObtainValueParameterL(aTestCase, stringPtr); + aSmtpSet.SetSendMessageOption(setSendMessageOption); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSetPort, intValue) == KErrNone) + { + aSmtpSet.SetPort(intValue); + } + + if(scriptFileParser->GetFieldAsString(KCfgSmtpEmailAlias, stringPtr) == KErrNone) + { + aSmtpSet.SetEmailAliasL(stringPtr); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpDefaultMsgCharSet, intValue) == KErrNone) + { + TUid tmp = { intValue }; + aSmtpSet.SetDefaultMsgCharSet( tmp ); + } + + + if(scriptFileParser->GetFieldAsString(KCfgSmtpSetReplyToAddress, stringPtr) == KErrNone) + { + aSmtpSet.SetReplyToAddressL(stringPtr); + } + else + { + aSmtpSet.SetReplyToAddressL(emailAddr); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSetAddVCardToEmail, intValue) == KErrNone) + { + aSmtpSet.SetAddVCardToEmail( (TBool) intValue ); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSetAddSignatureToEmail, intValue) == KErrNone) + { + aSmtpSet.SetAddSignatureToEmail( (TBool) intValue ); + } + + if(scriptFileParser->GetFieldAsString(KCfgSmtpSetSendCopyToSelf, stringPtr) == KErrNone) + { + TImSMTPSendCopyToSelf setSMTPSendCopyToSelf = ObtainValueParameterL(aTestCase, stringPtr); + aSmtpSet.SetSendCopyToSelf(setSMTPSendCopyToSelf); + } + + if(scriptFileParser->GetFieldAsString8(KCfgSmtpSetLoginName, string8Ptr) == KErrNone) + { + aSmtpSet.SetLoginNameL(string8Ptr); + } + else + { + aSmtpSet.SetLoginNameL(machineName); + } + + if(scriptFileParser->GetFieldAsString8(KCfgSmtpSetPassword, string8Ptr) == KErrNone) + { + aSmtpSet.SetPasswordL(string8Ptr); + } + else + { + aSmtpSet.SetPasswordL(machineName); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSetSMTPAuth, intValue) == KErrNone) + { + aSmtpSet.SetSMTPAuth( (TBool) intValue ); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSetInboxLoginDetails, intValue) == KErrNone) + { + aSmtpSet.SetInboxLoginDetails( (TBool) intValue ); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSecureSockets, intValue) == KErrNone) + { + aSmtpSet.SetSecureSockets( (TBool) intValue ); + } + + if(scriptFileParser->GetFieldAsInteger(KCfgSmtpSSLWrapper, intValue) == KErrNone) + { + aSmtpSet.SetSSLWrapper( (TBool) intValue ); + } + + ReadIAPAndAddL( aTestCase, scriptFileParser, KCfgSmtpIapList, aSmtpIapPref ); + + //Pop and destroy scriptfileParser and machineNameFile + CleanupStack::PopAndDestroy(2,scriptFileParser); +} + +void CMtfTestActionUtilsPopScripts::ReadIAPAndAddL( CMtfTestCase& aTestCase, + CMtfTestActionUtilsConfigFileParser* aScriptFileParser , + const TDesC& aParamListName , CImIAPPreferences& aIapPref ) +{ + TPtrC stringPtr; + TPtrC baseString; + + if( aScriptFileParser->GetFieldAsString(aParamListName, stringPtr ) == KErrNone ) + { + + TInt start=0; + TInt end=stringPtr.Length(); + + while ( GetString( stringPtr , start, end , baseString ) ) + { + _ReadIAPAndAddL( aTestCase, aScriptFileParser, baseString, aIapPref ); + } + } +} + +TBool CMtfTestActionUtilsPopScripts::GetString( const TDesC& aStringPtr , TInt& aStart, TInt aEnd , TPtrC& aBaseString ) +{ + TBool ret=EFalse; + + if (aStart==aEnd) + { + return EFalse; + } + + TInt currPos=aStart; + + + // strip out any starting spaces. + while (currPosDes() = aFieldName; + buf->Des().Append( _L("_PopIAP") ); + + + if(aScriptFileParser->GetFieldAsInteger(buf->Des(), intTmp) == KErrNone) + { + iapChoice.iIAP = intTmp; + modified=ETrue; + } + + + buf->Des() = aFieldName; + buf->Des().Append( _L("_PopCommDbDialogPref") ); + if(aScriptFileParser->GetFieldAsString(buf->Des(), stringPtr) == KErrNone) + { + TCommDbDialogPref setCommDbDialogPref = ObtainValueParameterL(aTestCase, stringPtr); + iapChoice.iDialogPref= setCommDbDialogPref; + modified=ETrue; + } + + + buf->Des() = aFieldName; + buf->Des().Append( _L("_PopIAPIndex") ); + if(aScriptFileParser->GetFieldAsInteger(buf->Des(), intTmp) == KErrNone) + { + index = intTmp; + modified=ETrue; + } + + if (modified) + { // Note only want to set the values if they are specified. Otherwise leave well alone. + // Really should specify iapChoice.iIAP and iapChoice.iDialogPref at the same time. + aIapPref.AddIAPL(iapChoice ,index ); + } + + CleanupStack::PopAndDestroy(buf); +} +