--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/popservermtm/test/src/CTestPOPs5Test.cpp Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,297 @@
+
+// Copyright (c) 2008-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:
+// Brief description of test harness:
+// Tests a wide range of POPS functionality
+// Detailed description of test harness:
+// Implements a range of tests for POPS testing the following
+// funtionality:
+// moving, copying, deleting and populating messages
+// downloading mail with badly formed headers
+// copying, moving and populating messages that are already populated
+// online operations
+// offline operations
+//
+//
+
+#include "CTestPOPs5Test.h"
+#include <iapprefs.h>
+
+
+#if defined (__WINS__)
+ #define PDD_NAME _L("ECDRV")
+ #define LDD_NAME _L("ECOMM")
+#else
+ #define PDD_NAME _L("EUART1")
+ #define LDD_NAME _L("ECOMM")
+#endif
+
+_LIT(KPopsComponent,"T_POPs5");
+_LIT(KPopTeststart, "T_POPs5 - START POPS Functionality Testing");
+_LIT(KPopTestend, "T_POPs5 - END POPS Functionality Testing");
+
+
+_LIT(KPOPServer,"msexchange01.closedtest.intra");
+_LIT8(KPOPInValidUserPass, "popfun");
+
+RTest test(KPopsComponent);
+
+
+CTestPOPs5Test::CTestPOPs5Test()
+ {
+ }
+
+CTestPOPs5Test ::~CTestPOPs5Test()
+ {
+ }
+
+void CTestPOPs5Test::SetupL()
+ {
+ _LIT(KFunction, "SetupL");
+ INFO_PRINTF1(KFunction);
+ INFO_PRINTF1(KPopTeststart);
+ TInt err;
+ err=User::LoadPhysicalDevice(PDD_NAME);
+ if (err!=KErrNone && err!=KErrAlreadyExists)
+ User::Leave(err);
+ err=User::LoadLogicalDevice(LDD_NAME);
+ if (err!=KErrNone && err!=KErrAlreadyExists)
+ User::Leave(err);
+
+ iActiveWaiter = new(ELeave)CActiveWaiter();
+ iTestUtils = CEmailTestUtils::NewL(test);
+ iTestUtils->FileSession().SetSessionPath( _L( "C:\\" ) );
+ iTestUtils->ClearEmailAccountsL();
+ iTestUtils->CreateAllTestDirectories();
+ iTestUtils->CleanMessageFolderL();
+
+ iTestUtils->GoClientSideL();
+
+ if(!ipop3Service)
+ ipop3Service = iTestUtils->CreatePopServiceL();
+
+
+ CEmailAccounts* account = CEmailAccounts::NewLC();
+ isettings = new(ELeave) CImPop3Settings();
+
+
+ CImIAPPreferences* imapIAP = CImIAPPreferences::NewLC();
+ iSel = new (ELeave) CMsvEntrySelection;
+
+ TPopAccount pop3AccountId;
+ account->GetPopAccountL(ipop3Service, pop3AccountId);
+ account->LoadPopSettingsL(pop3AccountId, *isettings);
+
+ isettings->SetServerAddressL(KPOPServer);
+ isettings->SetLoginNameL(KPOPInValidUserPass /*iTestUtils->MachineName()*/);
+ isettings->SetPasswordL(KPOPInValidUserPass /*iTestUtils->MachineName()*/);
+ isettings->SetPort(110);
+
+
+ account->SavePopSettingsL(pop3AccountId, *isettings);
+ CleanupStack::PopAndDestroy(2, account);
+
+ iTestUtils->GoServerSideL();
+ iTestUtils->InstantiatePopServerMtmL();
+ iPopServerMtm=iTestUtils->iPopServerMtm;
+ }
+
+void CTestPOPs5Test::TearDownL()
+ {
+ _LIT(KFunction, "TearDownL");
+ INFO_PRINTF1(KFunction);
+ ipop3Service = NULL;
+ _LIT(KFunction1, "After NULL");
+ INFO_PRINTF1(KFunction1);
+ delete isettings;
+ _LIT(KFunction2, "After iSettings");
+ INFO_PRINTF1(KFunction2);
+ delete iActiveWaiter;
+ _LIT(KFunction3, "After iActiveWaiter");
+ INFO_PRINTF1(KFunction3);
+ delete iTestUtils;
+ _LIT(KFunction4, "After iTestUtils");
+ INFO_PRINTF1(KFunction4);
+ iTestUtils = NULL;
+ _LIT(KFunction5, "After iTestUtils NULL");
+ INFO_PRINTF1(KFunction5);
+ INFO_PRINTF1(KPopTestend);
+ }
+
+
+void CTestPOPs5Test::TestRunPops5CopyToLocalLTestsL()
+ {
+ //-------------------------------
+ // Test 1 void CopyToLocalL(const CMsvEntrySelection& aSelection, TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+
+ ConnectToRemoteServerL();
+
+ _LIT(KFunction1, "TestCopyToLocalL");
+ INFO_PRINTF1(KFunction1);
+
+ CMsvEntrySelection* aSelection = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection);
+ aSelection->AppendL(ipop3Service);
+
+ iTestUtils->iServerEntry->SetEntry(ipop3Service);
+ iTestUtils->iServerEntry->GetChildren(*aSelection);
+
+ TRAPD(err1, iPopServerMtm->CopyToLocalL(*aSelection,ipop3Service,iActiveWaiter->iStatus));
+ iActiveWaiter->WaitActive();
+
+ ASSERT_EQUALS( err1, KErrNone );
+
+
+ //-------------------------------
+ // Test 2 void MoveToLocalL(const CMsvEntrySelection& aSelection, TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+
+ _LIT(KFunction2, "TestMoveToLocalL");
+ INFO_PRINTF1(KFunction2);
+
+ CMsvEntrySelection* aSelection1 = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection1);
+ aSelection1->AppendL(ipop3Service);
+
+ iTestUtils->iServerEntry->SetEntry(ipop3Service);
+ iTestUtils->iServerEntry->GetChildren(*aSelection1);
+
+ TRAPD(err11, iPopServerMtm->MoveToLocalL(*aSelection1,ipop3Service,iActiveWaiter->iStatus));
+ iActiveWaiter->WaitActive();
+
+ ASSERT_EQUALS( err11, KErrNone );
+
+ //-------------------------------
+ // Test 3 void CopyFromLocalL(const CMsvEntrySelection& aSelection, TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+
+ _LIT(KFunction3, "TestCopyFromLocalL");
+ INFO_PRINTF1(KFunction3);
+
+ CMsvEntrySelection* aSelection21 = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection21);
+ TRAPD(err21, iPopServerMtm->CopyFromLocalL(*aSelection21,KMsvGlobalInBoxIndexEntryId,iActiveWaiter->iStatus));
+ ASSERT_EQUALS( err21, KErrNotSupported );
+
+
+ //-------------------------------
+ // Test 4 void DeleteAllL(const CMsvEntrySelection& aSelection, TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+
+ _LIT(KFunction4, "TestDeleteAllL");
+ INFO_PRINTF1(KFunction4);
+
+
+ CMsvEntrySelection* aSelection12 = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection12);
+ aSelection12->AppendL(ipop3Service);
+
+ iTestUtils->iServerEntry->SetEntry(ipop3Service);
+ iTestUtils->iServerEntry->GetChildren(*aSelection12);
+
+ TRAPD(err12, iPopServerMtm->DeleteAllL(*aSelection12,iActiveWaiter->iStatus));
+ iActiveWaiter->WaitActive();
+
+ ASSERT_EQUALS( err12, KErrNone );
+
+
+ //-------------------------------
+ // Test 5 void CopyWithinServiceL(const CMsvEntrySelection& aSelection,TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+
+ _LIT(KFunction5, "TestCopyWithinServiceL");
+ INFO_PRINTF1(KFunction5);
+
+ CMsvEntrySelection* aSelection13 = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection13);
+ TRAPD(err13, iPopServerMtm->CopyWithinServiceL(*aSelection13,KMsvGlobalInBoxIndexEntryId,iActiveWaiter->iStatus));
+ ASSERT_EQUALS( err13, KErrNotSupported );
+
+
+
+ //-------------------------------
+ // Test 6 void void MoveFromLocalL(const CMsvEntrySelection& aSelection,TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+
+ _LIT(KFunction6, "TestMoveFromLocalL");
+ INFO_PRINTF1(KFunction6);
+
+ CMsvEntrySelection* aSelection14 = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection14);
+ TRAPD(err14, iPopServerMtm->MoveFromLocalL(*aSelection14,KMsvGlobalInBoxIndexEntryId,iActiveWaiter->iStatus));
+ ASSERT_EQUALS( err14, KErrNotSupported );
+
+
+
+ //-------------------------------
+ // Test 7 void MoveWithinServiceL(const CMsvEntrySelection& aSelection,TMsvId aDestination, TRequestStatus& aStatus);
+ //-------------------------------
+ _LIT(KFunction7, "TestMoveWithinServiceL");
+ INFO_PRINTF1(KFunction7);
+
+ CMsvEntrySelection* aSelection15 = new (ELeave) CMsvEntrySelection;
+ CleanupStack::PushL(aSelection15);
+ TRAPD(err15, iPopServerMtm->MoveWithinServiceL(*aSelection15,KMsvGlobalInBoxIndexEntryId,iActiveWaiter->iStatus));
+ ASSERT_EQUALS( err15, KErrNotSupported );
+
+
+ //-------------------------------
+ // Test 8 void CreateL(TMsvEntry aNewEntry, TRequestStatus& aStatus);
+ //-------------------------------
+
+ _LIT(KFunction8, "TestCreateL");
+ INFO_PRINTF1(KFunction8);
+
+ TMsvEntry aNewEntry = iTestUtils->iServerEntry->Entry();
+
+ TRAPD(err16, iPopServerMtm->CreateL(aNewEntry,iActiveWaiter->iStatus));
+ ASSERT_EQUALS( err16, KErrNotSupported );
+
+ DisconnectL();
+ CleanupStack::PopAndDestroy(7,aSelection); // aSelection
+ }
+
+//Connect to tyhe Server
+void CTestPOPs5Test::ConnectToRemoteServerL()
+ {
+ TBuf8<128> parameter;
+ iSel->AppendL(ipop3Service);
+ TPop3Progress temp;
+ TPckgC<TPop3Progress> paramPack(temp);
+ iPopServerMtm->StartCommandL(*iSel, KPOP3MTMConnect, parameter, iActiveWaiter->iStatus);
+ iActiveWaiter->WaitActive();
+ const TDesC8& progBuf = iTestUtils->iPopServerMtm->Progress();
+ paramPack.Set(progBuf);
+ TPop3Progress progress=paramPack();
+ ASSERT_EQUALS( progress.iErrorCode, KErrNone );
+ }
+//Disconnecting the Connection
+void CTestPOPs5Test::DisconnectL()
+ {
+ TBuf8<128> parameter;
+ iSel->AppendL(ipop3Service);
+ iPopServerMtm->StartCommandL(*iSel,KPOP3MTMDisconnect , parameter, iActiveWaiter->iStatus);
+ iActiveWaiter->WaitActive();
+ ASSERT_EQUALS( iActiveWaiter->iStatus.Int( ), KErrNone );
+ }
+
+CTestSuite* CTestPOPs5Test::CreateSuiteL(const TDesC& aName)
+ {
+ SUB_SUITE;
+ ADD_ASYNC_TEST_STEP(TestRunPops5CopyToLocalLTestsL);
+ END_SUITE;
+ }
+
+