mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapabilityQuery.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
--- a/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapabilityQuery.cpp	Tue Aug 31 15:12:07 2010 +0300
+++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaCapabilityQuery.cpp	Wed Sep 01 12:31:01 2010 +0100
@@ -33,6 +33,12 @@
 #include <stringpool.h>
 #include <sipservertransaction.h>
 #include <siptransactionbase.h>
+#include <sdpfmtattributefield.h>
+#include <SdpMediaField.h>
+#include <SdpRtpmapValue.h>
+
+#include <e32debug.h>
+
 //  INTERNAL INCLUDES
 #include "musavaoptionhandler.h"
 #include "musavacapabilitytesthelper.h"
@@ -48,6 +54,12 @@
 #include "musavasip.h"
 #include "musavacapabilityqueryobserverimp.h"
 
+_LIT8( KRTPCapabilitySDPAttributeClockrate, "90000" );
+_LIT8( KRTPCapabilitySDPAttributePayloadTypeH264, "98" );
+_LIT8( KRTPCapabilitySDPAttributeCodec, "H264" );
+
+_LIT8( KRTPCapabilitySDPAttributePayloadTypeH263, "96" );
+_LIT8( KRTPCapabilitySDPAttributeCodecH263, "H263-2000" );
 
 // CONSTRUCTION
 UT_CMusAvaCapabilityQuery* UT_CMusAvaCapabilityQuery::NewL()
@@ -130,8 +142,6 @@
 
     CSipSseTestTls::OpenL();
     iStorage = CSipSseTestTls::Storage();
-    iStorage->Set( MusSettingsKeys::KFastStartupMode, 
-        MusSettingsKeys::EFastModeOff );
     iOpVariantSetting = MultimediaSharingSettings::OperatorVariantSettingL();
     } 
 
@@ -382,6 +392,62 @@
     CleanupStack::PopAndDestroy( capabQueryObserver );
     }
 
+
+void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityQuery_ValidateUriL()
+    {
+	if( iQuery->iOriginator )
+		{
+	    delete iQuery->iOriginator;
+		}
+	
+    //SIP Uri case, identical
+	CSIPAddress* iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:username111@domain.com") );
+    CleanupStack::PushL( iOriginatorSipAddress );
+
+	iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() );
+	iQuery->iRemoteUri.Copy( _L8("sip:username111@domain.com") );
+	
+	EUNIT_ASSERT( iQuery->ValidateUri() == EFalse );
+	
+    CleanupStack::PopAndDestroy(iOriginatorSipAddress);    
+	
+    delete iQuery->iOriginator;
+    
+    //SIP Uri case, not identical
+	iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:username111@domain.com") );	
+    CleanupStack::PushL( iOriginatorSipAddress );
+    
+	iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() );	
+	iQuery->iRemoteUri.Copy( _L8("sip:username222@domain.com") );
+	
+	EUNIT_ASSERT( iQuery->ValidateUri() == ETrue );
+    CleanupStack::PopAndDestroy(iOriginatorSipAddress);
+	
+    delete iQuery->iOriginator;
+    
+    //TEL Uri, identical
+	iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:18586037801@domain.com") );
+    CleanupStack::PushL( iOriginatorSipAddress );
+
+	iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() );
+	iQuery->iRemoteUri.Copy( _L8("tel:8586037801") );
+	
+	EUNIT_ASSERT( iQuery->ValidateUri() == EFalse );
+    CleanupStack::PopAndDestroy(iOriginatorSipAddress);
+
+    delete iQuery->iOriginator;
+	
+    //TEL Uri, not identical
+	iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:18586037801@domain.com") );
+    CleanupStack::PushL( iOriginatorSipAddress );
+
+	iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() );
+	iQuery->iRemoteUri.Copy( _L8("tel:9876543210") );
+	
+	EUNIT_ASSERT( iQuery->ValidateUri() == ETrue );
+    CleanupStack::PopAndDestroy(iOriginatorSipAddress);
+    }
+
 void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityQuery_CanceledL(  )
     {
     
@@ -1064,6 +1130,76 @@
     
     }
 
