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