--- /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 <pop3set.h>
+#include <smtpset.h>
+#include <iapprefs.h>
+
+#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<TPop3GetMailOptions>(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<TMsgOutboxBodyEncoding>(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<TImSMTPSendMessageOption>(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<TImSMTPSendCopyToSelf>(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 (currPos<aEnd )
+ {
+ if ( aStringPtr[currPos] == ' ' || aStringPtr[currPos] == '\t' )
+ {
+ currPos++;
+ }
+ else
+ {
+ break;
+ }
+ }
+ TInt startTmp=currPos;
+
+ while (currPos<aEnd )
+ {
+ if ( aStringPtr[currPos] == ' ' || aStringPtr[currPos] == '\t' )
+ {
+ break;
+ }
+ else
+ {
+ currPos++;
+ ret=ETrue;
+ }
+ }
+
+ if (ret)
+ { // We have a string.
+ aBaseString.Set( aStringPtr.Mid( startTmp, currPos-startTmp) );
+ }
+
+ aStart=currPos;
+
+ return ret;
+}
+
+
+void CMtfTestActionUtilsPopScripts::_ReadIAPAndAddL( CMtfTestCase& aTestCase,
+ CMtfTestActionUtilsConfigFileParser* aScriptFileParser ,
+ const TDesC& aFieldName , CImIAPPreferences& aIapPref )
+{
+
+ TPtrC stringPtr;
+ TInt intTmp;
+
+ TImIAPChoice iapChoice;
+ iapChoice.iIAP = 0;
+ iapChoice.iDialogPref = ECommDbDialogPrefUnknown;
+
+ TInt index=0;
+ TBool modified=EFalse;
+
+ HBufC* buf = HBufC::NewLC(100);
+
+ buf->Des() = 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<TCommDbDialogPref>(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);
+}
+