diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmceutils.cpp --- a/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmceutils.cpp Thu Aug 19 09:51:39 2010 +0300 +++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengmceutils.cpp Tue Aug 31 15:12:07 2010 +0300 @@ -97,16 +97,6 @@ CEUnitTestSuiteClass::ConstructL(); } - -// ----------------------------------------------------------------------------- -// From MMusSipProfileUser -// ----------------------------------------------------------------------------- -// -TBool UT_MusEngMceUtils::IsRoamingBetweenAPsAllowed() - { - return ETrue; // Dummy implementation - } - // ----------------------------------------------------------------------------- // @@ -115,7 +105,9 @@ void UT_MusEngMceUtils::SetupL() { iManager = CMceManager::NewL( TUid::Null(), NULL ); - iProfileHandler = CMusSipProfileHandler::NewL( *this ); + iObserver = new( ELeave ) CMusEngObserverStub; + iObserver->iRoamingBetweenAPsAllowed = ETrue; + iProfileHandler = CMusSipProfileHandler::NewL( *iObserver ); iProfileHandler->CreateProfileL( KSipProfileId ); iEmptySession = CMceOutSession::NewL( *iManager, @@ -162,8 +154,10 @@ // Video part CMceVideoStream* videoIn = CMceVideoStream::NewLC(); - videoIn->AddSinkL( CMceDisplaySink::NewLC( *iManager ) ); + CMceDisplaySink* receivingDisplay = CMceDisplaySink::NewLC( *iManager ); + videoIn->AddSinkL( receivingDisplay ); CleanupStack::Pop(); + iReceivingDisplay = receivingDisplay; videoIn->SetSourceL( CMceRtpSource::NewLC() ); CleanupStack::Pop(); @@ -172,6 +166,56 @@ CleanupStack::Pop( videoIn ); } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_MusEngMceUtils::Setup2L() + { + iManager = CMceManager::NewL( TUid::Null(), NULL ); + iObserver = new( ELeave ) CMusEngObserverStub; + iObserver->iRoamingBetweenAPsAllowed = ETrue; + iProfileHandler = CMusSipProfileHandler::NewL( *iObserver ); + + iProfileHandler->CreateProfileL( KSipProfileId ); + iEmptySession = CMceOutSession::NewL( *iManager, + *iProfileHandler->Profile(), + KTestRecipientSipUri8() ); + + // Contruct an outgoing video sesssion + iVideoOutSession = CMceOutSession::NewL( *iManager, + *iProfileHandler->Profile(), + KTestRecipientSipUri8() ); + + + CMceVideoStream* videoOut = CMceVideoStream::NewLC(); + + videoOut->AddSinkL( CMceRtpSink::NewLC() ); + CleanupStack::Pop(); + + videoOut->AddSinkL( CMceDisplaySink::NewLC( *iManager ) ); + CleanupStack::Pop(); + + videoOut->SetSourceL( CMceCameraSource::NewLC( *iManager ) ); + CleanupStack::Pop(); + + // Video part + CMceVideoStream* videoIn = CMceVideoStream::NewLC(); + + CMceDisplaySink* receivingDisplay = CMceDisplaySink::NewLC( *iManager ); + videoIn->AddSinkL( receivingDisplay ); + CleanupStack::Pop(); + iReceivingDisplay = receivingDisplay; + + videoIn->SetSourceL( CMceRtpSource::NewLC() ); + CleanupStack::Pop(); + + videoOut->BindL( videoIn ); + CleanupStack::Pop( videoIn ); + + iVideoOutSession->AddStreamL( videoOut ); + CleanupStack::Pop( videoOut ); + } // ----------------------------------------------------------------------------- // @@ -182,8 +226,11 @@ delete iEmptySession; delete iVideoOutSession; delete iVideoInSession; + iVideoInSession = NULL; delete iProfileHandler; + delete iObserver; delete iManager; + iReceivingDisplay = NULL; // Not owned } @@ -196,7 +243,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_IsVideoInStreamL() +void UT_MusEngMceUtils::UT_IsVideoInStreamL() { // Stream 0 is audio stream EUNIT_ASSERT( !MusEngMceUtils::IsVideoInStream( @@ -221,7 +268,31 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_IsAudioInStreamL() +void UT_MusEngMceUtils::UT_IsVideoOutStreamL() + { + // Stream 0 is audio stream + EUNIT_ASSERT( !MusEngMceUtils::IsVideoOutStream( + *iVideoInSession->Streams()[0] ) ) + + // No sink + CMceVideoStream* videoStream = CMceVideoStream::NewLC(); + EUNIT_ASSERT( !MusEngMceUtils::IsVideoOutStream( *videoStream ) ) + CleanupStack::PopAndDestroy( videoStream ); + + // display sink + EUNIT_ASSERT( !MusEngMceUtils::IsVideoOutStream( + *iVideoInSession->Streams()[1] ) ) + + // Video outstream + EUNIT_ASSERT( MusEngMceUtils::IsVideoOutStream( + *iVideoOutSession->Streams()[0] ) ) + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_MusEngMceUtils::UT_IsAudioInStreamL() { // Stream 0 is video stream EUNIT_ASSERT( !MusEngMceUtils::IsAudioInStream( @@ -248,7 +319,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetVideoOutStreamLL() +void UT_MusEngMceUtils::UT_GetVideoOutStreamLL() { // No streams, must fail EUNIT_ASSERT_SPECIFIC_LEAVE( @@ -273,15 +344,30 @@ MusEngMceUtils::GetVideoOutStreamL( *iVideoInSession ), KErrNotFound ) - // One outgoing video stream, succeeds + // One incoming video stream with bound outstream, must find bound stream + CMceVideoStream* boundVideoOut = CMceVideoStream::NewLC(); + boundVideoOut->AddSinkL( CMceRtpSink::NewLC() ); + CleanupStack::Pop(); + boundVideoOut->SetSourceL( CMceCameraSource::NewLC( *iManager ) ); + CleanupStack::Pop(); + reinterpret_cast( + iVideoInSession->Streams()[ 1 ] )->BindL( boundVideoOut ); + CleanupStack::Pop( boundVideoOut ); CMceVideoStream* videoStream = MusEngMceUtils::GetVideoOutStreamL( - *iVideoOutSession ); + *iVideoInSession ); + EUNIT_ASSERT( videoStream ) + EUNIT_ASSERT( videoStream->Type() == KMceVideo ) + EUNIT_ASSERT( videoStream->Sinks().Count() == 1 ) // Rtp + EUNIT_ASSERT( videoStream->Sinks()[0]->Type() == KMceRTPSink ) + + // One outgoing video stream, succeeds + videoStream = MusEngMceUtils::GetVideoOutStreamL( *iVideoOutSession ); EUNIT_ASSERT( videoStream ) EUNIT_ASSERT( videoStream->Type() == KMceVideo ) EUNIT_ASSERT( videoStream->Sinks().Count() == 2 ) // Rtp, Display EUNIT_ASSERT( videoStream->Sinks()[0]->Type() == KMceRTPSink ) EUNIT_ASSERT( videoStream->Sinks()[1]->Type() == KMceDisplaySink ) - + // Add another stream CMceVideoStream* videoOut = CMceVideoStream::NewLC(); @@ -306,7 +392,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetVideoInStreamLL() +void UT_MusEngMceUtils::UT_GetVideoInStreamLL() { // No streams, must fail EUNIT_ASSERT_SPECIFIC_LEAVE( @@ -362,7 +448,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetRecordingStreamL() +void UT_MusEngMceUtils::UT_GetRecordingStreamL() { CMceVideoStream* recordingStream = MusEngMceUtils::GetRecordingStream( *iVideoInSession ); @@ -392,7 +478,7 @@ // From stream // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetMediaSinkL() +void UT_MusEngMceUtils::UT_GetMediaSinkFromStreamL() { CMceMediaSink* sink = MusEngMceUtils::GetMediaSink( *(iVideoInSession->Streams()[0]), @@ -412,7 +498,7 @@ // From stream // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetMediaSinkLL() +void UT_MusEngMceUtils::UT_GetMediaSinkLFromStreamL() { CMceMediaSink* sink = NULL; EUNIT_ASSERT_SPECIFIC_LEAVE( @@ -430,7 +516,7 @@ // From session // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetMediaSink2L() +void UT_MusEngMceUtils::UT_GetMediaSinkFromSessionL() { CMceMediaSink* sink = MusEngMceUtils::GetMediaSink( *iEmptySession, KMceRTPSink ); @@ -447,7 +533,7 @@ // From session // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetMediaSinkL2L() +void UT_MusEngMceUtils::UT_GetMediaSinkLFromSessionL() { CMceMediaSink* sink = NULL; EUNIT_ASSERT_SPECIFIC_LEAVE( MusEngMceUtils::GetMediaSinkL( *iEmptySession, @@ -463,7 +549,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetCameraLL() +void UT_MusEngMceUtils::UT_GetCameraLL() { // empty session fails EUNIT_ASSERT_SPECIFIC_LEAVE( MusEngMceUtils::GetCameraL( *iEmptySession ), @@ -497,7 +583,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetFileSourceLL() +void UT_MusEngMceUtils::UT_GetFileSourceLL() { // empty session fails EUNIT_ASSERT_SPECIFIC_LEAVE( @@ -538,7 +624,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetDisplayL() +void UT_MusEngMceUtils::UT_GetDisplayL() { CMceDisplaySink* display = MusEngMceUtils::GetDisplay( *iEmptySession ); @@ -555,7 +641,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_GetDisplayLL() +void UT_MusEngMceUtils::UT_GetDisplayLL() { CMceDisplaySink* display = NULL; @@ -573,7 +659,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_AddDisplayLL() +void UT_MusEngMceUtils::UT_AddDisplayLL() { TRect rect( 110, 111, 112, 113 ); @@ -617,6 +703,14 @@ EUNIT_ASSERT_EQUALS( display->DisplayRectL(), newRect ); CleanupStack::PopAndDestroy( videoStream ); + + // Add disabled display + CMceVideoStream* videoStream2 = CMceVideoStream::NewLC(); + MusEngMceUtils::AddDisplayL( *videoStream2, *iManager, rect, ETrue ); + EUNIT_ASSERT_EQUALS( videoStream2->Sinks().Count(), 1 ) + EUNIT_ASSERT_EQUALS( videoStream2->Sinks()[0]->Type(), KMceDisplaySink ) + EUNIT_ASSERT( !videoStream2->Sinks()[0]->IsEnabled() ); + CleanupStack::PopAndDestroy( videoStream2 ); } @@ -624,7 +718,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_AddSpeakerLL() +void UT_MusEngMceUtils::UT_AddSpeakerLL() { // Check that speaker cannot be added to video stream @@ -666,7 +760,7 @@ // // ----------------------------------------------------------------------------- // -void UT_MusEngMceUtils::UT_MusEngMceUtils_DisableStreamLL() +void UT_MusEngMceUtils::UT_DisableStreamLL() { CMceAudioStream* audioStream = CMceAudioStream::NewLC(); @@ -707,8 +801,72 @@ CleanupStack::PopAndDestroy( audioStream ); } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_MusEngMceUtils::UT_GetReceivingDisplayL() + { + CMceDisplaySink* display = MusEngMceUtils::GetReceivingDisplay( *iEmptySession ); + + EUNIT_ASSERT( !display ) + + display = MusEngMceUtils::GetReceivingDisplay( *iVideoOutSession ); + + EUNIT_ASSERT( display ) + EUNIT_ASSERT( display->Type() == KMceDisplaySink ) + EUNIT_ASSERT( display == iReceivingDisplay ) + } +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_MusEngMceUtils::UT_GetReceivingDisplayLL() + { + CMceDisplaySink* display = NULL; + + EUNIT_ASSERT_SPECIFIC_LEAVE( MusEngMceUtils::GetReceivingDisplayL( *iEmptySession ), + KErrNotFound ) + + display = MusEngMceUtils::GetReceivingDisplayL( *iVideoOutSession ); + + EUNIT_ASSERT( display ) + EUNIT_ASSERT( display->Type() == KMceDisplaySink ) + EUNIT_ASSERT( display == iReceivingDisplay ) + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_MusEngMceUtils::UT_GetVfDisplayL() + { + CMceDisplaySink* display = MusEngMceUtils::GetVfDisplay( *iEmptySession ); + + EUNIT_ASSERT( !display ) + + display = MusEngMceUtils::GetVfDisplay( *iVideoOutSession ); + + EUNIT_ASSERT( display ) + EUNIT_ASSERT( display->Type() == KMceDisplaySink ) + EUNIT_ASSERT( display != iReceivingDisplay ) + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_MusEngMceUtils::UT_EnableInactivityTimerL() + { + // Instream not found, nothing is done + EUNIT_ASSERT_EQUALS( MusEngMceUtils::EnableInactivityTimer( *iEmptySession, 1000 ), KErrNotFound ); + + // In stream found + EUNIT_ASSERT_EQUALS( MusEngMceUtils::EnableInactivityTimer( *iVideoOutSession, 1000 ), KErrNone ); + } + // TEST TABLE EUNIT_BEGIN_TEST_TABLE( @@ -721,113 +879,147 @@ "MusEngMceUtils", "IsVideoInStream", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_IsVideoInStreamL, Teardown) + SetupL, UT_IsVideoInStreamL, Teardown) EUNIT_TEST( + "IsVideoOutStream - test ", + "MusEngMceUtils", + "IsVideoOutStream", + "FUNCTIONALITY", + SetupL, UT_IsVideoOutStreamL, Teardown) + +EUNIT_TEST( "IsAudioInStream - test ", "MusEngMceUtils", "IsAudioInStream", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_IsAudioInStreamL, Teardown) + SetupL, UT_IsAudioInStreamL, Teardown) EUNIT_TEST( "GetVideoOutStreamL - test ", "MusEngMceUtils", "GetVideoOutStreamL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetVideoOutStreamLL, Teardown) + SetupL, UT_GetVideoOutStreamLL, Teardown) EUNIT_TEST( "GetVideoInStreamL - test ", "MusEngMceUtils", "GetVideoInStreamL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetVideoInStreamLL, Teardown) + SetupL, UT_GetVideoInStreamLL, Teardown) EUNIT_TEST( "GetRecordingStream - test ", "MusEngMceUtils", "GetRecordingStream", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetRecordingStreamL, Teardown) + SetupL, UT_GetRecordingStreamL, Teardown) EUNIT_TEST( "GetMediaSink - test ", "MusEngMceUtils", "GetMediaSink", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetMediaSinkL, Teardown) + SetupL, UT_GetMediaSinkFromStreamL, Teardown) EUNIT_TEST( "GetMediaSinkL - test ", "MusEngMceUtils", "GetMediaSinkL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetMediaSinkLL, Teardown) + SetupL, UT_GetMediaSinkLFromStreamL, Teardown) EUNIT_TEST( "GetMediaSink2 - test ", "MusEngMceUtils", "GetMediaSink2", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetMediaSink2L, Teardown) + SetupL, UT_GetMediaSinkFromSessionL, Teardown) EUNIT_TEST( "GetMediaSinkL2 - test ", "MusEngMceUtils", "GetMediaSinkL2", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetMediaSinkL2L, Teardown) + SetupL, UT_GetMediaSinkLFromSessionL, Teardown) EUNIT_TEST( "GetCameraL - test ", "MusEngMceUtils", "GetCameraL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetCameraLL, Teardown) + SetupL, UT_GetCameraLL, Teardown) EUNIT_TEST( "GetFileSourceL - test ", "MusEngMceUtils", "GetFileSourceL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetFileSourceLL, Teardown) + SetupL, UT_GetFileSourceLL, Teardown) EUNIT_TEST( "GetDisplay - test ", "MusEngMceUtils", "GetDisplay", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetDisplayL, Teardown) + SetupL, UT_GetDisplayL, Teardown) EUNIT_TEST( "GetDisplayL - test ", "MusEngMceUtils", "GetDisplayL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_GetDisplayLL, Teardown) + SetupL, UT_GetDisplayLL, Teardown) EUNIT_TEST( "AddDisplayL - test ", "MusEngMceUtils", "AddDisplayL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_AddDisplayLL, Teardown) + SetupL, UT_AddDisplayLL, Teardown) EUNIT_TEST( "AddSpeakerL - test ", "MusEngMceUtils", "AddSpeakerL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_AddSpeakerLL, Teardown) + SetupL, UT_AddSpeakerLL, Teardown) EUNIT_TEST( "DisableStreamL - test ", "MusEngMceUtils", "DisableStreamL", "FUNCTIONALITY", - SetupL, UT_MusEngMceUtils_DisableStreamLL, Teardown) + SetupL, UT_DisableStreamLL, Teardown) + +EUNIT_TEST( + "GetReceivingDisplay - test ", + "MusEngMceUtils", + "GetReceivingDisplay", + "FUNCTIONALITY", + Setup2L, UT_GetReceivingDisplayL, Teardown) +EUNIT_TEST( + "GetReceivingDisplayL - test ", + "MusEngMceUtils", + "GetReceivingDisplayL", + "FUNCTIONALITY", + Setup2L, UT_GetReceivingDisplayLL, Teardown) + +EUNIT_TEST( + "GetVfDisplay - test ", + "MusEngMceUtils", + "GetVfDisplay", + "FUNCTIONALITY", + Setup2L, UT_GetVfDisplayL, Teardown) + +EUNIT_TEST( + "EnableInactivityTimer - test ", + "MusEngMceUtils", + "EnableInactivityTimer", + "FUNCTIONALITY", + Setup2L, UT_EnableInactivityTimerL, Teardown) EUNIT_END_TEST_TABLE