1 /* |
|
2 * Copyright (c) 2004-2007 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: Unit tests for CMusApplicationManager class |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #include "ut_cmusapplicationmanager.h" |
|
20 #include "musapplicationmanager.h" |
|
21 #include "musmanagercommon.h" |
|
22 #include "mussessionproperties.h" |
|
23 #include "musunittesting.h" |
|
24 #include "musmanagerservercommon.h" |
|
25 #include "mussessionproperties.h" |
|
26 #include "mustesthelp.h" |
|
27 #include <apgcli.h> |
|
28 #include <apgtask.h> |
|
29 #include <e32std.h> |
|
30 #include <e32property.h> |
|
31 #include <digia/eunit/eunitmacros.h> |
|
32 #include <APACMDLN.H> |
|
33 |
|
34 |
|
35 |
|
36 // ======== MEMBER FUNCTIONS ======== |
|
37 |
|
38 |
|
39 UT_CMusApplicationManager* UT_CMusApplicationManager::NewL() |
|
40 { |
|
41 UT_CMusApplicationManager* self = UT_CMusApplicationManager::NewLC(); |
|
42 CleanupStack::Pop(); |
|
43 return self; |
|
44 } |
|
45 |
|
46 |
|
47 UT_CMusApplicationManager* UT_CMusApplicationManager::NewLC() |
|
48 { |
|
49 UT_CMusApplicationManager* self = new( ELeave ) UT_CMusApplicationManager(); |
|
50 CleanupStack::PushL( self ); |
|
51 self->ConstructL(); |
|
52 return self; |
|
53 } |
|
54 |
|
55 |
|
56 UT_CMusApplicationManager::~UT_CMusApplicationManager() |
|
57 { |
|
58 } |
|
59 |
|
60 |
|
61 UT_CMusApplicationManager::UT_CMusApplicationManager() |
|
62 { |
|
63 } |
|
64 |
|
65 |
|
66 // --------------------------------------------------------------------------- |
|
67 // The ConstructL from the base class CEUnitTestSuiteClass must be called. |
|
68 // It generates the test case table. |
|
69 // --------------------------------------------------------------------------- |
|
70 // |
|
71 void UT_CMusApplicationManager::ConstructL() |
|
72 { |
|
73 CEUnitTestSuiteClass::ConstructL(); |
|
74 } |
|
75 |
|
76 |
|
77 // --------------------------------------------------------------------------- |
|
78 // Setups a test by instantiating tested class. |
|
79 // --------------------------------------------------------------------------- |
|
80 // |
|
81 void UT_CMusApplicationManager::SetupL() |
|
82 { |
|
83 iManager = CMusApplicationManager::NewL(); |
|
84 } |
|
85 |
|
86 |
|
87 // --------------------------------------------------------------------------- |
|
88 // Finalizes a by deleting instance of tested class. |
|
89 // --------------------------------------------------------------------------- |
|
90 // |
|
91 void UT_CMusApplicationManager::Teardown() |
|
92 { |
|
93 delete iManager; |
|
94 iManager = NULL; |
|
95 PropertyHelper::Close(); |
|
96 } |
|
97 |
|
98 |
|
99 // ======== TEST METHODS ======== |
|
100 |
|
101 |
|
102 // --------------------------------------------------------------------------- |
|
103 // Asserts that instantiation is successful. |
|
104 // --------------------------------------------------------------------------- |
|
105 // |
|
106 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLL() |
|
107 { |
|
108 EUNIT_ASSERT( iManager ); |
|
109 EUNIT_ASSERT( iManager->iApaSession.iConnected ); |
|
110 } |
|
111 |
|
112 |
|
113 // --------------------------------------------------------------------------- |
|
114 // Asserts that instantiation is successful. |
|
115 // --------------------------------------------------------------------------- |
|
116 // |
|
117 void UT_CMusApplicationManager::UT_CMusApplicationManager_NewLCL() |
|
118 { |
|
119 CMusApplicationManager* manager = CMusApplicationManager::NewLC(); |
|
120 EUNIT_ASSERT( manager ); |
|
121 EUNIT_ASSERT( manager->iApaSession.iConnected ); |
|
122 CleanupStack::PopAndDestroy( manager ); |
|
123 } |
|
124 |
|
125 |
|
126 // --------------------------------------------------------------------------- |
|
127 // Asserts that correct functions from TApaTask are called. |
|
128 // --------------------------------------------------------------------------- |
|
129 // |
|
130 void UT_CMusApplicationManager::UT_CMusApplicationManager_ApplicationRunningL() |
|
131 { |
|
132 TApaTask::iApplicationExist = EFalse; |
|
133 EUNIT_ASSERT( !iManager->ApplicationRunning() ); |
|
134 EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists ) |
|
135 TApaTask::iApplicationExist = ETrue; |
|
136 EUNIT_ASSERT( iManager->ApplicationRunning() ); |
|
137 EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists ) |
|
138 } |
|
139 |
|
140 |
|
141 // --------------------------------------------------------------------------- |
|
142 // Else branch of tested method can't be tested since it tries to start real |
|
143 // application. |
|
144 // --------------------------------------------------------------------------- |
|
145 // |
|
146 void UT_CMusApplicationManager::UT_CMusApplicationManager_StartApplicationLL() |
|
147 { |
|
148 TApaTask::iApplicationExist = EFalse; |
|
149 iManager->StartApplicationL(); |
|
150 EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists ) |
|
151 EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) |
|
152 |
|
153 TApaTask::iApplicationExist = ETrue; |
|
154 iManager->StartApplicationL(); |
|
155 EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::ENone ) |
|
156 |
|
157 } |
|
158 |
|
159 |
|
160 // --------------------------------------------------------------------------- |
|
161 // Asserts that tested method calls TApaTask::Exists and if task exists it |
|
162 // should also call TApaTask::KillTask. |
|
163 // --------------------------------------------------------------------------- |
|
164 // |
|
165 void UT_CMusApplicationManager::UT_CMusApplicationManager_StopApplicationLL() |
|
166 { |
|
167 TApaTask::iApplicationExist = EFalse; |
|
168 iManager->StopApplicationL(); |
|
169 EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists ) |
|
170 |
|
171 |
|
172 TApaTask::iApplicationExist = ETrue; |
|
173 iManager->StopApplicationL(); |
|
174 TInt availability = MultimediaSharing::EMultimediaSharingAvailable; |
|
175 TUint key(NMusSessionApi::KStatus); |
|
176 RProperty::Get( key,availability); |
|
177 EUNIT_ASSERT_EQUALS( PropertyHelper::GetCalledFunction(), RProperty::EDefine ) |
|
178 EUNIT_ASSERT_EQUALS( availability, |
|
179 MultimediaSharing::EMultimediaSharingNotAvailable ) |
|
180 } |
|
181 |
|
182 |
|
183 // --------------------------------------------------------------------------- |
|
184 // Asserts that tested method calls TApaTask::Exists and if task exists it |
|
185 // calls TApaTask::BringToForeground. |
|
186 // --------------------------------------------------------------------------- |
|
187 // |
|
188 void UT_CMusApplicationManager::UT_CMusApplicationManager_ShowApplicationLL() |
|
189 { |
|
190 TApaTask::iApplicationExist = EFalse; |
|
191 iManager->ShowApplicationL(); |
|
192 EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EExists ) |
|
193 TApaTask::iApplicationExist = ETrue; |
|
194 iManager->ShowApplicationL(); |
|
195 EUNIT_ASSERT( TApaTask::iApaTaskCalledFunction == TApaTask::EBringToForeground ) |
|
196 } |
|
197 |
|
198 |
|
199 // --------------------------------------------------------------------------- |
|
200 // Writes session properties. Asserts that RProperty leaves are passed |
|
201 // correctly to user. |
|
202 // --------------------------------------------------------------------------- |
|
203 // |
|
204 void UT_CMusApplicationManager::UT_CMusApplicationManager_WriteSessionPropertiesL() |
|
205 { |
|
206 CDesCArrayFlat* array = new( ELeave ) CDesCArrayFlat(4); |
|
207 CleanupStack::PushL( array ); |
|
208 |
|
209 array->AppendL( _L( "a" ) ); |
|
210 array->AppendL( _L( "b" ) ); |
|
211 array->AppendL( _L( "c" ) ); |
|
212 array->AppendL( _L( "d" ) ); |
|
213 array->AppendL( _L( "e" ) ); |
|
214 array->AppendL( _L( "f" ) ); |
|
215 array->AppendL( _L( "g" ) ); |
|
216 array->AppendL( _L( "h" ) ); |
|
217 |
|
218 iManager->WriteSessionPropertiesL( |
|
219 MultimediaSharing::EMusLiveVideo, |
|
220 (MultimediaSharing::TMusAvailabilityStatus) KErrNone, |
|
221 *array ); |
|
222 |
|
223 PropertyHelper::SetErrorCode( KErrGeneral ); |
|
224 |
|
225 EUNIT_ASSERT_SPECIFIC_LEAVE( |
|
226 iManager->WriteSessionPropertiesL( |
|
227 MultimediaSharing::EMusLiveVideo, |
|
228 (MultimediaSharing::TMusAvailabilityStatus) KErrNone, |
|
229 *array ), KErrGeneral ); |
|
230 |
|
231 PropertyHelper::SetErrorCode(KErrNone); |
|
232 |
|
233 CleanupStack::PopAndDestroy( array ); |
|
234 } |
|
235 |
|
236 |
|
237 // --------------------------------------------------------------------------- |
|
238 // Sets a videosharing P/S property. Asserts that RProperty leaves are passed |
|
239 // correctly to user and RProperty::Define is called. Tests literal |
|
240 // properties specifically. |
|
241 // --------------------------------------------------------------------------- |
|
242 // |
|
243 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetPropertyLL() |
|
244 { |
|
245 _LIT( KTest, "unit_test"); |
|
246 PropertyHelper::SetErrorCode( KErrNotSupported ); |
|
247 MUS_EUNIT_ASSERT_SPECIFIC_LEAVE( |
|
248 iManager->SetPropertyL( 1, KTest ), |
|
249 KErrNotSupported ); |
|
250 |
|
251 EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == RProperty::EDefine ) |
|
252 |
|
253 PropertyHelper::SetErrorCode( KErrNone ); |
|
254 EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, KTest ) ); |
|
255 } |
|
256 |
|
257 |
|
258 // --------------------------------------------------------------------------- |
|
259 // Sets a videosharing P/S property. Asserts that RProperty leaves are passed |
|
260 // correctly to user and RProperty::Define is called. Tests integral |
|
261 // properties specifically. |
|
262 // --------------------------------------------------------------------------- |
|
263 // |
|
264 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetPropertyL2L() |
|
265 { |
|
266 PropertyHelper::SetErrorCode( KErrNotSupported ); |
|
267 MUS_EUNIT_ASSERT_SPECIFIC_LEAVE( |
|
268 iManager->SetPropertyL( 1, 1 ), |
|
269 KErrNotSupported ); |
|
270 |
|
271 EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == RProperty::EDefine ) |
|
272 |
|
273 PropertyHelper::SetErrorCode(KErrNone); |
|
274 MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetPropertyL( 1, 1 ) ); |
|
275 } |
|
276 |
|
277 |
|
278 // --------------------------------------------------------------------------- |
|
279 // Asserts that TApaTaskList::FindApp is called by tested method. |
|
280 // --------------------------------------------------------------------------- |
|
281 // |
|
282 void UT_CMusApplicationManager::UT_CMusApplicationManager_GetApaTaskL() |
|
283 { |
|
284 TApaTask::iApplicationExist = EFalse; |
|
285 iManager->GetApaTask(); |
|
286 EUNIT_ASSERT( TApaTaskList::iCalledFunction == TApaTaskList::EFindApp ) |
|
287 } |
|
288 |
|
289 |
|
290 // --------------------------------------------------------------------------- |
|
291 // Sets a videosharing status. Asserts that RProperty leaves are passed |
|
292 // correctly to user and RProperty::Define is called. |
|
293 // --------------------------------------------------------------------------- |
|
294 // |
|
295 void UT_CMusApplicationManager::UT_CMusApplicationManager_SetStatusLL() |
|
296 { |
|
297 PropertyHelper::SetErrorCode( KErrGeneral ); |
|
298 MUS_EUNIT_ASSERT_SPECIFIC_LEAVE( iManager->SetStatusL( |
|
299 MultimediaSharing::EMultimediaSharingNotAvailable ), KErrGeneral ); |
|
300 |
|
301 EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == RProperty::EDefine ); |
|
302 |
|
303 PropertyHelper::SetErrorCode(KErrNone); |
|
304 MUS_EUNIT_ASSERT_NO_LEAVE( iManager->SetStatusL( |
|
305 MultimediaSharing::EMultimediaSharingAvailable ) ); |
|
306 } |
|
307 |
|
308 |
|
309 // ======== EUNIT TEST TABLE ======== |
|
310 |
|
311 |
|
312 EUNIT_BEGIN_TEST_TABLE( |
|
313 UT_CMusApplicationManager, |
|
314 "CMusApplicationManager", |
|
315 "UNIT" ) |
|
316 |
|
317 EUNIT_TEST( |
|
318 "NewL - test ", |
|
319 "CMusApplicationManager", |
|
320 "NewL", |
|
321 "FUNCTIONALITY", |
|
322 SetupL, UT_CMusApplicationManager_NewLL, Teardown ) |
|
323 |
|
324 EUNIT_TEST( |
|
325 "NewLC - test ", |
|
326 "CMusApplicationManager", |
|
327 "NewLC", |
|
328 "FUNCTIONALITY", |
|
329 SetupL, UT_CMusApplicationManager_NewLCL, Teardown ) |
|
330 |
|
331 EUNIT_TEST( |
|
332 "ApplicationRunning - test ", |
|
333 "CMusApplicationManager", |
|
334 "ApplicationRunning", |
|
335 "FUNCTIONALITY", |
|
336 SetupL, UT_CMusApplicationManager_ApplicationRunningL, Teardown ) |
|
337 |
|
338 EUNIT_TEST( |
|
339 "StartApplicationL - test ", |
|
340 "CMusApplicationManager", |
|
341 "StartApplicationL", |
|
342 "FUNCTIONALITY", |
|
343 SetupL, UT_CMusApplicationManager_StartApplicationLL, Teardown ) |
|
344 |
|
345 EUNIT_TEST( |
|
346 "StopApplicationL - test ", |
|
347 "CMusApplicationManager", |
|
348 "StopApplicationL", |
|
349 "FUNCTIONALITY", |
|
350 SetupL, UT_CMusApplicationManager_StopApplicationLL, Teardown ) |
|
351 |
|
352 EUNIT_TEST( |
|
353 "ShowApplicationL - test ", |
|
354 "CMusApplicationManager", |
|
355 "ShowApplicationL", |
|
356 "FUNCTIONALITY", |
|
357 SetupL, UT_CMusApplicationManager_ShowApplicationLL, Teardown ) |
|
358 |
|
359 EUNIT_TEST( |
|
360 "WriteSessionProperties - test ", |
|
361 "CMusApplicationManager", |
|
362 "WriteSessionProperties", |
|
363 "FUNCTIONALITY", |
|
364 SetupL, UT_CMusApplicationManager_WriteSessionPropertiesL, Teardown ) |
|
365 |
|
366 EUNIT_TEST( |
|
367 "SetPropertyL (string) - test ", |
|
368 "CMusApplicationManager", |
|
369 "SetPropertyL", |
|
370 "FUNCTIONALITY", |
|
371 SetupL, UT_CMusApplicationManager_SetPropertyLL, Teardown ) |
|
372 |
|
373 EUNIT_TEST( |
|
374 "SetPropertyL (integer) - test ", |
|
375 "CMusApplicationManager", |
|
376 "SetPropertyL", |
|
377 "FUNCTIONALITY", |
|
378 SetupL, UT_CMusApplicationManager_SetPropertyL2L, Teardown ) |
|
379 |
|
380 EUNIT_TEST( |
|
381 "GetApaTask - test ", |
|
382 "CMusApplicationManager", |
|
383 "GetApaTask", |
|
384 "FUNCTIONALITY", |
|
385 SetupL, UT_CMusApplicationManager_GetApaTaskL, Teardown ) |
|
386 |
|
387 EUNIT_TEST( |
|
388 "SetStatusL - test ", |
|
389 "CMusApplicationManager", |
|
390 "SetStatusL", |
|
391 "FUNCTIONALITY", |
|
392 SetupL, UT_CMusApplicationManager_SetStatusLL, Teardown ) |
|
393 |
|
394 EUNIT_END_TEST_TABLE |
|