+void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityOtherSDPHeadersLL()
+    {
+    CSdpDocument* content = CSdpDocument::NewLC();
+    //AVC Disabled  
+    MultimediaSharingSettings::SetPropertyValueL(MusSettingsKeys::KEncodingDevice,
+                                                 KMusDisableAVC );
+    iQuery->OtherSDPHeadersL(*content);
+    
+    RStringF media = MusAvaCapabilityContext::SDPStringL( 
+                                          SdpCodecStringConstants::EMediaVideo );
+    RStringF rtpmap =  MusAvaCapabilityContext::SDPStringL( 
+                                 SdpCodecStringConstants::EAttributeRtpmap );
+     
+    RPointerArray<CSdpMediaField>& mediaFields = content->MediaFields();
+    
+    for ( TInt i=0; i < mediaFields.Count(); i++ )
+     {
+     if ( mediaFields[ i ]->Media() == media )
+         {
+         EUNIT_ASSERT( mediaFields[ i ]->FormatList().Find( KCapabilitySwisFormatListH263Only ) >= KErrNone ); 
+         RPointerArray<CSdpFmtAttributeField>& fmtLines =  
+                             mediaFields[ i ]->FormatAttributeFields();
+         EUNIT_ASSERT( fmtLines.Count() == 1 ); 
+         for ( TInt j=0; j < fmtLines.Count(); j++ )
+             {
+             if ( fmtLines[ j ]->Attribute() == rtpmap ) 
+                 {
+                 EUNIT_ASSERT(fmtLines[ j ]->Value().Find( KRTPCapabilitySDPAttributeCodecH263 ) == 0 );
+                 EUNIT_ASSERT(fmtLines[ j ]->Format().Find( KRTPCapabilitySDPAttributePayloadTypeH263 ) == 0 );
+                 } 
+             }
+         }
+     }
+    CleanupStack::PopAndDestroy(content );
+    //AVC Enabled
+    content = CSdpDocument::NewLC();
+    MultimediaSharingSettings::SetPropertyValueL(MusSettingsKeys::KEncodingDevice,
+                                                 KMusDisableAVC - 1 );
+    iQuery->OtherSDPHeadersL(*content);
+    
+    mediaFields = content->MediaFields();
+    
+    for ( TInt i=0; i < mediaFields.Count(); i++ )
+         {
+         if ( mediaFields[ i ]->Media() == media )
+             {
+             EUNIT_ASSERT( mediaFields[ i ]->FormatList().Find( KCapabilitySwisFormatList ) >= KErrNone ); 
+             RPointerArray<CSdpFmtAttributeField>& fmtLines =  
+                                 mediaFields[ i ]->FormatAttributeFields();
+             EUNIT_ASSERT( fmtLines.Count() == 2 )
+             for ( TInt j=0; j < fmtLines.Count(); j++ )
+                 {
+                 if ( fmtLines[ j ]->Attribute() == rtpmap ) 
+                     {
+                     if ( j == 0 ) //AVC first i.e. prefered
+                         {
+                         EUNIT_ASSERT(fmtLines[ j ]->Value().Find( KRTPCapabilitySDPAttributeCodec ) == 0 );
+                         EUNIT_ASSERT(fmtLines[ j ]->Format().Find( KRTPCapabilitySDPAttributePayloadTypeH264 ) == 0 );
+                         }
+                     else
+                         {
+                         EUNIT_ASSERT(fmtLines[ j ]->Value().Find( KRTPCapabilitySDPAttributeCodecH263 ) == 0 );
+                         EUNIT_ASSERT(fmtLines[ j ]->Format().Find( KRTPCapabilitySDPAttributePayloadTypeH263 ) == 0 );
+                         }
+                     }                     
+                 }
+             }
+         }
+    CleanupStack::PopAndDestroy(content );
+    }
 //  TEST TABLE
 
 EUNIT_BEGIN_TEST_TABLE( 
@@ -1084,7 +1220,14 @@
     "ExecuteL",
     "FUNCTIONALITY",
     SetupL,UT_CMusAvaCapabilityQuery_ExecuteLL, Teardown)
-
+  
+EUNIT_TEST(
+    "ValidateUri - test ",
+    "CMusAvaCapabilityQuery",
+    "ValidateUri",
+    "FUNCTIONALITY",
+    SetupL,UT_CMusAvaCapabilityQuery_ValidateUriL, Teardown)    
+    
 EUNIT_TEST(
     "Canceled - test ",
     "CMusAvaCapabilityQuery",
@@ -1155,6 +1298,14 @@
     "FUNCTIONALITY",
     SetupL,UT_CMusAvaCapabilityQuery_DoCompleted200OKLL, Teardown)  
     
+EUNIT_TEST(
+    "OtherSDPHeadersL - test ",
+    "CMusAvaCapabilityQuery",
+    "OtherSDPHeadersL",
+    "FUNCTIONALITY",
+    SetupL,UT_CMusAvaCapabilityOtherSDPHeadersLL, Teardown)  
+
+    
 EUNIT_END_TEST_TABLE
 
 //  END OF FILE