1 /* |
|
2 * Copyright (c) 2009 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 test for mpmpxdetailsframeworkwrapper |
|
15 * |
|
16 */ |
|
17 |
|
18 #include <QSignalSpy> |
|
19 #include <hbapplication.h> |
|
20 #include <hbmainwindow.h> |
|
21 |
|
22 #include <mpxmessagegeneraldefs.h> |
|
23 #include <mpxplaybackmessage.h> |
|
24 #include <mpxmediamusicdefs.h> |
|
25 #include <mpxmediageneraldefs.h> |
|
26 |
|
27 #include <e32std.h> |
|
28 #include <e32des8.h> |
|
29 |
|
30 #include "unittest_mpmpxdetailsframeworkwrapper.h" |
|
31 #include "stub/inc/mpxplaybackutility.h" |
|
32 #include "stub/inc/mpsongdata.h" |
|
33 #include "logger.h" |
|
34 |
|
35 // classes under test |
|
36 #define private public |
|
37 #include "mpmpxdetailsframeworkwrapper.h" |
|
38 #include "mpmpxdetailsframeworkwrapper_p.h" |
|
39 #undef private |
|
40 |
|
41 struct TTestAttrs |
|
42 { |
|
43 const wchar_t* GeneralTitle; // MpSongData::mTitle |
|
44 const wchar_t* MusicArtist; // MpSongData::mArtist |
|
45 const wchar_t* MusicAlbum; // MpSongData::mAlbum |
|
46 const wchar_t* MusicAlbumArtFileName; // MpSongData::mAlbumArt (TODO: not tested yet) |
|
47 const wchar_t* Comment; // MpSongData::mComment |
|
48 const wchar_t* Composer; // MpSongData::mComposer |
|
49 const TInt Year; // MpSongData::mYear |
|
50 const wchar_t* MusicAlbumTrack; // MpSongData::mAlbumTrack |
|
51 const wchar_t* MusicGenre; // MpSongData::mGenre |
|
52 const wchar_t* MusicUri; // N/A in MpSongData (TODO: not tested yet) |
|
53 }; |
|
54 |
|
55 // title |
|
56 const TInt KTitleZeroSized = 0; |
|
57 const TInt KTitleVeryLarge = 1; |
|
58 const TInt KTitleOff = 2; |
|
59 |
|
60 // artist |
|
61 const TInt KMusicArtistZeroSized = 3; |
|
62 const TInt KMusicArtistLarge = 4; |
|
63 const TInt KMusicArtistOff = 5; |
|
64 |
|
65 // album |
|
66 const TInt KAlbumZeroSized = 6; |
|
67 const TInt KAlbumLarge = 7; |
|
68 const TInt KAlbumOff = 8; |
|
69 |
|
70 // comment |
|
71 const TInt KCommentZeroSized = 9; |
|
72 const TInt KCommentLarge = 10; |
|
73 const TInt KCommentOff = 11; |
|
74 |
|
75 // composer |
|
76 const TInt KComposerZeroSized = 12; |
|
77 const TInt KComposerLarge = 13; |
|
78 const TInt KComposerOff = 14; |
|
79 |
|
80 // year |
|
81 const TInt KYearNegative = 15; |
|
82 const TInt KYearZero = 16; |
|
83 const TInt KYearPositive = 17; |
|
84 const TInt KYearOff = 18; |
|
85 |
|
86 // album track |
|
87 const TInt KAlbumTrackZeroSized = 19; |
|
88 const TInt KAlbumTrackLarge = 20; |
|
89 const TInt KAlbumTrackOff = 21; |
|
90 |
|
91 // genre |
|
92 const TInt KGenreZeroSized = 22; |
|
93 const TInt KGenreLarge = 23; |
|
94 const TInt KGenreOff = 24; |
|
95 |
|
96 // everything is OFF |
|
97 const TInt KAllFieldsOFF = 25; |
|
98 |
|
99 _LIT(KOff,"OFF"); |
|
100 |
|
101 const TTestAttrs KAllSongsTestData[] = |
|
102 { |
|
103 // Title |
|
104 { L"", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"} |
|
105 ,{ L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"} |
|
106 ,{ L"OFF", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
107 // Artist |
|
108 , { L"Title", L"", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
109 , { L"Title", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"} |
|
110 ,{ L"Title", L"OFF", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
111 // Album |
|
112 , { L"Title", L"Artist", L"", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
113 , { L"Title", L"Artist", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"} |
|
114 , { L"Title", L"Artist", L"OFF", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
115 // Comment |
|
116 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
117 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"} |
|
118 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"OFF", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
119 // Composer |
|
120 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"} |
|
121 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", 2009, L"Track 1", L"Genre", L"Uri 1"} |
|
122 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"OFF", 2009, L"Track 1", L"", L"Uri 1"} |
|
123 // Year |
|
124 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", -200, L"Track 1", L"Genre", L"Uri 1"} |
|
125 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 0, L"Track 1", L"Genre", L"Uri 1"} |
|
126 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 3000, L"Track 1", L"Genre", L"Uri 1"} |
|
127 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", -1, L"Track 1", L"Genre", L"Uri 1"} |
|
128 // Album Track |
|
129 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"", L"Genre", L"Uri 1"} |
|
130 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Genre", L"Uri 1"} |
|
131 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"OFF", L"Genre", L"Uri 1"} |
|
132 // Genre |
|
133 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"", L"Uri 1"} |
|
134 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Uri 1"} |
|
135 , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"OFF", L"Uri 1"} |
|
136 // all fields OFF |
|
137 , { L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", -1, L"OFF", L"OFF", L"OFF"} |
|
138 }; |
|
139 |
|
140 QString referenceGeneralTitle(int index) |
|
141 { |
|
142 QString result; |
|
143 const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].GeneralTitle)); |
|
144 if(title.Match(KOff) == KErrNotFound) |
|
145 { |
|
146 result = QString::fromUtf16( title.Ptr(), title.Length() ); |
|
147 } |
|
148 return result; |
|
149 } |
|
150 |
|
151 QString referenceMusicArtist(int index) |
|
152 { |
|
153 QString result; |
|
154 const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicArtist)); |
|
155 if(artist.Match(KOff) == KErrNotFound) |
|
156 { |
|
157 result = QString::fromUtf16( artist.Ptr(), artist.Length()); |
|
158 } |
|
159 return result; |
|
160 } |
|
161 |
|
162 QString referenceMusicAlbum(int index) |
|
163 { |
|
164 QString result; |
|
165 const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbum)); |
|
166 if(album.Match(KOff) == KErrNotFound) |
|
167 { |
|
168 result = QString::fromUtf16( album.Ptr(), album.Length() ); |
|
169 } |
|
170 return result; |
|
171 } |
|
172 |
|
173 QString referenceMusicAlbumArtFileName(int index) |
|
174 { |
|
175 QString result; |
|
176 const TDesC& musicAlbumArtFileName = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumArtFileName)); |
|
177 if(musicAlbumArtFileName.Match(KOff) == KErrNotFound) |
|
178 { |
|
179 result = QString::fromUtf16( musicAlbumArtFileName.Ptr(), musicAlbumArtFileName.Length() ); |
|
180 } |
|
181 return result; |
|
182 } |
|
183 |
|
184 QString referenceComment(int index) |
|
185 { |
|
186 QString result; |
|
187 const TDesC& musicComment = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Comment)); |
|
188 if(musicComment.Match(KOff) == KErrNotFound) |
|
189 { |
|
190 result = QString::fromUtf16( musicComment.Ptr(), musicComment.Length() ); |
|
191 } |
|
192 return result; |
|
193 } |
|
194 |
|
195 QString referenceComposer(int index) |
|
196 { |
|
197 QString result; |
|
198 const TDesC& composer = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Composer)); |
|
199 if(composer.Match(KOff) == KErrNotFound) |
|
200 { |
|
201 result = QString::fromUtf16( composer.Ptr(), composer.Length() ); |
|
202 } |
|
203 return result; |
|
204 } |
|
205 |
|
206 int referenceYear(int index) |
|
207 { |
|
208 return (KAllSongsTestData[index].Year >= 0) ? KAllSongsTestData[index].Year : 0; |
|
209 } |
|
210 |
|
211 QString referenceMusicAlbumTrack(int index) |
|
212 { |
|
213 QString result; |
|
214 const TDesC& musicAlbumTrack = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumTrack)); |
|
215 if(musicAlbumTrack.Match(KOff) == KErrNotFound) |
|
216 { |
|
217 result = QString::fromUtf16( musicAlbumTrack.Ptr(), musicAlbumTrack.Length() ); |
|
218 } |
|
219 return result; |
|
220 } |
|
221 |
|
222 QString referenceMusicGenre(int index) |
|
223 { |
|
224 QString result; |
|
225 const TDesC& musicGenre = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicGenre)); |
|
226 if(musicGenre.Match(KOff) == KErrNotFound) |
|
227 { |
|
228 result = QString::fromUtf16( musicGenre.Ptr(), musicGenre.Length() ); |
|
229 } |
|
230 return result; |
|
231 } |
|
232 |
|
233 QString referenceMusicUri(int index) |
|
234 { |
|
235 QString result; |
|
236 const TDesC& musicUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicUri)); |
|
237 if(musicUri.Match(KOff) == KErrNotFound) |
|
238 { |
|
239 result = QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ); |
|
240 } |
|
241 return result; |
|
242 } |
|
243 |
|
244 /*! |
|
245 Make our test case a stand-alone executable that runs all the test functions. |
|
246 */ |
|
247 int main(int argc, char *argv[]) |
|
248 { |
|
249 HbApplication app(argc, argv); |
|
250 HbMainWindow window; |
|
251 |
|
252 TestMpMpxDetailsFrameworkWrapper tv; |
|
253 |
|
254 char *pass[3]; |
|
255 pass[0] = argv[0]; |
|
256 pass[1] = "-o"; |
|
257 pass[2] = "c:\\data\\unittest_mpmpxdetailsframeworkwrapper.txt"; |
|
258 |
|
259 int res = QTest::qExec(&tv, 3, pass); |
|
260 |
|
261 return res; |
|
262 } |
|
263 |
|
264 TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper() |
|
265 : mTest(0), |
|
266 iMediaTestData(0), |
|
267 mSongDetailInfoChanged(false) |
|
268 { |
|
269 } |
|
270 |
|
271 TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper() |
|
272 { |
|
273 delete mTest; |
|
274 } |
|
275 |
|
276 /*! |
|
277 Called before the first testfunction is executed. |
|
278 */ |
|
279 void TestMpMpxDetailsFrameworkWrapper::initTestCase() |
|
280 { |
|
281 } |
|
282 |
|
283 /*! |
|
284 Called after the last testfunction was executed. |
|
285 */ |
|
286 void TestMpMpxDetailsFrameworkWrapper::cleanupTestCase() |
|
287 { |
|
288 } |
|
289 |
|
290 /*! |
|
291 Called before each testfunction is executed. |
|
292 */ |
|
293 void TestMpMpxDetailsFrameworkWrapper::init() |
|
294 { |
|
295 User::__DbgMarkStart(RHeap::EUser); |
|
296 TInt freeCount(0); |
|
297 mAllocCells = User::CountAllocCells(freeCount); |
|
298 TRACE3("TestMpMpxDetailsFrameworkWrapper::init() -- allocCount: %d, freeCount: %d", |
|
299 mAllocCells, freeCount ); |
|
300 |
|
301 mTest = new MpMpxDetailsFrameworkWrapper(); |
|
302 mTestPrivate = mTest->d_ptr; |
|
303 } |
|
304 |
|
305 /*! |
|
306 Called after every testfunction. |
|
307 */ |
|
308 void TestMpMpxDetailsFrameworkWrapper::cleanup() |
|
309 { |
|
310 delete mTest; |
|
311 mTest = 0; |
|
312 mTestPrivate = 0; |
|
313 |
|
314 TInt freeCount(0); |
|
315 TInt allocCount = User::CountAllocCells(freeCount); |
|
316 TRACE3( "TestMpMpxDetailsFrameworkWrapper::cleanup() -- allocCount: %d, freeCount: %d", |
|
317 allocCount, freeCount ); |
|
318 User::__DbgMarkEnd(RHeap::EUser,0); // this should panic if leak |
|
319 } |
|
320 |
|
321 /*! |
|
322 Tests constructor. |
|
323 */ |
|
324 void TestMpMpxDetailsFrameworkWrapper::testConstructor() |
|
325 { |
|
326 QVERIFY( mTestPrivate->q_ptr ); |
|
327 QVERIFY( mTestPrivate->iPlaybackUtility ); |
|
328 QVERIFY( mTestPrivate->iSongData ); |
|
329 // TODO: test observer? |
|
330 } |
|
331 |
|
332 /*! |
|
333 Tests playbackData |
|
334 */ |
|
335 void TestMpMpxDetailsFrameworkWrapper::testSongData() |
|
336 { |
|
337 QCOMPARE(mTestPrivate->iSongData, mTest->songData()); |
|
338 } |
|
339 |
|
340 void TestMpMpxDetailsFrameworkWrapper::testHandleProperty() |
|
341 { |
|
342 // dummy call just to get coverage up. Empty imp in function under test |
|
343 mTestPrivate->HandlePropertyL(EPbPropertyVolume, 0, 0); |
|
344 } |
|
345 |
|
346 void TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames() |
|
347 { |
|
348 // dummy call just to get coverage up. Empty imp in function under test |
|
349 mTestPrivate->HandleSubPlayerNamesL(TUid::Null(), 0, 0, 0); |
|
350 } |
|
351 |
|
352 /*! |
|
353 Tests testHandlePlaybackMessage |
|
354 */ |
|
355 void TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage() |
|
356 { |
|
357 RArray<TInt> supportedIds; |
|
358 CleanupClosePushL( supportedIds ); |
|
359 supportedIds.AppendL( KMPXMessageContentIdGeneral ); |
|
360 CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array()); |
|
361 CleanupStack::PopAndDestroy(&supportedIds); |
|
362 CleanupStack::PushL(testMessage); |
|
363 testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral); |
|
364 |
|
365 //Media change |
|
366 testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged); |
|
367 testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0); |
|
368 testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0); |
|
369 mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone); |
|
370 CleanupStack::PopAndDestroy(testMessage); |
|
371 } |
|
372 |
|
373 void TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData() |
|
374 { |
|
375 QVERIFY(mTestPrivate->iSongData->title().isEmpty()); |
|
376 QVERIFY(mTestPrivate->iSongData->album().isEmpty()); |
|
377 QVERIFY(mTestPrivate->iSongData->artist().isEmpty()); |
|
378 QVERIFY(mTestPrivate->iSongData->comment().isEmpty()); |
|
379 QVERIFY(mTestPrivate->iSongData->year().isEmpty()); |
|
380 QVERIFY(mTestPrivate->iSongData->genre().isEmpty()); |
|
381 QVERIFY(mTestPrivate->iSongData->composer().isEmpty()); |
|
382 QVERIFY(mTestPrivate->iSongData->albumTrack().isEmpty()); |
|
383 QVERIFY(mTestPrivate->iSongData->link().isEmpty()); |
|
384 } |
|
385 |
|
386 void TestMpMpxDetailsFrameworkWrapper::verify(int index) |
|
387 { |
|
388 QCOMPARE(mTestPrivate->songData()->title(), referenceGeneralTitle( index )); |
|
389 QCOMPARE(mTestPrivate->songData()->album(), referenceMusicAlbum( index )); |
|
390 QCOMPARE(mTestPrivate->songData()->artist(), referenceMusicArtist( index )); |
|
391 // TODO: how to verify albumArt ? |
|
392 QCOMPARE(mTestPrivate->songData()->comment(), referenceComment( index )); |
|
393 QCOMPARE(mTestPrivate->songData()->composer(), referenceComposer( index )); |
|
394 QCOMPARE(mTestPrivate->songData()->year().toInt(), referenceYear( index )); |
|
395 QCOMPARE(mTestPrivate->songData()->albumTrack(), referenceMusicAlbumTrack( index )); |
|
396 QCOMPARE(mTestPrivate->songData()->genre(), referenceMusicGenre( index )); |
|
397 } |
|
398 |
|
399 void TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia(int dataIndex, TInt aResult) |
|
400 { |
|
401 init(); |
|
402 loadTestData(dataIndex); |
|
403 mTestPrivate->HandleMediaL(*iMediaTestData, aResult); |
|
404 if(aResult != KErrNone) |
|
405 { |
|
406 verifyEmptyTestData(); |
|
407 } |
|
408 else |
|
409 { |
|
410 verify(dataIndex); |
|
411 } |
|
412 cleanup(); |
|
413 } |
|
414 |
|
415 /* |
|
416 Tests handleMedia |
|
417 */ |
|
418 void TestMpMpxDetailsFrameworkWrapper::testHandleMedia() |
|
419 { |
|
420 // testing passing error code. iSongData should not be modified |
|
421 // as it got constructed fresh with init(), all its string |
|
422 // members must be empty |
|
423 doTestHandleMedia(KTitleZeroSized, KErrGeneral); |
|
424 |
|
425 // Testing zero sized title |
|
426 doTestHandleMedia(KTitleZeroSized, KErrNone); |
|
427 |
|
428 // very large title |
|
429 doTestHandleMedia(KTitleVeryLarge, KErrNone); |
|
430 |
|
431 // Testing title field OFF |
|
432 doTestHandleMedia(KTitleOff, KErrNone); |
|
433 |
|
434 // Testing artist empty string |
|
435 doTestHandleMedia(KMusicArtistZeroSized, KErrNone); |
|
436 |
|
437 // Testing artist long |
|
438 doTestHandleMedia(KMusicArtistLarge, KErrNone); |
|
439 |
|
440 // Testing artist field OFF |
|
441 doTestHandleMedia(KMusicArtistOff, KErrNone); |
|
442 |
|
443 // Testing album zero sized |
|
444 doTestHandleMedia(KAlbumZeroSized, KErrNone); |
|
445 |
|
446 // Testing album long |
|
447 doTestHandleMedia(KAlbumLarge, KErrNone); |
|
448 |
|
449 // Testing album off |
|
450 doTestHandleMedia(KAlbumOff, KErrNone); |
|
451 |
|
452 // Testing comment zero sized |
|
453 doTestHandleMedia(KCommentZeroSized, KErrNone); |
|
454 |
|
455 // Testing comment large |
|
456 doTestHandleMedia(KCommentLarge, KErrNone); |
|
457 |
|
458 // Testing comment OFF |
|
459 doTestHandleMedia(KCommentOff, KErrNone); |
|
460 |
|
461 // Testing composer zero sized |
|
462 doTestHandleMedia(KComposerZeroSized, KErrNone); |
|
463 |
|
464 // Testing composer large |
|
465 doTestHandleMedia(KComposerLarge, KErrNone); |
|
466 |
|
467 // Testing composer OFF |
|
468 doTestHandleMedia(KComposerOff, KErrNone); |
|
469 |
|
470 // Testing year negative |
|
471 doTestHandleMedia(KYearNegative, KErrNone); |
|
472 |
|
473 // Testing year 0 |
|
474 doTestHandleMedia(KYearZero, KErrNone); |
|
475 |
|
476 // Testing year + |
|
477 doTestHandleMedia(KYearPositive, KErrNone); |
|
478 |
|
479 // Testing year OFF |
|
480 doTestHandleMedia(KYearOff, KErrNone); |
|
481 |
|
482 // Testing album track zero sized |
|
483 doTestHandleMedia(KAlbumTrackZeroSized, KErrNone); |
|
484 |
|
485 // Testing album track large |
|
486 doTestHandleMedia(KAlbumTrackLarge, KErrNone); |
|
487 |
|
488 // Testing album track OFF |
|
489 doTestHandleMedia(KAlbumTrackOff, KErrNone); |
|
490 |
|
491 // Testing genre zero sized |
|
492 doTestHandleMedia(KGenreZeroSized, KErrNone); |
|
493 |
|
494 // Testing genre large |
|
495 doTestHandleMedia(KGenreLarge, KErrNone); |
|
496 |
|
497 // Testing genre OFF |
|
498 doTestHandleMedia(KGenreOff, KErrNone); |
|
499 |
|
500 // Testing all fields OFF |
|
501 doTestHandleMedia(KAllFieldsOFF, KErrNone); |
|
502 } |
|
503 |
|
504 /*! |
|
505 Tests retrieveSong |
|
506 */ |
|
507 void TestMpMpxDetailsFrameworkWrapper::testRetrieveSong() |
|
508 { |
|
509 mTest->retrieveSong(); // async |
|
510 // no need to verify the data received. As we already |
|
511 // tested them in testHandleMedia |
|
512 } |
|
513 |
|
514 void TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged() |
|
515 { |
|
516 mSongDetailInfoChanged = true; |
|
517 } |
|
518 |
|
519 /*! |
|
520 Used to load test data |
|
521 */ |
|
522 void TestMpMpxDetailsFrameworkWrapper::loadTestData( TInt aPos ) |
|
523 { |
|
524 TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData entry"); |
|
525 if( iMediaTestData ){ |
|
526 delete iMediaTestData; |
|
527 iMediaTestData=0; |
|
528 } |
|
529 RArray<TInt> supportedIds; |
|
530 CleanupClosePushL( supportedIds ); |
|
531 supportedIds.AppendL( KMPXMediaIdMusic ); |
|
532 supportedIds.AppendL( KMPXMediaIdGeneral ); |
|
533 iMediaTestData = CMPXMedia::NewL( supportedIds.Array() ); |
|
534 CleanupStack::PopAndDestroy( &supportedIds ); |
|
535 |
|
536 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Loading %d.th data entry", aPos); |
|
537 TPtrC title( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].GeneralTitle ) ); |
|
538 if(title.Match(KOff) == KErrNotFound) { |
|
539 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding title: %S to iMediaTestData", &title); |
|
540 iMediaTestData->SetTextValueL( KMPXMediaGeneralTitle, title ); |
|
541 } |
|
542 |
|
543 TPtrC artist( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicArtist ) ); |
|
544 if(artist.Match(KOff) == KErrNotFound) { |
|
545 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding artist: %S to iMediaTestData", &artist); |
|
546 iMediaTestData->SetTextValueL( KMPXMediaMusicArtist, artist ); |
|
547 } |
|
548 |
|
549 TPtrC musicAlbum( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbum ) ); |
|
550 if(musicAlbum.Match(KOff) == KErrNotFound) { |
|
551 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbum: %S to iMediaTestData", &musicAlbum); |
|
552 iMediaTestData->SetTextValueL( KMPXMediaMusicAlbum, musicAlbum ); |
|
553 } |
|
554 |
|
555 TPtrC musicAlbumArtFileName( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumArtFileName ) ); |
|
556 if(musicAlbumArtFileName.Match(KOff) == KErrNotFound) { |
|
557 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumArtFileName: %S to iMediaTestData", &musicAlbumArtFileName); |
|
558 iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumArtFileName, musicAlbumArtFileName ); |
|
559 } |
|
560 |
|
561 TPtrC comment( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Comment ) ); |
|
562 if(comment.Match(KOff) == KErrNotFound) { |
|
563 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding comment: %S to iMediaTestData", &comment); |
|
564 iMediaTestData->SetTextValueL( KMPXMediaGeneralComment, comment); |
|
565 } |
|
566 |
|
567 TPtrC composer( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Composer ) ); |
|
568 if(composer.Match(KOff) == KErrNotFound) { |
|
569 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding composer: %S to iMediaTestData", &composer); |
|
570 iMediaTestData->SetTextValueL( KMPXMediaMusicComposer, composer); |
|
571 } |
|
572 |
|
573 if(KAllSongsTestData[aPos].Year != -1) { |
|
574 TDateTime date_time; |
|
575 date_time.SetYear(KAllSongsTestData[aPos].Year); |
|
576 date_time.SetMonth(EJanuary); |
|
577 date_time.SetDay(1); |
|
578 date_time.SetHour(0); |
|
579 date_time.SetMinute(0); |
|
580 date_time.SetSecond(0); |
|
581 date_time.SetMicroSecond(0); |
|
582 TTime date(date_time); |
|
583 TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding year: %d in %LD to iMediaTestData", KAllSongsTestData[aPos].Year, date.Int64()); |
|
584 TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Is year %d equal to %d", KAllSongsTestData[aPos].Year, date.DateTime().Year()); |
|
585 iMediaTestData->SetTObjectValueL<TInt64>( KMPXMediaMusicYear, date.Int64() ); |
|
586 } |
|
587 |
|
588 TPtrC musicAlbumTrack( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumTrack ) ); |
|
589 if(musicAlbumTrack.Match(KOff) == KErrNotFound) { |
|
590 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumTrack: %S to iMediaTestData", &musicAlbumTrack); |
|
591 iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumTrack, musicAlbumTrack); |
|
592 } |
|
593 |
|
594 TPtrC genre( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicGenre ) ); |
|
595 if(genre.Match(KOff) == KErrNotFound) { |
|
596 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding genre: %S to iMediaTestData", &genre); |
|
597 iMediaTestData->SetTextValueL( KMPXMediaMusicGenre, genre); |
|
598 } |
|
599 |
|
600 TPtrC musicUri( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicUri ) ); |
|
601 if(musicUri.Match(KOff) == KErrNotFound) { |
|
602 TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicUri: %S to iMediaTestData", &musicUri); |
|
603 iMediaTestData->SetTextValueL( KMPXMediaGeneralUri, musicUri); |
|
604 } |
|
605 TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData exit"); |
|
606 } |
|
607 |
|
608 //end of file |
|