--- a/creator/src/creator_mailboxelement.cpp Thu Aug 19 09:55:38 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,495 +0,0 @@
-/*
-* Copyright (c) 2008 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:
-*
-*/
-
-
-#include "creator_mailboxelement.h"
-#include "creator_traces.h"
-#include "creator_mailbox.h"
-
-using namespace creatormailbox;
-
-/*
- *
- */
-CCreatorMailboxElement* CCreatorMailboxElement::NewL(CCreatorEngine* aEngine, const TDesC& aName, const TDesC& aContext )
- {
- CCreatorMailboxElement* self = new (ELeave) CCreatorMailboxElement(aEngine);
- CleanupStack::PushL(self);
- self->ConstructL(aName, aContext);
- CleanupStack::Pop(self);
- return self;
- }
-/*
- *
- */
-CCreatorMailboxElement::CCreatorMailboxElement(CCreatorEngine* aEngine)
-:
-CCreatorScriptElement(aEngine)
- {
- iIsCommandElement = ETrue;
- }
-
-TBool CCreatorMailboxElement::SetIntegerParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
- {
- _LIT( KAll, "all");
-
- if( aElemName == Kincomingport )
- {
- if( aSetRandom )
- param->iIncomingPort = iEngine->RandomNumber(25, 500);
- else
- param->iIncomingPort = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kattachmentsizelimit )
- {
- if( aSetRandom )
- param->iAttachmentSizeLimit = iEngine->RandomNumber(1, KMaxTInt);
- else
- param->iAttachmentSizeLimit = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kbodytextsizelimit )
- {
- if( aSetRandom )
- param->iBodyTextSizeLimit = iEngine->RandomNumber(1, KMaxTInt);
- else
- param->iBodyTextSizeLimit = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kattachmentfetchsize )
- {
- if( aSetRandom )
- param->iAttachmentFetchSize = iEngine->RandomNumber(1, 40960);
- else
- param->iAttachmentFetchSize = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kimapidletimeout )
- {
- if( aSetRandom )
- param->iImapIdleTimeout = iEngine->RandomNumber(10, 2000);
- else
- param->iImapIdleTimeout = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kmaxemailsize )
- {
- if( aSetRandom )
- param->iMaxEmailSize = iEngine->RandomNumber(1024, KMaxTInt);
- else
- param->iMaxEmailSize = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Ksyncrate )
- {
- if( aSetRandom )
- param->iSyncRate = iEngine->RandomNumber(10, 500);
- else
- param->iSyncRate = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kinboxsynclimit )
- {
- if( aSetRandom )
- param->iInboxSyncLimit = iEngine->RandomNumber(-1, 256);
- else if( CompareIgnoreCase(aElemContent, KAll) == 0 )
- param->iInboxSyncLimit = -1;
- else
- param->iInboxSyncLimit = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Kmailboxsynclimit )
- {
- if( aSetRandom )
- param->iMailboxSyncLimit = iEngine->RandomNumber(-1, 256);
- else if( CompareIgnoreCase(aElemContent, KAll) == 0 )
- param->iMailboxSyncLimit = -1;
- else
- param->iMailboxSyncLimit = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Koutgoingport )
- {
- if( aSetRandom )
- param->iOutgoingPort = KDefaultSmtpPort;
- else
- param->iOutgoingPort = ConvertStrToIntL(aElemContent);
- }
- else if( aElemName == Ktoccincludelimit )
- {
- if( aSetRandom )
- param->iToCCIncludeLimit = iEngine->RandomNumber(0, 30);
- else
- param->iToCCIncludeLimit = ConvertStrToIntL(aElemContent);
- }
- else
- return EFalse;
-
- return ETrue;
- }
-
-TBool CCreatorMailboxElement::GetBooleanValueL(const TDesC& aElemContent, TBool aSetRandom)
- {
- if( aSetRandom )
- return iEngine->RandomNumber(0,1) == 1;
-
- return ConvertStrToBooleanL(aElemContent);
- }
-
-TBool CCreatorMailboxElement::SetBooleanParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
- {
- TBool val = GetBooleanValueL(aElemContent, aSetRandom);
- if( aElemName == Kincomingsslwrapper )
- param->iIncomingSSLWrapper = val;
- else if( aElemName == Kincomingsecuresockets )
- param->iIncomingSecureSockets = val;
- else if( aElemName == Kacknowledgereceipts )
- param->iAcknowledgeReceipts = val;
- else if( aElemName == Kautosendonconnect )
- param->iAutoSendOnConnect = val;
- else if( aElemName == Kdeletemailsatdisconnect )
- param->iDeleteEmailsAtDisconnect = val;
- else if( aElemName == Kimapidlecommand )
- param->iImapIdleCommand = val;
- else if( aElemName == Kmarkseeninsync )
- param->iMarkSeenInSync = val;
- else if( aElemName == Kenableexpungemode )
- param->iEnableExpungeMode = val;
- else if( aElemName == Kuseapopsecurelogin )
- param->iUseApop = val;
- else if( aElemName == Kdisconnectedusermode )
- param->iDisconnectedUserMode = val;
- else if( aElemName == Koutgoingsslwrapper )
- param->iOutgoingSSLWrapper = val;
- else if( aElemName == Koutgoingsecuresockets )
- param->iOutgoingSecureSockets = val;
- else if( aElemName == Kincludesignature )
- param->iIncludeSignature = val;
- else if( aElemName == Kaddvcard )
- param->iAddVCard = val;
- else if( aElemName == Krequestreceipts )
- param->iRequestReceipts = val;
- else if( aElemName == Ksmtpauth )
- param->iSmtpAuth = val;
- else
- return EFalse;
-
- return ETrue;
- }
-
-TBool CCreatorMailboxElement::SetTextParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
- {
- _LIT(KIncomingSrvPrefix, "mail.");
- _LIT(KOutgoingSrvPrefix, "smtp.");
- _LIT(KSrvPostfix, ".com");
- _LIT(KDefaultConnMethod, "internet");
-
- if( aElemName == Kname )
- {
- if( aSetRandom )
- {
- TPtrC company(iEngine->RandomString(CCreatorEngine::ECompany));
- SetContentToTextParamL(param->iMailboxName, company);
- }
- else
- SetContentToTextParamL(param->iMailboxName, aElemContent);
- }
- else if( aElemName == Kincomingloginname )
- {
- if( aSetRandom )
- {
- TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
- SetContentToTextParamL(param->iIncomingLoginName, random);
- param->iIncomingLoginName->Des().LowerCase();
- }
- else
- SetContentToTextParamL(param->iIncomingLoginName, aElemContent);
- }
- else if( aElemName == Kincomingpassword )
- {
- if( aSetRandom )
- {
- TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
- SetContentToTextParamL(param->iIncomingPassword, random);
- param->iIncomingPassword->Des().LowerCase();
- }
- else
- SetContentToTextParamL(param->iIncomingPassword, aElemContent);
- }
- else if( aElemName == Kincomingservername )
- {
- if( aSetRandom )
- {
- TPtrC random(iEngine->RandomString(CCreatorEngine::ECompany));
- HBufC* srvName = HBufC::NewLC(KIncomingSrvPrefix().Length()+random.Length()+KSrvPostfix().Length());
- srvName->Des().Copy(KIncomingSrvPrefix);
- srvName->Des().Append(random);
- srvName->Des().Append(KSrvPostfix);
- SetContentToTextParamL(param->iIncomingServerName, srvName->Des());
- CleanupStack::PopAndDestroy(); // srvName
- }
- else
- SetContentToTextParamL(param->iIncomingServerName, aElemContent);
- }
- else if( aElemName == Kincomingconnectionmethod )
- {
- if( aSetRandom )
- SetContentToTextParamL(param->iIncomingConnectionMethod, KDefaultConnMethod);
- else
- SetContentToTextParamL(param->iIncomingConnectionMethod, aElemContent);
- }
- else if( aElemName == Kincomingfolderpath )
- SetContentToTextParamL(param->iIncomingFolderPath, aElemContent);
- else if( aElemName == Kpathseparator )
- SetContentToTextParamL(param->iPathSeparator, aElemContent);
- else if( aElemName == Koutgoingloginname )
- {
- if( aSetRandom )
- {
- TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
- SetContentToTextParamL(param->iOutgoingLoginName, random);
- param->iOutgoingLoginName->Des().LowerCase();
- }
- else
- SetContentToTextParamL(param->iOutgoingLoginName, aElemContent);
- }
- else if( aElemName == Koutgoingpassword )
- {
- if( aSetRandom )
- {
- TPtrC random(iEngine->RandomString(CCreatorEngine::EFirstName));
- SetContentToTextParamL(param->iOutgoingPassword, random);
- param->iOutgoingPassword->Des().LowerCase();
- }
- else
- SetContentToTextParamL(param->iOutgoingPassword, aElemContent);
- }
- else if( aElemName == Koutgoingservername )
- {
- if( aSetRandom )
- {
- TPtrC random(iEngine->RandomString(CCreatorEngine::ECompany));
- HBufC* srvName = HBufC::NewLC(KOutgoingSrvPrefix().Length()+random.Length()+KSrvPostfix().Length());
- srvName->Des().Copy(KOutgoingSrvPrefix);
- srvName->Des().Append(random);
- srvName->Des().Append(KSrvPostfix);
- SetContentToTextParamL(param->iOutgoingServerName, srvName->Des());
- CleanupStack::PopAndDestroy(); // srvName
- }
- else
- SetContentToTextParamL(param->iOutgoingServerName, aElemContent);
- }
- else if( aElemName == Koutgoingconnectionmethod )
- {
- if( aSetRandom )
- SetContentToTextParamL(param->iOutgoingConnectionMethod, KDefaultConnMethod);
- else
- SetContentToTextParamL(param->iOutgoingConnectionMethod, aElemContent);
- }
- else if( aElemName == Kownemail )
- {
- if( aSetRandom )
- {
- TDesC* email = iEngine->CreateEmailAddressLC();
- SetContentToTextParamL(param->iOwnEmailAddress, *email);
- CleanupStack::PopAndDestroy(); // email
- }
- else
- SetContentToTextParamL(param->iOwnEmailAddress, aElemContent);
- }
- else if( aElemName == Kemailalias )
- {
- if( aSetRandom )
- {
- _LIT(KSpace, " ");
- TPtrC firstName(iEngine->RandomString(CCreatorEngine::EFirstName));
- TPtrC lastName(iEngine->RandomString(CCreatorEngine::ESurname));
- HBufC* alias = HBufC::NewLC(firstName.Length() + lastName.Length() + KSpace().Length());
- alias->Des().Copy(firstName);
- alias->Des().Append(KSpace);
- alias->Des().Append(lastName);
- SetContentToTextParamL(param->iOwnEmailAlias, alias->Des());
- CleanupStack::PopAndDestroy(); // alias
- }
- else
- SetContentToTextParamL(param->iOwnEmailAlias, aElemContent);
- }
- else if( aElemName == Kreceiptaddress )
- {
- if( aSetRandom )
- {
- TDesC* email = iEngine->CreateEmailAddressLC();
- SetContentToTextParamL(param->iReceiptAddress, *email);
- CleanupStack::PopAndDestroy(); // email
- }
- else
- SetContentToTextParamL(param->iReceiptAddress, aElemContent);
- }
- else if( aElemName == Kreplytoaddress )
- {
- if( aSetRandom )
- {
- TDesC* email = iEngine->CreateEmailAddressLC();
- SetContentToTextParamL(param->iReceiptAddress, *email);
- CleanupStack::PopAndDestroy(); // email
- }
- else
- SetContentToTextParamL(param->iReplyToAddress, aElemContent);
- }
- else
- return EFalse;
-
- return ETrue;
- }
-
-TBool CCreatorMailboxElement::SetEnumParamL(const TDesC& aElemName, const TDesC& aElemContent, CMailboxesParameters* param, TBool aSetRandom )
- {
- // Get email options:
- if( aElemName == Kgetemailoptions )
- {
- if( aSetRandom )
- param->iGetEmailOptions = (CMailboxesParameters::TGetEmailOption) iEngine->RandomNumber(
- CMailboxesParameters::EGetHeaders,
- CMailboxesParameters::EGetEmailOptionLast-1);
- else if( CompareIgnoreCase(aElemContent, Kgetheaders ) == 0 )
- param->iGetEmailOptions = CMailboxesParameters::EGetHeaders;
- else if( CompareIgnoreCase(aElemContent, Kgetbodytext) == 0 )
- param->iGetEmailOptions = CMailboxesParameters::EGetBodyText;
- else if( CompareIgnoreCase(aElemContent, Kgetbodytextandattachments) == 0 )
- param->iGetEmailOptions = CMailboxesParameters::EGetBodyTextAndAttachments;
- else if( CompareIgnoreCase(aElemContent, Kgetattachments) == 0 )
- param->iGetEmailOptions = CMailboxesParameters::EGetAttachments;
- else if( CompareIgnoreCase(aElemContent, Kgetbodyalternativetext) == 0 )
- param->iGetEmailOptions = CMailboxesParameters::EGetBodyAlternativeText;
- else
- param->iGetEmailOptions = CMailboxesParameters::EUndef;
- }
-
- // Subscribe type:
- else if( aElemName == Ksubscribetype )
- {
- if( aSetRandom )
- param->iSubscribeType = (TFolderSubscribeType) iEngine->RandomNumber( EUpdateNeither, EUpdateBoth );
- else if( CompareIgnoreCase( aElemContent, Kupdatelocal) == 0 )
- param->iSubscribeType = EUpdateLocal;
- else if( CompareIgnoreCase( aElemContent, Kupdateremote) == 0 )
- param->iSubscribeType = EUpdateRemote;
- else if( CompareIgnoreCase( aElemContent, Kupdateboth) == 0 )
- param->iSubscribeType = EUpdateBoth;
- else
- param->iSubscribeType = EUpdateNeither;
- }
-
- // Folder synchronization type:
- else if( aElemName == Kfoldersynctype)
- {
- if( aSetRandom )
- param->iSyncType = (TFolderSyncType) iEngine->RandomNumber(EUseCombination, EUseRemote);
- else if( CompareIgnoreCase( aElemContent, Kuselocal) == 0 )
- param->iSyncType = EUseLocal;
- else if( CompareIgnoreCase( aElemContent, Kuseremote) == 0 )
- param->iSyncType = EUseRemote;
- else
- param->iSyncType = EUseCombination;
- }
-
- // Send copy to self option:
- else if( aElemName == Kcopytoself )
- {
- if( aSetRandom )
- param->iSendCopyToSelf = (TImSMTPSendCopyToSelf) iEngine->RandomNumber(ESendNoCopy, ESendCopyAsBccRecipient);
- else if( CompareIgnoreCase( aElemContent, Kto) == 0 )
- param->iSendCopyToSelf = ESendCopyAsToRecipient;
- else if( CompareIgnoreCase( aElemContent, Kcc) == 0 )
- param->iSendCopyToSelf = ESendCopyAsCcRecipient;
- else if( CompareIgnoreCase( aElemContent, Kbcc) == 0 )
- param->iSendCopyToSelf = ESendCopyAsBccRecipient;
- else
- param->iSendCopyToSelf = ESendNoCopy;
- }
-
- // Send option:
- else if( aElemName == Ksendoption )
- {
- if( aSetRandom )
- param->iSendOption = (TImSMTPSendMessageOption) iEngine->RandomNumber(ESendMessageImmediately, ESendMessageOnRequest);
- else if( CompareIgnoreCase( aElemContent, Konnextconnection) == 0 )
- param->iSendOption = ESendMessageOnNextConnection;
- else if( CompareIgnoreCase( aElemContent, Konrequest) == 0 )
- param->iSendOption = ESendMessageOnRequest;
- else
- param->iSendOption = ESendMessageImmediately;
- }
- else
- {
- return EFalse;
- }
- return ETrue;
- }
-
-void CCreatorMailboxElement::ExecuteCommandL()
- {
- const CCreatorScriptAttribute* amountAttr = FindAttributeByName(KAmount);
- const CCreatorScriptAttribute* typeAttr = FindAttributeByName(KMailboxType);
- TInt amount = 1;
- if( amountAttr )
- {
- amount = ConvertStrToIntL(amountAttr->Value());
- }
-
- TMailboxType mailboxType = EMailboxPOP3;
-
- if( typeAttr && CompareIgnoreCase(typeAttr->Value(), Kimap4) == 0 )
- {
- mailboxType = EMailboxIMAP4;
- }
-
- // Get 'fields' element
- CCreatorScriptElement* fieldsElement = FindSubElement(KFields);
- if( fieldsElement && fieldsElement->SubElements().Count() > 0)
- {
- // Get sub-elements
- const RPointerArray<CCreatorScriptElement>& fields = fieldsElement->SubElements();
- // Create mailbox entries, the amount of entries is defined by amount:
- for( TInt cI = 0; cI < amount; ++cI )
- {
- CMailboxesParameters* param = new (ELeave) CMailboxesParameters;
- CleanupStack::PushL(param);
-
- param->iMailboxType = mailboxType;
-
- for( TInt i = 0; i < fields.Count(); ++i )
- {
- CCreatorScriptElement* field = fields[i];
- TPtrC elemName = field->Name();
- TPtrC elemContent = field->Content();
- const CCreatorScriptAttribute* randomAttr = fields[i]->FindAttributeByName(KRandomLength);
- TBool useRandom = EFalse;
- if( randomAttr || elemContent.Length() == 0 )
- {
- useRandom = ETrue;
- }
-
- if( SetTextParamL(elemName, elemContent, param, useRandom ) == EFalse &&
- SetBooleanParamL(elemName, elemContent, param, useRandom ) == EFalse &&
- SetIntegerParamL(elemName, elemContent, param, useRandom ) == EFalse &&
- SetEnumParamL(elemName, elemContent, param, useRandom ) )
- {
- LOGSTRING2("CCreatorMailboxElement::ExecuteCommandL: Unknown mailbox field: %S", &elemName);
- }
- }
- iEngine->AppendToCommandArrayL(ECmdCreateMessagingEntryMailboxes, param);
- CleanupStack::Pop(); // param
- }
- }
- else
- {
- iEngine->AppendToCommandArrayL(ECmdCreateMessagingEntryMailboxes, 0, amount);
- }
- }