--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messaging/Src/TestMessEditEntryUtil.cpp Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,249 @@
+// 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 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:
+// This contains CTestMessEditEntryUtil. A utility to edit an entry
+//
+//
+
+
+#include "TestMessEditEntryUtil.h"
+
+// EPOC includes
+
+#include <smut.h>
+#include <miutmsg.h>
+#include <mtclreg.h>
+
+/**
+ * @name Constant Literals used.
+ */
+/*@{*/
+_LIT(KToRecipients, "toRecipients");
+_LIT(KTo, "to%d");
+_LIT(KDef, "default");
+_LIT(KDefTo, "emailto");
+
+/// Literal constants used
+_LIT(KCharacterSetType, "characterSetType");
+_LIT(KPtEditBody, "EditBody");
+_LIT(KPtEditRecipients, "EditRecipients");
+_LIT(KPtRecipient, "recipient%d");
+/*@}*/
+
+CTestMessEditEntryUtil::CTestMessEditEntryUtil(CTestMessBase& aTestStep, TBool aSimChecked, TBool aSimInDatabase, RMobilePhone::TMobileAddress aSimPhoneNumber)
+: CTestMessStoreProcessUtil(aTestStep, EFalse)
+, iSimChecked(aSimChecked)
+, iSimInDatabase(aSimInDatabase)
+, iSimPhoneNumber(aSimPhoneNumber)
+ {
+ }
+
+/**
+ * Edits the ImHeaders of the Entry
+ * @param CImHeader& aHeader - Im Header to edit
+ * @return None
+ * @panic None
+ * @leave KErrNoMemory
+ *
+*/
+void CTestMessEditEntryUtil::ProcessImHeaderL(CImHeader& aHeader)
+ {
+ // Edit the CImHeader information
+ TInt recipients;
+ if ( !iTestStep.GetIntFromConfig(iTestStep.ConfigSection(), KToRecipients, recipients) )
+ {
+ recipients=0;
+ }
+
+ for ( TInt recipient=1; recipient<=recipients; recipient++)
+ {
+ TBuf<KMaxTestExecuteCommandLength> tempStore;
+ tempStore.Format(KTo(), recipient);
+
+ TPtrC to;
+ TInt returnValue=iTestStep.GetStringFromConfig(iTestStep.ConfigSection(), tempStore, to);
+ if ( !returnValue )
+ {
+ returnValue=iTestStep.GetStringFromConfig(KDef, KDefTo, to);
+ }
+ if ( !returnValue )
+ {
+ iTestStep.ERR_PRINTF1(_L("No To"));
+ iTestStep.SetTestStepResult(EFail);
+ }
+ else
+ {
+ iTestStep.INFO_PRINTF2(_L("To = %S"), &to);
+ aHeader.ToRecipients().AppendL(to);
+ }
+ }
+ }
+
+/**
+ * Edits the ImMimeHeaders of the message entry
+ * @param CImMimeHeader& aHeader - Mime Header to edit
+ * @return None
+ * @panic None
+ * @leave KErrNoMemory
+ *
+*/
+void CTestMessEditEntryUtil::ProcessImMimeHeaderL(CImMimeHeader& aHeader)
+ {
+ // Update the character set info
+ TPtrC charSetType;
+ if ( iTestStep.GetStringFromConfig(iTestStep.ConfigSection(), KCharacterSetType, charSetType) )
+ {
+ TUint charSetVal;
+ if ( ValidCharacterSetInfo(charSetType, charSetVal) )
+ {
+ aHeader.SetMimeCharset(charSetVal);
+ }
+ }
+ }
+
+/**
+ * Edits the ImIAPPreferences of the entry
+ * @param CImIAPPreferences& aPreferences - IAP Preferences to edit
+ * @return None
+ * @panic None
+ * @leave KErrNoMemory
+ *
+*/
+void CTestMessEditEntryUtil::ProcessInternetAccessPreferencesL(CImIAPPreferences& /*aPreferences*/)
+ {
+ }
+
+/**
+ Edits the CSmsHeader of the entry
+ @param CSmsHeader& aHeader - Sms Header to edit
+ @return None
+ @panic None
+ @leave KErrNoMemory
+*/
+void CTestMessEditEntryUtil::ProcessSmsHeaderStreamL(CSmsHeader& aSmsHeader)
+ {
+ // Get the number of recipients
+ TInt recipients = 0;
+ if ( !iTestStep.GetIntFromConfig(iTestStep.ConfigSection(), KPtEditRecipients, recipients) )
+ {
+ recipients=0;
+ iTestStep.INFO_PRINTF1(_L("No Recipients edited/added"));
+ }
+ iTestStep.INFO_PRINTF2(_L("The number of recipients : %d"), recipients);
+
+ if ( !iSimChecked )
+ {
+ //IMK iSimInDatabase=(iTestStep.GetPhoneSmsNumberL(iSimPhoneNumber)==KErrNone);
+ iSimInDatabase=0;
+ }
+ TPtrC to(iSimPhoneNumber.iTelNumber);
+ TInt returnValue=ETrue;
+ for ( TInt recipient=0; (recipient<recipients) && (iTestStep.TestStepResult()==EPass); )
+ {
+ ++recipient;
+ if ( iSimInDatabase )
+ {
+ returnValue=ETrue;
+ }
+ else
+ {
+ TBuf<KMaxTestExecuteCommandLength> tempStore;
+ tempStore.Format(KPtRecipient(), recipient);
+
+ //Get the recipient address
+ returnValue=iTestStep.GetStringFromConfig(iTestStep.ConfigSection(), tempStore, to);
+ if ( !returnValue )
+ {
+ returnValue=iTestStep.GetStringFromConfig(KDef, KDefTo, to);
+ }
+ }
+ if ( !returnValue )
+ {
+ iTestStep.ERR_PRINTF1(_L("Recipient number is not Provided"));
+ iTestStep.SetTestStepResult(EFail);
+ }
+ else
+ {
+ //Append the recipient address in recipient list
+ CSmsNumber* smsNumber = CSmsNumber::NewL();
+ CleanupStack::PushL(smsNumber);
+ iTestStep.INFO_PRINTF2(_L("To = %S"), &to);
+ smsNumber->SetAddressL(to);
+ aSmsHeader.Recipients().AppendL(smsNumber);
+ //No need to destory CSmsNumber. CSmsHeader destroys it
+ CleanupStack::Pop(smsNumber);
+ }
+ }
+ }
+
+
+/**
+ Edits the CRichText of the entry
+ @param CRichText& aBodyText - Text to edit
+ @return None
+ @panic None
+ @leave KErrNoMemory
+*/
+void CTestMessEditEntryUtil::ProcessRichTextBodyL(CRichText& aBodyText)
+ {
+ TPtrC ptrBody;
+ //Get the body text file
+ TBool returnValue=iTestStep.GetStringFromConfig(iTestStep.ConfigSection(), KPtEditBody, ptrBody);
+ if ( !returnValue )
+ {
+ iTestStep.INFO_PRINTF1(_L("Body is not edited"));
+ }
+ else
+ {
+ iTestStep.INFO_PRINTF2(_L("Body = %S"), &ptrBody);
+
+ // open the file
+ RFs rfs;
+ rfs.Connect();
+ RFile file;
+
+ //Append the body text of the entry
+ TInt anError = file.Open(rfs, ptrBody, EFileShareAny);
+ if(anError == KErrNone)
+ {
+ TBool reading=ETrue;
+ TInt pos = aBodyText.LdDocumentLength();
+ TBuf8<1> charIn;
+ while (reading)
+ {
+ file.Read(charIn, 1);
+ if(charIn.Length())
+ switch ( charIn[0] )
+ {
+ case '\r':
+ aBodyText.InsertL(pos++, CEditableText::ELineBreak);
+ case '\n':
+ break;
+ default:
+ aBodyText.InsertL(pos++, TChar(charIn[0]));
+ }
+ else
+ {
+ reading = FALSE; // stop at the end of the file
+ }
+ }
+ file.Close();
+ rfs.Close();
+ }
+ else
+ {
+ iTestStep.ERR_PRINTF2(_L("Cannot open file = %S"), &ptrBody);
+ iTestStep.SetTestStepResult(EFail);
+ }
+ }
+ }