diff -r e8c1ea2c6496 -r 8758140453c0 email/email/pop/src/T_ConnectPop3Server.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/email/pop/src/T_ConnectPop3Server.cpp Thu Jan 21 12:53:44 2010 +0000 @@ -0,0 +1,180 @@ +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// [TestStep Name] +// ConnectPop3Server +// [Paramaters] +// PopAccountName : Name of the Pop account +// Connects to the Pop3 Server +// [APIs Used] +// CMsvEntry::SetEntryL +// CMsvEntrySelection::AppendL +// CPop3ClientMtm::InvokeAsyncFunctionL +// +// + + + +/** + @file +*/ + +// User Includes +#include "T_ConnectPop3Server.h" +#include + + +// Epoc includes +#include +#include +#include +#include + +// Literals Used +_LIT(KPopAccountName,"PopAccountName"); + +const TInt KMaxLenghtOfChar = 1; + +/** +CT_MsgConnectPop3Server() +Sets the teststep name to KConnectPop3Server + +@param aSharedDataPOP +Data shared across the POP test steps. Ex. Session +*/ +CT_MsgConnectPop3Server::CT_MsgConnectPop3Server(CT_MsgSharedDataPop& aSharedDataPOP) +: CT_MsgAsyncStepPOP(aSharedDataPOP) +, iOperation(NULL) + { + SetTestStepName(KConnectPop3Server); + } + +/** +NewL() +Allocates and creates a new CT_MsgConnectPop3Server object + +@param aSharedDataPOP +Data shared across the POP test steps. Ex. Session + +@leave KErrNoMemory +@return +Returns pointer to an object of CT_MsgComparePopEmailMsgs +*/ +CT_MsgConnectPop3Server* CT_MsgConnectPop3Server::NewL(CT_MsgSharedDataPop& aSharedDataPOP) + { + CT_MsgConnectPop3Server* self = new(ELeave) CT_MsgConnectPop3Server(aSharedDataPOP); + CleanupStack::PushL(self); + self->ConstructL(); // Call CT_AsyncStep::ConstructL() + CleanupStack::Pop(self); + return self; + } + + +/** +~CT_MsgConnectPop3Server() +Destructor +*/ +CT_MsgConnectPop3Server::~CT_MsgConnectPop3Server() + { + delete iOperation; + iOperation=NULL; + } + + +/** +ProgressL() + +@param +*/ +void CT_MsgConnectPop3Server::ProgressL(TBool bFinal) + { + // TODO + if (bFinal) + { + // Display final progress iOperation + } + else + { + // Display current progress iOperation + } + } + + +/** +CancelStep() + +@param +*/ +void CT_MsgConnectPop3Server::CancelStep() + { + iOperation->Cancel(); + } + + +/** +doTestStepL() +It establishes connection with the Pop server using a POP account. +The account is identified by the account name that is read from the INI file. + +@return +Returns the test step result +*/ +TVerdict CT_MsgConnectPop3Server::doTestStepL() + { + INFO_PRINTF1(_L(" Test Step : ConnectPop3Server")); + TPtrC popAccountName; + if(!GetStringFromConfig(ConfigSection(), KPopAccountName, popAccountName)) + { + ERR_PRINTF1(_L("Pop Account Name is not specified")); + SetTestStepResult(EFail); + } + + else + { + // Retrieving the Pop service Id for the given Pop account + TMsvId popServiceId = CT_MsgUtilsCentralRepository::GetPopServiceIdL((TDes&)popAccountName); + INFO_PRINTF2(_L("Pop service id is %d"),popServiceId); + + // Change the current context + iSharedDataPOP.iMtm->SwitchCurrentEntryL(popServiceId); + + CMsvEntrySelection* selection = new (ELeave) CMsvEntrySelection; + CleanupStack::PushL(selection); + + // Appends the popServiceId onto the end of the array + selection->AppendL(popServiceId); + + TBuf8 param; + + CT_MsgActive& active=Active(); + // Attempts to connect to the Pop3 Service + iOperation = iSharedDataPOP.iMtm->InvokeAsyncFunctionL(KPOP3MTMConnect,*selection,param, active.iStatus); + + active.Activate(); + CActiveScheduler::Start(); + + // Get the error code from TPop3Progress + TPop3Progress temp; + TPckgC paramPack(temp); + paramPack.Set(iOperation->ProgressL()); + TPop3Progress progress=paramPack(); + SetTestStepError(progress.iErrorCode); + + delete iOperation; + iOperation=NULL; + + CleanupStack::PopAndDestroy(selection); //operation,selection + // User::LeaveIfError(active.Result()); + } + return TestStepResult(); + }