31 #include <sipstrings.h> |
31 #include <sipstrings.h> |
32 #include <sipstrconsts.h> |
32 #include <sipstrconsts.h> |
33 #include <stringpool.h> |
33 #include <stringpool.h> |
34 #include <sipservertransaction.h> |
34 #include <sipservertransaction.h> |
35 #include <siptransactionbase.h> |
35 #include <siptransactionbase.h> |
|
36 #include <sdpfmtattributefield.h> |
|
37 #include <SdpMediaField.h> |
|
38 #include <SdpRtpmapValue.h> |
|
39 |
|
40 #include <e32debug.h> |
|
41 |
36 // INTERNAL INCLUDES |
42 // INTERNAL INCLUDES |
37 #include "musavaoptionhandler.h" |
43 #include "musavaoptionhandler.h" |
38 #include "musavacapabilitytesthelper.h" |
44 #include "musavacapabilitytesthelper.h" |
39 #include "CSipSseTestTls.h" |
45 #include "CSipSseTestTls.h" |
40 #include "musavaCapabilityExchange.h" |
46 #include "musavaCapabilityExchange.h" |
46 #include "mussettingskeys.h" |
52 #include "mussettingskeys.h" |
47 #include "mussettings.h" |
53 #include "mussettings.h" |
48 #include "musavasip.h" |
54 #include "musavasip.h" |
49 #include "musavacapabilityqueryobserverimp.h" |
55 #include "musavacapabilityqueryobserverimp.h" |
50 |
56 |
|
57 _LIT8( KRTPCapabilitySDPAttributeClockrate, "90000" ); |
|
58 _LIT8( KRTPCapabilitySDPAttributePayloadTypeH264, "98" ); |
|
59 _LIT8( KRTPCapabilitySDPAttributeCodec, "H264" ); |
|
60 |
|
61 _LIT8( KRTPCapabilitySDPAttributePayloadTypeH263, "96" ); |
|
62 _LIT8( KRTPCapabilitySDPAttributeCodecH263, "H263-2000" ); |
51 |
63 |
52 // CONSTRUCTION |
64 // CONSTRUCTION |
53 UT_CMusAvaCapabilityQuery* UT_CMusAvaCapabilityQuery::NewL() |
65 UT_CMusAvaCapabilityQuery* UT_CMusAvaCapabilityQuery::NewL() |
54 { |
66 { |
55 UT_CMusAvaCapabilityQuery* self = UT_CMusAvaCapabilityQuery::NewLC(); |
67 UT_CMusAvaCapabilityQuery* self = UT_CMusAvaCapabilityQuery::NewLC(); |
128 *iProfile, |
140 *iProfile, |
129 KCapabilityTestSIPAddressUri_B ); |
141 KCapabilityTestSIPAddressUri_B ); |
130 |
142 |
131 CSipSseTestTls::OpenL(); |
143 CSipSseTestTls::OpenL(); |
132 iStorage = CSipSseTestTls::Storage(); |
144 iStorage = CSipSseTestTls::Storage(); |
133 iStorage->Set( MusSettingsKeys::KFastStartupMode, |
|
134 MusSettingsKeys::EFastModeOff ); |
|
135 iOpVariantSetting = MultimediaSharingSettings::OperatorVariantSettingL(); |
145 iOpVariantSetting = MultimediaSharingSettings::OperatorVariantSettingL(); |
136 } |
146 } |
137 |
147 |
138 void UT_CMusAvaCapabilityQuery::Teardown( ) |
148 void UT_CMusAvaCapabilityQuery::Teardown( ) |
139 { |
149 { |
378 |
388 |
379 CleanupStack::PopAndDestroy( query ); |
389 CleanupStack::PopAndDestroy( query ); |
380 CleanupStack::PopAndDestroy( capability ); |
390 CleanupStack::PopAndDestroy( capability ); |
381 CleanupStack::PopAndDestroy( exchange ); |
391 CleanupStack::PopAndDestroy( exchange ); |
382 CleanupStack::PopAndDestroy( capabQueryObserver ); |
392 CleanupStack::PopAndDestroy( capabQueryObserver ); |
|
393 } |
|
394 |
|
395 |
|
396 void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityQuery_ValidateUriL() |
|
397 { |
|
398 if( iQuery->iOriginator ) |
|
399 { |
|
400 delete iQuery->iOriginator; |
|
401 } |
|
402 |
|
403 //SIP Uri case, identical |
|
404 CSIPAddress* iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:username111@domain.com") ); |
|
405 CleanupStack::PushL( iOriginatorSipAddress ); |
|
406 |
|
407 iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() ); |
|
408 iQuery->iRemoteUri.Copy( _L8("sip:username111@domain.com") ); |
|
409 |
|
410 EUNIT_ASSERT( iQuery->ValidateUri() == EFalse ); |
|
411 |
|
412 CleanupStack::PopAndDestroy(iOriginatorSipAddress); |
|
413 |
|
414 delete iQuery->iOriginator; |
|
415 |
|
416 //SIP Uri case, not identical |
|
417 iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:username111@domain.com") ); |
|
418 CleanupStack::PushL( iOriginatorSipAddress ); |
|
419 |
|
420 iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() ); |
|
421 iQuery->iRemoteUri.Copy( _L8("sip:username222@domain.com") ); |
|
422 |
|
423 EUNIT_ASSERT( iQuery->ValidateUri() == ETrue ); |
|
424 CleanupStack::PopAndDestroy(iOriginatorSipAddress); |
|
425 |
|
426 delete iQuery->iOriginator; |
|
427 |
|
428 //TEL Uri, identical |
|
429 iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:18586037801@domain.com") ); |
|
430 CleanupStack::PushL( iOriginatorSipAddress ); |
|
431 |
|
432 iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() ); |
|
433 iQuery->iRemoteUri.Copy( _L8("tel:8586037801") ); |
|
434 |
|
435 EUNIT_ASSERT( iQuery->ValidateUri() == EFalse ); |
|
436 CleanupStack::PopAndDestroy(iOriginatorSipAddress); |
|
437 |
|
438 delete iQuery->iOriginator; |
|
439 |
|
440 //TEL Uri, not identical |
|
441 iOriginatorSipAddress = CSIPAddress::DecodeL( _L8("sip:18586037801@domain.com") ); |
|
442 CleanupStack::PushL( iOriginatorSipAddress ); |
|
443 |
|
444 iQuery->iOriginator = CUri8::NewL( iOriginatorSipAddress->Uri8().Uri() ); |
|
445 iQuery->iRemoteUri.Copy( _L8("tel:9876543210") ); |
|
446 |
|
447 EUNIT_ASSERT( iQuery->ValidateUri() == ETrue ); |
|
448 CleanupStack::PopAndDestroy(iOriginatorSipAddress); |
383 } |
449 } |
384 |
450 |
385 void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityQuery_CanceledL( ) |
451 void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityQuery_CanceledL( ) |
386 { |
452 { |
387 |
453 |
1062 CleanupStack::PopAndDestroy( optionResp ); |
1128 CleanupStack::PopAndDestroy( optionResp ); |
1063 |
1129 |
1064 |
1130 |
1065 } |
1131 } |
1066 |
1132 |
|
1133 void UT_CMusAvaCapabilityQuery::UT_CMusAvaCapabilityOtherSDPHeadersLL() |
|
1134 { |
|
1135 CSdpDocument* content = CSdpDocument::NewLC(); |
|
1136 //AVC Disabled |
|
1137 MultimediaSharingSettings::SetPropertyValueL(MusSettingsKeys::KEncodingDevice, |
|
1138 KMusDisableAVC ); |
|
1139 iQuery->OtherSDPHeadersL(*content); |
|
1140 |
|
1141 RStringF media = MusAvaCapabilityContext::SDPStringL( |
|
1142 SdpCodecStringConstants::EMediaVideo ); |
|
1143 RStringF rtpmap = MusAvaCapabilityContext::SDPStringL( |
|
1144 SdpCodecStringConstants::EAttributeRtpmap ); |
|
1145 |
|
1146 RPointerArray<CSdpMediaField>& mediaFields = content->MediaFields(); |
|
1147 |
|
1148 for ( TInt i=0; i < mediaFields.Count(); i++ ) |
|
1149 { |
|
1150 if ( mediaFields[ i ]->Media() == media ) |
|
1151 { |
|
1152 EUNIT_ASSERT( mediaFields[ i ]->FormatList().Find( KCapabilitySwisFormatListH263Only ) >= KErrNone ); |
|
1153 RPointerArray<CSdpFmtAttributeField>& fmtLines = |
|
1154 mediaFields[ i ]->FormatAttributeFields(); |
|
1155 EUNIT_ASSERT( fmtLines.Count() == 1 ); |
|
1156 for ( TInt j=0; j < fmtLines.Count(); j++ ) |
|
1157 { |
|
1158 if ( fmtLines[ j ]->Attribute() == rtpmap ) |
|
1159 { |
|
1160 EUNIT_ASSERT(fmtLines[ j ]->Value().Find( KRTPCapabilitySDPAttributeCodecH263 ) == 0 ); |
|
1161 EUNIT_ASSERT(fmtLines[ j ]->Format().Find( KRTPCapabilitySDPAttributePayloadTypeH263 ) == 0 ); |
|
1162 } |
|
1163 } |
|
1164 } |
|
1165 } |
|
1166 CleanupStack::PopAndDestroy(content ); |
|
1167 //AVC Enabled |
|
1168 content = CSdpDocument::NewLC(); |
|
1169 MultimediaSharingSettings::SetPropertyValueL(MusSettingsKeys::KEncodingDevice, |
|
1170 KMusDisableAVC - 1 ); |
|
1171 iQuery->OtherSDPHeadersL(*content); |
|
1172 |
|
1173 mediaFields = content->MediaFields(); |
|
1174 |
|
1175 for ( TInt i=0; i < mediaFields.Count(); i++ ) |
|
1176 { |
|
1177 if ( mediaFields[ i ]->Media() == media ) |
|
1178 { |
|
1179 EUNIT_ASSERT( mediaFields[ i ]->FormatList().Find( KCapabilitySwisFormatList ) >= KErrNone ); |
|
1180 RPointerArray<CSdpFmtAttributeField>& fmtLines = |
|
1181 mediaFields[ i ]->FormatAttributeFields(); |
|
1182 EUNIT_ASSERT( fmtLines.Count() == 2 ) |
|
1183 for ( TInt j=0; j < fmtLines.Count(); j++ ) |
|
1184 { |
|
1185 if ( fmtLines[ j ]->Attribute() == rtpmap ) |
|
1186 { |
|
1187 if ( j == 0 ) //AVC first i.e. prefered |
|
1188 { |
|
1189 EUNIT_ASSERT(fmtLines[ j ]->Value().Find( KRTPCapabilitySDPAttributeCodec ) == 0 ); |
|
1190 EUNIT_ASSERT(fmtLines[ j ]->Format().Find( KRTPCapabilitySDPAttributePayloadTypeH264 ) == 0 ); |
|
1191 } |
|
1192 else |
|
1193 { |
|
1194 EUNIT_ASSERT(fmtLines[ j ]->Value().Find( KRTPCapabilitySDPAttributeCodecH263 ) == 0 ); |
|
1195 EUNIT_ASSERT(fmtLines[ j ]->Format().Find( KRTPCapabilitySDPAttributePayloadTypeH263 ) == 0 ); |
|
1196 } |
|
1197 } |
|
1198 } |
|
1199 } |
|
1200 } |
|
1201 CleanupStack::PopAndDestroy(content ); |
|
1202 } |
1067 // TEST TABLE |
1203 // TEST TABLE |
1068 |
1204 |
1069 EUNIT_BEGIN_TEST_TABLE( |
1205 EUNIT_BEGIN_TEST_TABLE( |
1070 UT_CMusAvaCapabilityQuery, |
1206 UT_CMusAvaCapabilityQuery, |
1071 "CMusAvaCapabilityQuery", |
1207 "CMusAvaCapabilityQuery", |
1082 "ExecuteL - test ", |
1218 "ExecuteL - test ", |
1083 "CMusAvaCapabilityQuery", |
1219 "CMusAvaCapabilityQuery", |
1084 "ExecuteL", |
1220 "ExecuteL", |
1085 "FUNCTIONALITY", |
1221 "FUNCTIONALITY", |
1086 SetupL,UT_CMusAvaCapabilityQuery_ExecuteLL, Teardown) |
1222 SetupL,UT_CMusAvaCapabilityQuery_ExecuteLL, Teardown) |
1087 |
1223 |
|
1224 EUNIT_TEST( |
|
1225 "ValidateUri - test ", |
|
1226 "CMusAvaCapabilityQuery", |
|
1227 "ValidateUri", |
|
1228 "FUNCTIONALITY", |
|
1229 SetupL,UT_CMusAvaCapabilityQuery_ValidateUriL, Teardown) |
|
1230 |
1088 EUNIT_TEST( |
1231 EUNIT_TEST( |
1089 "Canceled - test ", |
1232 "Canceled - test ", |
1090 "CMusAvaCapabilityQuery", |
1233 "CMusAvaCapabilityQuery", |
1091 "Canceled", |
1234 "Canceled", |
1092 "FUNCTIONALITY", |
1235 "FUNCTIONALITY", |
1153 "CMusAvaCapabilityQuery", |
1296 "CMusAvaCapabilityQuery", |
1154 "DoCompleted200OKL", |
1297 "DoCompleted200OKL", |
1155 "FUNCTIONALITY", |
1298 "FUNCTIONALITY", |
1156 SetupL,UT_CMusAvaCapabilityQuery_DoCompleted200OKLL, Teardown) |
1299 SetupL,UT_CMusAvaCapabilityQuery_DoCompleted200OKLL, Teardown) |
1157 |
1300 |
|
1301 EUNIT_TEST( |
|
1302 "OtherSDPHeadersL - test ", |
|
1303 "CMusAvaCapabilityQuery", |
|
1304 "OtherSDPHeadersL", |
|
1305 "FUNCTIONALITY", |
|
1306 SetupL,UT_CMusAvaCapabilityOtherSDPHeadersLL, Teardown) |
|
1307 |
|
1308 |
1158 EUNIT_END_TEST_TABLE |
1309 EUNIT_END_TEST_TABLE |
1159 |
1310 |
1160 // END OF FILE |
1311 // END OF FILE |