--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/clientmtms/test/src/T_MIUT04.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,652 @@
+// 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_MIUT04
+// Component: IMCM
+// Owner: KP
+// Brief description of test harness:
+// Tests storing/retrieving data from TMsvEmailEntry - 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_MIUT04\T_IMCM.log
+// Output files produced by running test harness:
+// <DRIVE>:\msglogs\T_MIUT04.<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_MIUT04.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_MIUT04.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_MIUT04.exe on the other platform
+//
+//
+
+#include "emailtestutils.h"
+#include "MIUTHDR.H" // CImHeader
+#include <miutlog.h>
+#include <imapset.h>
+#include <msvids.h>
+
+// local variables etc //
+
+RTest test(_L("MIUT04 - Test TMsvEmailEntry class"));
+LOCAL_D CTrapCleanup* theCleanup;
+LOCAL_D CImLog* log;
+LOCAL_D CEmailTestUtils* testUtils;
+
+_LIT8(KNoDisconnectedOperations, "NoDisconnectedOperations");
+_LIT8(KDisconnectedCreateOperation, "DisconnectedCreateOperation");
+_LIT8(KDisconnectedDeleteOperation, "DisconnectedDeleteOperation");
+_LIT8(KDisconnectedChangeOperation, "DisconnectedChangeOperation");
+_LIT8(KDisconnectedCopyToOperation, "DisconnectedCopyToOperation");
+_LIT8(KDisconnectedCopyFromOperation, "DisconnectedCopyFromOperation");
+_LIT8(KDisconnectedCopyWithinServiceOperation, "DisconnectedCopyWithinServiceOp");
+_LIT8(KDisconnectedMoveToOperation, "DisconnectedMoveToOperation");
+_LIT8(KDisconnectedMoveFromOperation, "DisconnectedMoveFromOperation");
+_LIT8(KDisconnectedMoveWithinServiceOperation, "DisconnectedMoveWithinServiceOp");
+_LIT8(KDisconnectedSpecialOperation, "DisconnectedSpecialOperation");
+_LIT8(KDisconnectedUnknownOperation, "DisconnectedUnknownOperation");
+_LIT8(KDisconnectedMultipleOperation, "DisconnectedMultipleOperation");
+
+//
+
+LOCAL_C void ResultOfTest(TBool aResult,TInt aTestNo)
+ {
+ if (aResult)
+ {
+ test.Printf(_L("Passed test %d\n"),aTestNo);
+ }
+ else
+ {
+ test.Printf(_L("Failed test %d\n"),aTestNo);
+ }
+ }
+
+/*LOCAL_C TBool CompareBooleans(TBool aBoolean1, TBool aBoolean2, TDesC8 aTestDescription)
+ {
+ _LIT8(KErrorReason, "\t\tSettings not set correctly for %S");
+ TBuf8<80> buf;
+ TBool result = (aBoolean1 == aBoolean2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &aTestDescription);
+ log->AppendError(buf ,-1);
+ }
+ return result;
+ }
+
+LOCAL_C TBool CompareDescriptors(TDesC16& aDesC1, TDesC16& aDesC2, TDesC8 aTestDescription)
+ {
+ _LIT8(KErrorReason, "\t\tSettings not set correctly for %S");
+ TBuf8<80> buf;
+ TBool result = (aDesC1 == aDesC2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &aTestDescription);
+ log->AppendError(buf ,-1);
+ }
+ return result;
+ }
+
+LOCAL_C TBool CompareDescriptors(TDesC8& aDesC1, TDesC8& aDesC2, TDesC8 aTestDescription)
+ {
+ _LIT8(KErrorReason, "\t\tSettings not set correctly for %S");
+ TBuf8<80> buf;
+ TBool result = (aDesC1 == aDesC2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &aTestDescription);
+ log->AppendError(buf ,-1);
+ }
+ return result;
+ }
+*/
+
+LOCAL_C TBool CompareDisconnectedOptions(TImDisconnectedOperationType type1, TImDisconnectedOperationType type2, const TDesC8* aTestDescription)
+ {
+ _LIT8(KErrorReason, "\t\tDisconnected Options not set correctly for %S");
+ TBuf8<80> buf;
+ TBool result = (type1 == type2);
+ if (!result)
+ {
+ buf.AppendFormat(KErrorReason, &aTestDescription);
+ log->AppendError(buf ,-1);
+ }
+ return result;
+ }
+
+//
+
+LOCAL_C TBool TMsvEmailEntrySelectionL(TInt aTestNo)
+ {
+ log->AppendComment(_L8("\tEmail Entry Selection Test"));
+ TMsvEntry* genericEntry = new (ELeave) TMsvEntry;
+ genericEntry->iType = KUidMsvMessageEntry;
+ genericEntry->iMtm = KUidMsgTypeIMAP4;
+ genericEntry->iServiceId = 0x1087643;
+ genericEntry->SetPriority(EMsvHighPriority);
+ genericEntry->SetComplete(ETrue);
+ genericEntry->SetVisible(ETrue);
+
+ TBool result=ETrue;
+
+ // test that iMtmDatax member variables have been reset
+ TMsvEmailEntry* newEmailEntry = new (ELeave) TMsvEmailEntry();
+ result &= !(newEmailEntry->MtmData1() && newEmailEntry->MtmData2() && newEmailEntry->MtmData3());
+ if (!result)
+ log->AppendError(_L8("\t\tTMsvEmailEntry Constructor hasn't reset iMtmData members"),-1);
+
+ delete newEmailEntry;
+
+ // test copy constructor...
+ TMsvEmailEntry* EmailEntry = new (ELeave) TMsvEmailEntry(*genericEntry);
+
+
+ EmailEntry->SetEncrypted(ETrue);
+ TBool result1=(EmailEntry->Encrypted()!=EFalse);
+ EmailEntry->SetEncrypted(EFalse);
+ result1&=(EmailEntry->Encrypted()==EFalse);
+ if (!result1)
+ log->AppendError(_L8("\t\tSetEncrypted() not setting correct values"),-1);
+ result&=result1;
+
+ EmailEntry->SetSigned(ETrue);
+ TBool result2=(EmailEntry->Signed()!=EFalse);
+ EmailEntry->SetSigned(EFalse);
+ result2&=(EmailEntry->Signed()==EFalse);
+ if (!result2)
+ log->AppendError(_L8("\t\tSetSigned() not setting correct values"),-1);
+ result&=result2;
+
+ EmailEntry->SetReceipt(ETrue);
+ TBool result3=(EmailEntry->Receipt()!=EFalse);
+ EmailEntry->SetReceipt(EFalse);
+ result3&=(EmailEntry->Receipt()==EFalse);
+ if (!result3)
+ log->AppendError(_L8("\t\tSetReceipt() not setting correct values"),-1);
+ result&=result3;
+
+
+ // check MHTML flag
+ EmailEntry->SetMHTMLEmail(ETrue);
+ TBool resultp=(EmailEntry->MHTMLEmail()!=EFalse);
+ EmailEntry->SetMHTMLEmail(EFalse);
+ resultp&=(EmailEntry->MHTMLEmail()==EFalse);
+ if (!resultp)
+ log->AppendError(_L8("\t\tSetMHTMLEmail() not setting correct values"),-1);
+ result&=resultp;
+
+ EmailEntry->SetOrphan(ETrue);
+ TBool result4=(EmailEntry->Orphan()!=EFalse);
+ EmailEntry->SetOrphan(EFalse);
+ result4&=(EmailEntry->Orphan()==EFalse);
+ if (!result4)
+ log->AppendError(_L8("\t\tSetOrphan() not setting correct values"),-1);
+ result&=result4;
+
+ EmailEntry->SetVCard(ETrue);
+ TBool result5=(EmailEntry->VCard()!=EFalse);
+ EmailEntry->SetVCard(EFalse);
+ result5&=(EmailEntry->VCard()==EFalse);
+ if (!result5)
+ log->AppendError(_L8("\t\tSetVCard() not setting correct values"),-1);
+ result&=result5;
+
+ EmailEntry->SetVCalendar(ETrue);
+ TBool result6=(EmailEntry->VCalendar()!=EFalse);
+ EmailEntry->SetVCalendar(EFalse);
+ result6&=(EmailEntry->VCalendar()==EFalse);
+ if (!result6)
+ log->AppendError(_L8("\t\tSetVCalendar() not setting correct values"),-1);
+ result&=result6;
+
+ EmailEntry->SetSubscribed(ETrue);
+ TBool result7=(EmailEntry->Subscribed()!=EFalse);
+ EmailEntry->SetSubscribed(EFalse);
+ result7&=(EmailEntry->Subscribed()==EFalse);
+ if (!result7)
+ log->AppendError(_L8("\t\tSetSubscribed() not setting correct values"),-1);
+ result&=result7;
+
+ EmailEntry->SetUnreadIMAP4Flag(ETrue);
+ TBool result8=(EmailEntry->UnreadIMAP4Flag()!=EFalse);
+ EmailEntry->SetUnreadIMAP4Flag(EFalse);
+ result8&=(EmailEntry->UnreadIMAP4Flag()==EFalse);
+ if (!result8)
+ log->AppendError(_L8("\t\tSetUnreadIMAP4Flag() not setting correct values"),-1);
+ result&=result8;
+
+ EmailEntry->SetSeenIMAP4Flag(ETrue);
+ TBool result9=(EmailEntry->SeenIMAP4Flag()!=EFalse);
+ EmailEntry->SetSeenIMAP4Flag(EFalse);
+ result9&=(EmailEntry->SeenIMAP4Flag()==EFalse);
+ if (!result9)
+ log->AppendError(_L8("\t\tSetSeenIMAP4Flag() not setting correct values"),-1);
+ result&=result9;
+
+ EmailEntry->SetAnsweredIMAP4Flag(ETrue);
+ TBool result10=(EmailEntry->AnsweredIMAP4Flag()!=EFalse);
+ EmailEntry->SetAnsweredIMAP4Flag(EFalse);
+ result10&=(EmailEntry->AnsweredIMAP4Flag()==EFalse);
+ if (!result10)
+ log->AppendError(_L8("\t\tSetAnsweredIMAP4Flag() not setting correct values"),-1);
+ result&=result10;
+
+ EmailEntry->SetFlaggedIMAP4Flag(ETrue);
+ TBool result11=(EmailEntry->FlaggedIMAP4Flag()!=EFalse);
+ EmailEntry->SetFlaggedIMAP4Flag(EFalse);
+ result11&=(EmailEntry->FlaggedIMAP4Flag()==EFalse);
+ if (!result11)
+ log->AppendError(_L8("\t\tSetFlaggedIMAP4Flag() not setting correct values"),-1);
+ result&=result11;
+
+ EmailEntry->SetDeletedIMAP4Flag(ETrue);
+ TBool result12=(EmailEntry->DeletedIMAP4Flag()!=EFalse);
+ EmailEntry->SetDeletedIMAP4Flag(EFalse);
+ result12&=(EmailEntry->DeletedIMAP4Flag()==EFalse);
+ if (!result12)
+ log->AppendError(_L8("\t\tSetDeletedIMAP4Flag() not setting correct values"),-1);
+ result&=result12;
+
+ EmailEntry->SetDraftIMAP4Flag(ETrue);
+ TBool result13=(EmailEntry->DraftIMAP4Flag()!=EFalse);
+ EmailEntry->SetDraftIMAP4Flag(EFalse);
+ result13&=(EmailEntry->DraftIMAP4Flag()==EFalse);
+ if (!result13)
+ log->AppendError(_L8("\t\tSetDraftIMAP4Flag() not setting correct values"),-1);
+ result&=result13;
+
+ EmailEntry->SetRecentIMAP4Flag(ETrue);
+ TBool result14=(EmailEntry->RecentIMAP4Flag()!=EFalse);
+ EmailEntry->SetRecentIMAP4Flag(EFalse);
+ result14&=(EmailEntry->RecentIMAP4Flag()==EFalse);
+ if (!result14)
+ log->AppendError(_L8("\t\tSetRecentIMAP4Flag() not setting correct values"),-1);
+ result&=result14;
+
+ EmailEntry->SetValidUID(ETrue);
+ TBool result15=(EmailEntry->ValidUID()!=EFalse);
+ EmailEntry->SetValidUID(EFalse);
+ result15&=(EmailEntry->ValidUID()==EFalse);
+ if (!result15)
+ log->AppendError(_L8("\t\tSetValidUID() not setting correct values"),-1);
+ result&=result15;
+
+ EmailEntry->SetMailbox(ETrue);
+ TBool result16=(EmailEntry->Mailbox()!=EFalse);
+ EmailEntry->SetMailbox(EFalse);
+ result16&=(EmailEntry->Mailbox()==EFalse);
+ if (!result16)
+ log->AppendError(_L8("\t\tSetMailbox() not setting correct values"),-1);
+ result&=result16;
+
+ EmailEntry->SetLocalSubscription(ETrue);
+ TBool result17=(EmailEntry->LocalSubscription()!=EFalse);
+ EmailEntry->SetLocalSubscription(EFalse);
+ result17&=(EmailEntry->LocalSubscription()==EFalse);
+ if (!result17)
+ log->AppendError(_L8("\t\tSetLocalSubscription() not setting correct values"),-1);
+ result&=result17;
+
+ EmailEntry->SetIMAP4Flags(ETrue,EFalse,EFalse,EFalse,EFalse,EFalse,EFalse);
+ TBool result18=(EmailEntry->UnreadIMAP4Flag()!=EFalse);
+ EmailEntry->SetIMAP4Flags(EFalse,ETrue,EFalse,EFalse,EFalse,EFalse,EFalse);
+ result18&=(EmailEntry->SeenIMAP4Flag()!=EFalse);
+ EmailEntry->SetIMAP4Flags(EFalse,EFalse,ETrue,EFalse,EFalse,EFalse,EFalse);
+ result18&=(EmailEntry->AnsweredIMAP4Flag()!=EFalse);
+ EmailEntry->SetIMAP4Flags(EFalse,EFalse,EFalse,ETrue,EFalse,EFalse,EFalse);
+ result18&=(EmailEntry->FlaggedIMAP4Flag()!=EFalse);
+ EmailEntry->SetIMAP4Flags(EFalse,EFalse,EFalse,EFalse,ETrue,EFalse,EFalse);
+ result18&=(EmailEntry->DeletedIMAP4Flag()!=EFalse);
+ EmailEntry->SetIMAP4Flags(EFalse,EFalse,EFalse,EFalse,EFalse,ETrue,EFalse);
+ result18&=(EmailEntry->DraftIMAP4Flag()!=EFalse);
+ EmailEntry->SetIMAP4Flags(EFalse,EFalse,EFalse,EFalse,EFalse,EFalse,ETrue);
+ result18&=(EmailEntry->RecentIMAP4Flag()!=EFalse);
+ if (!result18)
+ log->AppendError(_L8("\t\tSetIMAP4Flags() not setting correct values"),-1);
+ result&=result18;
+
+ // check folder Set/Get functions
+ EmailEntry->SetMessageFolderType(EFolderTypeRelated);
+ TBool result19=(EmailEntry->MessageFolderType()==EFolderTypeRelated);
+ if (!result19)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeRelated) not setting correct values"),-1);
+ result&=result19;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeAlternative);
+ TBool result20=(EmailEntry->MessageFolderType()==EFolderTypeAlternative);
+ if (!result20)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeAlternative) not setting correct values"),-1);
+ result&=result20;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeMixed);
+ TBool result21=(EmailEntry->MessageFolderType()==EFolderTypeMixed);
+ if (!result21)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeMixed) not setting correct values"),-1);
+ result&=result21;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeParallel);
+ TBool result22=(EmailEntry->MessageFolderType()==EFolderTypeParallel);
+ if (!result22)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeParallel) not setting correct values"),-1);
+ result&=result22;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeDigest);
+ TBool result23=(EmailEntry->MessageFolderType()==EFolderTypeDigest);
+ if (!result23)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeDigest) not setting correct values"),-1);
+ result&=result23;
+
+ EmailEntry->SetMessageFolderType(EFolderTypePartial);
+ TBool result24=(EmailEntry->MessageFolderType()==EFolderTypePartial);
+ if (!result24)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypePartial) not setting correct values"),-1);
+ result&=result24;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeExternal);
+ TBool result25=(EmailEntry->MessageFolderType()==EFolderTypeExternal);
+ if (!result25)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeExternal) not setting correct values"),-1);
+ result&=result25;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeUnknown);
+ TBool result26=(EmailEntry->MessageFolderType()==EFolderTypeUnknown);
+ if (!result26)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeUnknown) not setting correct values"),-1);
+ result&=result26;
+
+ EmailEntry->SetMessageFolderType(EFolderTypeDirectory);
+ TBool result27=(EmailEntry->MessageFolderType()==EFolderTypeDirectory);
+ if (!result27)
+ log->AppendError(_L8("\t\tSetMessageFolderType(EFolderTypeDirectory) not setting correct values"),-1);
+ result&=result27;
+
+ TBool result28 = ETrue;
+ // Huge test for all combinations of flag settings using the Get/Set inlines...
+ for (TInt a=0;a<2;++a)
+ {
+ for (TInt b=0;b<2;++b)
+ {
+ for(TInt c=0;c<2;++c)
+ {
+ for (TInt d=0 ; d<2 ;++d)
+ {
+ for (TInt e=0;e<2 ;++e)
+ {
+ for (TInt f=0; f<2 ; ++f)
+ {
+ for (TInt g=0; g<2 ; ++g)
+ {
+ TBool ia=a==1;
+ TBool ib=a==1;
+ TBool ic=c==1;
+ TBool id=d==1;
+ TBool ie=e==1;
+ TBool iff=f==1;
+ TBool ig=g==1;
+ EmailEntry->SetIMAP4Flags (ia,ib,ic,id,ie,iff,ig);
+ TBool ra,rb,rc,rd,re,rf,rg;
+ EmailEntry->GetIMAP4Flags (ra,rb,rc,rd,re,rf,rg);
+ result28 &= (ia==(ra>0)) && ((rb>0)==ib) && (ic==(rc>0)) && (id==(rd>0)) && (ie==(re>0)) && (iff==(rf>0)) && ((rg>0)==ig);
+ } // g
+ } //f
+ } // e
+ } // d
+ } // c
+ } // b
+ } // a
+ if (!result28)
+ log->AppendError(_L8("\t\tError in test for all combinations of flag settings using Get/Set inlines"),-1);
+ result&=result28;
+
+ const TUint32 KMyUID=8723640;
+
+ TUint32 myUID=KMyUID;
+ EmailEntry->SetUID(myUID);
+ myUID=99;
+ TBool result29=(EmailEntry->UID()==KMyUID);
+
+ EmailEntry->SetIMAP4Flags(ETrue,EFalse,EFalse,ETrue,EFalse,ETrue,EFalse);
+ TInt32 myInt = EmailEntry->MtmData1();
+ delete genericEntry;
+ TMsvEntry msvEntry=*EmailEntry;
+ genericEntry=&msvEntry;
+ result29&=(genericEntry->MtmData1()==myInt);
+
+ msvEntry.SetMtmData2(KMyUID);
+ TMsvEmailEntry msvEmailEntry1(msvEntry);
+ TMsvEmailEntry msvEmailEntry2(msvEmailEntry1);
+
+ result29 &= (msvEmailEntry2.UID()==KMyUID); // test whether the copy constructors work ok...
+ if (!result29)
+ log->AppendError(_L8("\t\tCopy constructors do not work"),-1);
+ result&=result29;
+
+ TMsvEmailEntry msvEmailEntry3=msvEmailEntry1; // test assignment operator
+ TBool result30=(msvEmailEntry3.UID()==KMyUID);
+ if (!result30)
+ log->AppendError(_L8("\t\tTest Assignment Operator does not work"),-1);
+ result&=result30;
+
+ //test equality operator
+ TBool result31=msvEmailEntry2==msvEmailEntry3;
+ if (!result31)
+ log->AppendError(_L8("\t\tTest Equality Operator does not work"),-1);
+ result&=result31;
+
+ TMsvEntry a2=msvEntry;
+
+ // assignment TMsvEmailEntry->TMsvEntry
+ a2 = msvEmailEntry1;
+
+ TBool result32=(TUint32(a2.MtmData2())==KMyUID);
+ result&=result32;
+
+ // check ICalendar flag
+ EmailEntry->SetICalendar(ETrue);
+ TBool result33=(EmailEntry->ICalendar()!=EFalse);
+ EmailEntry->SetICalendar(EFalse);
+ result33&=(EmailEntry->ICalendar()==EFalse);
+ if (!result33)
+ log->AppendError(_L8("\t\tSetICalendar() not setting correct values"),-1);
+ result&=result33;
+
+ delete EmailEntry;
+
+ ResultOfTest(result, aTestNo);
+ return result;
+ }
+
+LOCAL_C TBool DisconnectedOperationTests(TInt aTestNo)
+ {
+ log->AppendComment(_L8("\tDisconnected Operation Tests"));
+
+ TMsvEntry* genericEntry = new (ELeave) TMsvEntry;
+ genericEntry->iType = KUidMsvMessageEntry;
+ genericEntry->iMtm = KUidMsgTypePOP3;
+ genericEntry->iServiceId = 0x1087643;
+ genericEntry->SetPriority(EMsvHighPriority);
+ genericEntry->SetComplete(ETrue);
+ genericEntry->SetVisible(ETrue);
+
+ TBool result=ETrue;
+
+ TMsvEmailEntry* EmailEntry = new (ELeave) TMsvEmailEntry(*genericEntry);
+
+ // check folder Set/Get functions
+ EmailEntry->SetDisconnectedOperation(ENoDisconnectedOperations);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), ENoDisconnectedOperations, &KNoDisconnectedOperations);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedCreateOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedCreateOperation, &KDisconnectedCreateOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedDeleteOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedDeleteOperation, &KDisconnectedDeleteOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedChangeOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedChangeOperation, &KDisconnectedChangeOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedCopyToOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedCopyToOperation, &KDisconnectedCopyToOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedCopyFromOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedCopyFromOperation, &KDisconnectedCopyFromOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedCopyWithinServiceOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedCopyWithinServiceOperation, &KDisconnectedCopyWithinServiceOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedMoveToOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedMoveToOperation, &KDisconnectedMoveToOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedMoveFromOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedMoveFromOperation, &KDisconnectedMoveFromOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedMoveWithinServiceOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedMoveWithinServiceOperation, &KDisconnectedMoveWithinServiceOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedSpecialOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedSpecialOperation, &KDisconnectedSpecialOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedUnknownOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedUnknownOperation, &KDisconnectedUnknownOperation);
+
+ EmailEntry->SetDisconnectedOperation(EDisconnectedMultipleOperation);
+ result &= CompareDisconnectedOptions(EmailEntry->DisconnectedOperation(), EDisconnectedMultipleOperation, &KDisconnectedMultipleOperation);
+
+ delete genericEntry;
+ delete EmailEntry;
+
+ ResultOfTest(result, aTestNo);
+ return result;
+ }
+
+
+//
+
+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->CleanMessageFolderL();
+
+ log = CImLog::NewL(_L("c:\\logs\\email\\T_IMCM.log"), EAppend);
+ CleanupStack::PushL(log);
+ log->AppendComment(_L8("********** T_MIUT04 Test TMsvEmailEntry class **********"));
+ TBuf8<80> buf;
+
+#if defined(__WINS__)
+ buf.Append(_L8("WINS "));
+#else
+ buf.Append(_L8("MARM "));
+#endif
+#if defined(_UNICODE)
+ buf.Append(_L8("U"));
+#endif
+#if defined(_DEBUG)
+ buf.Append(_L8("DEB"));
+#else
+ buf.Append(_L8("REL"));
+#endif
+ log->AppendComment(buf);
+ }
+
+LOCAL_C void Closedown()
+ {
+ log->AppendComment(_L8("************ T_MIUT04 Tests Complete *************"));
+ log->AppendComment(_L8(""));
+
+ CleanupStack::PopAndDestroy(3); //testUtils, log, scheduler
+ }
+
+//
+
+LOCAL_C void doMainL()
+ {
+ InitL();
+ testUtils->GoClientSideL();
+ test.Printf(_L("Performing Header Tests"));
+
+ TBool result = ETrue;
+ testUtils->TestStart(1);
+ TBool result1 = TMsvEmailEntrySelectionL(1);
+ result &= result1;
+ if (result1)
+ log->AppendComment(_L8("PASSED Test 1"));
+ else
+ log->AppendError(_L8("FAILED Test 1"),-1);
+ testUtils->TestFinish(1);
+
+ testUtils->TestStart(2);
+ TBool result2 = DisconnectedOperationTests(2);
+ result &= result2;
+ if (result2)
+ log->AppendComment(_L8("PASSED Test 2"));
+ else
+ log->AppendError(_L8("FAILED Test 2"),-1);
+ testUtils->TestFinish(2);
+
+ if (result)
+ {
+ log->AppendComment(_L8("PASSED All tests"));
+ test.Printf(_L("PASSED all Tests"));
+ testUtils->TestHarnessCompleted();
+ }
+ else
+ {
+ test.Printf(_L("FAILED Tests"));
+ log->AppendError(_L8("FAILED At Least one test"),-1);
+ testUtils->TestHarnessFailed(KErrGeneral);
+ }
+
+ Closedown();
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ __UHEAP_MARK;
+ test.Start(_L("MIUT04 - Test TMsvEmailEntry class"));
+ theCleanup=CTrapCleanup::New();
+ TRAPD(ret,doMainL());
+ test(ret==KErrNone);
+ delete theCleanup;
+ test.End();
+ test.Close();
+ __UHEAP_MARKEND;
+ return(KErrNone);
+ }