diff -r 000000000000 -r 72b543305e3a email/pop3andsmtpmtm/popservermtm/test/src/CTestPOPSynchroniseTest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/pop3andsmtpmtm/popservermtm/test/src/CTestPOPSynchroniseTest.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,277 @@ + +// 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: +// Name of test harness: T_pops_synchronise +// Component: POPS +// 0Brief description of test harness: +// Tests the changes to POPS for small devices which permit setting a limit +// on the number of emails downloaded at any time. +// Detailed description of test harness: +// Implements a range of tests for POPS testing the following +// funtionality: +// -Setting sychronisation limit +// -Populating the remote mailbox with headers up to the synchronisation limit +// -Deleting headers from the remote mailbox under the service entry +// if message has been deleted from POP3 mailbox. +// +// + + + +#include "CTestPOPSynchroniseTest.h" +#include + + +#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_POPsSynchronise"); +_LIT(KPopTeststart, "T_POPsSynchronise - START POPS Synchronise Functionality Testing"); +_LIT(KPopTestend, "T_POPsSynchronise - END POPS Synchronise Functionality Testing"); + +//_LIT(KPOPServer, "10.192.197.21"); + +_LIT(KPOPServer,"msexchange01.closedtest.intra"); +_LIT8(KPOPInValidUserPass, "popsyn"); + +RTest test(KPopsComponent); + + +CTestPOPSynchroniseTest::CTestPOPSynchroniseTest() + { + } + +CTestPOPSynchroniseTest ::~CTestPOPSynchroniseTest() + { + } + +void CTestPOPSynchroniseTest::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(); + + + iaccount = CEmailAccounts::NewLC(); + isettings = new(ELeave) CImPop3Settings(); + + CImIAPPreferences* imapIAP = CImIAPPreferences::NewLC(); + iSel = new (ELeave) CMsvEntrySelection; + + + iaccount->GetPopAccountL(ipop3Service, ipop3AccountId); + iaccount->LoadPopSettingsL(ipop3AccountId, *isettings); + + isettings->SetServerAddressL(KPOPServer); + isettings->SetLoginNameL(KPOPInValidUserPass /*iTestUtils->MachineName()*/); + isettings->SetPasswordL(KPOPInValidUserPass /*iTestUtils->MachineName()*/); + isettings->SetPort(110); + + iaccount->SavePopSettingsL(ipop3AccountId, *isettings); + CleanupStack::PopAndDestroy(2, iaccount); + + iTestUtils->GoServerSideL(); + iTestUtils->InstantiatePopServerMtmL(); + iPopServerMtm=iTestUtils->iPopServerMtm; + } + +void CTestPOPSynchroniseTest::TearDownL() + { + _LIT(KFunction, "TearDownL"); + INFO_PRINTF1(KFunction); + ipop3Service = NULL; + delete isettings; + delete iActiveWaiter; + delete iTestUtils; + iTestUtils = NULL; + INFO_PRINTF1(KPopTestend); + } + +void CTestPOPSynchroniseTest::TestPop3SynchroniseTestL() + { + + _LIT(KFunction1, "TestNoPop3FolderMessagesL"); + INFO_PRINTF1(KFunction1); + + ConnectToRemoteServerL(); + + TInt totalEntries=0; + User::LeaveIfError(iTestUtils->iServerEntry->SetEntry(ipop3Service)); + CMsvEntrySelection* sel = new (ELeave) CMsvEntrySelection; + CleanupStack::PushL(sel); + User::LeaveIfError(iTestUtils->iServerEntry->GetChildren(*sel)); + totalEntries = sel->Count(); + ASSERT_EQUALS( totalEntries, sel->Count() ); + sel->Reset(); + + _LIT(KFunction2, "TestNoNewMsgL"); + INFO_PRINTF1(KFunction2); + + TInt newEntries=0; + User::LeaveIfError(iTestUtils->iServerEntry->SetEntry(ipop3Service)); + User::LeaveIfError(iTestUtils->iServerEntry->GetChildren(*sel)); + + for (TInt count =0; count < sel->Count(); count++) + { + User::LeaveIfError(iTestUtils->iServerEntry->SetEntry(sel->At(count) ) ); + if (iTestUtils->iServerEntry->Entry().New()) + newEntries++; + } + TInt entry = newEntries; + ASSERT_EQUALS( newEntries, entry ); + sel->Reset(); + + _LIT(KFunction3, "TestNoOldMsgL"); + INFO_PRINTF1(KFunction3); + + TInt oldEntries=0; + User::LeaveIfError(iTestUtils->iServerEntry->SetEntry(ipop3Service)); + User::LeaveIfError(iTestUtils->iServerEntry->GetChildren(*sel)); + + for (TInt count =0; count < sel->Count(); count++) + { + User::LeaveIfError(iTestUtils->iServerEntry->SetEntry(sel->At(count)) ); + if (! iTestUtils->iServerEntry->Entry().New()) + oldEntries++; + } + TInt oldentry = oldEntries; + ASSERT_EQUALS( oldEntries, oldentry ); + sel->Reset(); + + DisconnectL(); + CleanupStack::PopAndDestroy(1, sel); + ChangeSynchronisationLimitL(); + ChangeDownloadModeL(); + } + +void CTestPOPSynchroniseTest::ChangeSynchronisationLimitL() + { + // Get the settings for the POP3 service and change the synchronisation limit + // Used after the settings have been created and set. + + _LIT(KFunction4, "ChangeSynchronisationLimitL"); + INFO_PRINTF1(KFunction4); + + + TInt aLimit = 2; + iTestUtils->GoClientSideL(); + CEmailAccounts* accounts = CEmailAccounts::NewLC(); + CImPop3Settings* settings = new(ELeave) CImPop3Settings(); + CleanupStack::PushL(settings); + TPopAccount id; + accounts->GetPopAccountL(ipop3Service, id); + accounts->LoadPopSettingsL(id, *settings); + + settings->SetInboxSynchronisationLimit(aLimit); + accounts->SavePopSettingsL(id, *settings); + + CleanupStack::PopAndDestroy(settings); + settings = NULL; + settings = new(ELeave) CImPop3Settings(); + CleanupStack::PushL(settings); + accounts->LoadPopSettingsL(id, *settings); + TInt ret = settings->InboxSynchronisationLimit() ; + ASSERT_EQUALS(ret , aLimit); + + CleanupStack::PopAndDestroy(settings); + CleanupStack::PopAndDestroy(accounts); + } + +void CTestPOPSynchroniseTest::ChangeDownloadModeL() + { + // Get the settings for the POP3 service and change the synchronisation limit + // Used after the settings have been created and set. + + _LIT(KFunction5, "ChangeDownloadModeL"); + INFO_PRINTF1(KFunction5); + + TBuf<20> downloadType; + + iTestUtils->GoClientSideL(); + CEmailAccounts* accounts = CEmailAccounts::NewLC(); + CImPop3Settings* settings = new(ELeave) CImPop3Settings(); + CleanupStack::PushL(settings); + TPopAccount id; + accounts->GetPopAccountL(ipop3Service, id); + accounts->LoadPopSettingsL(id, *settings); + TPop3GetMailOptions aMode(EGetPop3EmailHeaders); + settings->SetGetMailOptions(aMode); + accounts->SavePopSettingsL(id, *settings); + CleanupStack::PopAndDestroy(settings); + settings = NULL; + settings = new(ELeave) CImPop3Settings(); + CleanupStack::PushL(settings); + accounts->LoadPopSettingsL(id, *settings); + TPop3GetMailOptions aMode1 = settings->GetMailOptions(); + ASSERT_EQUALS(aMode1 , aMode); + CleanupStack::PopAndDestroy(settings); + CleanupStack::PopAndDestroy(accounts); + } + +//Connect to tyhe Server +void CTestPOPSynchroniseTest::ConnectToRemoteServerL() + { + TBuf8<128> parameter; + iSel->AppendL(ipop3Service); + TPop3Progress temp; + TPckgC 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 CTestPOPSynchroniseTest::DisconnectL() + { + TBuf8<128> parameter; + iSel->AppendL(ipop3Service); + iPopServerMtm->StartCommandL(*iSel,KPOP3MTMDisconnect , parameter, iActiveWaiter->iStatus); + iActiveWaiter->WaitActive(); + ASSERT_EQUALS( iActiveWaiter->iStatus.Int( ), KErrNone ); + } + +CTestSuite* CTestPOPSynchroniseTest::CreateSuiteL(const TDesC& aName) + { + SUB_SUITE; + ADD_ASYNC_TEST_STEP(TestPop3SynchroniseTestL); + //ADD_ASYNC_TEST_STEP(ChangeSynchronisationLimitL); + END_SUITE; + } +