--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengsessionmanager.cpp Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,293 @@
+/*
+* 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:
+*
+*/
+
+
+// INTERNAL INCLUDES
+#include "musengstubs.h"
+#include "ut_musengsessionmanager.h"
+#include "musengsessionmanager.h"
+#include "musengmcesession.h"
+#include "musengmceoutsession.h"
+#include "mussessionproperties.h"
+#include "centralrepository.h"
+#include "e32property.h"
+#include "musengtestdefs.h"
+
+// SYSTEM INCLUDES
+#include <eunitmacros.h>
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSessionManager* UT_CMusEngSessionManager::NewL()
+ {
+ UT_CMusEngSessionManager* self = UT_CMusEngSessionManager::NewLC();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSessionManager* UT_CMusEngSessionManager::NewLC()
+ {
+ UT_CMusEngSessionManager* self = new( ELeave )UT_CMusEngSessionManager();
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSessionManager::~UT_CMusEngSessionManager()
+ {
+ // NOP
+ }
+
+// -----------------------------------------------------------------------------
+// Default constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngSessionManager::UT_CMusEngSessionManager()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// Second phase construct
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::ConstructL()
+ {
+ // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+ // It generates the test case table.
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::SetupL()
+ {
+ User::LeaveIfError(
+ RProperty::Set(
+ NMusSessionApi::KCategoryUid,
+ NMusSessionApi::KUseCase,
+ MultimediaSharing::EMusLiveVideo ) );
+ iSessionManager = CMusEngSessionManager::NewL();
+
+ iLcUiProvider = new( ELeave )CLcUiProviderStub;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::Teardown()
+ {
+ delete iSessionManager;
+ delete iLcUiProvider;
+ // The Central Repository stub is using RProperty stub to store global data.
+ // The global data must be freed here.
+ PropertyHelper::Close();
+ }
+
+// TEST CASES
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::UT_NewL()
+ {
+ EUNIT_ASSERT( iSessionManager->iSession != NULL )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::UT_SessionL()
+ {
+ EUNIT_ASSERT( iSessionManager->iSession == &( iSessionManager->Session() ) )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::UT_IsFeatureSupportedL()
+ {
+ EUNIT_ASSERT(
+ iSessionManager->IsFeatureSupported( CLcEngine::ELcShowAcceptQuery ) )
+
+ EUNIT_ASSERT(
+ iSessionManager->IsFeatureSupported( CLcEngine::ELcShowInvitingNote ) )
+
+ EUNIT_ASSERT(
+ iSessionManager->IsFeatureSupported( CLcEngine::ELcShowWaitingNote ) )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::UT_CreateMusSessionL()
+ {
+ CMusEngMceSession* session = NULL;
+
+ // Live session
+ session =
+ iSessionManager->CreateMusSessionL(
+ MultimediaSharing::EMusLiveVideo );
+ EUNIT_ASSERT( session != NULL )
+ delete session;
+
+ // Clip session
+ session =
+ iSessionManager->CreateMusSessionL(
+ MultimediaSharing::EMusClipVideo );
+ EUNIT_ASSERT( session != NULL )
+ delete session;
+
+ // Receive session
+ session =
+ iSessionManager->CreateMusSessionL(
+ MultimediaSharing::EMusReceive );
+ EUNIT_ASSERT( session != NULL )
+ delete session;
+
+ // Two way session
+ session =
+ iSessionManager->CreateMusSessionL(
+ MultimediaSharing::EMusTwoWayVideo );
+ EUNIT_ASSERT( session != NULL )
+ delete session;
+
+ // Two way receive session
+ session =
+ iSessionManager->CreateMusSessionL(
+ MultimediaSharing::EMusReceiveTwoWayVideo );
+ EUNIT_ASSERT( session != NULL )
+ delete session;
+
+ // Other session types
+ EUNIT_ASSERT_SPECIFIC_LEAVE(
+ iSessionManager->CreateMusSessionL( MultimediaSharing::EMusStillImage ),
+ KErrNotSupported )
+
+ EUNIT_ASSERT_SPECIFIC_LEAVE(
+ iSessionManager->CreateMusSessionL( MultimediaSharing::EMusContinue ),
+ KErrNotSupported )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngSessionManager::UT_PropertyChangedL()
+ {
+ iSessionManager->Session().SetLcUiProvider( iLcUiProvider );
+
+ // Background startup not active, property change ignored
+ MLcSession* origSession = &iSessionManager->Session();
+ iSessionManager->PropertyChanged(
+ NMusSessionApi::KUseCase, MultimediaSharing::EMusReceiveTwoWayVideo );
+
+ EUNIT_ASSERT( origSession == &iSessionManager->Session() );
+ EUNIT_ASSERT( iLcUiProvider->iCalledFunction != CLcUiProviderStub::EHandleForegroundStatus );
+
+ // Background startup active, usecase not changed, no effect
+ User::LeaveIfError( RProperty::Set( NMusSessionApi::KCategoryUid,
+ NMusSessionApi::KFastMode,
+ MusSettingsKeys::EFastModeOn ) );
+ iSessionManager->iSession->iBackground = ETrue;
+ origSession = &iSessionManager->Session();
+ iSessionManager->PropertyChanged(
+ NMusSessionApi::KUseCase, iSessionManager->iCurrentUseCase );
+
+ EUNIT_ASSERT( origSession == &iSessionManager->Session() );
+ EUNIT_ASSERT( iLcUiProvider->iCalledFunction != CLcUiProviderStub::EHandleForegroundStatus );
+
+ // Background startup active, usecase changed, uiprovider informed and
+ // new session replaces old one
+ origSession = &iSessionManager->Session();
+ iSessionManager->PropertyChanged(
+ NMusSessionApi::KUseCase, MultimediaSharing::EMusClipVideo );
+ if ( origSession == &iSessionManager->Session() )
+ {
+ // Couldn't create new session because running out of memory
+ User::Leave( KErrNoMemory );
+ }
+ EUNIT_ASSERT( origSession != &iSessionManager->Session() );
+ EUNIT_ASSERT( iLcUiProvider->iCalledFunction == CLcUiProviderStub::EHandleForegroundStatus );
+ EUNIT_ASSERT( iLcUiProvider->iForeground );
+ }
+
+// TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+ UT_CMusEngSessionManager,
+ "UT_CMusEngSessionManager",
+ "UNIT" )
+
+EUNIT_TEST(
+ "NewL - test ",
+ "CMusEngSessionManager",
+ "NewL",
+ "FUNCTIONALITY",
+ SetupL, UT_NewL, Teardown)
+
+EUNIT_TEST(
+ "Session - test ",
+ "CMusEngSessionManager",
+ "Session",
+ "FUNCTIONALITY",
+ SetupL, UT_SessionL, Teardown)
+
+EUNIT_TEST(
+ "IsFeatureSupported - test ",
+ "CMusEngSessionManager",
+ "IsFeatureSupported",
+ "FUNCTIONALITY",
+ SetupL, UT_IsFeatureSupportedL, Teardown)
+
+EUNIT_TEST(
+ "CreateMusSessionL - test ",
+ "CMusEngSessionManager",
+ "CreateMusSessionL",
+ "FUNCTIONALITY",
+ SetupL, UT_CreateMusSessionL, Teardown)
+
+EUNIT_TEST(
+ "PropertyChanged - test ",
+ "CMusEngSessionManager",
+ "PropertyChanged",
+ "FUNCTIONALITY",
+ SetupL, UT_PropertyChangedL, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+
+// END OF FILE
+
+