--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/clientmtms/test/src/t_iapprefs.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,190 @@
+// 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_IAPPREFS
+// Component: IMCM
+// Owner: KG
+// Brief description of test harness:
+// Tests IAP Preferences
+// Detailed description of test harness:
+// As above
+// Input files required to run test harness:
+// None
+// Intermediate files produced while running test harness:
+// None
+// Output files produced by running test harness:
+// <DRIVE>:\msglogs\T_IAPPREFS.<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:
+// WINS running instructions:
+// 1. \epoc32\release\wins\<VARIANT>\T_IAPPREFS.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_IAPPREFS.exe onto the other platform
+// 2. Run T_IAPPREFS.exe on the other platform
+//
+//
+
+#include "emailtestutils.h"
+#include "t_iapprefs.h"
+#include <e32test.h>
+#include <msvids.h>
+
+RTest test(_L("T_IAPP"));
+LOCAL_D CTrapCleanup* theCleanup;
+LOCAL_D CEmailTestUtils* testUtils;
+
+
+CT_iapprefs* CT_iapprefs::NewLC()
+ {
+ CT_iapprefs* self = new (ELeave) CT_iapprefs();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+void CT_iapprefs::ConstructL()
+ {
+ iPref = CImIAPPreferences::NewLC();
+ CleanupStack::Pop();
+ }
+
+CT_iapprefs::CT_iapprefs()
+ {
+ }
+
+CT_iapprefs::~CT_iapprefs()
+ {
+ delete iPref;
+ }
+
+void CT_iapprefs::HeapTestL()
+ {
+#ifdef _DEBUG // stop compiler complaining that i isn't used in release builds.
+ TInt i = 0;
+#endif
+ TInt err = KErrNone;
+ do
+ {
+ __UHEAP_FAILNEXT(i++);
+
+ TRAP(err, TestAllButStoreL());
+
+ __UHEAP_RESET;
+ } while (err == KErrNoMemory);
+
+ User::LeaveIfError(err);
+
+ }
+
+void CT_iapprefs::TestL()
+ {
+ TestAllButStoreL();
+ }
+
+void CT_iapprefs::TestAllButStoreL()
+ {
+ TestVersionL();
+ TestNoIAPsL();
+ TestAddIAPL();
+ TestRemoveIAPL();
+ }
+
+void CT_iapprefs::TestVersionL()
+ {
+ TestL(iPref->Version()==2); // MLM 13/08/01. Changed to version 2 for Messaging 6.2.
+ }
+
+
+void CT_iapprefs::TestNoIAPsL()
+ {
+ PopulateChoicesL(0);
+ TestL(iPref->NumberOfIAPs() == 0);
+ PopulateChoicesL(2);
+ TestL(iPref->NumberOfIAPs() == 2);
+ }
+
+void CT_iapprefs::TestAddIAPL()
+ {
+ PopulateChoicesL(4);
+ for(TUint i = 0; i < 4; ++i)
+ TestL(iPref->IAPPreference(i).iIAP==i);
+ }
+
+void CT_iapprefs::TestRemoveIAPL()
+ {
+ PopulateChoicesL(4);
+ iPref->RemoveIAPL(0);
+ TestL(iPref->NumberOfIAPs()==3);
+ TUint i;
+ for(i = 0; i < 3; ++i)
+ TestL(iPref->IAPPreference(i).iIAP==i+1);
+
+ iPref->RemoveIAPL(2); // the last one
+ TestL(iPref->NumberOfIAPs()==2);
+ for(i = 0; i < 2; ++i)
+ TestL(iPref->IAPPreference(i).iIAP==i+1);
+ }
+
+void CT_iapprefs::PopulateChoicesL(TInt n)
+ {
+ for(;iPref->NumberOfIAPs() > 0; iPref->RemoveIAPL(0)) {};
+
+ TestL(iPref->NumberOfIAPs()==0);
+ for(TInt j = 0; j < n; ++j)
+ {
+ TImIAPChoice choice = {j,(TCommDbDialogPref)1};
+ iPref->AddIAPL(choice, j);
+ }
+ }
+
+void CT_iapprefs::TestL(TBool aCondition)
+ {
+ if(!aCondition)
+ User::Leave(KErrTestFailed);
+ }
+
+void doMainL()
+ {
+ CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
+ CleanupStack::PushL(scheduler);
+ CActiveScheduler::Install( scheduler );
+ testUtils = CEmailTestUtils::NewLC(test);
+ CT_iapprefs* iapp = CT_iapprefs::NewLC();
+
+ testUtils->TestStart(1);
+ iapp->TestL();
+ testUtils->TestFinish(1);
+ testUtils->TestStart(2);
+ iapp->HeapTestL();
+ testUtils->TestFinish(2);
+ testUtils->TestHarnessCompleted();
+ CleanupStack::PopAndDestroy(3);//iapp, scheduler, testUtils
+ }
+
+GLDEF_C TInt E32Main()
+ {
+ __UHEAP_MARK;
+ test.Start(_L("T_IAPP Test CImIAPPreferences class\n"));
+ theCleanup=CTrapCleanup::New();
+ TRAPD(ret,doMainL());
+ test(ret==KErrNone);
+ delete theCleanup;
+ test.End();
+ test.Close();
+ __UHEAP_MARKEND;
+ return (KErrNone);
+ }