multimediacommscontroller/mmccrtpsourcesink/tsrc/ut_rtpsourcesink/src/UT_CMccRtpDataSink.cpp
branchRCL_3
changeset 59 b0e4b01681c5
parent 42 817c922b90eb
equal deleted inserted replaced
55:f72c4fccd381 59:b0e4b01681c5
    40 #include "amrpayloadformatwrite.h"
    40 #include "amrpayloadformatwrite.h"
    41 #include <srtpcryptocontext.h>
    41 #include <srtpcryptocontext.h>
    42 #include <srtpmastersalt.h>
    42 #include <srtpmastersalt.h>
    43 #include <srtpstreamout.h>
    43 #include <srtpstreamout.h>
    44 #include "mccunittestmacros.h"
    44 #include "mccunittestmacros.h"
    45 #include "mccrtpmediaclock.h"
       
    46 
    45 
    47 
    46 
    48 #define MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event )\
    47 #define MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event )\
    49     *reinterpret_cast<TMccRtcpEventDataPackage*>( &event.iEventData )
    48     *reinterpret_cast<TMccRtcpEventDataPackage*>( &event.iEventData )
    50 
    49 
   114     iRtpKeepaliveMechanism = 
   113     iRtpKeepaliveMechanism = 
   115         CMccRtpKeepaliveContainer::NewL( *eventHandler, 
   114         CMccRtpKeepaliveContainer::NewL( *eventHandler, 
   116                                          *iRtpApi, 
   115                                          *iRtpApi, 
   117                                          rtpSessionId ); 
   116                                          rtpSessionId ); 
   118                                          
   117                                          
   119     iRtpMediaClock = CMccRtpMediaClock::NewL();                                     
       
   120     } 
   118     } 
   121 
   119 
   122 void UT_CMccRtpDataSink::Teardown()
   120 void UT_CMccRtpDataSink::Teardown()
   123     {
   121     {
   124     delete iRtpKeepaliveMechanism;
   122     delete iRtpKeepaliveMechanism;
   136     if ( iRtpApi )
   134     if ( iRtpApi )
   137         {
   135         {
   138         delete iRtpApi;
   136         delete iRtpApi;
   139         iRtpApi = NULL;
   137         iRtpApi = NULL;
   140         }
   138         }
   141         
       
   142     if ( iRtpMediaClock )
       
   143         {
       
   144         delete iRtpMediaClock;
       
   145         iRtpMediaClock = NULL;
       
   146         }
       
   147     }
   139     }
   148 
   140 
   149 // HELPERS
   141 // HELPERS
   150 //
   142 //
   151 
   143 
   162     iSink->SetSessionParamsL( params );
   154     iSink->SetSessionParamsL( params );
   163 
   155 
   164     TMccCodecInfo cInfo;
   156     TMccCodecInfo cInfo;
   165     TMccCodecInfoBuffer cInfoBuf( cInfo );
   157     TMccCodecInfoBuffer cInfoBuf( cInfo );
   166     
   158     
   167     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   159     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   168     }
   160     }
   169 
   161 
   170 
   162 
   171 // TEST FUNCTIONS
   163 // TEST FUNCTIONS
   172 //
   164 //
   224     data.iRtcpPacketType = KRtcpAnyPacket;
   216     data.iRtcpPacketType = KRtcpAnyPacket;
   225     EUNIT_ASSERT_LEAVE( iSink->SendMediaSignallingL( event ) );
   217     EUNIT_ASSERT_LEAVE( iSink->SendMediaSignallingL( event ) );
   226     
   218     
   227     TMccCodecInfo cInfo;
   219     TMccCodecInfo cInfo;
   228     TMccCodecInfoBuffer cInfoBuf( cInfo );
   220     TMccCodecInfoBuffer cInfoBuf( cInfo );
   229     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   221     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   230     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   222     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   231     iSink->SetCurrentUser( this );
   223     iSink->SetCurrentUser( this );
   232     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   224     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   233 
   225 
   234     TMccRtcpEventDataPackage& eventDataPackage = MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event );
   226     TMccRtcpEventDataPackage& eventDataPackage = MCCEVENTDATAPCKG_TO_RTCPEVENTDATAPCKG( event );
   295     TMccCodecInfoBuffer cInfoBuf( cInfo );
   287     TMccCodecInfoBuffer cInfoBuf( cInfo );
   296     
   288     
   297     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   289     MCC_EUNIT_ASSERT_EQUALS( iSink->SinkThreadLogon( *this ), KErrNone );
   298     iSink->SetCurrentUser( this );
   290     iSink->SetCurrentUser( this );
   299     EUNIT_ASSERT_NO_LEAVE( iSink->SetSessionParamsL( params ) );
   291     EUNIT_ASSERT_NO_LEAVE( iSink->SetSessionParamsL( params ) );
   300     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   292     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   301     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   293     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   302     iSink->SinkThreadLogoff();
   294     iSink->SinkThreadLogoff();
   303     }
   295     }
   304 
   296 
   305 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_SinkDataTypeCodeL()
   297 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_SinkDataTypeCodeL()
   372     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   364     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   373 
   365 
   374     TMccCodecInfo cInfo;
   366     TMccCodecInfo cInfo;
   375     TMccCodecInfoBuffer cInfoBuf( cInfo );
   367     TMccCodecInfoBuffer cInfoBuf( cInfo );
   376     
   368     
   377     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   369     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   378     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   370     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   379     EUNIT_ASSERT( iRtpKeepaliveMechanism->iStopped == EFalse );
   371     EUNIT_ASSERT( iRtpKeepaliveMechanism->iStopped == EFalse );
   380   
   372   
   381     // "Secure session"
   373     // "Secure session"
   382     iRtpKeepaliveMechanism->iStopped = ETrue;
   374     iRtpKeepaliveMechanism->iStopped = ETrue;
   621     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   613     EUNIT_ASSERT_LEAVE( iSink->SinkPrimeL() );
   622 
   614 
   623     TMccCodecInfo cInfo;
   615     TMccCodecInfo cInfo;
   624     TMccCodecInfoBuffer cInfoBuf( cInfo );
   616     TMccCodecInfoBuffer cInfoBuf( cInfo );
   625     
   617     
   626     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   618     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   627     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() ); 
   619     EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() ); 
   628 
   620 
   629     // Create a comfort noise stream
   621     // Create a comfort noise stream
   630     //codec = KMccFourCCIdG711;
   622     //codec = KMccFourCCIdG711;
   631     //EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   623     //EUNIT_ASSERT_NO_LEAVE( iSink->SinkPrimeL() );
   644     iSink->SetSessionParamsL( params );
   636     iSink->SetSessionParamsL( params );
   645 
   637 
   646     TMccCodecInfo cInfo;
   638     TMccCodecInfo cInfo;
   647     TMccCodecInfoBuffer cInfoBuf( cInfo );
   639     TMccCodecInfoBuffer cInfoBuf( cInfo );
   648     
   640     
   649     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   641     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   650 
   642 
   651     // This should leave because the string is too short
   643     // This should leave because the string is too short
   652     TBuf8<5> dummy;
   644     TBuf8<5> dummy;
   653     dummy.Format( _L8( "foo42" ) );
   645     dummy.Format( _L8( "foo42" ) );
   654     EUNIT_ASSERT_LEAVE( iSink->ConfigureL( dummy, iRtpMediaClock ) );
   646     EUNIT_ASSERT_LEAVE( iSink->ConfigureL( dummy ) );
   655 
   647 
   656     // Get a new sink
   648     // Get a new sink
   657     //Teardown();
   649     //Teardown();
   658     if( iRtpKeepaliveMechanism )
   650     if( iRtpKeepaliveMechanism )
   659     	{
   651     	{
   696     cInfo2.iRedundantPayload = 97;
   688     cInfo2.iRedundantPayload = 97;
   697     cInfo2.iRedundancyCount = 1;
   689     cInfo2.iRedundancyCount = 1;
   698     cInfo2.iAlgoUsed = EGenRedUsed;
   690     cInfo2.iAlgoUsed = EGenRedUsed;
   699     TMccCodecInfoBuffer cInfoBuf2( cInfo2 );
   691     TMccCodecInfoBuffer cInfoBuf2( cInfo2 );
   700 
   692 
   701     EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf2, iRtpMediaClock ) );
   693     EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf2 ) );
   702     }
   694     }
   703 
   695 
   704 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_RemoveStreamLL()
   696 void UT_CMccRtpDataSink::UT_CMccRtpDataSink_RemoveStreamLL()
   705     {
   697     {
   706 /*
   698 /*
   747     iSink->SetSessionParamsL( params );
   739     iSink->SetSessionParamsL( params );
   748     
   740     
   749     TMccCodecInfo cInfo;
   741     TMccCodecInfo cInfo;
   750     TMccCodecInfoBuffer cInfoBuf( cInfo );
   742     TMccCodecInfoBuffer cInfoBuf( cInfo );
   751     
   743     
   752     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   744     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   753 
   745 
   754     // Wrong state
   746     // Wrong state
   755     EUNIT_ASSERT_LEAVE( iSink->SinkPlayL() );
   747     EUNIT_ASSERT_LEAVE( iSink->SinkPlayL() );
   756 
   748 
   757     iSink->SinkPrimeL();
   749     iSink->SinkPrimeL();
   776     iSink->SetSessionParamsL( params );
   768     iSink->SetSessionParamsL( params );
   777     
   769     
   778     TMccCodecInfo cInfo;
   770     TMccCodecInfo cInfo;
   779     TMccCodecInfoBuffer cInfoBuf( cInfo );
   771     TMccCodecInfoBuffer cInfoBuf( cInfo );
   780     
   772     
   781     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   773     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   782 
   774 
   783     // Wrong state
   775     // Wrong state
   784     EUNIT_ASSERT_LEAVE( iSink->SinkPauseL() );
   776     EUNIT_ASSERT_LEAVE( iSink->SinkPauseL() );
   785 
   777 
   786     iSink->SinkPrimeL();
   778     iSink->SinkPrimeL();
   803     iSink->SetSessionParamsL( params );
   795     iSink->SetSessionParamsL( params );
   804     
   796     
   805     TMccCodecInfo cInfo;
   797     TMccCodecInfo cInfo;
   806     TMccCodecInfoBuffer cInfoBuf( cInfo );
   798     TMccCodecInfoBuffer cInfoBuf( cInfo );
   807     
   799     
   808     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf, iRtpMediaClock ) );
   800     MCC_EUNIT_ASSERT_NO_LEAVE( iSink->ConfigureL( cInfoBuf ) );
   809     iSink->SinkPrimeL();
   801     iSink->SinkPrimeL();
   810     iSink->SinkPlayL();
   802     iSink->SinkPlayL();
   811 
   803 
   812     // Ok
   804     // Ok
   813     EUNIT_ASSERT_NO_LEAVE( iSink->SinkStopL() );
   805     EUNIT_ASSERT_NO_LEAVE( iSink->SinkStopL() );