diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtwowaysession.cpp --- a/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtwowaysession.cpp Tue Aug 31 15:12:07 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1217 +0,0 @@ -/* -* 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 "ut_musengtwowaysession.h" -#include "musengstubs.h" -#include "musengtestdefs.h" -#include "musengtwowaysession.h" -#include "mussipprofilehandler.h" -#include "musengmceutils.h" -#include "mussettings.h" -#include "mussessionproperties.h" -#include "musengremotevideoplayer.h" - -// SYSTEM INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -_LIT8( KMusAvcBitrateLevel1TestText, "TestTextForAvcBrL1Level" ); -_LIT8( KMusAvcBitrateLevel1bTestText, "TestTextForAvcBrL1bLevel" ); -_LIT8( KMusAvcBitrateLevel1_1TestText, "TestTextForAvcBrL1_1Level" ); -_LIT8( KMusAvcBitrateLevel1_2TestText, "TestTextForAvcBrL1_2Level" ); -_LIT8( KMusAvcBitrateLevel1_3TestText, "TestTextForAvcBrL1_3Level" ); -_LIT8( KMusAvcBitrateLevel2TestText, "TestTextForAvcBrL2Level" ); - -_LIT8( KMusAvcBitrateLevel_1b_ConfigKey, "AvcBrL1b=TestTextForAvcBrL1bLevel;" ); - -_LIT8( KMusAvcBitrateLevel_1_1_ConfigKey, -"AvcBrL1_1=TestTextForAvcBrL1_1Level;"); - -_LIT8( KMusAvcBitrateLevels_1_1_And_1b_ConfigKeys, -"AvcBrL1_1=TestTextForAvcBrL1_1Level;\ -AvcBrL1b=TestTextForAvcBrL1bLevel;" ); - -_LIT8( KMusAvcAllLevelsConcatenation, -"AvcBrL1=TestTextForAvcBrL1Level;\ -AvcBrL1b=TestTextForAvcBrL1bLevel;\ -AvcBrL1_1=TestTextForAvcBrL1_1Level;\ -AvcBrL1_2=TestTextForAvcBrL1_2Level;\ -AvcBrL1_3=TestTextForAvcBrL1_3Level;\ -AvcBrL2=TestTextForAvcBrL2Level;" ); - - - -//use step in different time period -const TInt KZoomBigStepCount = 15; -const TInt KZoomSmallStepCount = KZoomBigStepCount*2; -const TInt KZoomStepMinSize = 1; - -// 0.4 second -const TInt64 KZoomFasterTime = 400000;//must bigger than 1/3 second - -//insure that step is 1 -#define USER_SLEEP User::After(KZoomFasterTime) - - -// NOTE!!!!!!!!!! -// There are intentianally many same cases as already in CMusEngLiveSession -// as two-way session derives from livesession. These cases therefore -// ensure that live session changes are not breaking two-way session. - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -UT_CMusEngTwoWaySession* UT_CMusEngTwoWaySession::NewL() - { - UT_CMusEngTwoWaySession* self = UT_CMusEngTwoWaySession::NewLC(); - CleanupStack::Pop( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -UT_CMusEngTwoWaySession* UT_CMusEngTwoWaySession::NewLC() - { - UT_CMusEngTwoWaySession* self = new( ELeave ) UT_CMusEngTwoWaySession(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -UT_CMusEngTwoWaySession::~UT_CMusEngTwoWaySession() - { - // NOP - } - - -// ----------------------------------------------------------------------------- -// Default constructor -// ----------------------------------------------------------------------------- -// -UT_CMusEngTwoWaySession::UT_CMusEngTwoWaySession() - { - // NOP - } - - -// ----------------------------------------------------------------------------- -// Second phase construct -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::ConstructL() - { - // The ConstructL from the base class CEUnitTestSuiteClass must be called. - // It generates the test case table. - CEUnitTestSuiteClass::ConstructL(); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::SetupL() - { - iLcSessionObserver = new( ELeave )CLcSessionObserverStub; - iLcUiProvider = new( ELeave )CLcUiProviderStub; - iLiveSession = CMusEngTwoWaySession::NewL(); - iLiveSession->SetLcSessionObserver( iLcSessionObserver ); - iLiveSession->SetLcUiProvider( iLcUiProvider ); - - User::LeaveIfError( RProperty::Set( NMusSessionApi::KCategoryUid, - NMusSessionApi::KRemoteSipAddress, - KTestRecipientSipUri ) ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::Teardown() - { - delete iLiveSession; - delete iLcSessionObserver; - delete iLcUiProvider; - PropertyHelper::Close(); - // Delete static data from CenRep stub - CRepository::iStaticWriteAvcKeysToStaticData = EFalse; - CRepository::DeleteStubAvcConfigKeys(); - CRepository::ResetStubGlobal(); - CRepository::iForceFailWithCode = KErrNone; - } - - - -// TEST CASES - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_NewLL() - { - EUNIT_ASSERT( iLiveSession ) - EUNIT_ASSERT( iLiveSession->iCameraHandler.iCameraUsage == MusSettingsKeys::EUseCameraSwapping ); - EUNIT_ASSERT( iLiveSession->iMceManagerUid == TUid::Uid( KMusUiUid ) ); - - delete iLiveSession; - iLiveSession = NULL; - CRepository::SetStubGlobal( MusSettingsKeys::KCameraUsage, - MusSettingsKeys::EUseOnlySecondaryCamera ); - - iLiveSession = CMusEngTwoWaySession::NewL(); - - EUNIT_ASSERT( iLiveSession->iCameraHandler.iCameraUsage == MusSettingsKeys::EUseOnlySecondaryCamera ); - - delete iLiveSession; - iLiveSession = NULL; - CRepository::SetStubGlobal( MusSettingsKeys::KCameraUsage, - MusSettingsKeys::EUseOnlyMainCamera ); - - iLiveSession = CMusEngTwoWaySession::NewL(); - - EUNIT_ASSERT_EQUALS( TInt( MusSettingsKeys::EUseOnlyMainCamera ), - TInt( iLiveSession->iCameraHandler.iCameraUsage ) ) - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_EstablishLcSessionLL() - { - CRepository::SetStubGlobal( MusSettingsKeys::KVideoBandwidth, - 128 ); - iLiveSession->EstablishLcSessionL(); - - EUNIT_ASSERT( iLiveSession->iSession ); - // Next assertion ensures that session structure is new - EUNIT_ASSERT( iLiveSession->iSession->Streams().Count() > 0 ); - EUNIT_ASSERT( iLiveSession->iSession->Streams()[0] ); - EUNIT_ASSERT( *(iLiveSession->iRecipient) == KTestRecipientSipUri8() ); - EUNIT_ASSERT( iLiveSession->iSession->State() == CMceSession::EOffering ); - - EUNIT_ASSERT( iLiveSession->iSession->iHeaders ); - EUNIT_ASSERT( iLiveSession->iSession->iHeaders->Count() == 2 ); - EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 0 ) == - KMusEngAcceptContactHeader() ); - EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 1 ) == - KMusAcceptHeader() ); - - // Ensure there is no SDP lines at session level - EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines ); - EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->Count() == 1 ); - EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->MdcaPoint( 0 ) == - KMusEngSessionSdpLineXApplication() ); - - // Ensure b=AS and b=TIAS attributes are taken at media level - MDesC8Array* mediaSdpLines = - iLiveSession->iSession->Streams()[0]->iMediaSDPLines; - - EUNIT_ASSERT( mediaSdpLines ); - EUNIT_ASSERT( mediaSdpLines->MdcaCount() == 2 ); - EUNIT_ASSERT( mediaSdpLines->MdcaPoint( 0 ).Find( - KMusEngSessionSdpLineBandwidthLine() ) == 0 ); - EUNIT_ASSERT( mediaSdpLines->MdcaPoint( 1 ).Find( - KMusEngSessionSdpLineTiasLine() ) == 0 ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_EnableDisplayLL() - { - TRAPD( error, iLiveSession->EnableDisplayL( ETrue ) ); - MUS_TEST_FORWARD_ALLOC_FAILURE( error ); - EUNIT_ASSERT( error == KErrNotReady ); - - ESTABLISH_OUT_SESSION( iLiveSession ); - - CMceDisplaySink* display = - MusEngMceUtils::GetDisplayL( *(iLiveSession->iSession) ); - - CMceDisplaySink* receivingDisplay = - MusEngMceUtils::GetReceivingDisplayL( *iLiveSession->iSession ); - - // Disable - iLiveSession->EnableDisplayL( EFalse ); - - EUNIT_ASSERT( !display->iIsEnabled ); - EUNIT_ASSERT( !receivingDisplay->iIsEnabled ); - - // Try to disable again, request should be ignored - - iLiveSession->EnableDisplayL( EFalse ); - - EUNIT_ASSERT( !display->iIsEnabled ); - EUNIT_ASSERT( !receivingDisplay->iIsEnabled ); - - // Enable - - iLiveSession->EnableDisplayL( ETrue ); - - EUNIT_ASSERT( display->iIsEnabled ); - EUNIT_ASSERT( receivingDisplay->iIsEnabled ); - - // Try to enable again, request should be ignored - - iLiveSession->EnableDisplayL( ETrue ); - - EUNIT_ASSERT( display->iIsEnabled ); - EUNIT_ASSERT( receivingDisplay->iIsEnabled ); - - // Display is active only if receiving and display is explicitly enabled - EUNIT_ASSERT( !iLiveSession->IsDisplayActive() ) - iLiveSession->iReceiving = ETrue; - EUNIT_ASSERT( iLiveSession->IsDisplayActive() ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_SetOrientationLL() - { - // Try without session, fails - EUNIT_ASSERT_SPECIFIC_LEAVE( iLiveSession->SetOrientationL( - CMusEngMceSession::EPortrait ), - KErrNotReady ) - - // Establish a session - ESTABLISH_OUT_SESSION( iLiveSession ) - - CMceDisplaySink* display = - MusEngMceUtils::GetDisplayL( *iLiveSession->iSession ); - - CMceDisplaySink* receivingDisplay = - MusEngMceUtils::GetReceivingDisplayL( *iLiveSession->iSession ); - - - // Check the initial state - display->iRotation = CMceDisplaySink::ENone; - receivingDisplay->iRotation = CMceDisplaySink::ENone; - EUNIT_ASSERT_EQUALS( iLiveSession->OrientationL(), - MLcWindow::EPortrait ) - - // Successfully change orientation - - iLiveSession->SetOrientationL( CMusEngMceSession::ELandscape ); - EUNIT_ASSERT_EQUALS( iLiveSession->OrientationL(), - MLcWindow::ELandscape ) - - EUNIT_ASSERT_EQUALS( display->iRotation, CMceDisplaySink::EClockwise90Degree ); - EUNIT_ASSERT_EQUALS( receivingDisplay->iRotation, CMceDisplaySink::EClockwise90Degree ); - - iLiveSession->SetOrientationL( CMusEngMceSession::EPortrait ); - EUNIT_ASSERT_EQUALS( iLiveSession->OrientationL(), - MLcWindow::EPortrait ) - - EUNIT_ASSERT_EQUALS( display->iRotation, CMceDisplaySink::ENone ); - EUNIT_ASSERT_EQUALS( receivingDisplay->iRotation, CMceDisplaySink::ENone ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_SetLocalRectLL() - { - // Does nothing real before session establishment - TRect rect1( 100, 200, 300, 500 ); - iLiveSession->SetSecondaryRectL( rect1 ); - - EUNIT_ASSERT( rect1 == iLiveSession->iLocalRect ); - - // Local rect changing affects to viewfinder display sink not to receiving video - // - ESTABLISH_OUT_SESSION( iLiveSession ); - - CMceDisplaySink* vfDisplay = - MusEngMceUtils::GetDisplayL( *( iLiveSession->iSession ) ); - CMceDisplaySink* receivingDisplay = - MusEngMceUtils::GetReceivingDisplayL( *( iLiveSession->iSession ) ); - - EUNIT_ASSERT( vfDisplay->DisplayRectL() == iLiveSession->iLocalRect ); - EUNIT_ASSERT( receivingDisplay->DisplayRectL() != iLiveSession->iLocalRect ); - - TRect rect2( 200, 200, 300, 500 ); - iLiveSession->SetSecondaryRectL( rect2 ); - EUNIT_ASSERT( rect2 == iLiveSession->iLocalRect ); - EUNIT_ASSERT( vfDisplay->DisplayRectL() == iLiveSession->iLocalRect ); - EUNIT_ASSERT( receivingDisplay->DisplayRectL() != iLiveSession->iLocalRect ); - - // Terminate session and try again, rect must not be changed - - iLiveSession->iSession->iState = CMceSession::ETerminated; - - TRect rect3( 300, 300, 400, 600 ); - - iLiveSession->SetSecondaryRectL( rect3 ); - - EUNIT_ASSERT( vfDisplay->DisplayRectL() != rect3 ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_SetRectsLL() - { - // Does nothing real before session establishment - TRect localrect1( 100, 200, 300, 400 ); - TRect remoterect1( 100, 200, 300, 500 ); - iLiveSession->SetRectsL( remoterect1, localrect1 ); - - EUNIT_ASSERT( localrect1 == iLiveSession->iLocalRect ); - EUNIT_ASSERT( remoterect1 == iLiveSession->iRect ); - - // Local rect changing affects to viewfinder display sink and remote rect to - // receiving video display sink - // - ESTABLISH_OUT_SESSION( iLiveSession ); - - CMceDisplaySink* vfDisplay = - MusEngMceUtils::GetDisplayL( *( iLiveSession->iSession ) ); - CMceDisplaySink* receivingDisplay = - MusEngMceUtils::GetReceivingDisplayL( *( iLiveSession->iSession ) ); - - TRect localrect2( 200, 200, 300, 400 ); - TRect remoterect2( 200, 200, 300, 500 ); - EUNIT_ASSERT( vfDisplay->DisplayRectL() != localrect2 ); - EUNIT_ASSERT( receivingDisplay->DisplayRectL() != remoterect2 ); - - iLiveSession->SetRectsL( remoterect2, localrect2 ); - EUNIT_ASSERT( localrect2 == iLiveSession->iLocalRect ); - EUNIT_ASSERT( remoterect2 == iLiveSession->iRect ); - EUNIT_ASSERT( vfDisplay->DisplayRectL() == iLiveSession->iLocalRect ); - EUNIT_ASSERT( receivingDisplay->DisplayRectL() == iLiveSession->iRect ); - - // Terminate session and try again, rect must not be changed - - iLiveSession->iSession->iState = CMceSession::ETerminated; - - TRect localrect3( 300, 200, 300, 400 ); - TRect remoterect3( 300, 200, 300, 500 ); - - iLiveSession->SetRectsL( remoterect3, localrect3 ); - - EUNIT_ASSERT( vfDisplay->DisplayRectL() != localrect3 ) - EUNIT_ASSERT( receivingDisplay->DisplayRectL() != remoterect3 ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_EnableLcFileL() - { - // Recording is not supported for two-way session - EUNIT_ASSERT_SPECIFIC_LEAVE( iLiveSession->EnableLcFileL( ETrue ), - KErrNotSupported ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_CompleteSessionStructureLL() - { - - CMceStreamBundle* localBundle = - CMceStreamBundle::NewLC( CMceStreamBundle::ELS ); - - // Check that structure cannot be completed before creating the session - TRAPD( error, iLiveSession->CompleteSessionStructureL( *localBundle ) ); - MUS_TEST_FORWARD_ALLOC_FAILURE( error ); - EUNIT_ASSERT( error == KErrNotReady ); - - // Normal case - - CSIPProfile* profile = iLiveSession->iSipProfileHandler->Profile(); - - iLiveSession->iSession = CMceOutSession::NewL( - *(iLiveSession->iManager), - *profile, - KTestRecipientSipUri8() ); - - iLiveSession->CompleteSessionStructureL( *localBundle ); - - EUNIT_ASSERT( localBundle->Streams().Count() == 0 ) - - EUNIT_ASSERT( iLiveSession->iSession->Streams().Count() == 1 ); - EUNIT_ASSERT( iLiveSession->iSession->Streams()[0]->Type() == KMceVideo ); - EUNIT_ASSERT( iLiveSession->iSession->Streams()[0]->Source() ); - EUNIT_ASSERT( iLiveSession->iSession->Streams()[0]->Source()->Type() == - KMceCameraSource ); - EUNIT_ASSERT( iLiveSession->iSession->Streams()[0]->Sinks().Count() == 1 ); - EUNIT_ASSERT( iLiveSession->iSession->Streams()[0]->Sinks()[0]->Type() == - KMceRTPSink ); - - EUNIT_ASSERT( iLiveSession->iCameraHandler.iCurrentCamera == - TMusEngCameraHandler::EBackCamera ); - - CMceVideoStream* vidStream = static_cast( iLiveSession->iSession->Streams()[0] ); - EUNIT_ASSERT( vidStream->BoundStream() ); - CMceVideoStream& inStream = static_cast( vidStream->BoundStreamL() ); - EUNIT_ASSERT( inStream.Source() ); - EUNIT_ASSERT( inStream.Source()->Type() == KMceRTPSource ); - EUNIT_ASSERT( inStream.Sinks().Count() == 1 ); - EUNIT_ASSERT( inStream.Sinks()[0]->Type() == KMceDisplaySink ); - - delete iLiveSession->iSession; - iLiveSession->iSession = NULL; - - iLiveSession->iSession = CMceOutSession::NewL( - *(iLiveSession->iManager), - *profile, - KTestRecipientSipUri8() ); - - iLiveSession->iCameraHandler.iCameraUsage = MusSettingsKeys::EUseOnlySecondaryCamera; - iLiveSession->CompleteSessionStructureL( *localBundle ); - - EUNIT_ASSERT( iLiveSession->iCameraHandler.iCurrentCamera == - TMusEngCameraHandler::EFrontCamera ); - - - CleanupStack::PopAndDestroy( localBundle ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_HandleSessionStateChangedL() - { - // Make Repository empty, config keys must be written - CRepository::SetStubAvcConfigKeysL( KNullDesC8() ); - - // Invite - iLiveSession->EstablishLcSessionL(); - iLiveSession->iSession->iState = CMceSession::EEstablished; - CRepository::iForceFailWithCode = KErrNone; - - // Simulate session state transition notification - iLiveSession->HandleSessionStateChanged( - *iLiveSession->iSession, - 200, KNullDesC8() ); - - HBufC8* info = MultimediaSharingSettings::EncoderConfigInfoLC(); - EUNIT_ASSERT_NOT_EQUALS( *info, KMusAvcBitrateLevel_1b_ConfigKey() ) - CleanupStack::PopAndDestroy( info ); - - // sendrecv->recvonly downgrade terminates session - iLcSessionObserver->Reset(); - iLiveSession->iSession->iState = CMceSession::EEstablished; - CMceVideoStream* inStream = - MusEngMceUtils::GetVideoInStreamL( *iLiveSession->iSession ); - inStream->EnableL(); - CMceVideoStream* outStream = - MusEngMceUtils::GetVideoOutStreamL( *iLiveSession->iSession ); - outStream->DisableL(); - iLiveSession->HandleSessionStateChanged( - *iLiveSession->iSession, 200, KNullDesC8() ); - EUNIT_ASSERT_EQUALS( TInt( iLcSessionObserver->iCalledFunction ), - TInt( CLcSessionObserverStub::ESessionFailed ) ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_AdjustVideoCodecLL() - { - CRepository::SetStubAvcConfigKeysL( KNullDesC8() ); - - CMceVideoCodec* codecH263 = CMceH263Codec::NewLC( KMceSDPNameH263() ); - CMceVideoCodec* codecH2632000 = CMceH263Codec::NewLC( KMceSDPNameH2632000() ); - CMceVideoCodec* codecAvc = CMceAvcCodec::NewLC( KMceSDPNameH264() ); - CMceVideoCodec* codecUnknown = CMceH263Codec::NewLC( KNullDesC8() ); - - iLiveSession->AdjustVideoCodecL( *codecH263, KMceCameraSource ); - iLiveSession->AdjustVideoCodecL( *codecH2632000, KMceCameraSource ); - iLiveSession->AdjustVideoCodecL( *codecAvc, KMceCameraSource ); - iLiveSession->AdjustVideoCodecL( *codecUnknown, KMceCameraSource ); - - // Test that bit rates and keepalive has been set to H263 & AVC codecs - EUNIT_ASSERT( codecH263->iAllowedBitrates == KMceAllowedH263BitrateAll ) - EUNIT_ASSERT( codecH263->iMaxBitRate == KMceH263Level45Bitrate ) - EUNIT_ASSERT( codecH263->iBitrate == 80000 ) - EUNIT_ASSERT_EQUALS( codecH263->KeepAliveTimer(), 6 ) - EUNIT_ASSERT_EQUALS( codecH263->KeepAlivePayloadType(), 96 ) - EUNIT_ASSERT_EQUALS( codecH263->KeepAliveData(), KNullDesC8() ) - - EUNIT_ASSERT( codecH2632000->iAllowedBitrates == - KMceAllowedH263BitrateAll ) - EUNIT_ASSERT( codecH2632000->iMaxBitRate == KMceH263Level45Bitrate ) - EUNIT_ASSERT( codecH2632000->iBitrate == 80000 ) - EUNIT_ASSERT_EQUALS( codecH2632000->KeepAliveTimer(), 6 ) - EUNIT_ASSERT_EQUALS( codecH2632000->KeepAlivePayloadType(), 96 ) - EUNIT_ASSERT_EQUALS( codecH2632000->KeepAliveData(), KNullDesC8() ) - - EUNIT_ASSERT( codecAvc->iAllowedBitrates == - KMceAvcCodecProfileIdBaseline | - KMceAvcCodecProfileIopConstraintSet | - KMceAvcBitrateLevel1b ) - EUNIT_ASSERT_EQUALS( codecAvc->KeepAliveTimer(), 6 ) - EUNIT_ASSERT_EQUALS( codecAvc->KeepAlivePayloadType(), 98 ) - EUNIT_ASSERT_EQUALS( codecAvc->KeepAliveData(), KNullDesC8() ) - EUNIT_ASSERT( iLiveSession->iStoreEncoderConfigInfo ) - - - // Test that bitrates and keepalive has not been set to unknown codecs - EUNIT_ASSERT( codecUnknown->iAllowedBitrates != - KMceAllowedH263BitrateAll ) - EUNIT_ASSERT( codecUnknown->iMaxBitRate != KMceH263Level45Bitrate ) - EUNIT_ASSERT( codecUnknown->iBitrate != KMceH263Level10Bitrate ) - EUNIT_ASSERT_EQUALS( codecUnknown->KeepAliveTimer(), 6 ) - EUNIT_ASSERT_EQUALS( codecUnknown->KeepAlivePayloadType(), 0 ) - EUNIT_ASSERT_EQUALS( codecUnknown->KeepAliveData(), KNullDesC8() ) - - // Test that base class has been called to all codecs - EUNIT_ASSERT( codecH263->iPayloadType == 96 ) - EUNIT_ASSERT( codecH2632000->iPayloadType == 96 ) - EUNIT_ASSERT( codecAvc->iPayloadType == 98 ) - EUNIT_ASSERT( codecUnknown->iPayloadType == 0 ) - - CleanupStack::PopAndDestroy( codecUnknown ); - CleanupStack::PopAndDestroy( codecAvc ); - CleanupStack::PopAndDestroy( codecH2632000 ); - CleanupStack::PopAndDestroy( codecH263 ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_AdjustAudioCodecLL() - { - CMceAudioCodec* codec = - iLiveSession->iManager->SupportedAudioCodecs()[0]->CloneL(); - CleanupStack::PushL( codec ); - iLiveSession->AdjustAudioCodecL( *codec ); - - // Does nothing so just test that base class has been called - - EUNIT_ASSERT( codec->iPayloadType == 97 ) - - CleanupStack::PopAndDestroy( codec ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_DoCodecSelectionLL() - { - CMceVideoStream* stream = CMceVideoStream::NewLC(); - - CMceVideoCodec* codecH263 = CMceH263Codec::NewLC( _L8( "Foo" ) ); - stream->AddCodecL( codecH263 ); - CleanupStack::Pop( codecH263 ); - - CMceVideoCodec* codecH2632000 = CMceH263Codec::NewLC( _L8( "Bar" ) ); - stream->AddCodecL( codecH2632000 ); - CleanupStack::Pop( codecH2632000 ); - - CMceVideoCodec* codecAvc = CMceAvcCodec::NewLC( KMceSDPNameH264() ); - stream->AddCodecL( codecAvc ); - CleanupStack::Pop( codecAvc ); - - // No assumptions so all the codecs are left to stream - iLiveSession->DoCodecSelectionL( *stream ); - EUNIT_ASSERT_EQUALS( stream->Codecs().Count(), 3 ) - - // Check that AVC codecs are removed if they are known to be not supported - delete iLiveSession->iVideoCodecList; - iLiveSession->iVideoCodecList = NULL; - iLiveSession->iVideoCodecList = _L8("SomethingThatIsNotAVC").AllocL(); - iLiveSession->DoCodecSelectionL( *stream ); - EUNIT_ASSERT_EQUALS( stream->Codecs().Count(), 2 ) - EUNIT_ASSERT( stream->Codecs()[0]->SdpName() != KMceSDPNameH264() ) - EUNIT_ASSERT( stream->Codecs()[1]->SdpName() != KMceSDPNameH264() ) - - CleanupStack::PopAndDestroy( stream ); - } - -// ----------------------------------------------------------------------------- -// Although all states are not meaningfull for LiveSession, all states are -// tested in order to force the updating of unit tests when behavior is changed -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_StreamStateChangedL() - { - // Try without a session, nothing happens - CMceVideoStream* videoStream = CMceVideoStream::NewLC(); - static_cast(iLiveSession)->StreamStateChanged( - *videoStream ); - CleanupStack::PopAndDestroy( videoStream ); - - // Simulate sending invite - iLiveSession->EstablishLcSessionL(); - - // Try all the stream states - CMceMediaStream* changedStream = iLiveSession->iSession->Streams()[0]; - - // EUninitialized, stream is created, unexpected change, nothing happens - changedStream->iState = CMceMediaStream::EUninitialized; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EInitialized, stream is initialized - changedStream->iState = CMceMediaStream::EInitialized; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EBuffering, outgoing stream is buffering - changedStream->iState = CMceMediaStream::EBuffering; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EBuffering, incoming stream is buffering - EUNIT_ASSERT( !iLiveSession->iBuffered ); - CMceMediaStream* changedInStream = &iLiveSession->iSession->Streams()[0]->BoundStreamL(); - changedInStream->iState = CMceMediaStream::EBuffering; - iLiveSession->StreamStateChanged( *changedInStream ); - EUNIT_ASSERT( iLiveSession->iBuffered ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EIdle, stream is not receiving RTP - changedStream->iState = CMceMediaStream::EIdle; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EStreaming, outgoing stream is streaming, no effect on receiving information - changedStream->iState = CMceMediaStream::EStreaming; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT_EQUALS( TInt( iLcSessionObserver->iCalledFunction ), - TInt( CLcSessionObserverStub::EPlayerStateChanged ) ) - iLcSessionObserver->Reset(); - - // EStreaming, incoming stream is streaming, receiving information is updated and notified - EUNIT_ASSERT( !iLiveSession->iReceiving ); - changedInStream->iState = CMceMediaStream::EStreaming; - iLiveSession->StreamStateChanged( *changedInStream ); - EUNIT_ASSERT_EQUALS( TInt( iLcSessionObserver->iCalledFunction ), - TInt( CLcSessionObserverStub::EPlayerStateChanged ) ) - EUNIT_ASSERT( iLiveSession->iReceiving ); - iLcSessionObserver->Reset(); - - // EStreaming, incoming stream is streaming, state is notified even if receiving information - // says we are already receiving - changedInStream->iState = CMceMediaStream::EStreaming; - iLiveSession->StreamStateChanged( *changedInStream ); - EUNIT_ASSERT_EQUALS( TInt( iLcSessionObserver->iCalledFunction ), - TInt( CLcSessionObserverStub::EPlayerStateChanged ) ) - iLcSessionObserver->Reset(); - - // EDisabled, stream is explicitly disabled - changedStream->iState = CMceMediaStream::EDisabled; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // ENoResources, stream has no needed resources to stream - changedStream->iState = CMceMediaStream::ENoResources; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // ETranscodingRequired, stream requires non-realtime transcoding - changedStream->iState = CMceMediaStream::ETranscodingRequired; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // ETranscoding, stream is transcoding in non-realtime - changedStream->iState = CMceMediaStream::ETranscoding; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - } - -// ----------------------------------------------------------------------------- -// Although all states are not meaningfull for LiveSession, all states are -// tested in order to force the updating of unit tests when behavior is changed -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_StreamStateChangedWithSourceL() - { - // Try without a session, nothing happens - CMceVideoStream* videoStream = CMceVideoStream::NewLC(); - static_cast(iLiveSession)->StreamStateChanged( - *videoStream, - *CMceCameraSource::NewLC( *iLiveSession->iManager ) ); - CleanupStack::PopAndDestroy(); // camera - CleanupStack::PopAndDestroy( videoStream ); - - // Simulate sending invite - iLiveSession->EstablishLcSessionL(); - - // Try all the stream states - CMceMediaStream* changedStream = iLiveSession->iSession->Streams()[0]; - CMceMediaSource* changedSource = changedStream->Source(); - - // EUninitialized, stream is created, unexpected change, nothing happens - changedStream->iState = CMceMediaStream::EUninitialized; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EInitialized, stream is initialized - changedStream->iState = CMceMediaStream::EInitialized; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource );; - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EBuffering, stream is buffering - changedStream->iState = CMceMediaStream::EBuffering; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EIdle, stream is not receiving RTP - changedStream->iState = CMceMediaStream::EIdle; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // EStreaming, stream is streaming - changedStream->iState = CMceMediaStream::EStreaming; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT_EQUALS( TInt( iLcSessionObserver->iCalledFunction ), - TInt( CLcSessionObserverStub::EPlayerStateChanged ) ) - iLcSessionObserver->Reset(); - - // EDisabled, stream is explicitly disabled - changedStream->iState = CMceMediaStream::EDisabled; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // ENoResources, stream has no needed resources to stream - changedStream->iState = CMceMediaStream::ENoResources; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // ETranscodingRequired, stream requires non-realtime transcoding - changedStream->iState = CMceMediaStream::ETranscodingRequired; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // ETranscoding, stream is transcoding in non-realtime - changedStream->iState = CMceMediaStream::ETranscoding; - static_cast(iLiveSession)->StreamStateChanged( - *changedStream, *changedSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_SetEncodingDeviceLL() - { - CMceAvcCodec* codec = CMceAvcCodec::NewLC( KMceSDPNameH264() ); - - // Generic error in CenRep, leave expected - CRepository::iForceFailWithCode = KErrNotReady; - EUNIT_ASSERT_LEAVE( iLiveSession->SetEncodingDeviceL( *codec ) ) - EUNIT_ASSERT_EQUALS( codec->iEncodingDecodingDevice, TUid::Uid( 0 ) ) - - // No entry in CenRep, default value expected - CRepository::iForceFailWithCode = KErrNotFound; - const TUid KDefaultEncodingDevice( TUid::Uid( 0x20001C13 ) ); - iLiveSession->SetEncodingDeviceL( *codec ); - EUNIT_ASSERT_EQUALS( codec->iEncodingDecodingDevice, - KDefaultEncodingDevice ) - - // Entry in CenRep - const TInt KSomeEncodingDevice( 0x20001C15 ); - CRepository::iStaticEncoderUid = KSomeEncodingDevice; - iLiveSession->SetEncodingDeviceL( *codec ); - EUNIT_ASSERT_EQUALS( codec->iEncodingDecodingDevice, - TUid::Uid( KSomeEncodingDevice ) ) - - CleanupStack::PopAndDestroy( codec ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_SetCodecConfigKeyLL() - { - CMceAvcCodec* codec = CMceAvcCodec::NewLC( KMceSDPNameH264() ); - codec->SetAllowedBitrates( KMceAvcBitrateLevel1b ); - - // Generic error in CenRep, leave expected - CRepository::iForceFailWithCode = KErrNotReady; - EUNIT_ASSERT_LEAVE( iLiveSession->SetCodecConfigKeyL( *codec ) ); - EUNIT_ASSERT( !codec->iConfigKey ) - EUNIT_ASSERT( !iLiveSession->iStoreEncoderConfigInfo ) - CRepository::iForceFailWithCode = KErrNone; - - // No entry in CenRep, nothing happens - iLiveSession->SetCodecConfigKeyL( *codec ); - EUNIT_ASSERT( !codec->iConfigKey ) - EUNIT_ASSERT( !iLiveSession->iStoreEncoderConfigInfo ) - - // Empty entry in CenRep - CRepository::SetStubAvcConfigKeysL( KNullDesC8() ); - iLiveSession->SetCodecConfigKeyL( *codec ); - EUNIT_ASSERT( !codec->iConfigKey ) - EUNIT_ASSERT( iLiveSession->iStoreEncoderConfigInfo ) - iLiveSession->iStoreEncoderConfigInfo = EFalse; // emulate original situation - - // Entry in CenRep - CRepository::SetStubAvcConfigKeysL( KMusAvcBitrateLevel_1b_ConfigKey ); - iLiveSession->SetCodecConfigKeyL( *codec ); - EUNIT_ASSERT( codec->iConfigKey ) - HBufC8* key = codec->ConfigKeyL(); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel1bTestText() ) - CleanupStack::PopAndDestroy( key ); - EUNIT_ASSERT( !iLiveSession->iStoreEncoderConfigInfo ) - - CleanupStack::PopAndDestroy( codec ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_ReadCodecConfigKeyLL() - { - HBufC8* key( NULL ); - - // Try with H263, leave expected - CMceVideoCodec* codecH263 = CMceH263Codec::NewLC( KMceSDPNameH263() ); - EUNIT_ASSERT_LEAVE( key = iLiveSession->ReadCodecConfigKeyL( *codecH263 ) ) - CleanupStack::PopAndDestroy( codecH263 ); - - // Try without an entry in CenRep, leave expected - CMceVideoCodec* codec = CMceAvcCodec::NewLC( KMceSDPNameH264() ); - codec->SetAllowedBitrates( 0 | KMceAvcBitrateLevel1 ); - EUNIT_ASSERT_LEAVE( key = iLiveSession->ReadCodecConfigKeyL( *codec ) ) - - // Create CenRep entry which does not include wanted bitrate, NULL value - // expected - CRepository::SetStubAvcConfigKeysL( KMusAvcBitrateLevel1bTestText() ); - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( !key ) - - // Create entry with all AVC keys and try with all the values - CRepository::SetStubAvcConfigKeysL( KMusAvcAllLevelsConcatenation() ); - - // KMceAvcBitrateLevel1 - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( key ); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel1TestText ); - CleanupStack::PopAndDestroy( key ); - - // KMceAvcBitrateLevel1b - codec->SetAllowedBitrates( KMceAvcBitrateLevel1b ); - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( key ); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel1bTestText ); - CleanupStack::PopAndDestroy( key ); - - // KMceAvcBitrateLevel1_1 - codec->SetAllowedBitrates( KMceAvcBitrateLevel1_1 ); - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( key ); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel1_1TestText ); - CleanupStack::PopAndDestroy( key ); - - // KMceAvcBitrateLevel1_2 - codec->SetAllowedBitrates( KMceAvcBitrateLevel1_2 ); - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( key ); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel1_2TestText ); - CleanupStack::PopAndDestroy( key ); - - // KMceAvcBitrateLevel1_3 - codec->SetAllowedBitrates( KMceAvcBitrateLevel1_3 ); - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( key ); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel1_3TestText ); - CleanupStack::PopAndDestroy( key ); - - // KMceAvcBitrateLevel2 - codec->SetAllowedBitrates( KMceAvcBitrateLevel2 ); - key = iLiveSession->ReadCodecConfigKeyL( *codec ); - EUNIT_ASSERT( key ); - CleanupStack::PushL( key ); - EUNIT_ASSERT_EQUALS( *key, KMusAvcBitrateLevel2TestText ); - CleanupStack::PopAndDestroy( key ); - - CleanupStack::PopAndDestroy( codec ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_StoreEncoderConfigInfoLL() - { - CRepository::iStaticWriteAvcKeysToStaticData = ETrue; - - // Try with clean CenRep - MultimediaSharingSettings::SetEncoderConfigInfoL( KNullDesC8() ); - - ESTABLISH_OUT_SESSION( iLiveSession ) // calls StoreEncoderConfigInfoL - // If StoreEncoderConfigInfoL leaves with KErrNoMemory, - // MMusEngSessionObserver::SessionFailed will be called. - if ( iLcSessionObserver->iCalledFunction == CLcSessionObserverStub::ESessionFailed ) - { - User::Leave( KErrNoMemory ); - } - - HBufC8* keys = MultimediaSharingSettings::EncoderConfigInfoLC(); - EUNIT_ASSERT_EQUALS( *keys, KMusAvcBitrateLevel_1b_ConfigKey() ) - CleanupStack::PopAndDestroy( keys ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_RemoteVideoPlayerL() - { - EUNIT_ASSERT( iLiveSession->RemoteVideoPlayer() == - iLiveSession->iRemoteVideoPlayer ) - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void UT_CMusEngTwoWaySession::UT_InactivityTimeoutL() - { - // Not receiving, no effect - iLiveSession->iReceiving = EFalse; - CMceVideoStream* videoStream = CMceVideoStream::NewLC(); - CMceRtpSource* rtpSource = CMceRtpSource::NewLC(); - iLiveSession->InactivityTimeout( *videoStream, *rtpSource ); - EUNIT_ASSERT( iLcSessionObserver->IsReseted() ); - - // Receiving, state change is notified and - // receiving and buffering status are cleared - iLiveSession->iBuffered = ETrue; - iLiveSession->iReceiving = ETrue; - iLiveSession->InactivityTimeout( *videoStream, *rtpSource ); - EUNIT_ASSERT_EQUALS( iLcSessionObserver->iCalledFunction, - CLcSessionObserverStub::EPlayerStateChanged ); - EUNIT_ASSERT( !iLiveSession->iReceiving ); - EUNIT_ASSERT( !iLiveSession->iBuffered ); - CleanupStack::PopAndDestroy( rtpSource ); - CleanupStack::PopAndDestroy( videoStream ); - } - - -// TEST TABLE - -EUNIT_BEGIN_TEST_TABLE( - UT_CMusEngTwoWaySession, - "UT_CMusEngTwoWaySession", - "UNIT" ) - -EUNIT_TEST( - "NewL - test ", - "CMusEngTwoWaySession", - "NewL", - "FUNCTIONALITY", - SetupL, UT_NewLL, Teardown) - -EUNIT_TEST( - "EstablishLcSessionL - test ", - "CMusEngTwoWaySession", - "EstablishLcSessionL", - "FUNCTIONALITY", - SetupL, UT_EstablishLcSessionLL, Teardown) - -EUNIT_TEST( - "EnableDisplayL - test ", - "CMusEngTwoWaySession", - "EnableDisplayL", - "FUNCTIONALITY", - SetupL, UT_EnableDisplayLL, Teardown) - -EUNIT_TEST( - "SetOrientationL - test ", - "CMusEngTwoWaySession", - "SetOrientationL", - "FUNCTIONALITY", - SetupL, UT_SetOrientationLL, Teardown) - -EUNIT_TEST( - "SetLocalRectL - test ", - "CMusEngTwoWaySession", - "SetLocalRectL", - "FUNCTIONALITY", - SetupL, UT_SetLocalRectLL, Teardown) - -EUNIT_TEST( - "SetRectsL - test ", - "CMusEngTwoWaySession", - "SetRectsL", - "FUNCTIONALITY", - SetupL, UT_SetRectsLL, Teardown) - -EUNIT_TEST( - "CompleteSessionStructureL - test ", - "CMusEngTwoWaySession", - "CompleteSessionStructureL", - "FUNCTIONALITY", - SetupL, UT_CompleteSessionStructureLL, Teardown) - -EUNIT_TEST( - "HandleSessionStateChanged - test ", - "CMusEngTwoWaySession", - "HandleSessionStateChanged", - "FUNCTIONALITY", - SetupL, UT_HandleSessionStateChangedL, Teardown) - -EUNIT_TEST( - "AdjustVideoCodecL - test ", - "CMusEngTwoWaySession", - "AdjustVideoCodecL", - "FUNCTIONALITY", - SetupL, UT_AdjustVideoCodecLL, Teardown) - -EUNIT_TEST( - "AdjustAudioCodecL - test ", - "CMusEngTwoWaySession", - "AdjustAudioCodecL", - "FUNCTIONALITY", - SetupL, UT_AdjustAudioCodecLL, Teardown) - -EUNIT_TEST( - "DoCodecSelectionL- test ", - "CMusEngTwoWaySession", - "DoCodecSelectionL", - "FUNCTIONALITY", - SetupL, UT_DoCodecSelectionLL, Teardown) - -EUNIT_TEST( - "StreamStateChangedL() - test ", - "CMusEngTwoWaySession", - "StreamStateChangedL()", - "FUNCTIONALITY", - SetupL, UT_StreamStateChangedL, Teardown) - -EUNIT_TEST( - "StreamStateChangedL( src ) - test ", - "CMusEngTwoWaySession", - "StreamStateChangedL( src )", - "FUNCTIONALITY", - SetupL, UT_StreamStateChangedWithSourceL, Teardown) - -EUNIT_TEST( - "SetEncodingDeviceL - test ", - "CMusEngTwoWaySession", - "SetEncodingDeviceL", - "FUNCTIONALITY", - SetupL, UT_SetEncodingDeviceLL, Teardown) - -EUNIT_TEST( - "SetCodecConfigKeyL - test ", - "CMusEngTwoWaySession", - "SetCodecConfigKeyL", - "FUNCTIONALITY", - SetupL, UT_SetCodecConfigKeyLL, Teardown) - -EUNIT_TEST( - "ReadCodecConfigKeyL - test ", - "CMusEngTwoWaySession", - "ReadCodecConfigKeyL", - "FUNCTIONALITY", - SetupL, UT_ReadCodecConfigKeyLL, Teardown) - -EUNIT_TEST( - "StoreEncoderConfigInfoL - test ", - "CMusEngTwoWaySession", - "StoreEncoderConfigInfoL", - "FUNCTIONALITY", - SetupL, UT_StoreEncoderConfigInfoLL, Teardown) - -EUNIT_TEST( - "RemoteVideoPlayer - test ", - "CMusEngTwoWaySession", - "RemoteVideoPlayer", - "FUNCTIONALITY", - SetupL, UT_RemoteVideoPlayerL, Teardown) - -EUNIT_TEST( - "EnableLcFileL - test ", - "CMusEngTwoWaySession", - "EnableLcFileL", - "FUNCTIONALITY", - SetupL, UT_EnableLcFileL, Teardown) - -EUNIT_TEST( - "InactivityTimeout - test ", - "CMusEngTwoWaySession", - "InactivityTimeout", - "FUNCTIONALITY", - SetupL, UT_InactivityTimeoutL, Teardown) - -EUNIT_END_TEST_TABLE - -// END OF FILE - -