|
1 /* |
|
2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 // CLASS HEADER |
|
20 #include "sipprofile.h" |
|
21 #include "UT_CMusAvaOptionHandler.h" |
|
22 |
|
23 // EXTERNAL INCLUDES |
|
24 #include <digia/eunit/eunitmacros.h> |
|
25 #include <digia/eunit/eunitdecorators.h> |
|
26 #include <EscapeUtils.h> |
|
27 #include <sipstrings.h> |
|
28 #include <sipstrconsts.h> |
|
29 #include <stringpool.h> |
|
30 #include <sipservertransaction.h> |
|
31 #include <siptransactionbase.h> |
|
32 // INTERNAL INCLUDES |
|
33 #include "musavaoptionhandler.h" |
|
34 #include "musavaavailabilityobserver.h" |
|
35 #include "musavaavailabilityobserverimp.h" |
|
36 #include "musavasettingsimp.h" |
|
37 #include "musavaobserverimp.h" |
|
38 #include "muslogger.h" |
|
39 #include "musavasharedobject.h" |
|
40 #include "mussettingskeys.h" |
|
41 #include "mussettings.h" |
|
42 #include "musavasip.h" |
|
43 #include "CSipSseTestTls.h" |
|
44 #include "musavacapabilitytesthelper.h" |
|
45 #include "musavasettingsobserverimp.h" |
|
46 |
|
47 |
|
48 // CONSTRUCTION |
|
49 UT_CMusAvaOptionHandler* UT_CMusAvaOptionHandler::NewL() |
|
50 { |
|
51 UT_CMusAvaOptionHandler* self = UT_CMusAvaOptionHandler::NewLC(); |
|
52 CleanupStack::Pop(); |
|
53 |
|
54 return self; |
|
55 } |
|
56 |
|
57 UT_CMusAvaOptionHandler* UT_CMusAvaOptionHandler::NewLC() |
|
58 { |
|
59 UT_CMusAvaOptionHandler* self = new( ELeave ) UT_CMusAvaOptionHandler(); |
|
60 CleanupStack::PushL( self ); |
|
61 self->ConstructL(); |
|
62 |
|
63 return self; |
|
64 } |
|
65 |
|
66 // Destructor (virtual by CBase) |
|
67 UT_CMusAvaOptionHandler::~UT_CMusAvaOptionHandler() |
|
68 { |
|
69 } |
|
70 |
|
71 // Default constructor |
|
72 UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler() |
|
73 { |
|
74 } |
|
75 |
|
76 // Second phase construct |
|
77 void UT_CMusAvaOptionHandler::ConstructL() |
|
78 { |
|
79 // The ConstructL from the base class CEUnitTestSuiteClass must be called. |
|
80 // It generates the test case table. |
|
81 CEUnitTestSuiteClass::ConstructL(); |
|
82 } |
|
83 |
|
84 // METHODS |
|
85 |
|
86 void UT_CMusAvaOptionHandler::SetupL( ) |
|
87 { |
|
88 iSharedObject = CMusAvaSharedObject::GetSingletonL(); |
|
89 iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL(); |
|
90 iSettingsObserver = CMusAvaSettingsObserverImp::NewL(); |
|
91 iConcreteSettings = CMusAvaSettingsImp::NewL(); |
|
92 iConcreteSettings->SetObserver( *iSettingsObserver ); |
|
93 iOptionHandler = CMusAvaOptionHandler::NewL( *iAvailabilityObserver, |
|
94 *iConcreteSettings ); |
|
95 |
|
96 MSIPConnectionObserver& connectionObserver = |
|
97 iSharedObject->MusAvaSip().ConnectionObserver(); |
|
98 CSIP& sip = iSharedObject->MusAvaSip().Sip(); |
|
99 CSipSseTestTls::OpenL(); |
|
100 iStorage = CSipSseTestTls::Storage(); |
|
101 iStorage->Set( MusSettingsKeys::KFastStartupMode, |
|
102 MusSettingsKeys::EFastModeOff ); |
|
103 |
|
104 iSharedObject->MusAvaSip().CreateProfileL(); |
|
105 iProfile = iSharedObject->MusAvaSip().Profile(); |
|
106 iSharedObject->MusAvaSip().ConnectionL( ); |
|
107 |
|
108 if ( !iProfile->iArray ) |
|
109 { |
|
110 iProfile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); |
|
111 iProfile->iArray->AppendL( _L8("sip:user@domain.com") ); |
|
112 } |
|
113 if ( !iProfile->iRegisteredContact ) |
|
114 { |
|
115 iProfile->iRegisteredContact = KRegisteredContact().AllocL(); |
|
116 } |
|
117 |
|
118 MultimediaSharingSettings::SetCapabilityQuerySettingL( |
|
119 MusSettingsKeys::ESequential ); |
|
120 } |
|
121 |
|
122 void UT_CMusAvaOptionHandler::Teardown( ) |
|
123 { |
|
124 CMusAvaSharedObject::DeleteSingleton(); |
|
125 delete iAvailabilityObserver; |
|
126 delete iConcreteSettings; |
|
127 if ( iStorage ) |
|
128 { |
|
129 iStorage->Clear(); |
|
130 CSipSseTestTls::Close(); |
|
131 iStorage = NULL; |
|
132 } |
|
133 delete iOptionHandler; |
|
134 delete iSettingsObserver; |
|
135 |
|
136 PropertyHelper::Close(); |
|
137 } |
|
138 |
|
139 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_NewLL( ) |
|
140 { |
|
141 EUNIT_ASSERT( iOptionHandler ); |
|
142 EUNIT_ASSERT( iOptionHandler->State() == |
|
143 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
144 } |
|
145 |
|
146 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_DoExecuteLL() |
|
147 { |
|
148 // test for B-party && Cingular variant |
|
149 iOptionHandler->iSettings.SetCallDirection( 2 ); |
|
150 MultimediaSharingSettings::SetOperatorVariantSettingL( |
|
151 MusSettingsKeys::EOperatorSpecific ); |
|
152 iOptionHandler->DoExecuteL(); |
|
153 EUNIT_ASSERT( iOptionHandler->State() == |
|
154 MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
155 iOptionHandler->iSettings.SetCallDirection( 1 ); |
|
156 MultimediaSharingSettings::SetOperatorVariantSettingL( |
|
157 MusSettingsKeys::EStandard ); |
|
158 |
|
159 // usual case |
|
160 TBufC16<16> str(KCapabilityTestSIPAddressUri_B); |
|
161 HBufC16* ptr; |
|
162 ptr = str.AllocLC(); |
|
163 CDesCArrayFlat* sipAddress = new( ELeave ) CDesCArrayFlat( 1 ); |
|
164 CleanupStack::PushL( sipAddress ); |
|
165 sipAddress->AppendL( *ptr ); |
|
166 iOptionHandler->iSettings.SetSipAddressesL( *sipAddress ); |
|
167 sipAddress->Reset(); |
|
168 CleanupStack::PopAndDestroy( sipAddress ); |
|
169 CleanupStack::PopAndDestroy(); //ptr |
|
170 |
|
171 MultimediaSharingSettings::SetCapabilityQuerySettingL( |
|
172 MusSettingsKeys::ESequential ); |
|
173 EUNIT_ASSERT( iSharedObject->MusAvaSip().CreateProfileL() == ETrue ); |
|
174 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
175 TRAPD( error, iOptionHandler->DoExecuteL() ); |
|
176 TInt count = 0; |
|
177 EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); |
|
178 EUNIT_ASSERT( error == KErrNoMemory || error == KErrNone ); |
|
179 if ( error == KErrNoMemory ) User::Leave( error ); |
|
180 |
|
181 if ( count > 0 ) |
|
182 { |
|
183 EUNIT_ASSERT( iOptionHandler->State() == |
|
184 MMusAvaObserver::EMusAvaOptionNotAvailable ); |
|
185 } |
|
186 else |
|
187 { |
|
188 EUNIT_ASSERT( iOptionHandler->State() == |
|
189 MMusAvaObserver::EMusAvaStatusOptionsSent ); |
|
190 |
|
191 EUNIT_ASSERT( iStorage->iClientRequest->Method() == |
|
192 SIPStrings::StringF( SipStrConsts::EOptions ) ); |
|
193 |
|
194 EUNIT_ASSERT( |
|
195 iStorage->iClientRequest->MessageElements().Content().Length() > 0 ); |
|
196 EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().ContentType() ); |
|
197 EUNIT_ASSERT( iStorage->iClientRequest->RemoteUri().Uri().UriDes().Compare( |
|
198 KCapabilityTestSIPAddressUri8_B ) == 0); |
|
199 EUNIT_ASSERT( iStorage->iClientRequest->MessageElements().UserHeaders(). |
|
200 Count() == 6 ); |
|
201 MUS_HEADER_ASSERT( iStorage->iClientRequest, |
|
202 0, |
|
203 KCapabilityTestAcceptContactHeader ); |
|
204 MUS_HEADER_ASSERT( iStorage->iClientRequest, |
|
205 5, |
|
206 KCapabilityTestContactHeader_A1Updated ); |
|
207 } |
|
208 |
|
209 // when needed sip profile and not registered yet. means sip connection is still |
|
210 // null |
|
211 MultimediaSharingSettings::SetCapabilityQuerySettingL( |
|
212 MusSettingsKeys::ESequential ); |
|
213 EUNIT_ASSERT( iSharedObject->MusAvaSip().CreateProfileL() == ETrue ); |
|
214 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
215 iSharedObject->MusAvaSip().ConnectionL(EFalse); |
|
216 |
|
217 delete iSharedObject->MusAvaSip().iSipConnection; |
|
218 iSharedObject->MusAvaSip().iSipConnection = NULL; |
|
219 |
|
220 iOptionHandler->SetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
221 |
|
222 iOptionHandler->DoExecuteL(); |
|
223 EUNIT_ASSERT( iOptionHandler->State() == |
|
224 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
225 } |
|
226 |
|
227 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_NameL() |
|
228 { |
|
229 EUNIT_ASSERT( iOptionHandler->Name() == |
|
230 MMusAvaObserver::EMusAvaOptionHandler ); |
|
231 } |
|
232 |
|
233 |
|
234 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_StatusL() |
|
235 { |
|
236 EUNIT_ASSERT( iOptionHandler->State() == |
|
237 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
238 } |
|
239 |
|
240 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_StopL() |
|
241 { |
|
242 iOptionHandler->Stop(); |
|
243 } |
|
244 |
|
245 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_CapabilitiesResolvedL() |
|
246 { |
|
247 _LIT( KSipAddress , "b@foobar.com" ); |
|
248 _LIT( KSipAddressA , "a@foobar.com" ); |
|
249 _LIT( KEmpty, "" ); |
|
250 |
|
251 EUNIT_ASSERT( iOptionHandler->State() == |
|
252 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
253 iOptionHandler->CapabilitiesResolvedL( KEmpty ); |
|
254 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount() == 0 ); |
|
255 EUNIT_ASSERT( iOptionHandler->State() == |
|
256 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
257 |
|
258 iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusNotExecuted; |
|
259 iOptionHandler->CapabilitiesResolvedL( KSipAddress ); |
|
260 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaPoint( 0 ). |
|
261 Compare( KSipAddress() ) == KErrNone ); |
|
262 EUNIT_ASSERT( iOptionHandler->State() == |
|
263 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
264 |
|
265 iOptionHandler->CapabilitiesResolvedL( KSipAddressA ); |
|
266 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaPoint( 0 ). |
|
267 Compare( KSipAddressA() ) == KErrNone ); |
|
268 |
|
269 EUNIT_ASSERT( iOptionHandler->State() == |
|
270 MMusAvaObserver::EMusAvaStatusNotExecuted ); |
|
271 } |
|
272 |
|
273 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_CapabilitiesResolvedForCingularL() |
|
274 { |
|
275 EUNIT_ASSERT( iOptionHandler->CapabilitiesResolvedForCingular() == EFalse ); |
|
276 iOptionHandler->SetCapabilitiesResolvedForCingular(); |
|
277 EUNIT_ASSERT( iOptionHandler->CapabilitiesResolvedForCingular() == ETrue ); |
|
278 } |
|
279 |
|
280 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_SipHeadersL() |
|
281 { |
|
282 CDesCArrayFlat* headers = new( ELeave ) CDesCArrayFlat( 1 ); |
|
283 CleanupStack::PushL(headers); |
|
284 headers->AppendL(_L("sip:test1@10.21.32.51")); |
|
285 iOptionHandler->SipHeadersL(*headers,SipStrConsts::EToHeader); |
|
286 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==1 ); |
|
287 |
|
288 _LIT( KPAssertedIdentityTelNumber, "+4455667788"); |
|
289 headers->Reset(); |
|
290 headers->AppendL(KPAssertedIdentity_B_16); |
|
291 headers->AppendL(KPAssertedIdentity_B1_16); |
|
292 iOptionHandler->SipHeadersL(*headers,SipStrConsts::EToHeader); |
|
293 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==1 ); |
|
294 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaPoint( 0 ).Compare( |
|
295 KPAssertedIdentity_B_16() ) == KErrNone ); |
|
296 EUNIT_ASSERT( iOptionHandler->iSettings.TelNumber().Compare( |
|
297 KPAssertedIdentityTelNumber ) == 0 ); |
|
298 |
|
299 headers->Reset(); |
|
300 iOptionHandler->SipHeadersL(*headers,SipStrConsts::EToHeader); |
|
301 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==0 ); |
|
302 |
|
303 headers->Reset(); |
|
304 headers->AppendL(_L("sip:test1@10.21.32.51")); |
|
305 iOptionHandler->SipHeadersL(*headers,SipStrConsts::EFromHeader); |
|
306 EUNIT_ASSERT( iOptionHandler->iSettings.SipAddresses().MdcaCount()==0 ); |
|
307 |
|
308 CleanupStack::PopAndDestroy(headers); |
|
309 |
|
310 |
|
311 } |
|
312 |
|
313 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_VideoCodecsResolvedLL() |
|
314 { |
|
315 _LIT16( KVideoCodec , "H.264" ); |
|
316 TBufC16<16> str(KVideoCodec); |
|
317 HBufC16* ptr; |
|
318 ptr = str.AllocLC(); |
|
319 |
|
320 CDesCArrayFlat* videoCodecs = new( ELeave ) CDesCArrayFlat( 1 ); |
|
321 CleanupStack::PushL( videoCodecs ); |
|
322 |
|
323 videoCodecs->AppendL( *ptr ); |
|
324 iOptionHandler->VideoCodecsResolvedL( *videoCodecs ); |
|
325 EUNIT_ASSERT ( iOptionHandler->iSettings.iVideoCodecs->MdcaCount() > KErrNone ); |
|
326 EUNIT_ASSERT ( iOptionHandler->iSettings.iVideoCodecs->MdcaPoint(0).Compare ( *ptr ) == 0 ); |
|
327 |
|
328 videoCodecs->Reset(); |
|
329 CleanupStack::PopAndDestroy( videoCodecs ); |
|
330 CleanupStack::PopAndDestroy(); |
|
331 |
|
332 } |
|
333 |
|
334 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_DoSetStateL() |
|
335 { |
|
336 // Set some state which does not cause special handling |
|
337 iOptionHandler->iFastModeCapable = EFalse; |
|
338 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusOptionsSent ); |
|
339 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsSent ); |
|
340 |
|
341 // Set special handling state, but fast mode is not enabled |
|
342 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable ); |
|
343 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable ); |
|
344 EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted ); |
|
345 |
|
346 // Set special handling state, fast capable but mode is not enabled |
|
347 iOptionHandler->iFastModeCapable = ETrue; |
|
348 iConcreteSettings->SetFastMode( MusSettingsKeys::EFastModeOff ); |
|
349 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable ); |
|
350 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable ); |
|
351 EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted ); |
|
352 } |
|
353 |
|
354 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_DoSetStateFastModeL() |
|
355 { |
|
356 iOptionHandler->iFastModeCapable = ETrue; |
|
357 iConcreteSettings->SetFastMode( MusSettingsKeys::EFastModeOn ); |
|
358 iOptionHandler->iSettings.SetCallDirection( 1 ); |
|
359 |
|
360 // State which does not have special handling |
|
361 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaFailureCode ); |
|
362 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaFailureCode ); |
|
363 EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed ); |
|
364 |
|
365 // OptionsNotSent handling |
|
366 // |
|
367 |
|
368 // MT, not answered |
|
369 iOptionHandler->iSettings.SetCallDirection( 2 ); |
|
370 iOptionHandler->iCapabilityQueryAnswered = EFalse; |
|
371 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
372 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
373 EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed ); |
|
374 |
|
375 // MT, answered (makes state available delayed) |
|
376 iOptionHandler->iCapabilityQueryAnswered = ETrue; |
|
377 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
378 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
379 EUNIT_ASSERT( iOptionHandler->iFastModeAvailabilityDelayed ); |
|
380 |
|
381 // Available handling |
|
382 // |
|
383 |
|
384 // MO, start app |
|
385 iOptionHandler->iSettings.SetCallDirection( 1 ); |
|
386 iSettingsObserver->iApplicationStarted = EFalse; |
|
387 iOptionHandler->iFastModeAvailabilityDelayed = EFalse; |
|
388 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable ); |
|
389 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable ); |
|
390 EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed ); |
|
391 EUNIT_ASSERT( iSettingsObserver->iApplicationStarted ); |
|
392 |
|
393 // App already started by going to available state, do not do twice |
|
394 iSettingsObserver->iApplicationStarted = EFalse; |
|
395 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable ); |
|
396 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable ); |
|
397 EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed ); |
|
398 EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted ); |
|
399 |
|
400 // MT, delayed availability publishing (state not changed yet) |
|
401 iOptionHandler->iSettings.SetCallDirection( 2 ); |
|
402 iOptionHandler->iFastModeAvailabilityDelayed = EFalse; |
|
403 iSettingsObserver->iApplicationStarted = EFalse; |
|
404 iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusOptionsNotSent; |
|
405 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaStatusAvailable ); |
|
406 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
407 EUNIT_ASSERT( iOptionHandler->iFastModeAvailabilityDelayed ); |
|
408 EUNIT_ASSERT( !iSettingsObserver->iApplicationStarted ); |
|
409 |
|
410 // Invite ends availability delaying |
|
411 iOptionHandler->PrepareForReceivedInviteL(); |
|
412 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable ); |
|
413 EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed ); |
|
414 |
|
415 // No effect if no delay pending |
|
416 iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusOptionsNotSent; |
|
417 iOptionHandler->PrepareForReceivedInviteL(); |
|
418 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusOptionsNotSent ); |
|
419 |
|
420 // OptionNotAvailable handling |
|
421 // |
|
422 |
|
423 // Normal handling when no pending availabilty publishing nor state is |
|
424 // not already available |
|
425 iOptionHandler->iFastModeAvailabilityDelayed = EFalse; |
|
426 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaOptionNotAvailable ); |
|
427 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaOptionNotAvailable ); |
|
428 |
|
429 // If already set to available by succesfull answer, sending failure |
|
430 // does not clear availability |
|
431 iOptionHandler->iState = MMusAvaObserver::EMusAvaStatusAvailable; |
|
432 iOptionHandler->DoSetState( MMusAvaObserver::EMusAvaOptionNotAvailable ); |
|
433 EUNIT_ASSERT( iOptionHandler->iState == MMusAvaObserver::EMusAvaStatusAvailable ); |
|
434 } |
|
435 |
|
436 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_FastModeResolvedL() |
|
437 { |
|
438 iOptionHandler->iFastModeCapable = ETrue; |
|
439 |
|
440 // Normal case |
|
441 iOptionHandler->iSettings.SetFastMode( MusSettingsKeys::EFastModeOff ); |
|
442 iOptionHandler->FastModeResolved( MusSettingsKeys::EFastModeOn ); |
|
443 EUNIT_ASSERT( iOptionHandler->iSettings.FastMode() == MusSettingsKeys::EFastModeOn ) |
|
444 |
|
445 // MO side fast mode negotiation has failed, value is not set |
|
446 iOptionHandler->iSettings.SetFastMode( MusSettingsKeys::EFastModeOff ); |
|
447 iOptionHandler->iSettings.SetCallDirection( 1 ); |
|
448 iOptionHandler->iState = MMusAvaObserver::EMusAvaOptionNotAvailable; |
|
449 iOptionHandler->FastModeResolved( MusSettingsKeys::EFastModeOn ); |
|
450 EUNIT_ASSERT( iOptionHandler->iSettings.FastMode() == MusSettingsKeys::EFastModeOff ) |
|
451 } |
|
452 |
|
453 void UT_CMusAvaOptionHandler::UT_CMusAvaOptionHandler_CapabilityQueryAnsweredL() |
|
454 { |
|
455 iOptionHandler->iFastModeCapable = ETrue; |
|
456 |
|
457 // If fast mode MO side, no special handling for answer |
|
458 iOptionHandler->CapabilityQueryAnswered( ETrue ); |
|
459 EUNIT_ASSERT( iOptionHandler->iCapabilityQueryAnswered ) |
|
460 EUNIT_ASSERT( !iOptionHandler->iFastModeAvailabilityDelayed ); |
|
461 |
|
462 // If fast mode MT side, MT can start waiting for invite already after answering |
|
463 iOptionHandler->iCapabilityQueryAnswered = EFalse; |
|
464 iOptionHandler->iSettings.SetFastMode( MusSettingsKeys::EFastModeOn ); |
|
465 iOptionHandler->iSettings.SetCallDirection( 2 ); |
|
466 iOptionHandler->CapabilityQueryAnswered( ETrue ); |
|
467 EUNIT_ASSERT( iOptionHandler->iCapabilityQueryAnswered ) |
|
468 EUNIT_ASSERT( iOptionHandler->iFastModeAvailabilityDelayed ); |
|
469 } |
|
470 |
|
471 // TEST TABLE |
|
472 |
|
473 EUNIT_BEGIN_TEST_TABLE( |
|
474 UT_CMusAvaOptionHandler, |
|
475 "CMusAvaOptionHandler", |
|
476 "UNIT" ) |
|
477 |
|
478 EUNIT_TEST( |
|
479 "NewL - test ", |
|
480 "CMusAvaOptionHandler", |
|
481 "NewL", |
|
482 "FUNCTIONALITY", |
|
483 SetupL,UT_CMusAvaOptionHandler_NewLL, Teardown) |
|
484 |
|
485 EUNIT_TEST( |
|
486 "DoExecuteL - test ", |
|
487 "CMusAvaOptionHandler", |
|
488 "DoExecuteL", |
|
489 "FUNCTIONALITY", |
|
490 SetupL,UT_CMusAvaOptionHandler_DoExecuteLL, Teardown) |
|
491 |
|
492 EUNIT_TEST( |
|
493 "Name - test ", |
|
494 "CMusAvaOptionHandler", |
|
495 "Name", |
|
496 "FUNCTIONALITY", |
|
497 SetupL,UT_CMusAvaOptionHandler_NameL, Teardown) |
|
498 |
|
499 |
|
500 EUNIT_TEST( |
|
501 "Status - test ", |
|
502 "CMusAvaOptionHandler", |
|
503 "Status", |
|
504 "FUNCTIONALITY", |
|
505 SetupL,UT_CMusAvaOptionHandler_StatusL, Teardown) |
|
506 |
|
507 EUNIT_TEST( |
|
508 "Stop - test ", |
|
509 "CMusAvaOptionHandler", |
|
510 "Stop", |
|
511 "FUNCTIONALITY", |
|
512 SetupL,UT_CMusAvaOptionHandler_StopL, Teardown) |
|
513 |
|
514 EUNIT_TEST( |
|
515 "CapabilitiesResolved - test ", |
|
516 "CMusAvaOptionHandler", |
|
517 "CapabilitiesResolved", |
|
518 "FUNCTIONALITY", |
|
519 SetupL,UT_CMusAvaOptionHandler_CapabilitiesResolvedL, Teardown) |
|
520 |
|
521 EUNIT_TEST( |
|
522 "CapabilitiesResolvedForCingular - test ", |
|
523 "CMusAvaOptionHandler", |
|
524 "CapabilitiesResolvedForCingular", |
|
525 "FUNCTIONALITY", |
|
526 SetupL,UT_CMusAvaOptionHandler_CapabilitiesResolvedForCingularL, |
|
527 Teardown) |
|
528 |
|
529 EUNIT_TEST( |
|
530 "SipHeadersL - test ", |
|
531 "CMusAvaOptionHandler", |
|
532 "SipHeadersL", |
|
533 "FUNCTIONALITY", |
|
534 SetupL,UT_CMusAvaOptionHandler_SipHeadersL, |
|
535 Teardown) |
|
536 |
|
537 EUNIT_TEST( |
|
538 "VideoCodecsResolvedL - test ", |
|
539 "CMusAvaOptionHandler", |
|
540 "VideoCodecsResolvedL", |
|
541 "FUNCTIONALITY", |
|
542 SetupL,UT_CMusAvaOptionHandler_VideoCodecsResolvedLL, |
|
543 Teardown) |
|
544 |
|
545 EUNIT_TEST( |
|
546 "DoSetState - test ", |
|
547 "CMusAvaOptionHandler", |
|
548 "DoSetState", |
|
549 "FUNCTIONALITY", |
|
550 SetupL,UT_CMusAvaOptionHandler_DoSetStateL, |
|
551 Teardown) |
|
552 |
|
553 EUNIT_TEST( |
|
554 "DoSetState - fastmode test ", |
|
555 "CMusAvaOptionHandler", |
|
556 "DoSetState", |
|
557 "FUNCTIONALITY", |
|
558 SetupL,UT_CMusAvaOptionHandler_DoSetStateFastModeL, |
|
559 Teardown) |
|
560 |
|
561 EUNIT_TEST( |
|
562 "FastModeResolved - test ", |
|
563 "CMusAvaOptionHandler", |
|
564 "FastModeResolved", |
|
565 "FUNCTIONALITY", |
|
566 SetupL,UT_CMusAvaOptionHandler_FastModeResolvedL, |
|
567 Teardown) |
|
568 |
|
569 EUNIT_TEST( |
|
570 "CapabilityQueryAnswered - test ", |
|
571 "CMusAvaOptionHandler", |
|
572 "CapabilityQueryAnswered", |
|
573 "FUNCTIONALITY", |
|
574 SetupL,UT_CMusAvaOptionHandler_CapabilityQueryAnsweredL, |
|
575 Teardown) |
|
576 |
|
577 EUNIT_END_TEST_TABLE |
|
578 |
|
579 // END OF FILE |