--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/clientmtms/test/src/T_MIUT02.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,1971 @@
+// Copyright (c) 1998-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:
+// Name of test harness: T_MIUT02
+// Component: IMCM
+// Owner: KP
+// Brief description of test harness:
+// Test classes derived from CBaseEmailSettings - CImPop3Settings,
+// CImImap4Settings, CImSmtpSettings - most of the
+// functionality is tested - some new functions may not be tested!
+// Detailed description of test harness:
+// As above.
+// Input files required to run test harness:
+// None
+// Intermediate files produced while running test harness:
+// <DRIVE>:\msgtest\T_MIUT02\T_IMCM.log
+// Output files produced by running test harness:
+// <DRIVE>:\msglogs\T_MIUT02.<PLATFORM>.<VARIANT>.LOG.txt
+// Description of how to build test harness:
+// cd \msg\imcm\
+// bldmake bldfiles
+// abld test build
+// Description of how to run test harness:
+// The following instructions are the same for all platforms:
+// 1. Build T_DB test harness from COMMDB component:
+// cd \commdb\group
+// bldmake bldfiles
+// abld test build t_db
+// 2. Build the test utilities:
+// cd \msg\testutils\group\
+// bldmake bldfiles
+// abld build
+// WINS running instructions:
+// 1. \epoc32\release\wins\<VARIANT>\T_MIUT02.exe can be used at the command prompt
+// or executable can be run from Windows Explorer.
+// All other platform running instructions:
+// 1. Copy \epoc32\release\<PLATFORM>\<VARIANT>\T_MIUT02.exe onto the other platform
+// 2. Copy \epoc32\release\<PLATFORM>\<VARIANT>\MSVTESTUTILS.DLL into
+// <DRIVE>:\system\libs on the other platform
+// 3. Copy \epoc32\release\<PLATFORM>\<VARIANT>\EMAILTESTUTILS.DLL into
+// <DRIVE>:\system\libs on the other platform
+// 4. Run T_MIUT02.exe on the other platform
+//
+//
+
+#include "emailtestutils.h"
+#include "miuthdr.h" // CImHeader
+#include <miutlog.h>
+#include <pop3set.h>
+#include <imapset.h>
+#include <smtpset.h>
+#include <miutset.h>
+#include <msvids.h>
+#include <cemailaccounts.h>
+#include <iapprefs.h>
+
+// local variables etc //
+
+RTest test(_L("MIUT02 - Test classes derived from CBaseEmailSettings"));
+LOCAL_D CTrapCleanup* theCleanup;
+
+LOCAL_D CEmailTestUtils* testUtils;
+LOCAL_D CImPop3Settings* ImPop3Settings;
+LOCAL_D CImPop3Settings* ImPop3SettingsVerify;
+LOCAL_D CImImap4Settings* ImImap4Settings;
+LOCAL_D CImImap4Settings* ImImap4SettingsVerify;
+LOCAL_D CImSmtpSettings* ImSmtpSettings;
+LOCAL_D CImSmtpSettings* ImSmtpSettingsVerify;
+LOCAL_D TMsvEntry* entry;
+LOCAL_D CEmailAccounts* account;
+LOCAL_D TPopAccount popAccount;
+LOCAL_D TImapAccount imapAccount;
+
+#define KMiutSmtpBodyEncoding EMsgOutboxNoAlgorithm
+#define KMiutSmtpIAP 0x10000001
+#define KMaxSettingStringLengthLong KMaxSettingStringLength
+
+
+_LIT (KMiutPop3ServerAddress, "10.0.0.6");
+_LIT8(KMiutImap4FolderPath, "../");
+_LIT (KMiutSmtpEmailAlias, "Joe Bloggs");
+_LIT (KMiutSmtpEmailAddress, "joe@bloggs.com");
+
+const TUint KMiutPop3Port = 110;
+const TUid KMiutSmtpDefaultMsgCharSet={0x10003C80};
+
+enum Apop {
+ EApopTrue,
+ EApopFalse,
+ EApopOther
+ };
+
+_LIT(KPOPAccountName, "PopAccount");
+_LIT(KIMAPAccountName, "ImapAccount");
+_LIT8(KServerAddress, "ServerAddress");
+_LIT8(KLoginName, "LoginName");
+_LIT8(KPassword, "Password");
+_LIT8(KAutoSendOnConnect, "AutoSendOnConnect");
+_LIT8(KDisconnectedUserMode, "DisconnectedUserMode");
+_LIT8(KDeleteEmailsWhenDisconnecting, "DeleteEmailsWhenDisconnecting");
+_LIT8(KAcknowledgeReceipts, "AcknowledgeReceipts");
+_LIT8(KMaxEmailSize, "MaxEmailSize");
+_LIT8(KFolderPath, "FolderPath");
+_LIT8(KPathSeparator, "PathSeperator");
+_LIT8(KEmailAlias, "EmailAlias");
+_LIT8(KEmailAddress, "EmailAddress");
+_LIT8(KReplyToAddress, "ReplyToAddress");
+_LIT8(KReceiptAddress, "ReceiptAddress");
+_LIT8(KBodyEncoding, "BodyEncoding");
+_LIT8(KAddVCardToEmail, "AddVCardToEmail");
+_LIT8(KAddSignatureToEmail, "AddSignatureToEmail");
+_LIT8(KRequestReceipts, "RequestReceipts");
+_LIT8(KInboxSyncLimit, "InboxSynchonisationLimit");
+_LIT8(KMailboxSyncLimit, "MailboxSynchonisationLimit");
+_LIT8(KSyncRate, "SyncRate");
+_LIT8(KImapIdle, "ImapIdle");
+_LIT8(KImapIdleTimeout, "ImapIdleTimeout");
+_LIT8(KBodyTextSizeLimit, "BodyTextSizeLimit");
+_LIT8(KAttachmentSizeLimit, "AttachmentSizeLimit");
+
+TBuf16<KMaxSettingStringLength> buffer1;
+TBuf16<KMaxSettingStringLength> buffer2;
+TBuf8<KMaxSettingStringLength> buf1;
+TBuf8<KMaxSettingStringLength> buf2;
+TText8 separator1;
+TText8 separator2;
+
+
+//
+
+LOCAL_C void ResultOfTest(TBool aResult,TInt aTestNo)
+ {
+ if (aResult)
+ {
+ test.Printf(TRefByValue<const TDesC>_L("Passed test %d\n"),aTestNo);
+ }
+ else
+ {
+ test.Printf(TRefByValue<const TDesC>_L("Failed test %d\n"),aTestNo);
+ }
+ }
+
+LOCAL_C TBool CompareBooleans(TBool aBoolean1, TBool aBoolean2, const TDesC8* aTestDescription)
+ {
+ _LIT(KErrorReason, "\t\tSettings not set correctly for %S");
+ _LIT(KPassReason, "\t\tSettings set correctly for %S");
+ TBuf<80> buf;
+ TBuf<80> temp;
+ temp.Copy(*aTestDescription);
+ TBool result = ((aBoolean1 && aBoolean2) || (!aBoolean1 && !aBoolean2));
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ else
+ {
+ buf.AppendFormat(KPassReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ return result;
+ }
+
+LOCAL_C TBool CompareDescriptors(TDesC16& aDesC1, TDesC16& aDesC2, const TDesC8* aTestDescription)
+ {
+ _LIT(KErrorReason, "\t\tSettings not set correctly for %S");
+ _LIT(KPassReason, "\t\tSettings set correctly for %S");
+ TBuf<80> buf;
+ TBuf<80> temp;
+ temp.Copy(*aTestDescription);
+ TBool result = (aDesC1 == aDesC2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ else
+ {
+ buf.AppendFormat(KPassReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ return result;
+ }
+
+LOCAL_C TBool CompareDescriptors(TDesC8& aDesC1, TDesC8& aDesC2, const TDesC8* aTestDescription)
+ {
+ _LIT(KErrorReason, "\t\tSettings not set correctly for %S");
+ _LIT(KPassReason, "\t\tSettings set correctly for %S");
+ TBuf<80> buf;
+ TBuf<80> temp;
+ temp.Copy(*aTestDescription);
+ TBool result = (aDesC1 == aDesC2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ else
+ {
+ buf.AppendFormat(KPassReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+
+ return result;
+ }
+
+LOCAL_C TBool CompareIntegers(TInt aInt1, TInt aInt2, const TDesC8* aTestDescription)
+ {
+ _LIT(KErrorReason, "\t\tSettings not set correctly for %S");
+ _LIT(KPassReason, "\t\tSettings set correctly for %S");
+ TBuf<80> buf;
+ TBuf<80> temp;
+ temp.Copy(*aTestDescription);
+ TBool result = (aInt1 == aInt2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ else
+ {
+ buf.AppendFormat(KPassReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+
+ return result;
+ }
+
+LOCAL_C TBool CompareTextChars(TText8 aChar1, TText8 aChar2, const TDesC8* aTestDescription)
+ {
+ _LIT(KErrorReason, "\t\tSettings not set correctly for %S");
+ _LIT(KPassReason, "\t\tSettings set correctly for %S");
+ TBuf<80> buf;
+ TBuf<80> temp;
+ temp.Copy(*aTestDescription);
+ TBool result = (aChar1 == aChar2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+ else
+ {
+ buf.AppendFormat(KPassReason, &temp);
+ testUtils->WriteComment(buf);
+ }
+
+ return result;
+ }
+
+
+//
+// CImPop3Settings Test Functions //
+//
+
+LOCAL_C void CreateFilledPOP3Settings(Apop apop)
+ {
+ ImPop3Settings->SetServerAddressL(KMiutPop3ServerAddress);
+ ImPop3Settings->SetPort(KMiutPop3Port); // port number can only be positive (TUint)
+ ImPop3Settings->SetLoginNameL(testUtils->MachineName());
+ ImPop3Settings->SetPasswordL(testUtils->MachineName());
+
+ if (apop==EApopTrue)
+ ImPop3Settings->SetApop(ETrue);
+ else if (apop==EApopFalse)
+ ImPop3Settings->SetApop(EFalse);
+ else // Set an incorrect APOP value
+ ImPop3Settings->SetApop(0);
+
+ ImPop3Settings->SetDisconnectedUserMode(ETrue);
+ ImPop3Settings->SetAutoSendOnConnect(ETrue);
+ ImPop3Settings->SetDeleteEmailsWhenDisconnecting(ETrue);
+ ImPop3Settings->SetAcknowledgeReceipts(ETrue);
+ ImPop3Settings->SetMaxEmailSize(123456);
+ ImPop3Settings->SetGetMailOptions(EGetPop3EmailHeaders);
+ ImPop3Settings->SetInboxSynchronisationLimit(123); // New in V3
+ _LIT(KComment, "\t\tCreated Filled POP3 Settings");
+ testUtils->WriteComment(KComment);
+ }
+
+LOCAL_C void CreateLongPOP3Settings()
+ {
+ // a bunch of data for the header object....
+ // all the fields are set to a length greater than 1000 i.e 1001
+
+ TBuf8<KMaxSettingStringLengthLong> longValue;
+ longValue.Fill('x',KMaxSettingStringLengthLong);
+ TBuf<KMaxSettingStringLengthLong> longValue1;
+ longValue1.Fill('x',KMaxSettingStringLengthLong);
+ ImPop3Settings->SetServerAddressL(longValue1);
+ ImPop3Settings->SetPort(KMiutPop3Port); // port number can only be positive (TUint)
+ ImPop3Settings->SetLoginNameL(testUtils->MachineName());
+ ImPop3Settings->SetPasswordL(testUtils->MachineName());
+ ImPop3Settings->SetApop(ETrue);
+ ImPop3Settings->SetDisconnectedUserMode(ETrue);
+ ImPop3Settings->SetAutoSendOnConnect(ETrue);
+ ImPop3Settings->SetDeleteEmailsWhenDisconnecting(ETrue);
+ ImPop3Settings->SetAcknowledgeReceipts(ETrue);
+ ImPop3Settings->SetMaxEmailSize(123456);
+ ImPop3Settings->SetGetMailOptions(EGetPop3EmailHeaders);
+ ImPop3Settings->SetInboxSynchronisationLimit(123); // New in V3
+ _LIT(KComment, "\t\tCreated Long POP3 Settings");
+ testUtils->WriteComment(KComment);
+ }
+
+LOCAL_C TBool CompareFilledPOP3Settings(TInt aTest)
+ {
+ _LIT(KComment, "\t\tComparing Filled POP3 Settings");
+ testUtils->WriteComment(KComment);
+ TBool result = ETrue;
+ buffer1 = ImPop3Settings->ServerAddress();
+ buffer2 = ImPop3SettingsVerify->ServerAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KServerAddress);
+
+
+ buf1 = ImPop3Settings->LoginName();
+ buf2 = ImPop3SettingsVerify->LoginName();
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImPop3Settings->Password();
+ buf2 = ImPop3SettingsVerify->Password();
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ result &= CompareBooleans(ImPop3Settings->AutoSendOnConnect(), ImPop3SettingsVerify->AutoSendOnConnect(), &KAutoSendOnConnect);
+ result &= CompareBooleans(ImPop3Settings->DisconnectedUserMode(), ImPop3SettingsVerify->DisconnectedUserMode(), &KDisconnectedUserMode);
+ result &= CompareBooleans(ImPop3Settings->DeleteEmailsWhenDisconnecting(), ImPop3SettingsVerify->DeleteEmailsWhenDisconnecting(), &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImPop3Settings->AcknowledgeReceipts(), ImPop3SettingsVerify->AcknowledgeReceipts(), &KAcknowledgeReceipts);
+
+ result &= CompareIntegers((ImPop3Settings->MaxEmailSize()), (ImPop3SettingsVerify->MaxEmailSize()), &KMaxEmailSize);
+
+ result &= CompareIntegers((ImPop3Settings->InboxSynchronisationLimit()), (ImPop3SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+
+ TBool result1 = ETrue;;
+ if (ImPop3Settings->Port()<=65535)
+ result1 &= ((ImPop3Settings->Port())==(ImPop3SettingsVerify->Port()));
+ else // port numbers can only be in the range 0-65535
+ result1 &= EFalse;
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPort Numbers out of Range");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2 = ETrue;
+ if (ImPop3Settings->Apop()==1 || ImPop3Settings->Apop()==0)
+ result2 &= ((ImPop3Settings->Apop())==(ImPop3SettingsVerify->Apop()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tApop values incorrectly set");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImPop3Settings->GetMailOptions())==(ImPop3SettingsVerify->GetMailOptions()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tGetMailOptions not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareBlankPOP3Settings(TInt aTest)
+ {
+ // need to check each of the fields of the stored header (imHeaderVerify) are
+ // the same as that originally entered (imHeader). Here the length should be
+ // 0 so we don't actually need to compare!
+
+ TBool result = ETrue;
+ _LIT(KComment, "\t\tComparing Blank POP3 Settings");
+ testUtils->WriteComment(KComment);
+
+ result &= CompareBooleans((ImPop3Settings->ServerAddress().Length()==0), (ImPop3SettingsVerify->ServerAddress().Length()==0), &KServerAddress);
+ result &= CompareBooleans((ImPop3Settings->LoginName().Length()==0), (ImPop3SettingsVerify->LoginName().Length()==0), &KLoginName);
+ result &= CompareBooleans((ImPop3Settings->Password().Length()==0), (ImPop3SettingsVerify->Password().Length()==0), &KPassword);
+
+ result &= CompareBooleans(ImPop3Settings->AutoSendOnConnect(), EFalse, &KAutoSendOnConnect);
+ result &= CompareBooleans(ImPop3Settings->DisconnectedUserMode(), EFalse, &KDisconnectedUserMode);
+ result &= CompareBooleans(ImPop3Settings->DeleteEmailsWhenDisconnecting(), EFalse, &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImPop3Settings->AcknowledgeReceipts(), EFalse, &KAcknowledgeReceipts);
+
+ result &= CompareIntegers((ImPop3Settings->InboxSynchronisationLimit()), (ImPop3SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareLongPOP3Settings(TInt aTest)
+ {
+ TBool result = ETrue;
+ buffer1 = ImPop3Settings->ServerAddress().Left(KMaxSettingStringLength);
+ buffer2 = ImPop3SettingsVerify->ServerAddress().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buffer1, buffer2, &KServerAddress);
+
+
+ buf1 = ImPop3Settings->LoginName().Left(KMaxSettingStringLength);
+ buf2 = ImPop3SettingsVerify->LoginName().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImPop3Settings->Password().Left(KMaxSettingStringLength);
+ buf2 = ImPop3SettingsVerify->Password().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ result &= CompareBooleans(ImPop3Settings->AutoSendOnConnect(), ImPop3SettingsVerify->AutoSendOnConnect(), &KAutoSendOnConnect);
+ result &= CompareBooleans(ImPop3Settings->DisconnectedUserMode(), ImPop3SettingsVerify->DisconnectedUserMode(), &KDisconnectedUserMode);
+ result &= CompareBooleans(ImPop3Settings->DeleteEmailsWhenDisconnecting(), ImPop3SettingsVerify->DeleteEmailsWhenDisconnecting(), &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImPop3Settings->AcknowledgeReceipts(), ImPop3SettingsVerify->AcknowledgeReceipts(), &KAcknowledgeReceipts);
+
+ result &= CompareIntegers((ImPop3Settings->MaxEmailSize()), (ImPop3SettingsVerify->MaxEmailSize()), &KMaxEmailSize);
+
+ result &= CompareIntegers((ImPop3Settings->InboxSynchronisationLimit()), (ImPop3SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+
+ TBool result1 = ETrue;;
+ if (ImPop3Settings->Port()<=65535)
+ result1 &= ((ImPop3Settings->Port())==(ImPop3SettingsVerify->Port()));
+ else // port numbers can only be in the range 0-65535
+ result1 &= EFalse;
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPort Numbers out of Range");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2 = ETrue;
+ if (ImPop3Settings->Apop()==1 || ImPop3Settings->Apop()==0)
+ result2 &= ((ImPop3Settings->Apop())==(ImPop3SettingsVerify->Apop()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tApop values incorrectly set");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImPop3Settings->GetMailOptions())==(ImPop3SettingsVerify->GetMailOptions()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tGetMailOptions not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool ComparePOP3Copy()
+ {
+ _LIT(KComment, "\t\tComparing POP3 Copy with Original");
+ testUtils->WriteComment(KComment);
+ TBool result=ETrue;
+ buffer1 = ImPop3Settings->ServerAddress();
+ buffer2 = ImPop3SettingsVerify->ServerAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KServerAddress);
+
+
+ buf1 = ImPop3Settings->LoginName();
+ buf2 = ImPop3SettingsVerify->LoginName();
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImPop3Settings->Password();
+ buf2 = ImPop3SettingsVerify->Password();
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ result &= CompareBooleans(ImPop3Settings->AutoSendOnConnect(), ImPop3SettingsVerify->AutoSendOnConnect(), &KAutoSendOnConnect);
+ result &= CompareBooleans(ImPop3Settings->DisconnectedUserMode(), ImPop3SettingsVerify->DisconnectedUserMode(), &KDisconnectedUserMode);
+ result &= CompareBooleans(ImPop3Settings->DeleteEmailsWhenDisconnecting(), ImPop3SettingsVerify->DeleteEmailsWhenDisconnecting(), &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImPop3Settings->AcknowledgeReceipts(), ImPop3SettingsVerify->AcknowledgeReceipts(), &KAcknowledgeReceipts);
+
+ result &= CompareIntegers((ImPop3Settings->MaxEmailSize()), (ImPop3SettingsVerify->MaxEmailSize()), &KMaxEmailSize);
+
+ result &= CompareIntegers((ImPop3Settings->InboxSynchronisationLimit()), (ImPop3SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+
+ TBool result1 = ETrue;;
+ if (ImPop3Settings->Port()<=65535)
+ result1 &= ((ImPop3Settings->Port())==(ImPop3SettingsVerify->Port()));
+ else // port numbers can only be in the range 0-65535
+ result1 &= EFalse;
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPort Numbers out of Range");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2 = ETrue;
+ if (ImPop3Settings->Apop()==1 || ImPop3Settings->Apop()==0)
+ result2 &= ((ImPop3Settings->Apop())==(ImPop3SettingsVerify->Apop()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tApop values incorrectly set");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImPop3Settings->GetMailOptions())==(ImPop3SettingsVerify->GetMailOptions()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tGetMailOptions not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ return result;
+ }
+
+//
+
+
+LOCAL_C TBool TestPOP3EqualityAndCopyConstructorsL(TInt aTest)
+ {
+ _LIT(KComment, "\tPOP3 Equality and Copy Constructors Test");
+ testUtils->WriteComment(KComment);
+ entry = new(ELeave) TMsvEntry;
+ entry->iDescription.Set(_L("Description"));
+ entry->iDetails.Set(_L("Details"));
+ entry->iType = KUidMsvServiceEntry;
+ ImPop3Settings=new(ELeave)CImPop3Settings;
+ ImPop3SettingsVerify=new(ELeave)CImPop3Settings;
+ CreateFilledPOP3Settings(EApopTrue);
+// ImPop3SettingsVerify->SetVersion(2);
+ ImPop3SettingsVerify->CopyL(*ImPop3Settings);
+ TBool result=ComparePOP3Copy();
+ TBool result1=(*ImPop3SettingsVerify==*ImPop3Settings);
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tError in Equality Operator");
+ testUtils->WriteComment(KComment);
+ }
+ else
+ {
+ _LIT(KComment, "\t\tEquality Operator test passed");
+ testUtils->WriteComment(KComment);
+ }
+
+ result&=result1;
+ delete entry;
+ delete ImPop3Settings;
+ delete ImPop3SettingsVerify;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+//
+// CImImap4Settings Test Functions //
+//
+
+LOCAL_C void CreateFilledIMAP4Settings()
+ {
+ ImImap4Settings->SetLoginNameL(testUtils->MachineName());
+ ImImap4Settings->SetPasswordL(testUtils->MachineName());
+ ImImap4Settings->SetFolderPathL(KMiutImap4FolderPath);
+ ImImap4Settings->SetAutoSendOnConnect(ETrue);
+ ImImap4Settings->SetPathSeparator('\0');
+ ImImap4Settings->SetDisconnectedUserMode(ETrue);
+ ImImap4Settings->SetSynchronise(EUseCombination);
+ ImImap4Settings->SetSubscribe(EUpdateBoth);
+ ImImap4Settings->SetAutoSendOnConnect(ETrue);
+ ImImap4Settings->SetDeleteEmailsWhenDisconnecting(ETrue);
+ ImImap4Settings->SetAcknowledgeReceipts(ETrue);
+ ImImap4Settings->SetMaxEmailSize(123456);
+ ImImap4Settings->SetGetMailOptions(EGetImap4EmailHeaders);
+ ImImap4Settings->SetInboxSynchronisationLimit(123); // New in V3
+ ImImap4Settings->SetMailboxSynchronisationLimit(321); // New in V3
+ ImImap4Settings->SetSyncRateL(60); // New in V4
+ ImImap4Settings->SetImapIdle(ETrue);
+ ImImap4Settings->SetImapIdleTimeoutL(29); // New in V5
+ ImImap4Settings->SetPartialMailOptionsL(ENoSizeLimits); // New in V7
+ ImImap4Settings->SetBodyTextSizeLimitL(123456); // New in V7
+ ImImap4Settings->SetAttachmentSizeLimitL(123456); // New in V7
+ _LIT(KComment, "\tCreated Filled IMAP4 Settings");
+ testUtils->WriteComment(KComment);
+ }
+
+//Testing for -ve value of sync rate
+LOCAL_C TInt CreateIMAP4SettingsNegativeTest(TInt aTest)
+ {
+ TBool result;
+ _LIT(KComment, "CreateIMAP4SettingsNegativeTest");
+ testUtils->WriteComment(KComment);
+
+ entry = new(ELeave) TMsvEntry;
+ entry->iDescription.Set(_L("Description"));
+ entry->iDetails.Set(_L("Details"));
+ entry->iType = KUidMsvServiceEntry;
+
+ ImImap4Settings=new(ELeave)CImImap4Settings;
+ ImImap4Settings->SetLoginNameL(testUtils->MachineName());
+ ImImap4Settings->SetPasswordL(testUtils->MachineName());
+ ImImap4Settings->SetFolderPathL(KMiutImap4FolderPath);
+ ImImap4Settings->SetAutoSendOnConnect(ETrue);
+ ImImap4Settings->SetPathSeparator('\0');
+ ImImap4Settings->SetDisconnectedUserMode(ETrue);
+ ImImap4Settings->SetSynchronise(EUseCombination);
+ ImImap4Settings->SetSubscribe(EUpdateBoth);
+ ImImap4Settings->SetAutoSendOnConnect(ETrue);
+ ImImap4Settings->SetDeleteEmailsWhenDisconnecting(ETrue);
+ ImImap4Settings->SetAcknowledgeReceipts(ETrue);
+ ImImap4Settings->SetMaxEmailSize(123456);
+ ImImap4Settings->SetGetMailOptions(EGetImap4EmailHeaders);
+ ImImap4Settings->SetInboxSynchronisationLimit(123);
+ ImImap4Settings->SetMailboxSynchronisationLimit(321);
+ ImImap4Settings->SetImapIdle(ETrue);
+ ImImap4Settings->SetImapIdleTimeoutL(29);
+ ImImap4Settings->SetPartialMailOptionsL(ENoSizeLimits);
+ ImImap4Settings->SetBodyTextSizeLimitL(123456);
+ ImImap4Settings->SetAttachmentSizeLimitL(123456);
+
+ //When sync rate is negative, it should leave with KErrArgument
+ TRAPD(err, ImImap4Settings->SetSyncRateL(-360));
+
+ if(err == KErrArgument)
+ {
+ result=ETrue;
+ _LIT(KComment1, "\t CreateIMAP4SettingsNegativeTest Completed");
+ testUtils->WriteComment(KComment1);
+ }
+ else
+ {
+ result=EFalse;
+ }
+ ResultOfTest(result,aTest);
+
+ delete entry;
+ delete ImImap4Settings;
+ return result;
+ }
+
+LOCAL_C void CreateLongIMAP4Settings()
+ {
+ // a bunch of data for the header object....
+ // all the fields are set to a length greater than 1000 i.e 1001
+
+ TBuf8<KMaxSettingStringLengthLong> longValue;
+ longValue.Fill('x',KMaxSettingStringLengthLong);
+
+ ImImap4Settings->SetLoginNameL(testUtils->MachineName());
+ ImImap4Settings->SetPasswordL(testUtils->MachineName());
+ ImImap4Settings->SetFolderPathL(longValue);
+ ImImap4Settings->SetAutoSendOnConnect(ETrue);
+ ImImap4Settings->SetPathSeparator('\0');
+ ImImap4Settings->SetDisconnectedUserMode(ETrue);
+ ImImap4Settings->SetSynchronise(EUseCombination);
+ ImImap4Settings->SetSubscribe(EUpdateBoth);
+ ImImap4Settings->SetAutoSendOnConnect(ETrue);
+ ImImap4Settings->SetDeleteEmailsWhenDisconnecting(ETrue);
+ ImImap4Settings->SetAcknowledgeReceipts(ETrue);
+ ImImap4Settings->SetMaxEmailSize(123456);
+ ImImap4Settings->SetGetMailOptions(EGetImap4EmailHeaders);
+ ImImap4Settings->SetInboxSynchronisationLimit(123); // New in V3
+ ImImap4Settings->SetMailboxSynchronisationLimit(321); // New in V3
+ ImImap4Settings->SetSyncRateL(60); // New in V4
+ ImImap4Settings->SetImapIdle(ETrue);
+ ImImap4Settings->SetImapIdleTimeoutL(29); // New in V5
+ ImImap4Settings->SetPartialMailOptionsL(ENoSizeLimits); // New in V7
+ ImImap4Settings->SetBodyTextSizeLimitL(123456); // New in V7
+ ImImap4Settings->SetAttachmentSizeLimitL(123456); // New in V7
+ _LIT(KComment, "\tCreated Long IMAP4 Settings");
+ testUtils->WriteComment(KComment);
+ }
+
+LOCAL_C TBool CompareFilledIMAP4Settings(TInt aTest)
+ {
+ TBool result = ETrue;
+ _LIT(KComment, "\tComparing Filled IMAP4 Settings");
+ testUtils->WriteComment(KComment);
+
+ buf1 = ImImap4Settings->LoginName();
+ buf2 = ImImap4SettingsVerify->LoginName();
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImImap4Settings->Password();
+ buf2 = ImImap4SettingsVerify->Password();
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ buf1 = ImImap4Settings->FolderPath();
+ buf2 = ImImap4SettingsVerify->FolderPath();
+ result &= CompareDescriptors(buf1, buf2, &KFolderPath);
+
+ separator1 = ImImap4Settings->PathSeparator();
+ separator2 = ImImap4SettingsVerify->PathSeparator();
+ result &= CompareTextChars(separator1, separator2, &KPathSeparator);
+
+ result &= CompareBooleans(ImImap4Settings->AutoSendOnConnect(), ImImap4SettingsVerify->AutoSendOnConnect(), &KAutoSendOnConnect);
+ result &= CompareBooleans(ImImap4Settings->DisconnectedUserMode(), ImImap4SettingsVerify->DisconnectedUserMode(), &KDisconnectedUserMode);
+ result &= CompareBooleans(ImImap4Settings->DeleteEmailsWhenDisconnecting(), ImImap4SettingsVerify->DeleteEmailsWhenDisconnecting(), &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImImap4Settings->AcknowledgeReceipts(), ImImap4SettingsVerify->AcknowledgeReceipts(), &KAcknowledgeReceipts);
+ result &= CompareBooleans(ImImap4Settings->ImapIdle(), ImImap4SettingsVerify->ImapIdle(), &KImapIdle);
+
+ result &= CompareIntegers((ImImap4Settings->MaxEmailSize()), (ImImap4SettingsVerify->MaxEmailSize()), &KMaxEmailSize);
+
+ result &= CompareIntegers((ImImap4Settings->InboxSynchronisationLimit()), (ImImap4SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+ result &= CompareIntegers((ImImap4Settings->MailboxSynchronisationLimit()), (ImImap4SettingsVerify->MailboxSynchronisationLimit()), &KMailboxSyncLimit);
+
+ result &= CompareIntegers((ImImap4Settings->SyncRate()), (ImImap4SettingsVerify->SyncRate()), &KSyncRate);
+ result &= CompareIntegers((ImImap4Settings->ImapIdleTimeout()), (ImImap4SettingsVerify->ImapIdleTimeout()), &KImapIdleTimeout);
+ result &= CompareIntegers((ImImap4Settings->BodyTextSizeLimit()), (ImImap4SettingsVerify->BodyTextSizeLimit()), &KBodyTextSizeLimit);
+ result &= CompareIntegers((ImImap4Settings->AttachmentSizeLimit()), (ImImap4SettingsVerify->AttachmentSizeLimit()), &KAttachmentSizeLimit);
+
+ TBool result1 = ETrue;;
+ if (ImImap4Settings->Port()<=65535)
+ result1 &= ((ImImap4Settings->Port())==(ImImap4SettingsVerify->Port()));
+ else // port numbers can only be in the range 0-65535
+ result1 &= EFalse;
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPort Numbers out of Range");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2=((ImImap4Settings->GetMailOptions())==(ImImap4SettingsVerify->GetMailOptions()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tGetMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImImap4Settings->Synchronise())==(ImImap4SettingsVerify->Synchronise()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tSynchronise settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ TBool result4=((ImImap4Settings->Subscribe())==(ImImap4SettingsVerify->Subscribe()));
+ if (!result4)
+ {
+ _LIT(KComment, "\t\tSubscribe settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result4;
+
+ TBool result5=((ImImap4Settings->PartialMailOptions())==(ImImap4SettingsVerify->PartialMailOptions()));
+ if (!result5)
+ {
+ _LIT(KComment, "\t\tPartialMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result5;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareBlankIMAP4Settings(TInt aTest)
+ {
+ // need to check each of the fields of the stored header (ImImap4SettingsVerify) are
+ // the same as that originally entered (ImImap4Settings). Here the length should be
+ // 0 so we don't actually need to compare!
+
+ TBool result = ETrue;
+
+ result &= CompareBooleans((ImImap4Settings->LoginName().Length()==0), (ImImap4SettingsVerify->LoginName().Length()==0), &KLoginName);
+ result &= CompareBooleans((ImImap4Settings->Password().Length()==0), (ImImap4SettingsVerify->Password().Length()==0), &KPassword);
+ result &= CompareBooleans((ImImap4Settings->FolderPath().Length()==0), (ImImap4SettingsVerify->FolderPath().Length()==0), &KFolderPath);
+
+ result &= CompareBooleans(ImImap4Settings->AutoSendOnConnect(), EFalse, &KAutoSendOnConnect);
+ result &= CompareBooleans(ImImap4Settings->DisconnectedUserMode(), EFalse, &KDisconnectedUserMode);
+ result &= CompareBooleans(ImImap4Settings->DeleteEmailsWhenDisconnecting(), EFalse, &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImImap4Settings->AcknowledgeReceipts(), EFalse, &KAcknowledgeReceipts);
+ result &= CompareBooleans(ImImap4Settings->ImapIdle(), ETrue, &KImapIdle); // default is set to ETrue
+
+ result &= CompareIntegers((ImImap4Settings->InboxSynchronisationLimit()), (ImImap4SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+ result &= CompareIntegers((ImImap4Settings->MailboxSynchronisationLimit()), (ImImap4SettingsVerify->MailboxSynchronisationLimit()), &KMailboxSyncLimit);
+
+ result &= CompareIntegers((ImImap4Settings->SyncRate()), (ImImap4SettingsVerify->SyncRate()), &KSyncRate);
+ result &= CompareIntegers((ImImap4Settings->ImapIdleTimeout()), (ImImap4SettingsVerify->ImapIdleTimeout()), &KImapIdleTimeout);
+ result &= CompareIntegers((ImImap4Settings->BodyTextSizeLimit()), (ImImap4SettingsVerify->BodyTextSizeLimit()), &KBodyTextSizeLimit);
+ result &= CompareIntegers((ImImap4Settings->AttachmentSizeLimit()), (ImImap4SettingsVerify->AttachmentSizeLimit()), &KAttachmentSizeLimit);
+
+ TBool result1=((ImImap4Settings->PartialMailOptions())==(ImImap4SettingsVerify->PartialMailOptions()));
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPartialMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareLongIMAP4Settings(TInt aTest)
+ {
+ TBool result = ETrue;
+ _LIT(KComment, "\tComparing Long IMAP4 Settings");
+ testUtils->WriteComment(KComment);
+
+ buf1 = ImImap4Settings->LoginName().Left(KMaxSettingStringLength);
+ buf2 = ImImap4SettingsVerify->LoginName().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImImap4Settings->Password().Left(KMaxSettingStringLength);
+ buf2 = ImImap4SettingsVerify->Password().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ buf1 = ImImap4Settings->FolderPath().Left(KMaxSettingStringLength);
+ buf2 = ImImap4SettingsVerify->FolderPath().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KFolderPath);
+
+ separator1 = ImImap4Settings->PathSeparator();
+ separator2 = ImImap4SettingsVerify->PathSeparator();
+ result &= CompareTextChars(separator1, separator2, &KPathSeparator);
+
+ result &= CompareBooleans(ImImap4Settings->AutoSendOnConnect(), ImImap4SettingsVerify->AutoSendOnConnect(), &KAutoSendOnConnect);
+ result &= CompareBooleans(ImImap4Settings->DisconnectedUserMode(), ImImap4SettingsVerify->DisconnectedUserMode(), &KDisconnectedUserMode);
+ result &= CompareBooleans(ImImap4Settings->DeleteEmailsWhenDisconnecting(), ImImap4SettingsVerify->DeleteEmailsWhenDisconnecting(), &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImImap4Settings->AcknowledgeReceipts(), ImImap4SettingsVerify->AcknowledgeReceipts(), &KAcknowledgeReceipts);
+ result &= CompareBooleans(ImImap4Settings->ImapIdle(), ImImap4SettingsVerify->ImapIdle(), &KImapIdle);
+
+ result &= CompareIntegers((ImImap4Settings->MaxEmailSize()), (ImImap4SettingsVerify->MaxEmailSize()), &KMaxEmailSize);
+
+ result &= CompareIntegers((ImImap4Settings->InboxSynchronisationLimit()), (ImImap4SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+ result &= CompareIntegers((ImImap4Settings->MailboxSynchronisationLimit()), (ImImap4SettingsVerify->MailboxSynchronisationLimit()), &KMailboxSyncLimit);
+
+ result &= CompareIntegers((ImImap4Settings->SyncRate()), (ImImap4SettingsVerify->SyncRate()), &KSyncRate);
+ result &= CompareIntegers((ImImap4Settings->ImapIdleTimeout()), (ImImap4SettingsVerify->ImapIdleTimeout()), &KImapIdleTimeout);
+ result &= CompareIntegers((ImImap4Settings->BodyTextSizeLimit()), (ImImap4SettingsVerify->BodyTextSizeLimit()), &KBodyTextSizeLimit);
+ result &= CompareIntegers((ImImap4Settings->AttachmentSizeLimit()), (ImImap4SettingsVerify->AttachmentSizeLimit()), &KAttachmentSizeLimit);
+
+ TBool result1 = ETrue;;
+ if (ImImap4Settings->Port()<=65535)
+ result1 &= ((ImImap4Settings->Port())==(ImImap4SettingsVerify->Port()));
+ else // port numbers can only be in the range 0-65535
+ result1 &= EFalse;
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPort Numbers out of Range");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2=((ImImap4Settings->GetMailOptions())==(ImImap4SettingsVerify->GetMailOptions()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tGetMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImImap4Settings->Synchronise())==(ImImap4SettingsVerify->Synchronise()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tSynchronise settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ TBool result4=((ImImap4Settings->Subscribe())==(ImImap4SettingsVerify->Subscribe()));
+ if (!result4)
+ {
+ _LIT(KComment, "\t\tSubscribe settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result4;
+
+ TBool result5=((ImImap4Settings->PartialMailOptions())==(ImImap4SettingsVerify->PartialMailOptions()));
+ if (!result5)
+ {
+ _LIT(KComment, "\t\tPartialMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result5;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareIMAP4Copy()
+ {
+ TBool result = ETrue;
+ _LIT(KComment, "\tComparing Filled IMAP4 Settings");
+ testUtils->WriteComment(KComment);
+ buf1 = ImImap4Settings->LoginName();
+ buf2 = ImImap4SettingsVerify->LoginName();
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImImap4Settings->Password();
+ buf2 = ImImap4SettingsVerify->Password();
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ buf1 = ImImap4Settings->FolderPath();
+ buf2 = ImImap4SettingsVerify->FolderPath();
+ result &= CompareDescriptors(buf1, buf2, &KFolderPath);
+
+ separator1 = ImImap4Settings->PathSeparator();
+ separator2 = ImImap4SettingsVerify->PathSeparator();
+ result &= CompareTextChars(separator1, separator2, &KPathSeparator);
+
+ result &= CompareBooleans(ImImap4Settings->AutoSendOnConnect(), ImImap4SettingsVerify->AutoSendOnConnect(), &KAutoSendOnConnect);
+ result &= CompareBooleans(ImImap4Settings->DisconnectedUserMode(), ImImap4SettingsVerify->DisconnectedUserMode(), &KDisconnectedUserMode);
+ result &= CompareBooleans(ImImap4Settings->DeleteEmailsWhenDisconnecting(), ImImap4SettingsVerify->DeleteEmailsWhenDisconnecting(), &KDeleteEmailsWhenDisconnecting);
+ result &= CompareBooleans(ImImap4Settings->AcknowledgeReceipts(), ImImap4SettingsVerify->AcknowledgeReceipts(), &KAcknowledgeReceipts);
+ result &= CompareBooleans(ImImap4Settings->ImapIdle(), ImImap4SettingsVerify->ImapIdle(), &KImapIdle);
+
+ result &= CompareIntegers((ImImap4Settings->MaxEmailSize()), (ImImap4SettingsVerify->MaxEmailSize()), &KMaxEmailSize);
+
+ result &= CompareIntegers((ImImap4Settings->InboxSynchronisationLimit()), (ImImap4SettingsVerify->InboxSynchronisationLimit()), &KInboxSyncLimit);
+ result &= CompareIntegers((ImImap4Settings->MailboxSynchronisationLimit()), (ImImap4SettingsVerify->MailboxSynchronisationLimit()), &KMailboxSyncLimit);
+
+ result &= CompareIntegers((ImImap4Settings->SyncRate()), (ImImap4SettingsVerify->SyncRate()), &KSyncRate);
+ result &= CompareIntegers((ImImap4Settings->ImapIdleTimeout()), (ImImap4SettingsVerify->ImapIdleTimeout()), &KImapIdleTimeout);
+ result &= CompareIntegers((ImImap4Settings->BodyTextSizeLimit()), (ImImap4SettingsVerify->BodyTextSizeLimit()), &KBodyTextSizeLimit);
+ result &= CompareIntegers((ImImap4Settings->AttachmentSizeLimit()), (ImImap4SettingsVerify->AttachmentSizeLimit()), &KAttachmentSizeLimit);
+
+ TBool result1 = ETrue;;
+ if (ImImap4Settings->Port()<=65535)
+ result1 &= ((ImImap4Settings->Port())==(ImImap4SettingsVerify->Port()));
+ else // port numbers can only be in the range 0-65535
+ result1 &= EFalse;
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tPort Numbers out of Range");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2=((ImImap4Settings->GetMailOptions())==(ImImap4SettingsVerify->GetMailOptions()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tGetMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImImap4Settings->Synchronise())==(ImImap4SettingsVerify->Synchronise()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tSynchronise settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ TBool result4=((ImImap4Settings->Subscribe())==(ImImap4SettingsVerify->Subscribe()));
+ if (!result4)
+ {
+ _LIT(KComment, "\t\tSubscribe settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result4;
+
+ TBool result5=((ImImap4Settings->PartialMailOptions())==(ImImap4SettingsVerify->PartialMailOptions()));
+ if (!result5)
+ {
+ _LIT(KComment, "\t\tPartialMailOptions settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result5;
+
+ return result;
+ }
+
+//
+
+
+LOCAL_C TBool TestIMAP4EqualityAndCopyConstructorsL(TInt aTest)
+ {
+ _LIT(KComment, "\tIMAP4 Equality and Copy Constructors Test");
+ testUtils->WriteComment(KComment);
+ entry = new(ELeave) TMsvEntry;
+ entry->iDescription.Set(_L("Description"));
+ entry->iDetails.Set(_L("Details"));
+ entry->iType = KUidMsvServiceEntry;
+ ImImap4Settings=new(ELeave)CImImap4Settings;
+ ImImap4SettingsVerify=new(ELeave)CImImap4Settings;
+ CreateFilledIMAP4Settings();
+ ImImap4SettingsVerify->CopyL(*ImImap4Settings);
+ TBool result=CompareIMAP4Copy();
+ TBool result1=(*ImImap4SettingsVerify==*ImImap4Settings);
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tError in Equality Operator");
+ testUtils->WriteComment(KComment);
+ }
+ else
+ {
+ _LIT(KComment, "\t\tEquality Operator test passed");
+ testUtils->WriteComment(KComment);
+ }
+ result&=result1;
+
+ delete entry;
+ delete ImImap4Settings;
+ delete ImImap4SettingsVerify;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+
+//
+// CImSmtpSettings Test Functions //
+//
+
+LOCAL_C void CreateFilledSMTPSettings()
+ {
+ ImSmtpSettings->SetEmailAliasL(KMiutSmtpEmailAlias);
+ ImSmtpSettings->SetEmailAddressL(KMiutSmtpEmailAddress);
+ ImSmtpSettings->SetBodyEncoding(KMiutSmtpBodyEncoding);
+ ImSmtpSettings->SetReplyToAddressL(KMiutSmtpEmailAddress);
+ ImSmtpSettings->SetReceiptAddressL(KMiutSmtpEmailAddress);
+ ImSmtpSettings->SetBodyEncoding(EMsgOutboxMIME);
+ ImSmtpSettings->SetDefaultMsgCharSet(KMiutSmtpDefaultMsgCharSet);
+ ImSmtpSettings->SetAddVCardToEmail(ETrue);
+ ImSmtpSettings->SetAddSignatureToEmail(ETrue);
+ ImSmtpSettings->SetRequestReceipts(ETrue);
+ ImSmtpSettings->SetSendCopyToSelf(ESendNoCopy);
+ ImSmtpSettings->SetSendMessageOption(ESendMessageImmediately);
+ ImSmtpSettings->SetLoginNameL(testUtils->MachineName());
+ ImSmtpSettings->SetPasswordL(testUtils->MachineName());
+
+ _LIT(KComment, "\tCreated Filled SMTP Settings");
+ testUtils->WriteComment(KComment);
+ }
+
+LOCAL_C void CreateLongSMTPSettings()
+ {
+ // a bunch of data for the header object....
+ // all the fields are set to a length greater than 1000 i.e 1001
+
+ TBuf<KMaxSettingStringLengthLong> longValue;
+ longValue.Fill('x',KMaxSettingStringLengthLong);
+
+ ImSmtpSettings->SetEmailAliasL(longValue);
+ ImSmtpSettings->SetEmailAddressL(longValue);
+ ImSmtpSettings->SetBodyEncoding(EMsgOutboxMIME);
+ ImSmtpSettings->SetReplyToAddressL(longValue);
+ ImSmtpSettings->SetReceiptAddressL(longValue);
+ ImSmtpSettings->SetBodyEncoding(EMsgOutboxMIME);
+ ImSmtpSettings->SetDefaultMsgCharSet(KMiutSmtpDefaultMsgCharSet);
+ ImSmtpSettings->SetAddVCardToEmail(ETrue);
+ ImSmtpSettings->SetAddSignatureToEmail(ETrue);
+ ImSmtpSettings->SetRequestReceipts(ETrue);
+ ImSmtpSettings->SetSendCopyToSelf(ESendNoCopy);
+ ImSmtpSettings->SetSendMessageOption(ESendMessageImmediately);
+ ImSmtpSettings->SetLoginNameL(testUtils->MachineName());
+ ImSmtpSettings->SetPasswordL(testUtils->MachineName());
+
+ _LIT(KComment, "\tCreated Long SMTP Settings");
+ testUtils->WriteComment(KComment);
+ }
+
+LOCAL_C TBool CompareFilledSMTPSettings(TInt aTest)
+ {
+ TBool result = ETrue;
+ _LIT(KComment, "\tComparing Filled SMTP Settings");
+ testUtils->WriteComment(KComment);
+
+ buffer1 = ImSmtpSettings->EmailAlias();
+ buffer2 = ImSmtpSettingsVerify->EmailAlias();
+ result &= CompareDescriptors(buffer1, buffer2, &KEmailAlias);
+
+ buffer1 = ImSmtpSettings->EmailAddress();
+ buffer2 = ImSmtpSettingsVerify->EmailAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KEmailAddress);
+
+ buffer1 = ImSmtpSettings->ReplyToAddress();
+ buffer2 = ImSmtpSettingsVerify->ReplyToAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KReplyToAddress);
+
+ buffer1 = ImSmtpSettings->ReceiptAddress();
+ buffer2 = ImSmtpSettingsVerify->ReceiptAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KReceiptAddress);
+
+ buf1 = ImSmtpSettings->LoginName();
+ buf2 = ImSmtpSettingsVerify->LoginName();
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImSmtpSettings->Password();
+ buf2 = ImSmtpSettingsVerify->Password();
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ result &= CompareBooleans(ImSmtpSettings->BodyEncoding(), ImSmtpSettingsVerify->BodyEncoding(), &KBodyEncoding);
+ result &= CompareBooleans(ImSmtpSettings->AddVCardToEmail(), ImSmtpSettingsVerify->AddVCardToEmail(), &KAddVCardToEmail);
+ result &= CompareBooleans(ImSmtpSettings->AddSignatureToEmail(), ImSmtpSettingsVerify->AddSignatureToEmail(), &KAddSignatureToEmail);
+ result &= CompareBooleans(ImSmtpSettings->RequestReceipts(), ImSmtpSettingsVerify->RequestReceipts(), &KRequestReceipts);
+
+ TBool result1=((ImSmtpSettings->BodyEncoding())==(ImSmtpSettingsVerify->BodyEncoding()));
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tBodyEncoding settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2=((ImSmtpSettings->DefaultMsgCharSet())==(ImSmtpSettingsVerify->DefaultMsgCharSet()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tDefaultMsgCharSet settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImSmtpSettings->SendCopyToSelf())==(ImSmtpSettingsVerify->SendCopyToSelf()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tSendCopyToSelf settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ TBool result4 = ((ImSmtpSettings->SendMessageOption())==(ImSmtpSettingsVerify->SendMessageOption()));
+ if (!result4)
+ {
+ _LIT(KComment, "\t\tSendMessageOption settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result4;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareBlankSMTPSettings(TInt aTest)
+ {
+ // need to check each of the fields of the stored header (ImSmtpSettingsVerify) are
+ // the same as that originally entered (ImSmtpSettings). Here the length should be
+ // 0 so we don't actually need to compare!
+
+ TBool result = ETrue;
+ _LIT(KComment, "\tComparing Blank SMTP Settings");
+ testUtils->WriteComment(KComment);
+
+ result &= CompareBooleans((ImSmtpSettings->EmailAlias().Length()==0), (ImSmtpSettingsVerify->EmailAlias().Length()==0), &KEmailAlias);
+ result &= CompareBooleans((ImSmtpSettings->EmailAddress().Length()==0), (ImSmtpSettingsVerify->EmailAddress().Length()==0), &KEmailAddress);
+ result &= CompareBooleans((ImSmtpSettings->ReplyToAddress().Length()==0), (ImSmtpSettingsVerify->ReplyToAddress().Length()==0), &KReplyToAddress);
+ result &= CompareBooleans((ImSmtpSettings->ReceiptAddress().Length()==0), (ImSmtpSettingsVerify->ReceiptAddress().Length()==0), &KReceiptAddress);
+ result &= CompareBooleans((ImSmtpSettings->LoginName().Length()==0), (ImSmtpSettingsVerify->LoginName().Length()==0), &KLoginName);
+ result &= CompareBooleans((ImSmtpSettings->Password().Length()==0), (ImSmtpSettingsVerify->Password().Length()==0), &KPassword);
+
+ result &= CompareBooleans(ImSmtpSettings->AddVCardToEmail(), ImSmtpSettingsVerify->AddVCardToEmail(), &KAddVCardToEmail);
+ result &= CompareBooleans(ImSmtpSettings->AddSignatureToEmail(), ImSmtpSettingsVerify->AddSignatureToEmail(), &KAddSignatureToEmail);
+ result &= CompareBooleans(ImSmtpSettings->RequestReceipts(), ImSmtpSettingsVerify->RequestReceipts(), &KRequestReceipts);
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareLongSMTPSettings(TInt aTest)
+ {
+ _LIT(KComment, "\tComparing Long SMTP Settings");
+ testUtils->WriteComment(KComment);
+ TBool result = ETrue;
+ buffer1 = ImSmtpSettings->EmailAlias().Left(KMaxSettingStringLength);
+ buffer2 = ImSmtpSettingsVerify->EmailAlias().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buffer1, buffer2, &KEmailAlias);
+
+ buffer1 = ImSmtpSettings->EmailAddress().Left(KMaxSettingStringLength);
+ buffer2 = ImSmtpSettingsVerify->EmailAddress().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buffer1, buffer2, &KEmailAddress);
+
+ buffer1 = ImSmtpSettings->ReplyToAddress().Left(KMaxSettingStringLength);
+ buffer2 = ImSmtpSettingsVerify->ReplyToAddress().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buffer1, buffer2, &KReplyToAddress);
+
+ buffer1 = ImSmtpSettings->ReceiptAddress().Left(KMaxSettingStringLength);
+ buffer2 = ImSmtpSettingsVerify->ReceiptAddress().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buffer1, buffer2, &KReceiptAddress);
+
+ buf1 = ImSmtpSettings->LoginName().Left(KMaxSettingStringLength);
+ buf2 = ImSmtpSettingsVerify->LoginName().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImSmtpSettings->Password().Left(KMaxSettingStringLength);
+ buf2 = ImSmtpSettingsVerify->Password().Left(KMaxSettingStringLength);
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ result &= CompareBooleans(ImSmtpSettings->BodyEncoding(), ImSmtpSettingsVerify->BodyEncoding(), &KBodyEncoding);
+ result &= CompareBooleans(ImSmtpSettings->AddVCardToEmail(), ImSmtpSettingsVerify->AddVCardToEmail(), &KAddVCardToEmail);
+ result &= CompareBooleans(ImSmtpSettings->AddSignatureToEmail(), ImSmtpSettingsVerify->AddSignatureToEmail(), &KAddSignatureToEmail);
+ result &= CompareBooleans(ImSmtpSettings->RequestReceipts(), ImSmtpSettingsVerify->RequestReceipts(), &KRequestReceipts);
+
+ TBool result1=((ImSmtpSettings->BodyEncoding())==(ImSmtpSettingsVerify->BodyEncoding()));
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tBodyEncoding settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2=((ImSmtpSettings->DefaultMsgCharSet())==(ImSmtpSettingsVerify->DefaultMsgCharSet()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tDefaultMsgCharSet settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImSmtpSettings->SendCopyToSelf())==(ImSmtpSettingsVerify->SendCopyToSelf()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tSendCopyToSelf settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ TBool result4 = ((ImSmtpSettings->SendMessageOption())==(ImSmtpSettingsVerify->SendMessageOption()));
+ if (!result4)
+ {
+ _LIT(KComment, "\t\tSendMessageOption settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result4;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+LOCAL_C TBool CompareSMTPCopy()
+ {
+ TBool result = ETrue;
+ _LIT(KComment, "Comparing Filled SMTP Settings");
+ testUtils->WriteComment(KComment);
+ buffer1 = ImSmtpSettings->EmailAlias();
+ buffer2 = ImSmtpSettingsVerify->EmailAlias();
+ result &= CompareDescriptors(buffer1, buffer2, &KEmailAlias);
+
+ buffer1 = ImSmtpSettings->EmailAddress();
+ buffer2 = ImSmtpSettingsVerify->EmailAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KEmailAddress);
+
+ buffer1 = ImSmtpSettings->ReplyToAddress();
+ buffer2 = ImSmtpSettingsVerify->ReplyToAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KReplyToAddress);
+
+ buffer1 = ImSmtpSettings->ReceiptAddress();
+ buffer2 = ImSmtpSettingsVerify->ReceiptAddress();
+ result &= CompareDescriptors(buffer1, buffer2, &KReceiptAddress);
+
+ buf1 = ImSmtpSettings->LoginName();
+ buf2 = ImSmtpSettingsVerify->LoginName();
+ result &= CompareDescriptors(buf1, buf2, &KLoginName);
+
+ buf1 = ImSmtpSettings->Password();
+ buf2 = ImSmtpSettingsVerify->Password();
+ result &= CompareDescriptors(buf1, buf2, &KPassword);
+
+ result &= CompareBooleans(ImSmtpSettings->BodyEncoding(), ImSmtpSettingsVerify->BodyEncoding(), &KBodyEncoding);
+ result &= CompareBooleans(ImSmtpSettings->AddVCardToEmail(), ImSmtpSettingsVerify->AddVCardToEmail(), &KAddVCardToEmail);
+ result &= CompareBooleans(ImSmtpSettings->AddSignatureToEmail(), ImSmtpSettingsVerify->AddSignatureToEmail(), &KAddSignatureToEmail);
+ result &= CompareBooleans(ImSmtpSettings->RequestReceipts(), ImSmtpSettingsVerify->RequestReceipts(), &KRequestReceipts);
+
+ TBool result1=((ImSmtpSettings->BodyEncoding())==(ImSmtpSettingsVerify->BodyEncoding()));
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tBodyEncoding settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result1;
+
+ TBool result2=((ImSmtpSettings->DefaultMsgCharSet())==(ImSmtpSettingsVerify->DefaultMsgCharSet()));
+ if (!result2)
+ {
+ _LIT(KComment, "\t\tDefaultMsgCharSet settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result2;
+
+ TBool result3=((ImSmtpSettings->SendCopyToSelf())==(ImSmtpSettingsVerify->SendCopyToSelf()));
+ if (!result3)
+ {
+ _LIT(KComment, "\t\tSendCopyToSelf settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result3;
+
+ TBool result4 = ((ImSmtpSettings->SendMessageOption())==(ImSmtpSettingsVerify->SendMessageOption()));
+ if (!result4)
+ {
+ _LIT(KComment, "\t\tSendMessageOption settings not Identical");
+ testUtils->WriteComment(KComment);
+ }
+ result &= result4;
+
+ return result;
+ }
+
+//
+
+
+LOCAL_C TBool TestSMTPEqualityAndCopyConstructorsL(TInt aTest)
+ {
+ _LIT(KComment, "\tSMTP Equality and Copy Constructors Test");
+ testUtils->WriteComment(KComment);
+ entry = new(ELeave) TMsvEntry;
+ entry->iDescription.Set(_L("Description"));
+ entry->iDetails.Set(_L("Details"));
+ entry->iType = KUidMsvServiceEntry;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CreateFilledSMTPSettings();
+ ImSmtpSettingsVerify->CopyL(*ImSmtpSettings);
+ TBool result=CompareSMTPCopy();
+ TBool result1=(*ImSmtpSettingsVerify==*ImSmtpSettings);
+ if (!result1)
+ {
+ _LIT(KComment, "\t\tError in Equality Operator");
+ testUtils->WriteComment(KComment);
+ }
+ else
+ {
+ _LIT(KComment, "\t\tEquality Operator test passed");
+ testUtils->WriteComment(KComment);
+ }
+ result&=result1;
+
+ delete entry;
+ delete ImSmtpSettings;
+ delete ImSmtpSettingsVerify;
+
+ ResultOfTest(result,aTest);
+ return result;
+ }
+
+
+//
+//
+
+LOCAL_C TBool FilledPOPAccountSettingsL(Apop apop, TInt aTest)
+ {
+ _LIT(KComment, "\tFilled POP Account Settings Test");
+ testUtils->WriteComment(KComment);
+
+ ImPop3Settings=new(ELeave)CImPop3Settings;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImPop3SettingsVerify=new(ELeave)CImPop3Settings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->LoadPopSettingsL(popAccount, *ImPop3Settings);
+ account->LoadPopIapSettingsL(popAccount, *iap);
+
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(popAccount.iSmtpService, smtpAccount);
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ // check that Port has been set to 110
+ TBool result = ImPop3Settings->Port()==110;
+
+ CreateFilledPOP3Settings(apop);
+ CreateFilledSMTPSettings();
+
+ account->SavePopSettingsL(popAccount, *ImPop3Settings);
+ account->SavePopIapSettingsL(popAccount, *iap);
+
+ account->SaveSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->SaveSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ account->LoadPopSettingsL(popAccount, *ImPop3SettingsVerify);
+ account->LoadPopIapSettingsL(popAccount, *iap);
+
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettingsVerify);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ result&=CompareFilledPOP3Settings(aTest);
+ result&=CompareFilledSMTPSettings(aTest);
+
+ CleanupStack::PopAndDestroy(2, iap); // smtpIAP, iap
+ delete ImSmtpSettingsVerify;
+ delete ImPop3SettingsVerify;
+ delete ImSmtpSettings;
+ delete ImPop3Settings;
+
+ return result;
+ }
+
+LOCAL_C TBool FilledIMAPAccountSettingsL(TInt aTest)
+ {
+ _LIT(KComment, "\tFilled IMAP Account Settings Test");
+ testUtils->WriteComment(KComment);
+
+ ImImap4Settings=new(ELeave)CImImap4Settings;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImImap4SettingsVerify=new(ELeave)CImImap4Settings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->LoadImapSettingsL(imapAccount, *ImImap4Settings);
+ account->LoadImapIapSettingsL(imapAccount, *iap);
+
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(imapAccount.iSmtpService, smtpAccount);
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ CreateFilledIMAP4Settings();
+ CreateFilledSMTPSettings();
+
+ account->SaveImapSettingsL(imapAccount, *ImImap4Settings);
+ account->SaveImapIapSettingsL(imapAccount, *iap);
+
+ account->SaveSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->SaveSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ account->LoadImapSettingsL(imapAccount, *ImImap4SettingsVerify);
+ account->LoadImapIapSettingsL(imapAccount, *iap);
+
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettingsVerify);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ TBool result=CompareFilledIMAP4Settings(aTest);
+ result&=CompareFilledSMTPSettings(aTest);
+
+ CleanupStack::PopAndDestroy(2, iap); // smtpIAP, iap
+ delete ImSmtpSettingsVerify;
+ delete ImImap4SettingsVerify;
+ delete ImSmtpSettings;
+ delete ImImap4Settings;
+
+ return result;
+ }
+
+LOCAL_C TBool BlankPOPAccountSettingsL(TInt aTest)
+ {
+ _LIT(KComment, "\tBlank POP Account Settings Test");
+ testUtils->WriteComment(KComment);
+
+ ImPop3Settings=new(ELeave)CImPop3Settings;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImPop3SettingsVerify=new(ELeave)CImPop3Settings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->PopulateDefaultPopSettingsL(*ImPop3Settings, *iap);
+ account->PopulateDefaultSmtpSettingsL(*ImSmtpSettings, *smtpIAP);
+
+ account->SavePopSettingsL(popAccount, *ImPop3Settings);
+ account->SavePopIapSettingsL(popAccount, *iap);
+
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(popAccount.iSmtpService, smtpAccount);
+ account->SaveSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->SaveSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ account->LoadPopSettingsL(popAccount, *ImPop3SettingsVerify);
+ account->LoadPopIapSettingsL(popAccount, *iap);
+
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettingsVerify);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ TBool result=CompareBlankPOP3Settings(aTest);
+ result&=CompareBlankSMTPSettings(aTest);
+
+ CleanupStack::PopAndDestroy(2, iap); // smtpIAP, iap
+ delete ImSmtpSettingsVerify;
+ delete ImPop3SettingsVerify;
+ delete ImSmtpSettings;
+ delete ImPop3Settings;
+
+ return result;
+ }
+
+LOCAL_C TBool BlankIMAPAccountSettingsL(TInt aTest)
+ {
+ _LIT(KComment, "\tBlank IMAP Account Settings Test");
+ testUtils->WriteComment(KComment);
+
+ ImImap4Settings=new(ELeave)CImImap4Settings;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImImap4SettingsVerify=new(ELeave)CImImap4Settings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->PopulateDefaultImapSettingsL(*ImImap4Settings, *iap);
+ account->PopulateDefaultSmtpSettingsL(*ImSmtpSettings, *smtpIAP);
+
+ account->SaveImapSettingsL(imapAccount, *ImImap4Settings);
+ account->SaveImapIapSettingsL(imapAccount, *iap);
+
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(imapAccount.iSmtpService, smtpAccount);
+ account->SaveSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->SaveSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ account->LoadImapSettingsL(imapAccount, *ImImap4SettingsVerify);
+ account->LoadImapIapSettingsL(imapAccount, *iap);
+
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettingsVerify);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ TBool result = CompareBlankIMAP4Settings(aTest);
+ result&=CompareBlankSMTPSettings(aTest);
+
+ CleanupStack::PopAndDestroy(2, iap); // smtpIAP, iap
+ delete ImSmtpSettingsVerify;
+ delete ImImap4SettingsVerify;
+ delete ImSmtpSettings;
+ delete ImImap4Settings;
+
+ return result;
+ }
+
+LOCAL_C TBool LongPOPAccountSettingsL(TInt aTest)
+ {
+ _LIT(KComment, "\tLong POP Account Settings Test");
+ testUtils->WriteComment(KComment);
+
+ ImPop3Settings=new(ELeave)CImPop3Settings;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImPop3SettingsVerify=new(ELeave)CImPop3Settings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->LoadPopSettingsL(popAccount, *ImPop3Settings);
+ account->LoadPopIapSettingsL(popAccount, *iap);
+
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(popAccount.iSmtpService, smtpAccount);
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ CreateLongPOP3Settings();
+ CreateLongSMTPSettings();
+
+ account->SavePopSettingsL(popAccount, *ImPop3Settings);
+ account->SavePopIapSettingsL(popAccount, *iap);
+
+ account->SaveSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->SaveSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ account->LoadPopSettingsL(popAccount, *ImPop3SettingsVerify);
+ account->LoadPopIapSettingsL(popAccount, *iap);
+
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettingsVerify);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ TBool result=CompareLongPOP3Settings(aTest);
+ result&=CompareLongSMTPSettings(aTest);
+
+ CleanupStack::PopAndDestroy(2, iap); // smtpIAP, iap
+ delete ImSmtpSettingsVerify;
+ delete ImPop3SettingsVerify;
+ delete ImSmtpSettings;
+ delete ImPop3Settings;
+
+ return result;
+ }
+
+LOCAL_C TBool LongIMAPAccountSettingsL(TInt aTest)
+ {
+ _LIT(KComment, "\tLong IMAP Settings Test");
+ testUtils->WriteComment(KComment);
+
+ ImImap4Settings=new(ELeave)CImImap4Settings;
+ ImSmtpSettings=new(ELeave)CImSmtpSettings;
+ ImImap4SettingsVerify=new(ELeave)CImImap4Settings;
+ ImSmtpSettingsVerify=new(ELeave)CImSmtpSettings;
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->LoadImapSettingsL(imapAccount, *ImImap4Settings);
+ account->LoadImapIapSettingsL(imapAccount, *iap);
+
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(imapAccount.iSmtpService, smtpAccount);
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ CreateLongIMAP4Settings();
+ CreateLongSMTPSettings();
+
+ account->SaveImapSettingsL(imapAccount, *ImImap4Settings);
+ account->SaveImapIapSettingsL(imapAccount, *iap);
+
+ account->SaveSmtpSettingsL(smtpAccount, *ImSmtpSettings);
+ account->SaveSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ account->LoadImapSettingsL(imapAccount, *ImImap4SettingsVerify);
+ account->LoadImapIapSettingsL(imapAccount, *iap);
+
+ account->LoadSmtpSettingsL(smtpAccount, *ImSmtpSettingsVerify);
+ account->LoadSmtpIapSettingsL(smtpAccount, *smtpIAP);
+
+ TBool result=CompareLongIMAP4Settings(aTest);
+ result&=CompareLongSMTPSettings(aTest);
+
+ CleanupStack::PopAndDestroy(2, iap); // smtpIAP, iap
+ delete ImSmtpSettingsVerify;
+ delete ImImap4SettingsVerify;
+ delete ImSmtpSettings;
+ delete ImImap4Settings;
+
+ return result;
+ }
+
+LOCAL_C TBool TestDeletingDefaultSMTPAccountL(TInt aTest)
+ {
+ _LIT(KComment, "\tDeleting Default SMTP Account Test");
+ testUtils->WriteComment(KComment);
+
+ // Delete default smtp account
+ TSmtpAccount smtpAccount;
+ account->GetSmtpAccountL(imapAccount.iSmtpService, smtpAccount);
+ account->SetDefaultSmtpAccountL(smtpAccount);
+ account->DeleteSmtpAccountL(smtpAccount);
+
+ // The following should return KErrNotFound
+ TSmtpAccount tempAccount;
+
+ TInt error = account->DefaultSmtpAccountL(tempAccount);
+
+ TBool result = ETrue;
+ if (error != KErrNotFound)
+ {
+ result = EFalse;
+ }
+
+ ResultOfTest(result, aTest);
+ return result;
+ }
+
+/**
+Create a smtp account, set that as default account
+Delete the default account and check whether the account still exists
+Returns True if the default account is deleted
+*/
+LOCAL_C TBool TestDeleteDefaultSMTPAccountL(TInt aTest)
+ {
+ CImSmtpSettings* smtpSetting = new (ELeave) CImSmtpSettings;
+ CleanupStack::PushL(smtpSetting);
+
+ TSmtpAccount smtpAccount;
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+ smtpAccount = account->CreateSmtpAccountL(imapAccount, *smtpSetting, *smtpIAP, EFalse);
+ account->GetSmtpAccountL(imapAccount.iSmtpService, smtpAccount);
+ account->SetDefaultSmtpAccountL(smtpAccount); // Set the account to default account
+ account->DeleteDefaultSmtpAccountL();
+ // check whether default account exists
+ TInt error = account->DefaultSmtpAccountL(smtpAccount);
+
+ TBool result = ETrue;
+ if (error != KErrNotFound)
+ {
+ result = EFalse;
+ }
+ CleanupStack::PopAndDestroy(2, smtpSetting);//smtpIAP,smtpSetting
+ ResultOfTest(result, aTest);
+ return result;
+ }
+
+LOCAL_C TBool TestReadOnlyAccountSettingL(TInt aTest)
+ {
+ TBool result = ETrue;
+ CImPop3Settings* popSetting = new (ELeave) CImPop3Settings;
+ CleanupStack::PushL(popSetting);
+ CImImap4Settings* imapSetting = new (ELeave) CImImap4Settings;
+ CleanupStack::PushL(imapSetting);
+ CImSmtpSettings* smtpSetting = new (ELeave) CImSmtpSettings;
+ CleanupStack::PushL(smtpSetting);
+ CImIAPPreferences* iAP = CImIAPPreferences::NewLC();
+
+ // Test pop account
+ popAccount = account->CreatePopAccountL(KPOPAccountName, *popSetting, *iAP, EFalse);
+ TBool readOnly = account->IsAccountReadOnlyL(popAccount);
+ test(readOnly == EFalse);
+
+ popAccount = account->CreatePopAccountL(KPOPAccountName, *popSetting, *iAP, ETrue);
+ readOnly = account->IsAccountReadOnlyL(popAccount);
+ test(readOnly);
+
+ // Test imap account
+ imapAccount = account->CreateImapAccountL(KIMAPAccountName, *imapSetting, *iAP, EFalse);
+ readOnly = account->IsAccountReadOnlyL(imapAccount);
+ test(readOnly == EFalse);
+
+ imapAccount = account->CreateImapAccountL(KIMAPAccountName, *imapSetting, *iAP, ETrue);
+ readOnly = account->IsAccountReadOnlyL(imapAccount);
+ test(readOnly);
+
+ // Test smtp account
+ TSmtpAccount smtpAccount = account->CreateSmtpAccountL(KIMAPAccountName, *smtpSetting, *iAP, EFalse);
+ readOnly = account->IsAccountReadOnlyL(smtpAccount);
+ test(readOnly == EFalse);
+
+ smtpAccount = account->CreateSmtpAccountL(KIMAPAccountName, *smtpSetting, *iAP, ETrue);
+ readOnly = account->IsAccountReadOnlyL(smtpAccount);
+ test(readOnly);
+
+ smtpAccount = account->CreateSmtpAccountL(popAccount, *smtpSetting, *iAP, EFalse);
+ readOnly = account->IsAccountReadOnlyL(smtpAccount);
+ test(readOnly == EFalse);
+
+ smtpAccount = account->CreateSmtpAccountL(popAccount, *smtpSetting, *iAP, ETrue);
+ readOnly = account->IsAccountReadOnlyL(smtpAccount);
+ test(readOnly);
+
+ smtpAccount = account->CreateSmtpAccountL(imapAccount, *smtpSetting, *iAP, EFalse);
+ readOnly = account->IsAccountReadOnlyL(smtpAccount);
+ test(readOnly == EFalse);
+
+ smtpAccount = account->CreateSmtpAccountL(imapAccount, *smtpSetting, *iAP, ETrue);
+ readOnly = account->IsAccountReadOnlyL(smtpAccount);
+ test(readOnly);
+
+ CleanupStack::PopAndDestroy(4, popSetting);
+ ResultOfTest(result, aTest);
+ return result;
+ }
+
+//
+_LIT(KPass, "\tPASSED Test %d");
+_LIT(KFailed, "\tFAILED Test %d");
+
+LOCAL_C TBool RunTestL (TInt aTestNo)
+{
+ TBuf16<80> buf;
+ TBool result = ETrue;
+ testUtils->TestStart(aTestNo);
+
+ switch(aTestNo)
+ {
+ case 1:
+ {
+ result = FilledPOPAccountSettingsL(EApopTrue, aTestNo);
+ }
+ break;
+ case 2:
+ {
+ result = FilledPOPAccountSettingsL(EApopFalse, aTestNo);
+ }
+ break;
+ case 3:
+ {
+ result = FilledPOPAccountSettingsL(EApopOther, aTestNo);
+ }
+ break;
+ case 4:
+ {
+ result = BlankPOPAccountSettingsL(aTestNo);
+ }
+ break;
+ case 5:
+ {
+ result = LongPOPAccountSettingsL(aTestNo);
+ }
+ break;
+ case 6:
+ {
+ result = TestPOP3EqualityAndCopyConstructorsL(aTestNo);
+ }
+ break;
+ case 7:
+ {
+ result = FilledIMAPAccountSettingsL(aTestNo);
+ }
+ break;
+ case 8:
+ {
+ result = BlankIMAPAccountSettingsL(aTestNo);
+ }
+ break;
+ case 9:
+ {
+ result = LongIMAPAccountSettingsL(aTestNo);
+ }
+ break;
+ case 10:
+ {
+ result = TestIMAP4EqualityAndCopyConstructorsL(aTestNo);
+ }
+ break;
+ case 11:
+ {
+ result = TestSMTPEqualityAndCopyConstructorsL(aTestNo);
+ }
+ break;
+ case 12:
+ {
+ result = TestDeletingDefaultSMTPAccountL(aTestNo);
+ }
+ break;
+ case 13:
+ {
+ result = TestDeleteDefaultSMTPAccountL(aTestNo);
+ }
+ break;
+ case 14:
+ {
+ result = TestReadOnlyAccountSettingL(aTestNo);
+ }
+ break;
+ case 15:
+ {
+ result = CreateIMAP4SettingsNegativeTest(aTestNo);
+ }
+ break;
+
+ }
+
+ if (result)
+ {
+ buf.AppendFormat(KPass, aTestNo);
+ testUtils->WriteComment(buf);
+ }
+ else
+ {
+ buf.AppendFormat(KFailed, aTestNo);
+ testUtils->WriteComment(buf);
+ }
+
+ testUtils->TestFinish(aTestNo);
+ return (result);
+}
+
+
+
+LOCAL_C void ServiceEntrySelectionL()
+ {
+ TBool result = ETrue;
+ TInt TotalNumberOfTests = 15;// Amend this number when adding (+) or removing (-) tests
+
+ for (TInt testNo = 1; testNo <= TotalNumberOfTests; testNo++)
+ {
+ TRAPD(err,result &= RunTestL(testNo));
+ if( err != KErrNone )
+ {
+ _LIT(KComment, "!!LEAVE - test case left.");
+ test.Printf(KComment);
+
+ result = EFalse;
+ }
+ }
+
+
+ if (result)
+ {
+ _LIT(KComment, "PASSED All tests");
+ testUtils->WriteComment(KComment);
+ test.Printf(KComment);
+ testUtils->TestHarnessCompleted();
+ }
+ else
+ {
+ _LIT(KComment, "FAILED At Least one test");
+ test.Printf(KComment);
+ testUtils->WriteComment(KComment);
+ testUtils->TestHarnessFailed(KErrGeneral);
+ }
+
+
+ }
+//
+
+LOCAL_C void InitL()
+ {
+ CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
+ CActiveScheduler::Install(scheduler);
+ CleanupStack::PushL(scheduler);
+
+ testUtils = CEmailTestUtils::NewLC(test);
+ testUtils->CreateAllTestDirectories();
+ testUtils->FileSession().SetSessionPath(_L("C:\\"));
+ testUtils->ClearEmailAccountsL();
+ testUtils->CleanMessageFolderL();
+ testUtils->GoServerSideL();
+
+ test.Next(_L("Create Data Component FileStores"));
+ testUtils->CreateSmtpServerMtmRegL();
+ testUtils->CreatePopServerMtmRegL();
+
+ // Loading the DLLs
+ testUtils->CreateRegistryObjectAndControlL();
+ testUtils->InstallSmtpMtmGroupL();
+ testUtils->InstallPopMtmGroupL();
+ testUtils->GoClientSideL();
+
+ // Create email accounts
+ account = CEmailAccounts::NewLC();
+
+ CImPop3Settings* popSetting = new (ELeave) CImPop3Settings;
+ CleanupStack::PushL(popSetting);
+
+ CImSmtpSettings* smtpSetting = new (ELeave) CImSmtpSettings;
+ CleanupStack::PushL(smtpSetting);
+
+ CImIAPPreferences* iap = CImIAPPreferences::NewLC();
+ CImIAPPreferences* smtpIAP = CImIAPPreferences::NewLC();
+
+ account->PopulateDefaultPopSettingsL(*popSetting, *iap);
+ account->PopulateDefaultSmtpSettingsL(*smtpSetting, *smtpIAP);
+
+ popAccount = account->CreatePopAccountL(KPOPAccountName, *popSetting, *iap, EFalse);
+
+ TSmtpAccount smtpAccount;
+ smtpAccount = account->CreateSmtpAccountL(popAccount, *smtpSetting, *smtpIAP, EFalse);
+
+ CImImap4Settings* imapSetting = new (ELeave) CImImap4Settings;
+ CleanupStack::PushL(imapSetting);
+
+ account->PopulateDefaultImapSettingsL(*imapSetting, *iap);
+ account->PopulateDefaultSmtpSettingsL(*smtpSetting, *smtpIAP);
+
+ imapAccount = account->CreateImapAccountL(KIMAPAccountName, *imapSetting, *iap, EFalse);
+ smtpAccount = account->CreateSmtpAccountL(imapAccount, *smtpSetting, *smtpIAP, EFalse);
+
+ CleanupStack::PopAndDestroy(5, popSetting); // imapSetting, smtpIAP, iap, smtpSetting, popSetting
+
+ TBuf<80> buf;
+
+#if defined(__WINS__)
+ buf.Append(_L("WINS "));
+#else
+ buf.Append(_L("MARM "));
+#endif
+#if defined(_UNICODE)
+ buf.Append(_L("U"));
+#endif
+#if defined(_DEBUG)
+ buf.Append(_L("DEB"));
+#else
+ buf.Append(_L("REL"));
+#endif
+ testUtils->WriteComment(buf);
+ }
+
+LOCAL_C void Closedown()
+ {
+ CleanupStack::PopAndDestroy(3); // scheduler, testUtils, account
+ }
+
+
+//
+
+LOCAL_C void doMainL()
+ {
+ InitL();
+ test.Printf(_L("Performing Tests"));
+
+ ServiceEntrySelectionL();
+
+ Closedown();
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ __UHEAP_MARK;
+ test.Start(_L("T_MIUT02 - Test classes derived from CBaseEmailSettings"));
+ theCleanup=CTrapCleanup::New();
+ TRAPD(ret,doMainL());
+ test(ret==KErrNone);
+ delete theCleanup;
+ test.Console()->SetPos(0, 13);
+ test.End();
+ test.Close();
+ __UHEAP_MARKEND;
+ return(KErrNone);
+ }