|
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_CMusAvaSip.h" |
|
22 #include "muslogger.h" |
|
23 #include "mussettings.inl" |
|
24 #include "CSipSseTestTls.h" |
|
25 #include "mussettingskeys.h" |
|
26 #include "musavasipdefaulthandler.h" |
|
27 #include "sipconnectionobserver.h" |
|
28 #include "musavasipdefaulthandler.h" |
|
29 #include "musavasipconnectionadapter.h" |
|
30 #include "musavasettingsimp.h" |
|
31 #include "musavaregisteravailability.h" |
|
32 #include "musavasipprofileregistryobserver.h" |
|
33 #include "musavacapabilitytesthelper.h" //remove compilation warning |
|
34 #include "CSipSseTestTls.h" |
|
35 |
|
36 // EXTERNAL INCLUDES |
|
37 #include <digia/eunit/eunitmacros.h> |
|
38 #include <e32base.h> |
|
39 //#include <telephonyinternalpskeys.h> |
|
40 #include <sipprofileregistry.h> |
|
41 #include <sip.h> |
|
42 #include <siperr.h> |
|
43 #include <digia/eunit/eunitdecorators.h> |
|
44 |
|
45 |
|
46 // INTERNAL INCLUDES |
|
47 #include "musavasip.h" |
|
48 |
|
49 |
|
50 |
|
51 // CONSTRUCTION |
|
52 UT_CMusAvaSip* UT_CMusAvaSip::NewL() |
|
53 { |
|
54 UT_CMusAvaSip* self = UT_CMusAvaSip::NewLC(); |
|
55 CleanupStack::Pop(); |
|
56 |
|
57 return self; |
|
58 } |
|
59 |
|
60 UT_CMusAvaSip* UT_CMusAvaSip::NewLC() |
|
61 { |
|
62 UT_CMusAvaSip* self = new( ELeave ) UT_CMusAvaSip(); |
|
63 CleanupStack::PushL( self ); |
|
64 |
|
65 self->ConstructL(); |
|
66 |
|
67 return self; |
|
68 } |
|
69 |
|
70 // Destructor (virtual by CBase) |
|
71 UT_CMusAvaSip::~UT_CMusAvaSip() |
|
72 { |
|
73 } |
|
74 |
|
75 // Default constructor |
|
76 UT_CMusAvaSip::UT_CMusAvaSip() |
|
77 { |
|
78 } |
|
79 |
|
80 // Second phase construct |
|
81 void UT_CMusAvaSip::ConstructL() |
|
82 { |
|
83 // The ConstructL from the base class CEUnitTestSuiteClass must be called. |
|
84 // It generates the test case table. |
|
85 CEUnitTestSuiteClass::ConstructL(); |
|
86 } |
|
87 |
|
88 // METHODS |
|
89 |
|
90 |
|
91 |
|
92 void UT_CMusAvaSip::SetupL( ) |
|
93 { |
|
94 SIPStrings::OpenL(); |
|
95 CSipSseTestTls::OpenL(); |
|
96 iProfileId = MultimediaSharingSettings::SipProfileSettingL(); |
|
97 iMusAvaSip = CMusAvaSip::NewL(); |
|
98 } |
|
99 |
|
100 void UT_CMusAvaSip::Teardown( ) |
|
101 { |
|
102 delete iMusAvaSip; |
|
103 iMusAvaSip = NULL; |
|
104 MultimediaSharingSettings::SetSipProfileSettingL( iProfileId ); |
|
105 CSipSseTestTls::Close(); |
|
106 SIPStrings::Close(); |
|
107 } |
|
108 |
|
109 void UT_CMusAvaSip::UT_CMusAvaSip_NewLL( ) |
|
110 { |
|
111 EUNIT_ASSERT( iMusAvaSip->iSip ); |
|
112 EUNIT_ASSERT( iMusAvaSip->iSipObserver ); |
|
113 EUNIT_ASSERT( iMusAvaSip->iSipConnectionObserver ); |
|
114 EUNIT_ASSERT( iMusAvaSip->iSipProfileRegistryObserver ); |
|
115 } |
|
116 |
|
117 void UT_CMusAvaSip::UT_CMusAvaSip_AddAdapterLL() |
|
118 { |
|
119 CMusAvaSipDefaultHandler* defaultHandler |
|
120 = new( ELeave ) CMusAvaSipDefaultHandler(); |
|
121 CleanupStack::PushL( defaultHandler ); |
|
122 iMusAvaSip->AddAdapterL( *defaultHandler ); |
|
123 EUNIT_ASSERT( iMusAvaSip->iSipConnectionObserver ); |
|
124 CleanupStack::PopAndDestroy( defaultHandler ); |
|
125 } |
|
126 |
|
127 void UT_CMusAvaSip::UT_CMusAvaSip_RemoveAdapterL() |
|
128 { |
|
129 CMusAvaSipDefaultHandler* defaultHandler |
|
130 = new( ELeave ) CMusAvaSipDefaultHandler(); |
|
131 CleanupStack::PushL( defaultHandler ); |
|
132 iMusAvaSip->AddAdapterL( *defaultHandler ); |
|
133 EUNIT_ASSERT( iMusAvaSip->iSipConnectionObserver ); |
|
134 iMusAvaSip->RemoveAdapter( *defaultHandler ); |
|
135 // EUNIT_ASSERT( !iMusAvaSip->iSipConnectionObserver->iObservers.Count() ); |
|
136 CleanupStack::PopAndDestroy( defaultHandler ); |
|
137 } |
|
138 void UT_CMusAvaSip::UT_CMusAvaSip_CreateProfileL() |
|
139 { |
|
140 // Test Profile |
|
141 //No profile |
|
142 TInt ret = NULL; |
|
143 TRAPD( error, ret = iMusAvaSip->CreateProfileL() ); |
|
144 if ( error == KErrNoMemory ) User::Leave( error ); |
|
145 TInt count = 0; |
|
146 EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); |
|
147 if ( count > 0 && ret == KErrNone ) |
|
148 { |
|
149 User::Leave( KErrNoMemory ); |
|
150 } |
|
151 EUNIT_ASSERT ( ret ); |
|
152 |
|
153 // Test Profile |
|
154 //Profile created |
|
155 delete iMusAvaSip; |
|
156 iMusAvaSip = NULL; |
|
157 iMusAvaSip = CMusAvaSip::NewL(); |
|
158 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
159 iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL( |
|
160 *iMusAvaSip->iSip, |
|
161 *iMusAvaSip->iSipProfileRegistryObserver ); |
|
162 iMusAvaSip->iSipProfile = |
|
163 iMusAvaSip->GetMusProfileL( *iMusAvaSip->iSipProfileRegistry ); |
|
164 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
165 if ( error == KErrNoMemory ) User::Leave( KErrNoMemory ); |
|
166 EUNIT_ASSERT ( ret ); |
|
167 |
|
168 delete iMusAvaSip; |
|
169 iMusAvaSip = NULL; |
|
170 iMusAvaSip = CMusAvaSip::NewL(); |
|
171 //Test sip profile registry |
|
172 //No profile registry, registry creation fails |
|
173 CSipSseTestTls::Storage()->iRegistryBehavior = KRegistryLeaveAtConstruct; |
|
174 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
175 if ( error == KErrNoMemory ) User::Leave( error ); |
|
176 EUNIT_ASSERT ( !ret ); |
|
177 CSipSseTestTls::Storage()->Reset(); |
|
178 |
|
179 //Create sip profile registry |
|
180 delete iMusAvaSip; |
|
181 iMusAvaSip = NULL; |
|
182 iMusAvaSip = CMusAvaSip::NewL(); |
|
183 |
|
184 iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL( |
|
185 *iMusAvaSip->iSip, |
|
186 *iMusAvaSip->iSipProfileRegistryObserver ); |
|
187 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
188 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
189 if ( error == KErrNoMemory ) User::Leave( error ); |
|
190 EUNIT_ASSERT ( ret ); |
|
191 |
|
192 //Test sip profile registry |
|
193 //No profile registry, registry creation ok |
|
194 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
195 if ( error == KErrNoMemory ) User::Leave( error ); |
|
196 EUNIT_ASSERT ( ret ); |
|
197 //Create sip profile registry |
|
198 delete iMusAvaSip; |
|
199 iMusAvaSip = NULL; |
|
200 iMusAvaSip = CMusAvaSip::NewL(); |
|
201 iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL( |
|
202 *iMusAvaSip->iSip, |
|
203 *iMusAvaSip->iSipProfileRegistryObserver ); |
|
204 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
205 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
206 if ( error == KErrNoMemory ) User::Leave( error ); |
|
207 EUNIT_ASSERT ( ret ); |
|
208 // Test profile settings |
|
209 // Resolve profile fail |
|
210 delete iMusAvaSip; |
|
211 iMusAvaSip = NULL; |
|
212 iMusAvaSip = CMusAvaSip::NewL(); |
|
213 // Profile found, profile id not found |
|
214 CSipSseTestTls::Storage()->iProfileBehavior = KSIPProfileIdFetchFails; |
|
215 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
216 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
217 if ( error == KErrNoMemory ) User::Leave( error ); |
|
218 EUNIT_ASSERT ( ret ); |
|
219 CSipSseTestTls::Storage()->Reset(); |
|
220 |
|
221 // Profile found, iap id not found |
|
222 delete iMusAvaSip; |
|
223 iMusAvaSip = NULL; |
|
224 iMusAvaSip = CMusAvaSip::NewL(); |
|
225 CSipSseTestTls::Storage()->iProfileBehavior = KSIPIapIdFetchFails; |
|
226 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
227 if ( error == KErrNoMemory ) User::Leave( error ); |
|
228 EUNIT_ASSERT ( !ret ); |
|
229 CSipSseTestTls::Storage()->Reset(); |
|
230 |
|
231 // All ok |
|
232 delete iMusAvaSip; |
|
233 iMusAvaSip = NULL; |
|
234 iMusAvaSip = CMusAvaSip::NewL(); |
|
235 TRAP( error, ret = iMusAvaSip->CreateProfileL() ); |
|
236 if ( error == KErrNoMemory ) User::Leave( error ); |
|
237 EUNIT_ASSERT ( ret ); |
|
238 |
|
239 } |
|
240 |
|
241 void UT_CMusAvaSip::UT_CMusAvaSip_CreateSipProfileL() |
|
242 { |
|
243 // Test Profile |
|
244 //No profile |
|
245 TInt ret = NULL; |
|
246 TRAPD( error, ret = iMusAvaSip->CreateSipProfile() ); |
|
247 if ( error == KErrNoMemory ) User::Leave( error ); |
|
248 TInt count = 0; |
|
249 EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); |
|
250 if ( count > 0 && ret == KErrNone ) |
|
251 { |
|
252 User::Leave( KErrNoMemory ); |
|
253 } |
|
254 EUNIT_ASSERT ( ret ); |
|
255 // Test Profile |
|
256 //Profile created |
|
257 delete iMusAvaSip; |
|
258 iMusAvaSip = NULL; |
|
259 iMusAvaSip = CMusAvaSip::NewL(); |
|
260 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
261 iMusAvaSip->iSipProfileRegistry = CSIPProfileRegistry::NewL( |
|
262 *iMusAvaSip->iSip, |
|
263 *iMusAvaSip->iSipProfileRegistryObserver ); |
|
264 iMusAvaSip->iSipProfile = |
|
265 iMusAvaSip->GetMusProfileL( *iMusAvaSip->iSipProfileRegistry ); |
|
266 TRAP( error, ret = iMusAvaSip->CreateSipProfile() ); |
|
267 if ( error == KErrNoMemory ) User::Leave( error ); |
|
268 EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); |
|
269 if ( count > 0 && ret == KErrNone ) |
|
270 { |
|
271 User::Leave( KErrNoMemory ); |
|
272 } |
|
273 EUNIT_ASSERT ( ret ); |
|
274 } |
|
275 |
|
276 void UT_CMusAvaSip::UT_CMusAvaSip_ProfileL() |
|
277 { |
|
278 //No profile |
|
279 EUNIT_ASSERT( iMusAvaSip->Profile() == NULL ); |
|
280 //Profile created |
|
281 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
282 EUNIT_ASSERT( iMusAvaSip->CreateProfileL()); |
|
283 EUNIT_ASSERT( iMusAvaSip->Profile() != NULL ); |
|
284 } |
|
285 |
|
286 void UT_CMusAvaSip::UT_CMusAvaSip_ProfileRegistryL() |
|
287 { |
|
288 //Create SIP Profile Registry |
|
289 CSIPProfileRegistry* registry = &iMusAvaSip->ProfileRegistryL(); |
|
290 EUNIT_ASSERT( registry != NULL ); |
|
291 //SIP Profile Registry is created |
|
292 registry = &iMusAvaSip->ProfileRegistryL(); |
|
293 EUNIT_ASSERT( registry != NULL ); |
|
294 } |
|
295 |
|
296 void UT_CMusAvaSip::UT_CMusAvaSip_ConnectionL() |
|
297 { |
|
298 //No connection |
|
299 EUNIT_ASSERT( iMusAvaSip->iSipConnection == NULL ); |
|
300 //Connection is created when SIP profile is created |
|
301 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
302 EUNIT_ASSERT( iMusAvaSip->CreateProfileL() ); |
|
303 |
|
304 //Still no connection |
|
305 EUNIT_ASSERT( iMusAvaSip->iSipConnection == NULL ); |
|
306 |
|
307 TRAPD( err, iMusAvaSip->ConnectionL( EFalse ) ); |
|
308 EUNIT_ASSERT( err == KErrSIPInvalidRegistrationState ); |
|
309 |
|
310 // Forced creation (done normally when profile is registered). |
|
311 EUNIT_ASSERT( iMusAvaSip->ConnectionL() != NULL ); |
|
312 } |
|
313 |
|
314 void UT_CMusAvaSip::UT_CMusAvaSip_ConnectionObserverL() |
|
315 { |
|
316 MSIPConnectionObserver& con = iMusAvaSip->ConnectionObserver(); |
|
317 EUNIT_ASSERT( &con != NULL ); |
|
318 } |
|
319 |
|
320 void UT_CMusAvaSip::UT_CMusAvaSip_SipL() |
|
321 { |
|
322 CSIP& sip = iMusAvaSip->Sip(); |
|
323 EUNIT_ASSERT( &sip != NULL ); |
|
324 } |
|
325 |
|
326 void UT_CMusAvaSip::UT_CMusAvaSip_CreateSIPConnectionLL() |
|
327 { |
|
328 TUint32 iapId; |
|
329 //Profile created |
|
330 delete iMusAvaSip; |
|
331 iMusAvaSip = NULL; |
|
332 iMusAvaSip = CMusAvaSip::NewL(); |
|
333 MultimediaSharingSettings::SetSipProfileSettingL( 0 ); |
|
334 iMusAvaSip->CreateSipProfile(); |
|
335 iMusAvaSip->Profile()->GetParameter( KSIPAccessPointId, iapId ); |
|
336 iMusAvaSip->iIapId = iapId; |
|
337 iMusAvaSip->CreateSIPConnectionL(); |
|
338 EUNIT_ASSERT( iMusAvaSip->ConnectionL( EFalse )->IapId() == iapId ); |
|
339 } |
|
340 |
|
341 void UT_CMusAvaSip::UT_CMusAvaSip_OwnDomainL() |
|
342 { |
|
343 // Profile does not exist |
|
344 HBufC* ownDomain = iMusAvaSip->OwnDomainLC(); |
|
345 EUNIT_ASSERT( ownDomain->Length() == 0 ); |
|
346 CleanupStack::PopAndDestroy( ownDomain ); |
|
347 ownDomain = NULL; |
|
348 |
|
349 // Profile exists, no aors |
|
350 MultimediaSharingSettings::SetSipProfileSettingL( 1 ); |
|
351 TInt ret = NULL; |
|
352 TRAPD( error, ret = iMusAvaSip->CreateProfileL() ); |
|
353 if ( error == KErrNoMemory ) User::Leave( error ); |
|
354 TInt count = 0; |
|
355 EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); |
|
356 if ( count > 0 && ret == KErrNone ) |
|
357 { |
|
358 User::Leave( KErrNoMemory ); |
|
359 } |
|
360 EUNIT_ASSERT ( ret ); |
|
361 ownDomain = iMusAvaSip->OwnDomainLC(); |
|
362 EUNIT_ASSERT( ownDomain->Length() == 0 ); |
|
363 CleanupStack::PopAndDestroy( ownDomain ); |
|
364 ownDomain = NULL; |
|
365 |
|
366 // Empty aors |
|
367 CSIPProfile* profile = iMusAvaSip->Profile(); |
|
368 delete profile->iArray; |
|
369 profile->iArray = NULL; |
|
370 profile->iArray = new ( ELeave ) CDesC8ArrayFlat( 1 ); |
|
371 ownDomain = iMusAvaSip->OwnDomainLC(); |
|
372 EUNIT_ASSERT( ownDomain->Length() == 0 ); |
|
373 CleanupStack::PopAndDestroy( ownDomain ); |
|
374 ownDomain = NULL; |
|
375 |
|
376 // Aors found |
|
377 profile->iArray->AppendL( _L8("sip:user@domain.com") ); |
|
378 ownDomain = iMusAvaSip->OwnDomainLC(); |
|
379 EUNIT_ASSERT( ownDomain->Length() > 0 ); |
|
380 CleanupStack::PopAndDestroy( ownDomain ); |
|
381 } |
|
382 |
|
383 // TEST TABLE |
|
384 |
|
385 EUNIT_BEGIN_TEST_TABLE( |
|
386 UT_CMusAvaSip, |
|
387 "CMusAvaSip.", |
|
388 "UNIT" ) |
|
389 |
|
390 EUNIT_TEST( |
|
391 "NewL - test ", |
|
392 "CMusAvaSip", |
|
393 "NewL", |
|
394 "FUNCTIONALITY", |
|
395 SetupL, UT_CMusAvaSip_NewLL, Teardown) |
|
396 |
|
397 EUNIT_TEST( |
|
398 "AddAdapterL - test ", |
|
399 "CMusAvaSip", |
|
400 "AddAdapterL", |
|
401 "FUNCTIONALITY", |
|
402 SetupL, UT_CMusAvaSip_AddAdapterLL, Teardown) |
|
403 |
|
404 EUNIT_TEST( |
|
405 "RemoveAdapter - test ", |
|
406 "CMusAvaSip", |
|
407 "RemoveAdapter", |
|
408 "FUNCTIONALITY", |
|
409 SetupL, UT_CMusAvaSip_RemoveAdapterL, Teardown) |
|
410 |
|
411 |
|
412 EUNIT_TEST( |
|
413 "CreateProfile - test ", |
|
414 "CMusAvaSip", |
|
415 "CreateProfile", |
|
416 "FUNCTIONALITY", |
|
417 SetupL, UT_CMusAvaSip_CreateProfileL, Teardown) |
|
418 |
|
419 EUNIT_TEST( |
|
420 "CreateSipProfile - test ", |
|
421 "CMusAvaSip", |
|
422 "CreateSipProfile", |
|
423 "FUNCTIONALITY", |
|
424 SetupL, UT_CMusAvaSip_CreateSipProfileL, Teardown) |
|
425 |
|
426 |
|
427 EUNIT_TEST( |
|
428 "ProfileL - test ", |
|
429 "CMusAvaSip", |
|
430 "ProfileL", |
|
431 "FUNCTIONALITY", |
|
432 SetupL, UT_CMusAvaSip_ProfileL, Teardown) |
|
433 |
|
434 EUNIT_TEST( |
|
435 "ProfileRegistry - test ", |
|
436 "CMusAvaSip", |
|
437 "ProfileRegistry", |
|
438 "FUNCTIONALITY", |
|
439 SetupL, UT_CMusAvaSip_ProfileRegistryL, Teardown) |
|
440 |
|
441 EUNIT_TEST( |
|
442 "Connection - test ", |
|
443 "CMusAvaSip", |
|
444 "Connection", |
|
445 "FUNCTIONALITY", |
|
446 SetupL, UT_CMusAvaSip_ConnectionL, Teardown) |
|
447 |
|
448 EUNIT_TEST( |
|
449 "ConnectionObserver - test ", |
|
450 "CMusAvaSip", |
|
451 "ConnectionObserver", |
|
452 "FUNCTIONALITY", |
|
453 SetupL, UT_CMusAvaSip_ConnectionObserverL, Teardown) |
|
454 |
|
455 EUNIT_TEST( |
|
456 "Sip - test ", |
|
457 "CMusAvaSip", |
|
458 "Sip", |
|
459 "FUNCTIONALITY", |
|
460 SetupL, UT_CMusAvaSip_SipL, Teardown) |
|
461 |
|
462 EUNIT_TEST( |
|
463 "CreateSIPConnectionL - test ", |
|
464 "CMusAvaSip", |
|
465 "CreateSIPConnectionL", |
|
466 "FUNCTIONALITY", |
|
467 SetupL, UT_CMusAvaSip_CreateSIPConnectionLL, Teardown) |
|
468 |
|
469 EUNIT_TEST( |
|
470 "OwnDomainLC - test ", |
|
471 "CMusAvaSip", |
|
472 "OwnDomainLC", |
|
473 "FUNCTIONALITY", |
|
474 SetupL, UT_CMusAvaSip_OwnDomainL, Teardown) |
|
475 |
|
476 EUNIT_END_TEST_TABLE |
|
477 |
|
478 // END OF FILE |