--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstengine/tsrc/vimpstengine_ut/src/t_vimpstenginepresencesubservice.cpp Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,1312 @@
+/*
+* t_vimpstenginepresencesubservice.cpp ::Copyright (c) 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:t_vimpstenginepresencesubservice.cpp
+*
+*/
+#include <EUnitMacros.h>
+#include <TEUnitAssertionInfo.h>
+#include <CEUnitAllocTestCaseDecorator.h>
+#include "t_vimpstenginepresencesubservice.h"
+
+#include <spentry.h>
+#include <spsettings.h>
+#include <spproperty.h>
+#include <avabilitytext.h>
+//#include "vimpstcustomcleanupapi.h"
+#include <cntdb.h>
+
+#include "s_ximpclient.h"
+#include "s_ximpcontext.h"
+#include "s_presencefeatures.h"
+#include "s_presentitygroups.h"
+#include "s_ximprequestcompleteevent.h"
+#include "s_ximppresensitypresenceevent.h"
+#include "s_ximppresencegrantrequestlistevent.h"
+#include "s_ximppresensitygroupcontentevent.h"
+#include "s_ximpcontextstateevent.h"
+#include "s_ximpidentity.h"
+#include "s_presenceinfo.h"
+#include "s_presencebuddyinfo2.h"
+#include "s_presenceblockinfo.h"
+
+//#include "s_presencebuddyinfolist.h"
+
+#include "s_ximppresensitypresenceevent.h"
+#include "s_presencesubserviceeventobserver.h"
+#include "cvimpstenginepresencesubservice.h"
+#include "cvimpstenginecchhandler.h"
+#include "cvimpstengineservicetablefetcher.h"
+#include "cvimpstenginesessioncntxtobserver.h"
+#include "cvimpstblockedlistmanager.h"
+
+//extern MyCchService* myService;
+extern TBool createService;
+extern TBool tryPresenceSubServiceAvailable;
+extern TBool tryAllSubserviceAvailable;
+
+extern TInt32 gMXIMPRequestCompleteEventStubInterfaceId;
+extern TInt32 gMXIMPContextStateEventStubInterfaceId;
+extern TInt32 gMXIMPPresentityPresenceEventStubInterfaceId;
+extern TInt32 gMXIMPPresenceGrantRequestListEventStubInterfaceId;
+extern TInt32 gMXIMPPresenceBlockInfoStubInterfaceId;
+extern TInt32 gMXIMPPresentityGroupEventStubInterfaceId;
+extern TBool gRequestCompleteEventResultCodeKerrNotSupported;
+extern TXIMPRequestId gMXIMPRequestCompleteEventStubRequestId;
+extern TBool gCreateXIMPIdentity;
+extern TInt gNewRequestsCountValue;
+extern TInt gCurrentRequestsCountValue;
+extern TBool gPersonPresenceInfoAvailable;
+extern TBool tryConnParamWithSuccess;
+extern TBool tryParamTomatchOwnId;
+//extern MPresenceInfoStub* gMPresenceInfoStub;
+// cache error
+extern TInt gAllBuddiesPresenceInServiceError;
+const TInt KTestServiceId = 5;
+
+//_LIT( KTestDb, "contacts.cdb" );
+
+//_LIT( KTestContactList, "TEST_CONTACT_LIST" );
+//_LIT( KTestUserId, "TEST_USER_ID" );
+//_LIT( KTestNickName, "TEST_NICKNAME" );
+_LIT( KTestContactId, "TEST_CONTACT_ID" );
+_LIT( KTestStatusText, "TEST_STATUS" );
+//_LIT( KTestPresenceUri, "test@test.com" );
+
+//availability status text
+_LIT(KBlockedState,"BlockedState");
+//_LIT(KInvisibleState,"InvisibleState");
+//_LIT(KAwayState,"AwayState");
+//_LIT(KOnPhoneState,"OnPhoneState");
+//_LIT(KDndState,"DoNotDisturb");
+//_LIT(KPendingRequestState,"PendingRequestState");
+
+//extern RPointerArray<MPresenceBuddyInfo> gPresenceArry;
+
+
+T_VimpstEnginePresenceSubService* T_VimpstEnginePresenceSubService::NewLC()
+ {
+ T_VimpstEnginePresenceSubService* self = new( ELeave ) T_VimpstEnginePresenceSubService;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+T_VimpstEnginePresenceSubService::~T_VimpstEnginePresenceSubService()
+ {
+ }
+
+void T_VimpstEnginePresenceSubService::ConstructL()
+ {
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+
+// FROM OBSERVER INTERFACES
+void T_VimpstEnginePresenceSubService::HandleServceConnectionEventL()
+ {
+ }
+
+
+void T_VimpstEnginePresenceSubService::SetupL()
+ {
+ createService = ETrue;
+ tryPresenceSubServiceAvailable = ETrue;
+
+ iTestServiceId = CreateSpEntryL( KTestServiceId );
+
+ iCchHandler = CVIMPSTEngineCchHandler::NewL( iTestServiceId, *iCchUiEventObserver);
+
+ iServiceTableFetcher = CVIMPSTEngineServiceTableFetcher::NewL();
+
+
+ iSessionCntxtObserver = CVIMPSTEngineSessionCntxtObserver::NewL( iTestServiceId );
+
+ delete iSessionCntxtObserver->iFeatures;
+ iSessionCntxtObserver->iFeatures = NULL;
+ delete iSessionCntxtObserver->iPresenceCtx;
+ iSessionCntxtObserver->iPresenceCtx = NULL;
+ delete iSessionCntxtObserver->iClient;
+ iSessionCntxtObserver->iClient = NULL;
+
+ iSessionCntxtObserver->iClient = MXIMPClientStub::NewClientL();
+ iSessionCntxtObserver->iPresenceCtx =
+ iSessionCntxtObserver->iClient->NewPresenceContextLC();
+ CleanupStack::Pop();// because of LC method
+ iSessionCntxtObserver->iFeatures = MyMPresenceFeatureStub::NewStubL( iSessionCntxtObserver->iPresenceCtx);
+
+
+ iPresenceSubService = CVIMPSTEnginePresenceSubService::NewL(
+ iTestServiceId,
+ *iCchHandler,
+ *iServiceTableFetcher,
+ *iSessionCntxtObserver,
+ *this );
+ }
+
+void T_VimpstEnginePresenceSubService::Teardown()
+ {
+ tryPresenceSubServiceAvailable = EFalse;
+ // tryAllSubserviceAvailable = EFalse;
+ createService = EFalse;
+
+ // gCreateXIMPIdentity = EFalse;
+ // gPersonPresenceInfoAvailable = EFalse;
+
+ if ( iSessionCntxtObserver )
+ {
+ delete iSessionCntxtObserver->iFeatures;
+ iSessionCntxtObserver->iFeatures = NULL;
+
+ delete iSessionCntxtObserver->iPresenceCtx;
+ iSessionCntxtObserver->iPresenceCtx = NULL;
+
+ delete iSessionCntxtObserver->iClient;
+ iSessionCntxtObserver->iClient = NULL;
+
+ delete iSessionCntxtObserver;
+ iSessionCntxtObserver = NULL;
+ }
+
+ if ( iPresenceSubService )
+ {
+ delete iPresenceSubService;
+ iPresenceSubService = NULL;
+ }
+ if ( iCchHandler )
+ {
+ delete iCchHandler;
+ iCchHandler = NULL;
+ }
+ if ( iServiceTableFetcher )
+ {
+ delete iServiceTableFetcher;
+ iServiceTableFetcher = NULL;
+ }
+
+ /* if ( gMPresenceInfoStub )
+ {
+ delete gMPresenceInfoStub;
+ gMPresenceInfoStub = NULL;
+ }*/
+ }
+
+TInt T_VimpstEnginePresenceSubService::CreateSpEntryL( TInt aServiceId )
+ {
+ CSPSettings* settings = CSPSettings::NewLC();
+ CSPEntry* entry = CSPEntry::NewLC();
+ entry->SetServiceId( aServiceId );
+ CSPEntry* testEntry = CSPEntry::NewLC();
+ TInt result = settings->FindEntryL( entry->GetServiceId(), *testEntry );
+ if( result == KErrNone )
+ {
+ settings->UpdateEntryL( *entry );
+ }
+ else
+ {
+ settings->AddEntryL( *entry );
+ }
+ TInt createdServiceId = entry->GetServiceId();
+ CleanupStack::PopAndDestroy( testEntry );
+ CleanupStack::PopAndDestroy( entry );
+ CleanupStack::PopAndDestroy( settings );
+ return createdServiceId;
+ }
+
+void T_VimpstEnginePresenceSubService::T_NewLL()
+ {
+ CVIMPSTEnginePresenceSubService* presenceSubService = NULL;
+ presenceSubService = CVIMPSTEnginePresenceSubService::NewL(
+ iTestServiceId,
+ *iCchHandler,
+ *iServiceTableFetcher,
+ *iSessionCntxtObserver,
+ *this);
+
+ EUNIT_ASSERT( presenceSubService != NULL );
+ delete presenceSubService;
+ presenceSubService = NULL;
+ }
+
+void T_VimpstEnginePresenceSubService::T_SubServiceStateL()
+ {
+ RArray<TVIMPSTEnums::TVIMPSTRegistrationState> states;
+ CleanupClosePushL( states );
+ states.AppendL( TVIMPSTEnums::ESVCENotRegistered );
+ states.AppendL( TVIMPSTEnums::ESVCERegistered );
+ states.AppendL( TVIMPSTEnums::ESVCENetworkConnecting );
+ states.AppendL( TVIMPSTEnums::ESVCEWaitingForNetwork );
+ states.AppendL( TVIMPSTEnums::ESVCENetworkDisConnecting );
+ states.AppendL( TVIMPSTEnums::ESVCEUpdatingContacts );
+ for ( TInt i( 0 ) ; i < states.Count() ; i++ )
+ {
+ iPresenceSubService->iServiceState = states[ i ];
+ EUNIT_ASSERT( states[ i ] == iPresenceSubService->SubServiceState() );
+ }
+
+ CleanupStack::PopAndDestroy( &states );
+ }
+
+void T_VimpstEnginePresenceSubService::T_TypeL()
+ {
+ EUNIT_ASSERT( TVIMPSTEnums::EPresence == iPresenceSubService->Type() );
+ }
+
+void T_VimpstEnginePresenceSubService::T_Enabled()
+ {
+ // failed
+ iPresenceSubService->iServiceState = TVIMPSTEnums::ESVCERegistered;
+ TBool enabled = iPresenceSubService->Enabled();
+ EUNIT_ASSERT( enabled == ETrue );
+
+ iPresenceSubService->iServiceState = TVIMPSTEnums::ESVCENotRegistered;
+ enabled = iPresenceSubService->Enabled();
+ EUNIT_ASSERT( enabled == EFalse );
+ }
+
+void T_VimpstEnginePresenceSubService::T_RetrieveSubscribedListLL()
+ {
+ TInt error( KErrNone );
+ gCreateXIMPIdentity = EFalse;
+ TRAP( error, iPresenceSubService->RetrieveSubscribedListL( ) );
+ EUNIT_ASSERT( KErrNoMemory == error );
+
+ gCreateXIMPIdentity = ETrue;
+ TRAP( error, iPresenceSubService->RetrieveSubscribedListL( ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_SubscribePresenceOfSingleContactL()
+ {
+ gCreateXIMPIdentity = ETrue;
+ TRAPD( err, iPresenceSubService->SubscribePresenceOfSingleContactL( KNullDesC ) );
+ EUNIT_ASSERT( err == KErrArgument );
+
+ gCreateXIMPIdentity = ETrue;
+ TRAP( err, iPresenceSubService->SubscribePresenceOfSingleContactL(KTestContactId ) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_UnSubscribePresenceOfSingleContactLL()
+ {
+ gCreateXIMPIdentity = ETrue;
+ TRAPD( err, iPresenceSubService->UnSubscribePresenceOfSingleContactL( KTestContactId ) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_DoHandlePresentityGroupContentEventLL()
+ {
+ TInt error( KErrNone );
+ MXIMPContext* context = NULL;
+ MPresentityGroupContentEventStub presentityGroupContentEvent;
+ TRAP( error, iPresenceSubService->DoHandlePresentityGroupContentEventL(
+ *context, presentityGroupContentEvent ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ iPresenceSubService->iServiceState = TVIMPSTEnums::ESVCEUpdatingContacts;
+ TRAP( error, iPresenceSubService->DoHandlePresentityGroupContentEventL(
+ *context, presentityGroupContentEvent ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_DoHandlePresenceBlockListEventL()
+ {
+ TInt error( KErrNone );
+ MXIMPContext* context = NULL;
+ MPresenceBlockInfoStub presenceblockinfo;
+
+ TRAP( error, iPresenceSubService->DoHandlePresenceBlockListEventL(
+ *context, presenceblockinfo ) );
+
+
+ EUNIT_ASSERT( KErrNone == error );
+
+ iPresenceSubService->iServiceState = TVIMPSTEnums::ESVCEUpdatingContacts;
+ TRAP( error, iPresenceSubService->DoHandlePresenceBlockListEventL(
+ *context, presenceblockinfo ) );
+
+
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_DoHandlePresenceGrantRequestListEventLL()
+ {
+ TInt error( KErrNone );
+ MXIMPContext* context = NULL;
+ MPresenceGrantRequestListEventStub presenceGrantRequestListEventStub;
+ ::gNewRequestsCountValue = 1;
+ ::gCurrentRequestsCountValue = 1;
+
+ TRAP( error, iPresenceSubService->DoHandlePresenceGrantRequestListEventL(
+ *context, presenceGrantRequestListEventStub ) );
+ ::gNewRequestsCountValue = KErrNone;
+ ::gCurrentRequestsCountValue = KErrNone;
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+
+void T_VimpstEnginePresenceSubService::T_ResolveServiceStateLL()
+ {
+ TInt error( KErrNotFound );
+ RArray<TCCHSubserviceState> subServiceStates;
+ CleanupClosePushL( subServiceStates );
+ subServiceStates.AppendL( ECCHUninitialized );
+ subServiceStates.AppendL( ECCHDisabled );
+ subServiceStates.AppendL( ECCHConnecting );
+ subServiceStates.AppendL( ECCHEnabled );
+ subServiceStates.AppendL( ECCHDisconnecting );
+ // Test with service error: KErrNone and all subservice states.
+ TInt serviceError( KErrNone );
+ for ( TInt i( 0 ) ; i < subServiceStates.Count() ; i++ )
+ {
+ TRAP( error, iPresenceSubService->ResolveServiceStateL(
+ subServiceStates[ i ], serviceError ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+ // Test with service error: KErrNotFound and all subservice states.
+ serviceError = KErrNotFound;
+ TRAP( error, iPresenceSubService->ResolveServiceStateL(
+ ECCHDisconnecting, serviceError ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ CleanupStack::PopAndDestroy( &subServiceStates );
+ }
+
+void T_VimpstEnginePresenceSubService::T_CchEventOccuredLL()
+ {
+ TInt error( KErrNotFound );
+ RArray<TCCHSubserviceState> subServiceStates;
+ CleanupClosePushL( subServiceStates );
+ subServiceStates.AppendL( ECCHUninitialized );
+ subServiceStates.AppendL( ECCHDisabled );
+ subServiceStates.AppendL( ECCHConnecting );
+ subServiceStates.AppendL( ECCHEnabled );
+ subServiceStates.AppendL( ECCHDisconnecting );
+ // Test with service error: KErrNone and all subservice states.
+ TInt serviceError( KErrNone );
+ for ( TInt i( 0 ) ; i < subServiceStates.Count() ; i++ )
+ {
+ TRAP( error, iPresenceSubService->CchEventOccuredL(
+ iTestServiceId, subServiceStates[ i ], serviceError ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ // Test with service error: KErrNotFound and all subservice states.
+ serviceError = KErrNotFound;
+ for ( TInt j( 0 ) ; j < subServiceStates.Count() ; j++ )
+ {
+ TRAP( error, iPresenceSubService->CchEventOccuredL(
+ iTestServiceId, subServiceStates[ j ], serviceError ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ CleanupStack::PopAndDestroy( &subServiceStates );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_DoHandleCchErrorLL()
+ {
+ RArray<TInt> serviceErrors;
+ CleanupClosePushL( serviceErrors );
+ serviceErrors.AppendL( KErrGeneral ); // Tests default case
+ serviceErrors.AppendL( KCCHErrorBandwidthInsufficient );
+ serviceErrors.AppendL( KCCHErrorInvalidIap );
+ serviceErrors.AppendL( KCCHErrorAuthenticationFailed );
+ serviceErrors.AppendL( KCCHErrorNetworkLost );
+ serviceErrors.AppendL( KCCHErrorLoginFailed );
+ serviceErrors.AppendL( KCCHErrorServiceNotResponding );
+ serviceErrors.AppendL( KCCHErrorInvalidSettings );
+ serviceErrors.AppendL( KCCHErrorAccessPointNotDefined );
+ for ( TInt i( 0 ) ; i < serviceErrors.Count() ; i++ )
+ {
+ TRAPD( err, iPresenceSubService->DoHandleCchErrorL(
+ serviceErrors[ i ] ) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+ CleanupStack::PopAndDestroy( &serviceErrors );
+ }
+
+
+void T_VimpstEnginePresenceSubService::T_PublishOwnPresenceLL()
+ {
+ RArray<TVIMPSTEnums::TOnlineStatus> onlineStatusArray;
+ CleanupClosePushL( onlineStatusArray );
+ onlineStatusArray.AppendL( TVIMPSTEnums::EUnknown );
+ // onlineStatusArray.AppendL( TVIMPSTEnums::EOffline );
+ // onlineStatusArray.AppendL( TVIMPSTEnums::EOnline );
+ // onlineStatusArray.AppendL( TVIMPSTEnums::EInvisible );
+ // onlineStatusArray.AppendL( TVIMPSTEnums::EAway );
+ // onlineStatusArray.AppendL( TVIMPSTEnums::EBusy );
+ for ( TInt i( 0 ); i < onlineStatusArray.Count() ; i++ )
+ {
+ TRAPD( err, iPresenceSubService->PublishOwnPresenceL(
+ onlineStatusArray[ i ], KTestStatusText ) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+ CleanupStack::PopAndDestroy( &onlineStatusArray );
+ }
+
+void T_VimpstEnginePresenceSubService::T_ConvertPresenceStatus()
+ {
+ EUNIT_ASSERT( NPresenceInfo::ENotAvailable ==
+ iPresenceSubService->ConvertPresenceStatus( TVIMPSTEnums::EOffline ) );
+
+ EUNIT_ASSERT( NPresenceInfo::EAvailable ==
+ iPresenceSubService->ConvertPresenceStatus( TVIMPSTEnums::EOnline ) );
+
+ EUNIT_ASSERT( NPresenceInfo::EHidden ==
+ iPresenceSubService->ConvertPresenceStatus( TVIMPSTEnums::EInvisible ) );
+
+ EUNIT_ASSERT( NPresenceInfo::EAway ==
+ iPresenceSubService->ConvertPresenceStatus( TVIMPSTEnums::EAway ) );
+
+ EUNIT_ASSERT( NPresenceInfo::EBusy ==
+ iPresenceSubService->ConvertPresenceStatus( TVIMPSTEnums::EBusy ) );
+
+ EUNIT_ASSERT( NPresenceInfo::ENotAvailable ==
+ iPresenceSubService->ConvertPresenceStatus( TVIMPSTEnums::EUnknown ) );
+ }
+/*
+void T_VimpstEnginePresenceSubService::T_FetchPresenceFormCacheL()
+ {
+ TInt error = iPresenceSubService->FetchPresenceFormCache();
+ EUNIT_ASSERT( KErrNone == error );
+
+ gAllBuddiesPresenceInServiceError = KErrBadHandle;
+ error = iPresenceSubService->FetchPresenceFormCache();
+ EUNIT_ASSERT( KErrBadHandle == error );
+
+ delete iPresenceSubService->iServiceName;
+ iPresenceSubService->iServiceName = NULL;
+ error = iPresenceSubService->FetchPresenceFormCache();
+ EUNIT_ASSERT( KErrArgument == error );
+
+ }
+*/
+void T_VimpstEnginePresenceSubService::T_HandlePresenceReadLL()
+ {
+ TInt error( KErrNone );
+ TInt testError( KErrGeneral );
+
+ tryConnParamWithSuccess = ETrue;
+
+ RPointerArray< MPresenceBuddyInfo2> buddyInfoList;
+ TRAP( error, iPresenceSubService->HandlePresenceReadL(
+ testError, buddyInfoList ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ CleanupClosePushL( buddyInfoList );
+ MPresenceBuddyInfo2Stub* buddyInfo1 = MPresenceBuddyInfo2Stub::NewStubL();
+ CleanupDeletePushL( buddyInfo1 );
+ MPresenceBuddyInfo2Stub* buddyInfo2 = MPresenceBuddyInfo2Stub::NewStubL();
+ CleanupDeletePushL( buddyInfo2 );
+ MPresenceBuddyInfo2Stub* buddyInfo3 = MPresenceBuddyInfo2Stub::NewStubL();
+ CleanupDeletePushL( buddyInfo3 );
+
+ buddyInfoList.AppendL( buddyInfo1 );
+ buddyInfoList.AppendL( buddyInfo2 );
+ buddyInfoList.AppendL( buddyInfo3 );
+ testError = KErrNone;
+ TRAP( error, iPresenceSubService->HandlePresenceReadL(
+ testError, buddyInfoList ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ CleanupStack::Pop(3); //buddyInfo1,2,3 just pop since ownership is tranferred
+
+ tryConnParamWithSuccess = EFalse;
+ tryParamTomatchOwnId = ETrue;
+
+ testError = KErrNone;
+ buddyInfo1 = MPresenceBuddyInfo2Stub::NewStubL();
+ CleanupDeletePushL( buddyInfo1 );
+ buddyInfoList.AppendL( buddyInfo1 );
+
+ TRAP( error, iPresenceSubService->HandlePresenceReadL(
+ testError, buddyInfoList ) ); // buddyInfo : ownership transferred
+ EUNIT_ASSERT( KErrNone == error );
+ CleanupStack::Pop(2); //buddyInfoList,buddyInfo1
+ }
+/*
+void T_VimpstEnginePresenceSubService::T_SubscribeToPresenceCacheLL()
+ {
+ TRAPD( err, iPresenceSubService->SubscribeToPresenceCacheL(
+ KTestContactId ) );
+ EUNIT_ASSERT( KErrNone == err );
+
+ TRAP( err, iPresenceSubService->SubscribeToPresenceCacheL(
+ KNullDesC ) );
+ EUNIT_ASSERT( KErrArgument == err );
+
+ }*/
+
+
+void T_VimpstEnginePresenceSubService::T_HandlePresenceNotificationLL()
+ {
+ tryConnParamWithSuccess = ETrue;
+ TInt error( KErrNone );
+ MPresenceBuddyInfo2Stub* buddyInfo = NULL;
+ TInt testError( KErrGeneral );
+ TRAP( error, iPresenceSubService->HandlePresenceNotificationL(
+ testError, buddyInfo ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ testError = KErrNone;
+ buddyInfo = MPresenceBuddyInfo2Stub::NewStubL();
+ TRAP( error, iPresenceSubService->HandlePresenceNotificationL(
+ testError, buddyInfo ) ); // buddyInfo : ownership transferred
+ EUNIT_ASSERT( KErrNone == error );
+ tryConnParamWithSuccess = EFalse;
+ tryParamTomatchOwnId = ETrue;
+
+ testError = KErrNone;
+ buddyInfo = MPresenceBuddyInfo2Stub::NewStubL();
+ TRAP( error, iPresenceSubService->HandlePresenceNotificationL(
+ testError, buddyInfo ) ); // buddyInfo : ownership transferred
+ EUNIT_ASSERT( KErrNone == error );
+
+ }
+
+void T_VimpstEnginePresenceSubService::T_UnSubscribeForAuthorizationLL()
+ {
+ TRAPD( err, iPresenceSubService->UnsubscribeListsL() );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_SubscribeForAuthorizationLL()
+ {
+ TRAPD( err, iPresenceSubService->SubscribeForAuthorizationL() );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_SendPresenceGrantPresentityLL()
+ {
+ gCreateXIMPIdentity = EFalse;
+ TInt error( KErrNone );
+ TRAP( error, iPresenceSubService->SendPresenceGrantPresentityL(
+ KTestContactId, EFalse ) );
+ EUNIT_ASSERT( KErrNoMemory == error );
+
+ gCreateXIMPIdentity = ETrue;
+ TRAP( error, iPresenceSubService->SendPresenceGrantPresentityL(
+ KNullDesC, EFalse ) );
+ EUNIT_ASSERT( KErrArgument == error );
+
+ TRAP( error, iPresenceSubService->SendPresenceGrantPresentityL(
+ KTestContactId, EFalse ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ TRAP( error, iPresenceSubService->SendPresenceGrantPresentityL(
+ KTestContactId, ETrue ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_HandleSessionContextEventLL()
+ {
+ // failed
+ gCreateXIMPIdentity = ETrue;
+ MXIMPContext* context = NULL;
+ //Test with MXIMPRequestCompleteEvent: HandleXimpRequestCompleteL
+ MXIMPRequestCompleteEventStub requestCompleteEvent;
+ ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+ TInt error( KErrNone );
+
+ RArray<TXimpOperation> ximpOperation;
+ CleanupClosePushL( ximpOperation );
+ ximpOperation.AppendL( EVIMPSTXimpOperationNoOperation );
+ ximpOperation.AppendL( EVIMPSTXimpOperationBind );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnBind );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetSubscribedList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetBlockList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetPresenceGrantList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetWatcherList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubcribeWatcherList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubcribeGrantRequestList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubcribeGrantRequestList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationWithdrawPresenceGrant );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGrantPresenceForPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationCancelPresenceBlockFromPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationBlockPresenceForPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationPublisOwnPresence );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubscribe );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubscribe );
+ ximpOperation.AppendL( EVIMPSTXimpOperationAddContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationDeleteContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSearchContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubscribeSearchKeys );
+
+ // Test with error code: KErrNone and all operations.
+ ::gRequestCompleteEventResultCodeKerrNotSupported = ETrue;
+ for ( TInt i( 0 ) ; i < ximpOperation.Count() ; i++ )
+ {
+ TRAP( error, iPresenceSubService->HandleSessionContextEventL(
+ *context, requestCompleteEvent, ximpOperation[ i ] ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+ ::gRequestCompleteEventResultCodeKerrNotSupported = EFalse;
+ for ( TInt j( 0 ) ; j < ximpOperation.Count() ; j++ )
+ {
+ TRAP( error, iPresenceSubService->HandleSessionContextEventL(
+ *context, requestCompleteEvent, ximpOperation[ j ] ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ //Test with MXIMPContextStateEvent
+ MXIMPContextStateEventStub contextStateEvent;
+ ::gMXIMPContextStateEventStubInterfaceId = MXIMPContextStateEvent::KInterfaceId;
+ TRAP( error, iPresenceSubService->HandleSessionContextEventL(
+ *context, contextStateEvent, ximpOperation[ 0 ] ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ //Test with MPresentityGroupContentEvent: DoHandlePresentityGroupContentEventL( aContext, aEvent )
+ MPresentityGroupContentEventStub presentityGroupContentEvent;
+ ::gMXIMPPresentityGroupEventStubInterfaceId =
+ MPresentityGroupContentEvent::KInterfaceId;
+ TRAP( error, iPresenceSubService->HandleSessionContextEventL(
+ *context, presentityGroupContentEvent, ximpOperation[ 0 ] ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ //Test with MPresenceGrantRequestListEvent: DoHandlePresenceGrantRequestListEventL( aContext, aEvent )
+ MPresenceGrantRequestListEventStub presenceGrantRequestListEventStub;
+ ::gMXIMPPresenceGrantRequestListEventStubInterfaceId =
+ MPresenceGrantRequestListEvent::KInterfaceId;
+ TRAP( error, iPresenceSubService->HandleSessionContextEventL(
+ *context, presenceGrantRequestListEventStub, ximpOperation[ 0 ] ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ CleanupStack::PopAndDestroy( &ximpOperation );
+ }
+
+void T_VimpstEnginePresenceSubService::T_HandleListEventCompleteLL()
+ {
+ // failed
+ gCreateXIMPIdentity = ETrue;
+ TInt error( KErrNone );
+ RArray<TXimpOperation> ximpOperation;
+ CleanupClosePushL( ximpOperation );
+
+ ximpOperation.AppendL( EVIMPSTXimpOperationNoOperation );
+ ximpOperation.AppendL( EVIMPSTXimpOperationBind );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnBind );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetSubscribedList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetBlockList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetPresenceGrantList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetWatcherList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubcribeWatcherList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubcribeGrantRequestList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubcribeGrantRequestList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationWithdrawPresenceGrant );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGrantPresenceForPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationCancelPresenceBlockFromPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationBlockPresenceForPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationPublisOwnPresence );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubscribe );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubscribe );
+ ximpOperation.AppendL( EVIMPSTXimpOperationAddContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationDeleteContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSearchContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubscribeSearchKeys );
+
+ MXIMPRequestCompleteEventStub requestCompleteEvent;
+ // Test with error code: KErrNone and all operations.
+ TInt errorCode( KErrNone );
+ for ( TInt i( 0 ) ; i < ximpOperation.Count() ; i++ )
+ {
+ TRAP( error, iPresenceSubService->HandleListEventCompleteL(
+ ximpOperation[ i ], errorCode, requestCompleteEvent ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ // Test with random error code
+ errorCode = KErrGeneral;
+ for ( TInt j( 0 ) ; j < ximpOperation.Count() ; j++ )
+ {
+ TRAP( error, iPresenceSubService->HandleListEventCompleteL(
+ ximpOperation[ j ], errorCode, requestCompleteEvent ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ CleanupStack::PopAndDestroy( &ximpOperation );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_HandleXimpRequestCompleteLL()
+ {
+ // failed
+ gCreateXIMPIdentity = ETrue;
+ //Test with MXIMPRequestCompleteEvent: HandleXimpRequestCompleteL
+ MXIMPRequestCompleteEventStub requestCompleteEvent;
+ ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+ TInt error( KErrNone );
+ RArray<TXimpOperation> ximpOperation;
+ CleanupClosePushL( ximpOperation );
+
+ ximpOperation.AppendL( EVIMPSTXimpOperationNoOperation );
+ ximpOperation.AppendL( EVIMPSTXimpOperationBind );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnBind );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetSubscribedList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetBlockList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetPresenceGrantList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGetWatcherList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubcribeWatcherList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubcribeGrantRequestList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubcribeGrantRequestList );
+ ximpOperation.AppendL( EVIMPSTXimpOperationWithdrawPresenceGrant );
+ ximpOperation.AppendL( EVIMPSTXimpOperationGrantPresenceForPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationCancelPresenceBlockFromPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationBlockPresenceForPresentity );
+ ximpOperation.AppendL( EVIMPSTXimpOperationPublisOwnPresence );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubscribe );
+ ximpOperation.AppendL( EVIMPSTXimpOperationUnsubscribe );
+ ximpOperation.AppendL( EVIMPSTXimpOperationAddContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationDeleteContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSearchContact );
+ ximpOperation.AppendL( EVIMPSTXimpOperationSubscribeSearchKeys );
+
+ // Test with error code: KErrNone and all operations.
+ ::gRequestCompleteEventResultCodeKerrNotSupported = ETrue;
+ // Test with KErrNone
+ TInt testError( KErrNone );
+ for ( TInt i( 0 ) ; i < ximpOperation.Count() ; i++ )
+ {
+ TRAP( error, iPresenceSubService->HandleXimpRequestCompleteL(
+ ximpOperation[ i ], testError, requestCompleteEvent ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+ // Test with random error code
+ testError = KErrGeneral;
+ for ( TInt j( 0 ) ; j < ximpOperation.Count() ; j++ )
+ {
+ TRAP( error, iPresenceSubService->HandleXimpRequestCompleteL(
+ ximpOperation[ j ], testError, requestCompleteEvent ) );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ CleanupStack::PopAndDestroy( &ximpOperation );
+ EUNIT_ASSERT( KErrNone == error );
+ }
+
+void T_VimpstEnginePresenceSubService::T_StoreToVirtualStoreLL()
+ {
+ MPresentityGroupContentEventStub presentityGroupContentEvent;
+ TRAPD( err, iPresenceSubService->StoreToVirtualStoreL( presentityGroupContentEvent ) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_IsChangeOwnStatusSupportedL()
+ {
+ iPresenceSubService->iChangeStatusSupported = EFalse;
+ TBool supported =
+ iPresenceSubService->IsChangeOwnStatusSupported();
+ EUNIT_ASSERT( EFalse == supported );
+
+ iPresenceSubService->iChangeStatusSupported = ETrue;
+ supported =
+ iPresenceSubService->IsChangeOwnStatusSupported();
+ EUNIT_ASSERT( ETrue == supported );
+ }
+
+void T_VimpstEnginePresenceSubService::T_IsStatusMsgSupportedL()
+ {
+ iPresenceSubService->iChangeStatusMsgSupported = EFalse;
+ TBool supported =
+ iPresenceSubService->IsStatusMsgSupported();
+ EUNIT_ASSERT( EFalse == supported );
+
+ iPresenceSubService->iChangeStatusMsgSupported = ETrue;
+ supported =
+ iPresenceSubService->IsStatusMsgSupported();
+ EUNIT_ASSERT( ETrue == supported );
+ }
+
+void T_VimpstEnginePresenceSubService::T_ConvertXimpToClientPresenceStatusL()
+ {
+ RArray<MPresenceBuddyInfo2::TAvailabilityValues> presenceInfo;
+ // CleanupStack::PushL(&presenceInfo);
+ CleanupClosePushL( presenceInfo );
+ presenceInfo.AppendL( MPresenceBuddyInfo2::EUnknownAvailability );
+ presenceInfo.AppendL( MPresenceBuddyInfo2::ENotAvailable );
+ presenceInfo.AppendL( MPresenceBuddyInfo2::EBusy );
+ presenceInfo.AppendL( MPresenceBuddyInfo2::EAvailable );
+
+ RPointerArray<HBufC> availabilityTextArray;
+ // CleanupStack::PushL(&availabilityTextArray);
+ CleanupClosePushL( availabilityTextArray );
+
+ availabilityTextArray.Append(KBlockedState().AllocL());
+ availabilityTextArray.Append(KInvisibleState().AllocL());
+ availabilityTextArray.Append(KAwayState().AllocL());
+ availabilityTextArray.Append(KOnPhoneState().AllocL());
+ availabilityTextArray.Append(KDndState().AllocL());
+
+ TInt error( KErrNone );
+ for ( TInt i( 0 ) ; i < presenceInfo.Count() ; i++ )
+ {
+ if(MPresenceBuddyInfo2::EBusy == presenceInfo[i])
+ {
+ for(TInt j = 0; j < availabilityTextArray.Count(); j++)
+ {
+ TRAP( error, iPresenceSubService->ConvertPresenceCacheEnums(
+ presenceInfo[ i ], availabilityTextArray[i]->Des()));
+ }
+ }
+ else
+ {
+ TRAP( error, iPresenceSubService->ConvertPresenceCacheEnums(
+ presenceInfo[ i ], KNullDesC()));
+ }
+
+ EUNIT_ASSERT( KErrNone == error );
+ }
+ //CleanupStack::PopAndDestroy(&availabilityTextArray);
+ //CleanupStack::PopAndDestroy( &presenceInfo );
+ CleanupStack::PopAndDestroy();
+ CleanupStack::PopAndDestroy();
+ EUNIT_ASSERT( KErrNone == error );
+ }
+/*
+void T_VimpstEnginePresenceSubService::T_RegisterPresenceEventObserverL()
+ {
+ MyPresenceSubServiceEventObserverStub* observerNull = NULL ;
+ TRAPD( error, iPresenceSubService->RegisterPresenceEventObserverL( observerNull ) );
+ EUNIT_ASSERT( KErrArgument == error );
+
+ MyPresenceSubServiceEventObserverStub* observer = MyPresenceSubServiceEventObserverStub::NewL() ;
+ TRAP( error, iPresenceSubService->RegisterPresenceEventObserverL( observer ) );
+ EUNIT_ASSERT( KErrNone == error );
+ EUNIT_ASSERT( iPresenceSubService->iObserverArray.Count() == 1 );
+ // Try to register same observer again
+ iPresenceSubService->RegisterPresenceEventObserverL( observer );
+ EUNIT_ASSERT( iPresenceSubService->iObserverArray.Count() == 1 );
+ delete observer;
+ }
+*/
+/*
+void T_VimpstEnginePresenceSubService::T_UnRegisterPresenceEventObserverL()
+ {
+ MyPresenceSubServiceEventObserverStub* observerNull = NULL ;
+ TRAPD( error, iPresenceSubService->RegisterPresenceEventObserverL( observerNull ) );
+ EUNIT_ASSERT( KErrArgument == error );
+
+ MyPresenceSubServiceEventObserverStub* observer = MyPresenceSubServiceEventObserverStub::NewL() ;
+ TRAP( error, iPresenceSubService->RegisterPresenceEventObserverL( observer ) );
+ EUNIT_ASSERT( KErrNone == error );
+ TRAP(error, iPresenceSubService->RegisterPresenceEventObserverL( observer ) );
+ EUNIT_ASSERT( KErrNone == error );
+
+ iPresenceSubService->UnRegisterPresenceEventObserver( observer );
+ EUNIT_ASSERT( iPresenceSubService->iObserverArray.Count() == 0 );
+
+ // Try to unregister same observer again
+ iPresenceSubService->UnRegisterPresenceEventObserver ( observer );
+ EUNIT_ASSERT( iPresenceSubService->iObserverArray.Count() == 0 );
+ delete observer;
+ }
+*/
+void T_VimpstEnginePresenceSubService::T_AddToBlockListL()
+ {
+ _LIT(KDummyUserID,"dummy@domian.com");
+ TRAPD( err, iPresenceSubService->AddToBlockListL(KDummyUserID) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_AddToBlockListL_NoUserid()
+ {
+ TRAPD( err, iPresenceSubService->AddToBlockListL(KNullDesC()) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_AddToBlockListL_NoDomainNameL()
+ {
+ _LIT(KDummyUserID,"dummy");
+ TRAPD( err, iPresenceSubService->AddToBlockListL(KDummyUserID) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_RemoveFromBlockListL()
+ {
+ _LIT(KDummyUserID,"dummy@domian.com");
+ TRAPD( err, iPresenceSubService->RemoveFromBlockListL(KDummyUserID) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_RemoveFromBlockListMgr()
+ {
+ _LIT(KID1,"id1@xyz.com");
+ _LIT(KID2,"id2@xyz.com");
+ _LIT(KID3,"id3@xyz.com");
+ _LIT(KID4,"id4@xyz.com");
+ iPresenceSubService->ResetBlockedListManagerL();
+ if(iPresenceSubService->iBlockedListMgr)
+ {
+ iPresenceSubService->iBlockedListMgr->AddToBlockedListL(KID1);
+ iPresenceSubService->iBlockedListMgr->AddToBlockedListL(KID2);
+ iPresenceSubService->iBlockedListMgr->AddToBlockedListL(KID3);
+ iPresenceSubService->iBlockedListMgr->AddToBlockedListL(KID4);
+ EUNIT_ASSERT( 4 == iPresenceSubService->iBlockedListMgr->iBlockedList.Count() );
+ iPresenceSubService->iBlockedListMgr->RemoveFromBlockListL(KID2);
+ EUNIT_ASSERT( 3 == iPresenceSubService->iBlockedListMgr->iBlockedList.Count() );
+ iPresenceSubService->iBlockedListMgr->RemoveFromBlockListL(KID1);
+ EUNIT_ASSERT( 2 == iPresenceSubService->iBlockedListMgr->iBlockedList.Count() );
+ iPresenceSubService->iBlockedListMgr->RemoveFromBlockListL(KID3);
+ EUNIT_ASSERT( 1 == iPresenceSubService->iBlockedListMgr->iBlockedList.Count() );
+ iPresenceSubService->iBlockedListMgr->RemoveFromBlockListL(KID4);
+ EUNIT_ASSERT( 0 == iPresenceSubService->iBlockedListMgr->iBlockedList.Count() );
+ iPresenceSubService->iBlockedListMgr->RemoveFromBlockListL(KID4);
+ EUNIT_ASSERT( 0 == iPresenceSubService->iBlockedListMgr->iBlockedList.Count() );
+ }
+ }
+
+void T_VimpstEnginePresenceSubService::T_FetchBlockedListFromServer()
+ {
+ iPresenceSubService->FetchBlockedListFromServerL(NULL);
+ EUNIT_ASSERT(iPresenceSubService->iBlockListFetchReqPending == ETrue );
+ EUNIT_ASSERT(iPresenceSubService->iBlockedListObserver == NULL)
+ }
+
+void T_VimpstEnginePresenceSubService::T_RemoveFromBlockList_NoUseridL()
+ {
+ TRAPD( err, iPresenceSubService->RemoveFromBlockListL(KNullDesC()) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_RemoveFromBlockList_NoDomainNameL()
+ {
+ _LIT(KDummyUserID,"dummy");
+ TRAPD( err, iPresenceSubService->RemoveFromBlockListL(KDummyUserID) );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEnginePresenceSubService::T_GetKeyFiledsAndValuesStatusPendingL()
+ {
+ TVIMPSTEnums::TOnlineStatus status = TVIMPSTEnums::EUnknown;
+ MPresenceBuddyInfo2Stub* buddyInfo1 = MPresenceBuddyInfo2Stub::NewStubL();
+ buddyInfo1->SetAnyFieldL(KExtensionKey,KPendingRequestExtensionValue);
+ //set the setanyfield to pending and get that status
+ TRAPD( error, iPresenceSubService->GetKeyFieldsAndValuesL(*buddyInfo1,status) );
+ EUNIT_ASSERT(TVIMPSTEnums::EPending == status ) ;
+
+ }
+
+void T_VimpstEnginePresenceSubService::T_GetKeyFiledsAndValuesStatusBlockedL()
+ {
+ TVIMPSTEnums::TOnlineStatus status = TVIMPSTEnums::EUnknown;
+ MPresenceBuddyInfo2Stub* buddyInfo1 = MPresenceBuddyInfo2Stub::NewStubL();
+ buddyInfo1->SetAnyFieldL(KExtensionKey,KBlockedExtensionValue);
+ //set the setanyfield to pending and get that status
+ TRAPD( error, iPresenceSubService->GetKeyFieldsAndValuesL(*buddyInfo1,status) );
+ EUNIT_ASSERT(TVIMPSTEnums::EBlocked == status ) ;
+
+ }
+
+void T_VimpstEnginePresenceSubService::T_GetKeyFiledsAndValuesStatusUnknownL()
+ {
+ TVIMPSTEnums::TOnlineStatus status = TVIMPSTEnums::EUnknown;
+ MPresenceBuddyInfo2Stub* buddyInfo1 = MPresenceBuddyInfo2Stub::NewStubL();
+ //set the setanyfield to pending and get that status
+ TRAPD( error, iPresenceSubService->GetKeyFieldsAndValuesL(*buddyInfo1,status ) );
+ EUNIT_ASSERT(TVIMPSTEnums::EUnknown == status ) ;
+
+ }
+EUNIT_BEGIN_TEST_TABLE( T_VimpstEnginePresenceSubService, "T_VimpstEnginePresenceSubService", "" )
+
+EUNIT_TEST(
+ "NewL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "NewL",
+ "FUNCTIONALITY",
+ SetupL, T_NewLL, Teardown)
+
+EUNIT_TEST(
+ "SubServiceStateL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "SubServiceStateL",
+ "FUNCTIONALITY",
+ SetupL, T_SubServiceStateL, Teardown)
+
+EUNIT_TEST(
+ "Type - test ",
+ "T_VimpstEnginePresenceSubService",
+ "Type",
+ "FUNCTIONALITY",
+ SetupL, T_TypeL, Teardown)
+
+EUNIT_TEST(
+ "Enabled - test ",
+ "T_VimpstEnginePresenceSubService",
+ "Enabled",
+ "FUNCTIONALITY",
+ SetupL, T_Enabled, Teardown)
+
+EUNIT_TEST(
+ "RetrieveSubscribedListL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "RetrieveSubscribedListL",
+ "FUNCTIONALITY",
+ SetupL, T_RetrieveSubscribedListLL, Teardown)
+
+EUNIT_TEST(
+ "SubscribePresenceOfSingleContact - test ",
+ "T_VimpstEnginePresenceSubService",
+ "SubscribePresenceOfSingleContact",
+ "FUNCTIONALITY",
+ SetupL, T_SubscribePresenceOfSingleContactL, Teardown)
+
+EUNIT_TEST(
+ "UnSubscribePresenceOfSingleContactL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "UnSubscribePresenceOfSingleContactL",
+ "FUNCTIONALITY",
+ SetupL, T_UnSubscribePresenceOfSingleContactLL, Teardown)
+
+
+EUNIT_TEST(
+ "DoHandlePresentityGroupContentEventL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "DoHandlePresentityGroupContentEventL",
+ "FUNCTIONALITY",
+ SetupL, T_DoHandlePresentityGroupContentEventLL, Teardown)
+
+EUNIT_TEST(
+ "DoHandlePresenceGrantRequestListEventL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "DoHandlePresenceGrantRequestListEventL",
+ "FUNCTIONALITY",
+ SetupL, T_DoHandlePresenceGrantRequestListEventLL, Teardown)
+
+EUNIT_TEST(
+ "T_DoHandlePresenceBlockListEventL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "T_DoHandlePresenceBlockListEventL",
+ "FUNCTIONALITY",
+ SetupL, T_DoHandlePresenceBlockListEventL, Teardown)
+
+
+EUNIT_TEST(
+ "ResolveServiceStateL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "ResolveServiceStateL",
+ "FUNCTIONALITY",
+ SetupL, T_ResolveServiceStateLL, Teardown)
+
+EUNIT_TEST(
+ "CchEventOccuredL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "CchEventOccuredL",
+ "FUNCTIONALITY",
+ SetupL, T_CchEventOccuredLL, Teardown)
+
+EUNIT_TEST(
+ "DoHandleCchErrorL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "DoHandleCchErrorL",
+ "FUNCTIONALITY",
+ SetupL, T_DoHandleCchErrorLL, Teardown)
+
+EUNIT_TEST(
+ "PublishOwnPresenceL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "PublishOwnPresenceL",
+ "FUNCTIONALITY",
+ SetupL, T_PublishOwnPresenceLL, Teardown)
+
+EUNIT_TEST(
+ "ConvertPresenceStatus - test ",
+ "T_VimpstEnginePresenceSubService",
+ "ConvertPresenceStatus",
+ "FUNCTIONALITY",
+ SetupL, T_ConvertPresenceStatus, Teardown)
+/*
+EUNIT_TEST(
+ "FetchPresenceFormCache - test ",
+ "T_VimpstEnginePresenceSubService",
+ "FetchPresenceFormCache",
+ "FUNCTIONALITY",
+ SetupL, T_FetchPresenceFormCacheL, Teardown)
+ */
+EUNIT_TEST(
+ "HandlePresenceReadL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "HandlePresenceReadL",
+ "FUNCTIONALITY",
+ SetupL, T_HandlePresenceReadLL, Teardown)
+/*
+EUNIT_TEST(
+ "SubscribeToPresenceCacheL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "SubscribeToPresenceCacheL",
+ "FUNCTIONALITY",
+ SetupL, T_SubscribeToPresenceCacheLL, Teardown)
+ */
+EUNIT_TEST(
+ "HandlePresenceNotificationL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "HandlePresenceNotificationL",
+ "FUNCTIONALITY",
+ SetupL, T_HandlePresenceNotificationLL, Teardown)
+
+EUNIT_TEST(
+ "UnSubscribeForAuthorizationL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "UnSubscribeForAuthorizationL",
+ "FUNCTIONALITY",
+ SetupL, T_UnSubscribeForAuthorizationLL, Teardown)
+
+EUNIT_TEST(
+ "SubscribeForAuthorizationL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "SubscribeForAuthorizationL",
+ "FUNCTIONALITY",
+ SetupL, T_SubscribeForAuthorizationLL, Teardown)
+
+EUNIT_TEST(
+ "SendPresenceGrantPresentityL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "SendPresenceGrantPresentityL",
+ "FUNCTIONALITY",
+ SetupL, T_SendPresenceGrantPresentityLL, Teardown)
+
+EUNIT_TEST(
+ "HandleSessionContextEventL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "HandleSessionContextEventL",
+ "FUNCTIONALITY",
+ SetupL, T_HandleSessionContextEventLL, Teardown)
+
+EUNIT_TEST(
+ "HandleListEventCompleteL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "HandleListEventCompleteL",
+ "FUNCTIONALITY",
+ SetupL, T_HandleListEventCompleteLL, Teardown)
+
+EUNIT_TEST(
+ "HandleXimpRequestCompleteL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "HandleXimpRequestCompleteL",
+ "FUNCTIONALITY",
+ SetupL, T_HandleXimpRequestCompleteLL, Teardown)
+
+EUNIT_TEST(
+ "StoreToVirtualStoreL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "StoreToVirtualStoreL",
+ "FUNCTIONALITY",
+ SetupL, T_StoreToVirtualStoreLL, Teardown)
+
+
+EUNIT_TEST(
+ "IsChangeOwnStatusSupported - test ",
+ "T_VimpstEnginePresenceSubService",
+ "IsChangeOwnStatusSupported",
+ "FUNCTIONALITY",
+ SetupL, T_IsChangeOwnStatusSupportedL, Teardown)
+
+EUNIT_TEST(
+ "IsStatusMsgSupported - test ",
+ "T_VimpstEnginePresenceSubService",
+ "IsStatusMsgSupported",
+ "FUNCTIONALITY",
+ SetupL, T_IsStatusMsgSupportedL, Teardown)
+
+
+
+EUNIT_TEST(
+ "ConvertXimpToClientPresenceStatus - test ",
+ "T_VimpstEnginePresenceSubService",
+ "ConvertXimpToClientPresenceStatus",
+ "FUNCTIONALITY",
+ SetupL, T_ConvertXimpToClientPresenceStatusL, Teardown)
+/*
+EUNIT_TEST(
+ "RegisterPresenceEventObserver - test ",
+ "T_VimpstEnginePresenceSubService",
+ "RegisterPresenceEventObserver",
+ "FUNCTIONALITY",
+ SetupL, T_RegisterPresenceEventObserverL, Teardown)
+
+EUNIT_TEST(
+ "UnRegisterPresenceEventObserver - test ",
+ "T_VimpstEnginePresenceSubService",
+ "UnRegisterPresenceEventObserver",
+ "FUNCTIONALITY",
+ SetupL, T_UnRegisterPresenceEventObserverL, Teardown)
+*/
+EUNIT_TEST(
+ "AddToBlockListL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "AddToBlockListL",
+ "FUNCTIONALITY",
+ SetupL, T_AddToBlockListL, Teardown)
+
+EUNIT_TEST(
+ "AddToBlockListL_nouserid - test ",
+ "T_VimpstEnginePresenceSubService",
+ "AddToBlockListL_nouserid",
+ "FUNCTIONALITY",
+ SetupL, T_AddToBlockListL_NoUserid, Teardown)
+EUNIT_TEST(
+ "AddToBlockListL_nodomainname - test ",
+ "T_VimpstEnginePresenceSubService",
+ "AddToBlockListL_nodomainname",
+ "FUNCTIONALITY",
+ SetupL, T_AddToBlockListL_NoDomainNameL, Teardown)
+EUNIT_TEST(
+ "RemoveFromBlockListL - test ",
+ "T_VimpstEnginePresenceSubService",
+ "RemoveFromBlockListL",
+ "FUNCTIONALITY",
+ SetupL, T_RemoveFromBlockListL, Teardown)
+
+EUNIT_TEST(
+ "RemoveFromBlockListL_nouserid - test ",
+ "T_VimpstEnginePresenceSubService",
+ "RemoveFromBlockListL_nouserid",
+ "FUNCTIONALITY",
+ SetupL, T_RemoveFromBlockList_NoUseridL, Teardown)
+
+EUNIT_TEST(
+ "T_RemoveFromBlockListMgr - test ",
+ "T_RemoveFromBlockListMgr",
+ "T_RemoveFromBlockListMgr",
+ "FUNCTIONALITY",
+ SetupL, T_RemoveFromBlockListMgr, Teardown)
+
+EUNIT_TEST(
+ "T_GetKeyFiledsAndValuesStatusPendingL - test ",
+ "T_GetKeyFiledsAndValuesStatusPendingL",
+ "T_GetKeyFiledsAndValuesStatusPendingL",
+ "FUNCTIONALITY",
+ SetupL, T_GetKeyFiledsAndValuesStatusPendingL, Teardown)
+
+EUNIT_TEST(
+ "T_GetKeyFiledsAndValuesStatusBlockedL - test ",
+ "T_GetKeyFiledsAndValuesStatusBlockedL",
+ "T_GetKeyFiledsAndValuesStatusBlockedL",
+ "FUNCTIONALITY",
+ SetupL, T_GetKeyFiledsAndValuesStatusBlockedL, Teardown)
+
+EUNIT_TEST(
+ "T_GetKeyFiledsAndValuesStatusUnknownL - test ",
+ "T_GetKeyFiledsAndValuesStatusUnknownL",
+ "T_GetKeyFiledsAndValuesStatusUnknownL",
+ "FUNCTIONALITY",
+ SetupL, T_GetKeyFiledsAndValuesStatusUnknownL, Teardown)
+
+EUNIT_TEST(
+ "T_FetchBlockedListFromServer - test ",
+ "T_FetchBlockedListFromServer",
+ "T_FetchBlockedListFromServer",
+ "FUNCTIONALITY",
+ SetupL, T_FetchBlockedListFromServer, Teardown)
+
+
+EUNIT_END_TESTCASE_TABLE
+
+// END OF FILE