mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengoutsession.cpp
changeset 0 f0cf47e981f9
child 32 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengoutsession.cpp	Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,614 @@
+/*
+* 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_musengoutsession.h"
+#include "musengstubs.h"
+#include "musengtestdefs.h"
+
+#include "musenglivesession.h"
+#include "musengclipsession.h"
+#include "mussipprofilehandler.h"
+
+
+//  SYSTEM INCLUDES
+#include <digia/eunit/eunitmacros.h>
+
+#include <mceoutsession.h>
+#include <mcestreambundle.h>
+#include <mceaudiostream.h>
+#include <mcevideostream.h>
+#include <mcespeakersink.h>
+#include <mcedisplaysink.h>
+#include <mceh263codec.h>
+#include <mceavccodec.h>
+#include <mceaudiocodec.h>
+
+#include <sipprofile.h>
+#include <sipstrings.h>
+
+#include <audiopreference.h>
+#include <uri8.h>
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngOutSession* UT_CMusEngOutSession::NewL()
+    {
+    UT_CMusEngOutSession* self = UT_CMusEngOutSession::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngOutSession* UT_CMusEngOutSession::NewLC()
+    {
+    UT_CMusEngOutSession* self = new( ELeave ) UT_CMusEngOutSession();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngOutSession::~UT_CMusEngOutSession()
+    {
+    // NOP
+    }
+
+
+// -----------------------------------------------------------------------------
+// Default constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusEngOutSession::UT_CMusEngOutSession()
+    {
+    // NOP
+    }
+
+
+// -----------------------------------------------------------------------------
+// Second phase construct
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngOutSession::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngOutSession::SetupL()
+    {
+    iObserver = new( ELeave ) CMusEngObserverStub;
+    iLiveSession = CMusEngLiveSession::NewL( KNullDesC(),
+                                             TRect(0,0, 100,100),
+                                             *iObserver,
+                                             *iObserver,
+                                             *iObserver );
+    SIPStrings::OpenL();
+    
+    iLiveSession->iPrivate = EFalse;
+    iLiveSession->iPrivateNumber = EFalse;
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngOutSession::Teardown()
+    {
+    SIPStrings::Close();
+    delete iLiveSession;
+    delete iObserver;
+    }
+
+
+
+// TEST CASES
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusEngOutSession::UT_CMusEngOutSession_InviteLL()
+    {
+
+    // Initial state
+    EUNIT_ASSERT( !iLiveSession->iSession );
+    
+    // Simulate failing session structure construction.
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    
+    iLiveSession->iSession->iState = CMceSession::EIdle;
+    delete iLiveSession->iSession->Streams()[0];
+    const RPointerArray<CMceMediaStream>& constStreams = 
+                                            iLiveSession->iSession->Streams();
+    const_cast<RPointerArray<CMceMediaStream>&>(constStreams)[0] = NULL;
+
+    // Normal invite
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    
+    EUNIT_ASSERT( iLiveSession->iSession );
+    // Next assertion ensures that session structure is new
+    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() );    
+    EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines );
+    EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->Count() == 1 );
+    EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->MdcaPoint( 0 ) ==
+                  KMusEngSessionSdpLineXApplication() );
+    
+    // Normal operator invite
+    delete iLiveSession;
+    iLiveSession = NULL;
+    iLiveSession = CMusEngLiveSession::NewL( KNullDesC,
+                                             TRect(0,0, 100,100),
+                                             *iObserver,
+                                             *iObserver,
+                                             *iObserver );
+   	iLiveSession->iOperatorVariant = ETrue;
+   	CSIPProfile* profile = iLiveSession->iSipProfileHandler->Profile();
+    delete profile->iArray;
+    profile->iArray = NULL;
+    profile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 );
+    profile->iArray->AppendL( KMusTestUri );
+
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    
+    EUNIT_ASSERT( iLiveSession->iSession );
+    // Next assertion ensures that session structure is new
+    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() == 3 );
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 0 ) ==
+                  KMusEngAcceptContactHeader() );
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 1 ) ==
+                  KMusAcceptHeader() );
+    
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 2 ) ==
+                  KMusPPreferredIdentityTestHeader() );
+    
+    EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines );
+    EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->Count() == 2 );
+    EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->MdcaPoint( 0 ) ==
+                  KMusEngSessionSdpLineApplication() )
+   	EUNIT_ASSERT( iLiveSession->iSession->iSessionSDPLines->MdcaPoint( 1 ) ==
+                  KMusEngSessionSdpLineType() )
+                  
+    EUNIT_ASSERT( iLiveSession->iSession->Streams().Count() > 0 );   
+    TBool foundBandwidthLineFromMediaLevel( EFalse );
+    for ( TInt i = 0; i <  iLiveSession->iSession->Streams().Count(); i++ )
+        {
+        if ( iLiveSession->iSession->Streams()[0]->Type() == KMceVideo )
+            {
+            if ( iLiveSession->iSession->Streams()[0]->iMediaSDPLines->MdcaCount() > 0 &&
+                 iLiveSession->iSession->Streams()[0]->iMediaSDPLines->MdcaPoint( 0 ) ==
+                    KMusEngSessionSdpLineBandwidthField() )
+                {
+                foundBandwidthLineFromMediaLevel = ETrue;
+                }
+            }
+        }
+    EUNIT_ASSERT( foundBandwidthLineFromMediaLevel );
+                      
+    // Try invite again, must fail
+    TRAPD( error, iLiveSession->InviteL( KTestRecipientSipUri ) );
+    MUS_TEST_FORWARD_ALLOC_FAILURE( error );
+    EUNIT_ASSERT( error == KErrAlreadyExists );
+    
+    // Simulate normal session ending, no need for observer call in this case
+    iLiveSession->iSession->iState = CMceSession::ETerminated;
+    
+    // Try again. Establishment must be OK with new MceSession object
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    EUNIT_ASSERT( iLiveSession->iSession->State() == CMceSession::EOffering );
+
+      
+    }
+    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//    
+void UT_CMusEngOutSession::UT_CMusEngOutSession_CancelInviteLL()
+    {
+    // Try to cancel, must fail
+    TRAPD( error, iLiveSession->CancelInviteL() );
+    MUS_TEST_FORWARD_ALLOC_FAILURE( error );
+    EUNIT_ASSERT( error == KErrNotReady );
+    
+    // Invite
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    EUNIT_ASSERT( iLiveSession->iSession->State() == CMceSession::EOffering );
+    
+    // Cancel
+    iLiveSession->CancelInviteL();
+    EUNIT_ASSERT( iLiveSession->iSession->State() == CMceSession::ECancelling );
+    
+    // Try to cancel again, does nothing
+    iLiveSession->CancelInviteL();
+    EUNIT_ASSERT( iLiveSession->iSession->State() == CMceSession::ECancelling );
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//  
+void UT_CMusEngOutSession::UT_CMusEngOutSession_EstablishSessionLL()
+    {
+    // Try to establish, must fail, because of missing session
+    TRAPD( error, iLiveSession->EstablishSessionL() );
+    MUS_TEST_FORWARD_ALLOC_FAILURE( error );
+    EUNIT_ASSERT( error == KErrNotReady );
+    iLiveSession->iPrivate = ETrue;
+    iLiveSession->iPrivateNumber = EFalse;
+    
+    // Call to CMusEngOutMceSession::InviteL leads to call to EstablishL
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    
+    // Check that ports are correct
+    
+    for ( TInt i = 0; i < iLiveSession->iSession->Streams().Count(); ++i )
+        {
+        CMceMediaStream* stream = iLiveSession->iSession->Streams()[i];
+        if ( stream->Type() == KMceAudio )
+            {
+            EUNIT_ASSERT( stream->iLocalMediaPort == 57344 )
+            }
+        else
+            {
+            EUNIT_ASSERT( stream->iLocalMediaPort == 49152 )
+            }
+        }
+        
+    // Check Accept-Contact -header
+    
+    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() );   
+    EUNIT_ASSERT( iLiveSession->iSession->State() == CMceSession::EOffering );
+    
+    // Privacy test : Check Private -header & originator
+    delete iLiveSession;
+    iLiveSession = NULL;
+    iLiveSession = CMusEngLiveSession::NewL( KNullDesC(),
+                                                TRect(0,0, 100,100),
+                                                *iObserver,
+                                                *iObserver,
+                                                *iObserver );
+    iLiveSession->iPrivate = ETrue;
+    iLiveSession->iPrivateNumber = ETrue;
+    
+    // Call to CMusEngOutMceSession::InviteL leads to call to EstablishL
+    iLiveSession->InviteL( KTestRecipientSipUri );
+    EUNIT_ASSERT( *iLiveSession->iSession->iOriginator == KMusAnonymousHeader );
+    
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders )
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->Count() == 3 )
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 0 ) ==
+                  KMusEngAcceptContactHeader() )
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 1 ) ==
+                  KMusAcceptHeader() );   
+    EUNIT_ASSERT( iLiveSession->iSession->iHeaders->MdcaPoint( 2 ).Find( KMusPrivacyHeader() ) == 0 );
+    
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//    
+void UT_CMusEngOutSession::UT_CMusEngOutSession_HandleTerminationL()
+    {
+
+    // Try different values
+    iLiveSession->HandleTermination( KSipStatusCode400BadRequest, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionBadRequestCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode401Unauthorized, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionUnauthorizedCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode402PaymentRequired, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionPaymentRequiredCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode404RecipientNotFound, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionRecipientNotFoundCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode416UnsupportedUriScheme, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionRecipientNotFoundCalled );
+    iObserver->Reset();
+
+    iLiveSession->HandleTermination( KSipStatusCode479NotAbleToProcessURI, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionRecipientNotFoundCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( 
+                            KSipStatusCode407ProxyAuthenticationRequired, 
+                            KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionProxyAuthenticationRequiredCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode408ConnectionTimeOut, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionRequestTimeOutCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode415UnsupportedMediaType, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionUnsupportedMediaTypeCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode488NotAcceptableHere, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionUnsupportedMediaTypeCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode606NotAcceptable, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionUnsupportedMediaTypeCalled );
+    iObserver->Reset(); 
+    
+    iLiveSession->HandleTermination( KSipStatusCode486BusyHere, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionBusyHereCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode487RequestCancelled, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionRequestCancelledCalled );
+    iObserver->Reset();
+    
+    iLiveSession->HandleTermination( KSipStatusCode603Decline, KNullDesC8()  );
+    EUNIT_ASSERT( iObserver->iSessionRejectedCalled );
+    iObserver->Reset();
+
+    iLiveSession->HandleTermination( KSipStatusCode480TemporarilyNotAvailable, 
+                                     KNullDesC8() );
+    EUNIT_ASSERT( iObserver->iSessionTemporarilyNotAvailable );
+    iObserver->Reset();
+    
+    // Receive 486 with operator variant
+    iLiveSession->iOperatorVariant = ETrue;
+    iLiveSession->HandleTermination( KSipStatusCode486BusyHere, KNullDesC8()  );
+    EUNIT_ASSERT( iObserver->iSessionRejectedCalled )
+    EUNIT_ASSERT( !iObserver->iSessionBusyHereCalled )
+    iObserver->Reset();
+    iLiveSession->iOperatorVariant = EFalse;
+    
+    // Normal termination, let the base class handle
+    iLiveSession->HandleTermination(  KSipStatusCode200OK, KNullDesC8()  );
+    EUNIT_ASSERT( iObserver->iSessionTerminatedCalled ); // called by base class
+    iObserver->Reset();
+
+    }    
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//   
+void UT_CMusEngOutSession::UT_CMusEngOutSession_AdjustVideoCodecLL()
+    {
+    //H263
+    CMceH263Codec* codecH263 = CMceH263Codec::NewLC( KMceSDPNameH2632000() );
+    iLiveSession->CMusEngMceOutSession::AdjustVideoCodecL( *codecH263 );
+    // Test payloadtype
+    EUNIT_ASSERT( codecH263->iPayloadType == 96 )
+    CleanupStack::PopAndDestroy( codecH263 );
+    
+    //H264
+    CMceAvcCodec* codecAvc = CMceAvcCodec::NewLC( KMceSDPNameH264() );
+    iLiveSession->CMusEngMceOutSession::AdjustVideoCodecL( *codecAvc );
+    // Test payloadtype
+    EUNIT_ASSERT( codecAvc->iPayloadType == 98 )
+    CleanupStack::PopAndDestroy( codecAvc );
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//   
+void UT_CMusEngOutSession::UT_CMusEngOutSession_AdjustAudioCodecLL()
+    {
+    CMceAudioCodec* codec = 
+                iLiveSession->iManager->SupportedAudioCodecs()[0]->CloneL();
+    CleanupStack::PushL( codec );
+    iLiveSession->CMusEngMceOutSession::AdjustAudioCodecL( *codec );
+    
+    // Test payloadtype
+    
+    EUNIT_ASSERT( codec->iPayloadType == 97 )
+    
+    // Test that base class has been called
+    
+    EUNIT_ASSERT( codec->iMMFPriority == KAudioPrioritySwisPlayback )
+    EUNIT_ASSERT( codec->iMMFPriorityPreference == KAudioPrefSwisPlayback )
+    
+    CleanupStack::PopAndDestroy( codec );
+    }
+        
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//   
+void UT_CMusEngOutSession::UT_CMusEngOutSession_CreateMceSessionStructureLL()
+    {
+    // Test removal of QoS-lines
+    
+    iLiveSession->iRecipient = KTestRecipientSipUri8().AllocL();
+  
+    // IETF profile
+    iLiveSession->CreateMceSessionStructureL();
+    TUint modifierValue = 500; //Just some value that is not used
+    iLiveSession->iSession->GetModifierL( KMcePreconditions, modifierValue );
+    EUNIT_ASSERT( modifierValue == KMcePreconditionsNotUsed );
+    
+    delete iLiveSession->iSession;
+    iLiveSession->iSession = NULL;
+    
+    // IMS profile
+    CSIPProfile* profile = iLiveSession->iSipProfileHandler->Profile();
+    profile->iTypeInfo.iSIPProfileClass = TSIPProfileTypeInfo::EIms;
+    iLiveSession->CreateMceSessionStructureL();
+    modifierValue = 0;
+    iLiveSession->iSession->GetModifierL( KMcePreconditions, modifierValue );
+    EUNIT_ASSERT( modifierValue == KMcePreconditionsSupported );
+    
+    // IMS profile with force internet signaling
+    
+    // TODO: Stub MultimediaSharingSettings, set ForceInternetSignalingSettingL
+    // to return EForceInternetSignaling and test again
+    
+    // Test bundling
+    
+    EUNIT_ASSERT( iLiveSession->iSession->Bundles().Count() == 0 )
+
+    CMusEngClipSession* clipSession = CMusEngClipSession::NewL(
+                                                    TRect(0, 100, 200, 300 ),
+                                                    *iObserver,
+                                                    *iObserver,
+                                                    *iObserver );
+    CleanupStack::PushL( clipSession );
+    
+    clipSession->SetClipL( KTestVideoFileName );
+    
+    clipSession->iRecipient = KTestRecipientSipUri8().AllocL();
+    
+    clipSession->CreateMceSessionStructureL();
+    
+    CMceSession* session = clipSession->iSession;
+    
+    EUNIT_ASSERT( session->Bundles().Count() == 1 )
+    EUNIT_ASSERT( session->Bundles()[0]->Streams().Count() == 2 )
+    EUNIT_ASSERT( session->Bundles()[0]->Streams()[0]->Type() == KMceAudio )
+    EUNIT_ASSERT( session->Bundles()[0]->Streams()[0]->Sinks()[0]->Type() == 
+                  KMceSpeakerSink )
+    EUNIT_ASSERT( session->Bundles()[0]->Streams()[1]->Type() == KMceVideo )              
+    EUNIT_ASSERT( session->Bundles()[0]->Streams()[1]->Sinks()[0]->Type() == 
+                  KMceDisplaySink )
+
+    CleanupStack::PopAndDestroy( clipSession );
+    }
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_CMusEngOutSession,
+    "UT_CMusEngOutSesssion",
+    "UNIT" )
+
+EUNIT_TEST(
+    "InviteL - test ",
+    "CMusEngOutSession",
+    "InviteL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_InviteLL, Teardown)
+
+EUNIT_TEST(
+    "CancelInviteL - test ",
+    "CMusEngOutSession",
+    "CancelInviteL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_CancelInviteLL, Teardown)
+
+EUNIT_TEST(
+    "EstablishSessionL - test ",
+    "CMusEngOutSession",
+    "EstablishSessionL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_EstablishSessionLL, Teardown)   
+
+EUNIT_TEST(
+    "HandleTermination - test ",
+    "CMusEngOutSession",
+    "HandleTermination",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_HandleTerminationL, Teardown)   
+
+EUNIT_TEST(
+    "AdjustVideoCodecL - test ",
+    "CMusEngOutSession",
+    "AdjustVideoCodecL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_AdjustVideoCodecLL, Teardown)   
+
+EUNIT_TEST(
+    "AdjustAudioCodecL - test ",
+    "CMusEngOutSession",
+    "AdjustAudioCodecL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_AdjustAudioCodecLL, Teardown)   
+    
+EUNIT_TEST(
+    "CreateMceSessionStructureL - test ",
+    "CMusEngOutSession",
+    "CreateMceSessionStructureL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusEngOutSession_CreateMceSessionStructureLL, Teardown)    
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE
+
+