diff -r a297cbce4e85 -r 5be06b45e413 multimediacommsengine/mmcesrv/mmcemediamanager/tsrc/ut_mediamanager/src/UT_cmcemediasdpcodec.cpp --- a/multimediacommsengine/mmcesrv/mmcemediamanager/tsrc/ut_mediamanager/src/UT_cmcemediasdpcodec.cpp Fri May 28 16:08:43 2010 +0300 +++ b/multimediacommsengine/mmcesrv/mmcemediamanager/tsrc/ut_mediamanager/src/UT_cmcemediasdpcodec.cpp Fri Jun 11 11:20:25 2010 +0300 @@ -908,6 +908,42 @@ EUNIT_ASSERT( mediaStream->iRemoteRtcpAddress.IsUnspecified() ) audioLine->AttributeFields().ResetAndDestroy(); + // Rtcp attribute has incorrectly our local address, it should not be used + mediaStream->Session()->iLocalIpAddress.Input( _L("10.20.30.40") ); + rtcp = CSdpAttributeField::DecodeLC( _L8( "a=rtcp:5020 IN IP4 10.20.30.40\r\n" ) ); + audioLine->AttributeFields().AppendL( rtcp ); + CleanupStack::Pop( rtcp ); + iSdpCodec->DecodeRemoteRtcpFieldL( *audioLine, *mediaStream ); + EUNIT_ASSERT_EQUALS( 5020, mediaStream->iRemoteRtcpPort ) + EUNIT_ASSERT( mediaStream->iRemoteRtcpAddress.IsUnspecified() ) // Not changed + audioLine->AttributeFields().ResetAndDestroy(); + + // Rtcp attrubute is local loopback address, ok to use + rtcp = CSdpAttributeField::DecodeLC( _L8( "a=rtcp:5020 IN IP4 127.0.0.1\r\n" ) ); + audioLine->AttributeFields().AppendL( rtcp ); + CleanupStack::Pop( rtcp ); + iSdpCodec->DecodeRemoteRtcpFieldL( *audioLine, *mediaStream ); + EUNIT_ASSERT_EQUALS( 5020, mediaStream->iRemoteRtcpPort ) + EUNIT_ASSERT_EQUALS( INET_ADDR( 127,0,0,1 ), mediaStream->iRemoteRtcpAddress.Address() ) + audioLine->AttributeFields().ResetAndDestroy(); + + // Incorrect white space usage + rtcp = CSdpAttributeField::DecodeLC( _L8( "a=rtcp: 5050 IN IP4 2.2.2.2 \r\n" ) ); + audioLine->AttributeFields().AppendL( rtcp ); + CleanupStack::Pop( rtcp ); + iSdpCodec->DecodeRemoteRtcpFieldL( *audioLine, *mediaStream ); + EUNIT_ASSERT_EQUALS( 5050, mediaStream->iRemoteRtcpPort ) + EUNIT_ASSERT_EQUALS( INET_ADDR( 2,2,2,2 ), mediaStream->iRemoteRtcpAddress.Address() ) + audioLine->AttributeFields().ResetAndDestroy(); + + rtcp = CSdpAttributeField::DecodeLC( _L8( "a=rtcp: 50506\r\n" ) ); + audioLine->AttributeFields().AppendL( rtcp ); + CleanupStack::Pop( rtcp ); + iSdpCodec->DecodeRemoteRtcpFieldL( *audioLine, *mediaStream ); + EUNIT_ASSERT_EQUALS( 50506, mediaStream->iRemoteRtcpPort ) + EUNIT_ASSERT_EQUALS( INET_ADDR( 2,2,2,2 ), mediaStream->iRemoteRtcpAddress.Address() ) + audioLine->AttributeFields().ResetAndDestroy(); + CleanupStack::PopAndDestroy( sdp ); } @@ -1349,7 +1385,6 @@ CleanupStack::PopAndDestroy( sdp ); } - void UT_CMceMediaSdpCodec::UT_CMceMediaSdpCodec_DecodeDirectionLL()