--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstengine/tsrc/vimpstengine_ut/src/t_vimpstenginesessioncntxtobserver.cpp Wed Sep 01 12:33:36 2010 +0100
@@ -0,0 +1,559 @@
+/*
+* t_vimpstenginesessioncntxtobserver.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_vimpstenginesessioncntxtobserver.cpp
+*
+*/
+#include <EUnitMacros.h>
+#include <TEUnitAssertionInfo.h>
+#include <CEUnitAllocTestCaseDecorator.h>
+#include "t_vimpstenginesessioncntxtobserver.h"
+
+#include <spentry.h>
+#include <spsettings.h>
+#include <spproperty.h>
+
+#include "cvimpstenginesessioncntxtobserver.h"
+
+#include "s_ximpclient.h"
+#include "s_ximpcontext.h"
+#include "s_ximpidentity.h"
+#include "s_presencefeatures.h"
+#include "s_presentitygroups.h"
+#include "s_ximprequestcompleteevent.h"
+#include "s_ximppresensitypresenceevent.h"
+#include "s_ximppresensitygroupcontentevent.h"
+#include "s_ximpcontextstateevent.h"
+#include "s_ximppresencegrantrequestlistevent.h"
+#include "s_ximpsearchevent.h"
+#include "s_ximpsearchkeysevent.h"
+#include "s_presenceblockinfo.h"
+
+
+#include "mvimpstenginesessioncntxtobserver.h"
+
+extern TInt32 gMXIMPRequestCompleteEventStubInterfaceId;
+extern TXIMPRequestId gMXIMPRequestCompleteEventStubRequestId;
+
+extern TInt gUnBindingLeaves;
+
+const TInt KTestServiceId = 5;
+
+
+class dummy_observer: public MVIMPSTEngineSessionCntxtObserver
+ {
+ void HandleSessionContextEventL( const MXIMPContext& /*aContext*/,
+ const MXIMPBase& /*aEvent*/,
+ TXimpOperation /*aXimpOperation = EVIMPSTXimpOperationNoOperation*/
+ )
+ {
+
+ }
+ };
+
+T_VimpstEngineSessionCntxtObserver* T_VimpstEngineSessionCntxtObserver::NewLC()
+ {
+ T_VimpstEngineSessionCntxtObserver* self =
+ new( ELeave ) T_VimpstEngineSessionCntxtObserver;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+T_VimpstEngineSessionCntxtObserver::~T_VimpstEngineSessionCntxtObserver()
+ {
+ }
+
+void T_VimpstEngineSessionCntxtObserver::ConstructL()
+ {
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+void T_VimpstEngineSessionCntxtObserver::Setup1L()
+ {
+ iTestServiceId = CreateSpEntryL( KTestServiceId );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::Setup2L()
+ {
+ iTestServiceId = CreateSpEntryL( KTestServiceId );
+ 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();;
+
+ //Create new sink to receive ximp context events
+ iSessionCntxtObserver->iPresenceCtx =
+ iSessionCntxtObserver->iClient->NewPresenceContextLC();
+ CleanupStack::Pop();// because of LC method
+
+ iSessionCntxtObserver->iFeatures =
+ MyMPresenceFeatureStub::NewStubL(
+ iSessionCntxtObserver->iPresenceCtx);
+ }
+
+void T_VimpstEngineSessionCntxtObserver::Teardown()
+ {
+ if ( iSessionCntxtObserver )
+ {
+ delete iSessionCntxtObserver;
+ iSessionCntxtObserver = NULL;
+ }
+ }
+
+TInt T_VimpstEngineSessionCntxtObserver::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_VimpstEngineSessionCntxtObserver::T_NewLL()
+ {
+ iSessionCntxtObserver =
+ CVIMPSTEngineSessionCntxtObserver::NewL( iTestServiceId );
+
+ EUNIT_ASSERT( iSessionCntxtObserver != NULL );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_HandlePresenceContextEventL()
+ {
+ MXIMPContext* context = NULL;
+ MXIMPRequestCompleteEventStub requestCompleteEvent;
+ iSessionCntxtObserver->HandlePresenceContextEvent(
+ *context, requestCompleteEvent );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_GetCompletedReqResultL()
+ {
+ TInt result( KErrNotFound );
+ iSessionCntxtObserver->iReqResult = KErrNone;
+ result = iSessionCntxtObserver->GetCompletedReqResult();
+ EUNIT_ASSERT( KErrNone == result );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_GetRequestMapperL()
+ {
+ CVIMPSTEngineRequestMapper* requestMapper =
+ iSessionCntxtObserver->GetRequestMapper();
+ EUNIT_ASSERT( requestMapper != NULL );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_ServerBindL()
+ {
+ TInt err( KErrNone );
+ TUid protocolUid( KNullUid );
+
+ // Test with bind status EVIMPSTBindDone
+ // -> error code shoud be KErrNotFound
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindDone;
+ err = iSessionCntxtObserver->ServerBindL( protocolUid );
+ EUNIT_ASSERT( KErrNotFound == err );
+
+ // Test with other bind status that EVIMPSTBindDone
+ // -> error code should be KErrNone
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindNotDone;
+ err = iSessionCntxtObserver->ServerBindL( protocolUid );
+ EUNIT_ASSERT( KErrNone == err );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_ServerUnBindL()
+ {
+ TInt err( KErrNone );
+ TBool doUnsubscribe( EFalse );
+
+ // Test different combinations with bind status EVIMPSTBindDone and
+ // binding leaving with KErrGeneral
+ gUnBindingLeaves = KErrGeneral;
+
+ doUnsubscribe = EFalse;
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindDone;
+ err = iSessionCntxtObserver->ServerUnBindL( doUnsubscribe );
+ EUNIT_ASSERT( KErrGeneral == err );
+
+ doUnsubscribe = ETrue;
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindDone;
+ err = iSessionCntxtObserver->ServerUnBindL( doUnsubscribe );
+ EUNIT_ASSERT( KErrGeneral == err );
+
+ // Test different combinations with bind status EVIMPSTBindDone and
+ // binding not leaving
+ gUnBindingLeaves = KErrNone;
+
+ doUnsubscribe = EFalse;
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindDone;
+ err = iSessionCntxtObserver->ServerUnBindL( doUnsubscribe );
+ EUNIT_ASSERT( KErrNone == err );
+
+ doUnsubscribe = ETrue;
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindDone;
+ err = iSessionCntxtObserver->ServerUnBindL( doUnsubscribe );
+ EUNIT_ASSERT( KErrNone == err );
+
+ // Test with bind status EVIMPSTBindFailureMode
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindFailureMode;
+ err = iSessionCntxtObserver->ServerUnBindL( doUnsubscribe );
+ EUNIT_ASSERT( KErrNotFound == err );
+
+ // Test with some other bind status that EVIMPSTBindDone or EVIMPSTBindFailureMode
+ iSessionCntxtObserver->iBindStatus = TVIMPSTEnums::EVIMPSTBindNotDone;
+ err = iSessionCntxtObserver->ServerUnBindL( doUnsubscribe );
+ EUNIT_ASSERT( KErrNotFound == err );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_UriFromXimpOperationLCL()
+ {
+ MPresentityPresenceEventStub event;
+ HBufC* uri = iSessionCntxtObserver->UriFromXimpOperationLC( event );
+ EUNIT_ASSERT( uri != NULL )
+ //EUNIT_ASSERT( uri->Des().Compare( KTestIdentity ) == 0 );
+ CleanupStack::PopAndDestroy( uri );
+ }
+void T_VimpstEngineSessionCntxtObserver::T_DoHandlePresenceContextEventLL()
+ {
+ TInt error( KErrNone );
+
+ MXIMPContext* context = NULL;
+
+ // Test with MXIMPRequestCompleteEventStub
+ MXIMPRequestCompleteEventStub requestCompleteEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, requestCompleteEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ // Test with MXIMPContextStateEventStub
+ MXIMPContextStateEventStub contextStateEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, contextStateEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ // Test with MPresentityPresenceEventStub
+ MPresentityPresenceEventStub presentityPresenceEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, presentityPresenceEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ // Test with MPresentityGroupContentEventStub
+ MPresentityGroupContentEventStub presentityGroupContentEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, presentityGroupContentEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ // Test with MPresenceGrantRequestListEventStub
+ MPresenceGrantRequestListEventStub presenceGrantRequestListEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, presentityGroupContentEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ // Test with MPresenceblockinfostub
+ MPresenceBlockInfoStub presenceblockinfo;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, presenceblockinfo ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ // Test with MSearchEventStub
+ MSearchEventStub searchEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, searchEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+
+ //Test with MSearchKeysEventStub
+ MSearchKeysEventStub searchKeysEvent;
+ TRAP( error, iSessionCntxtObserver->DoHandlePresenceContextEventL(
+ *context, searchKeysEvent ) );
+ if ( KErrNoMemory == error )
+ {
+ User::Leave( error );
+ }
+ EUNIT_ASSERT( KErrNone == error );
+ }
+void T_VimpstEngineSessionCntxtObserver::T_XimpAuthorizationLL()
+ {
+ MPresenceAuthorization& presenceAuthorization =
+ iSessionCntxtObserver->XimpAuthorizationL();
+ }
+void T_VimpstEngineSessionCntxtObserver::T_XimpPresenceWatchingLL()
+ {
+ TRAPD( err,
+ MPresenceWatching& presenceWatching =
+ iSessionCntxtObserver->XimpPresenceWatchingL()
+ );
+
+ if ( KErrNoMemory == err )
+ {
+ User::Leave( err );
+ }
+
+ EUNIT_ASSERT( KErrNone == err || KErrNotSupported == err );
+ }
+void T_VimpstEngineSessionCntxtObserver::T_XimpPresentityGroupsLL()
+ {
+ TRAPD( err,
+ MPresentityGroups& presentityGroups =
+ iSessionCntxtObserver->XimpPresentityGroupsL()
+ );
+
+ if ( KErrNoMemory == err )
+ {
+ User::Leave( err );
+ }
+
+ EUNIT_ASSERT( KErrNone == err || KErrNotSupported == err );
+ }
+void T_VimpstEngineSessionCntxtObserver::T_XimpPresencePublishingLL()
+ {
+ TRAPD( err,
+ MPresencePublishing& presencePublishing =
+ iSessionCntxtObserver->XimpPresencePublishingL()
+ );
+
+ if ( KErrNoMemory == err )
+ {
+ User::Leave( err );
+ }
+
+ EUNIT_ASSERT( KErrNone == err || KErrNotSupported == err );
+ }
+void T_VimpstEngineSessionCntxtObserver::T_XimpPresenceContextL()
+ {
+ MXIMPContext& ximpContext =
+ iSessionCntxtObserver->XimpPresenceContextL();
+ }
+void T_VimpstEngineSessionCntxtObserver::T_PresenceObjectFactoryL()
+ {
+ MPresenceObjectFactory& presenceObjectFactory =
+ iSessionCntxtObserver->PresenceObjectFactoryL();
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_RegisterObserverL()
+ {
+ MVIMPSTEngineSessionCntxtObserver* observer = new dummy_observer; // chauhan
+ iSessionCntxtObserver->RegisterObserver( observer );
+ EUNIT_ASSERT( iSessionCntxtObserver->iObserverArray.Count() == 1 );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_UnRegisterObserverL()
+ {
+ MVIMPSTEngineSessionCntxtObserver* observer = new dummy_observer; // chauhan
+ iSessionCntxtObserver->RegisterObserver( observer );
+ EUNIT_ASSERT( iSessionCntxtObserver->iObserverArray.Count() == 1 );
+
+ iSessionCntxtObserver->UnRegisterObserver( observer );
+ EUNIT_ASSERT( iSessionCntxtObserver->iObserverArray.Count() == 0 );
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_IdentifySupportedFeaturesL()
+ {
+ iSessionCntxtObserver->IdentifySupportedFeaturesL();
+ }
+
+void T_VimpstEngineSessionCntxtObserver::T_GetSupportedFeaturesL()
+ {
+ TInt supportedFeatures =
+ iSessionCntxtObserver->GetSupportedFeatures();
+ }
+
+
+
+
+
+
+EUNIT_BEGIN_TEST_TABLE( T_VimpstEngineSessionCntxtObserver, "T_VimpstEngineSessionCntxtObserver", "" )
+
+EUNIT_TEST(
+ "NewL - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "NewL",
+ "FUNCTIONALITY",
+ Setup1L, T_NewLL, Teardown)
+
+EUNIT_TEST(
+ "HandlePresenceContextEvent - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "HandlePresenceContextEvent",
+ "FUNCTIONALITY",
+ Setup2L, T_HandlePresenceContextEventL, Teardown)
+
+EUNIT_TEST(
+ "GetCompletedReqResult - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "GetCompletedReqResult",
+ "FUNCTIONALITY",
+ Setup2L, T_GetCompletedReqResultL, Teardown)
+
+EUNIT_TEST(
+ "GetRequestMapper - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "GetRequestMapper",
+ "FUNCTIONALITY",
+ Setup2L, T_GetRequestMapperL, Teardown)
+
+EUNIT_TEST(
+ "ServerBind - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "ServerBind",
+ "FUNCTIONALITY",
+ Setup2L, T_ServerBindL, Teardown)
+
+EUNIT_TEST(
+ "ServerUnBind - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "ServerUnBind",
+ "FUNCTIONALITY",
+ Setup2L, T_ServerUnBindL, Teardown)
+
+EUNIT_TEST(
+ "UriFromXimpOperationLC - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "UriFromXimpOperationLC",
+ "FUNCTIONALITY",
+ Setup2L, T_UriFromXimpOperationLCL, Teardown)
+
+EUNIT_TEST(
+ "DoHandlePresenceContextEventL - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "DoHandlePresenceContextEventL",
+ "FUNCTIONALITY",
+ Setup2L, T_DoHandlePresenceContextEventLL, Teardown)
+
+EUNIT_TEST(
+ "XimpAuthorizationL - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "XimpAuthorizationL",
+ "FUNCTIONALITY",
+ Setup2L, T_XimpAuthorizationLL, Teardown)
+
+EUNIT_TEST(
+ "XimpPresenceWatchingL - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "XimpPresenceWatchingL",
+ "FUNCTIONALITY",
+ Setup2L, T_XimpPresenceWatchingLL, Teardown)
+
+EUNIT_TEST(
+ "XimpPresentityGroupsL - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "XimpPresentityGroupsL",
+ "FUNCTIONALITY",
+ Setup2L, T_XimpPresentityGroupsLL, Teardown)
+
+EUNIT_TEST(
+ "XimpPresencePublishingL - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "XimpPresencePublishingL",
+ "FUNCTIONALITY",
+ Setup2L, T_XimpPresencePublishingLL, Teardown)
+
+EUNIT_TEST(
+ "XimpPresenceContext - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "XimpPresenceContext",
+ "FUNCTIONALITY",
+ Setup2L, T_XimpPresenceContextL, Teardown)
+
+EUNIT_TEST(
+ "PresenceObjectFactory - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "PresenceObjectFactory",
+ "FUNCTIONALITY",
+ Setup2L, T_PresenceObjectFactoryL, Teardown)
+
+EUNIT_TEST(
+ "RegisterObserver - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "RegisterObserver",
+ "FUNCTIONALITY",
+ Setup2L, T_RegisterObserverL, Teardown)
+
+EUNIT_TEST(
+ "UnRegisterObserver - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "UnRegisterObserver",
+ "FUNCTIONALITY",
+ Setup2L, T_UnRegisterObserverL, Teardown)
+
+EUNIT_TEST(
+ "IdentifySupportedFeatures - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "IdentifySupportedFeatures",
+ "FUNCTIONALITY",
+ Setup2L, T_IdentifySupportedFeaturesL, Teardown)
+
+EUNIT_TEST(
+ "GetSupportedFeatures - test ",
+ "T_VimpstEngineSessionCntxtObserver",
+ "GetSupportedFeatures",
+ "FUNCTIONALITY",
+ Setup2L, T_GetSupportedFeaturesL, Teardown)
+
+
+EUNIT_END_TESTCASE_TABLE
+
+// END OF FILE