67 void TestMpCollectionAlbumArtManager::initTestCase() |
66 void TestMpCollectionAlbumArtManager::initTestCase() |
68 { |
67 { |
69 mStubData = new MpMpxCollectionData(); |
68 mStubData = new MpMpxCollectionData(); |
70 |
69 |
71 // Create an icon (any icon will do) to help with testing. |
70 // Create an icon (any icon will do) to help with testing. |
72 mIcon = QIcon(":/testicons/default_album.png"); |
71 mIcon = HbIcon(":/testicons/default_album.png"); |
73 } |
72 } |
74 |
73 |
75 /*! |
74 /*! |
76 Called after the last testfunction was executed. |
75 Called after the last testfunction was executed. |
77 */ |
76 */ |
114 Tests albumArt() request when album art is not in local cache. |
113 Tests albumArt() request when album art is not in local cache. |
115 Single request. |
114 Single request. |
116 */ |
115 */ |
117 void TestMpCollectionAlbumArtManager::testAlbumArtNoCache() |
116 void TestMpCollectionAlbumArtManager::testAlbumArtNoCache() |
118 { |
117 { |
119 const QIcon* icon = mTest->albumArt(1); |
118 const HbIcon icon = mTest->albumArt(1); |
120 // Verify that: |
119 // Verify that: |
121 // - It returned default icon |
120 // - It returned default icon |
122 // - A request has been made to thumbnail manager |
121 // - A request has been made to thumbnail manager |
123 QVERIFY(icon->isNull() == false); |
122 QVERIFY(icon.isNull() == false); |
124 QCOMPARE(mTest->mPendingRequest, true); |
123 QCOMPARE(mTest->mPendingRequest, true); |
125 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1); |
124 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1); |
126 } |
125 } |
127 |
126 |
128 /*! |
127 /*! |
130 Request more than 1 to test request queue. |
129 Request more than 1 to test request queue. |
131 */ |
130 */ |
132 void TestMpCollectionAlbumArtManager::testAlbumArtNoCacheQueue() |
131 void TestMpCollectionAlbumArtManager::testAlbumArtNoCacheQueue() |
133 { |
132 { |
134 for ( int i = 0; i < 3; i++) { |
133 for ( int i = 0; i < 3; i++) { |
135 const QIcon* icon = mTest->albumArt(i); |
134 const HbIcon icon = mTest->albumArt(i); |
136 QVERIFY(icon->isNull() == false); |
135 QVERIFY(icon.isNull() == false); |
137 } |
136 } |
138 // Verify that: |
137 // Verify that: |
139 // - Max number of requests were sent to thumbnail manager |
138 // - Max number of requests were sent to thumbnail manager |
140 // - A request has been queued |
139 // - A request has been queued |
141 QCOMPARE(mTest->mPendingRequest, true); |
140 QCOMPARE(mTest->mPendingRequest, true); |
146 /*! |
145 /*! |
147 Tests albumArt() request when art is in local cache. |
146 Tests albumArt() request when art is in local cache. |
148 */ |
147 */ |
149 void TestMpCollectionAlbumArtManager::testAlbumArtCache() |
148 void TestMpCollectionAlbumArtManager::testAlbumArtCache() |
150 { |
149 { |
151 mTest->mImageCache.insert(0, new QIcon(mIcon)); |
150 mTest->mImageCache.insert(0, new HbIcon(mIcon)); |
152 |
151 |
153 const QIcon* icon = mTest->albumArt(0); |
152 const HbIcon icon = mTest->albumArt(0); |
154 // Verify that: |
153 // Verify that: |
155 // - A valid icon has been returned |
154 // - A valid icon has been returned |
156 // - No request has been sent to thumbnail manager |
155 // - No request has been sent to thumbnail manager |
157 QVERIFY(icon->isNull() == false); |
156 QVERIFY(icon.isNull() == false); |
158 QCOMPARE(mTest->mPendingRequest, false); |
157 QCOMPARE(mTest->mPendingRequest, false); |
159 QCOMPARE(mTest->mRequestQueue.count(), 0); |
158 QCOMPARE(mTest->mRequestQueue.count(), 0); |
160 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0); |
159 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0); |
161 } |
160 } |
162 |
161 |
164 Tests albumArt() request when item doesn't have AlbumArtUri. |
163 Tests albumArt() request when item doesn't have AlbumArtUri. |
165 */ |
164 */ |
166 void TestMpCollectionAlbumArtManager::testAlbumArtNoUri() |
165 void TestMpCollectionAlbumArtManager::testAlbumArtNoUri() |
167 { |
166 { |
168 mTest->mCollectionData->mItemDataReturn = false; |
167 mTest->mCollectionData->mItemDataReturn = false; |
169 const QIcon* icon = mTest->albumArt(0); |
168 const HbIcon icon = mTest->albumArt(0); |
170 // Verify that: |
169 // Verify that: |
171 // - It returned default icon |
170 // - It returned default icon |
172 // - There is no request pending from thumbnail manager |
171 // - There is no request pending from thumbnail manager |
173 QVERIFY(icon->isNull() == false); |
172 QVERIFY(icon.isNull() == false); |
174 QCOMPARE(mTest->mPendingRequest, false); |
173 QCOMPARE(mTest->mPendingRequest, false); |
175 QCOMPARE(mTest->mRequestQueue.count(), 0); |
174 QCOMPARE(mTest->mRequestQueue.count(), 0); |
176 } |
175 } |
177 |
176 |
178 /*! |
177 /*! |
179 Tests albumArt() request when thumbnail request fails. |
178 Tests albumArt() request when thumbnail request fails. |
180 */ |
179 */ |
181 void TestMpCollectionAlbumArtManager::testAlbumArtFail() |
180 void TestMpCollectionAlbumArtManager::testAlbumArtFail() |
182 { |
181 { |
183 mTest->mThumbnailManager->mGetThumbFails = true; |
182 mTest->mThumbnailManager->mGetThumbFails = true; |
184 const QIcon* icon = mTest->albumArt(0); |
183 const HbIcon icon = mTest->albumArt(0); |
185 // Verify that: |
184 // Verify that: |
186 // - It returned default icon |
185 // - It returned default icon |
187 // - There is no request pending from thumbnail manager |
186 // - There is no request pending from thumbnail manager |
188 QVERIFY(icon->isNull() == false); |
187 QVERIFY(icon.isNull() == false); |
189 QCOMPARE(mTest->mPendingRequest, false); |
188 QCOMPARE(mTest->mPendingRequest, false); |
190 QCOMPARE(mTest->mRequestQueue.count(), 0); |
189 QCOMPARE(mTest->mRequestQueue.count(), 0); |
191 } |
190 } |
192 |
191 |
193 /*! |
192 /*! |
219 Tests cacheFirstScreen() request with all items already in local cache. |
218 Tests cacheFirstScreen() request with all items already in local cache. |
220 */ |
219 */ |
221 void TestMpCollectionAlbumArtManager::testCacheFirstScreenAllCached() |
220 void TestMpCollectionAlbumArtManager::testCacheFirstScreenAllCached() |
222 { |
221 { |
223 mTest->mCollectionData->mCount = 3; |
222 mTest->mCollectionData->mCount = 3; |
224 mTest->mImageCache.insert(0, new QIcon(mIcon)); |
223 mTest->mImageCache.insert(0, new HbIcon(mIcon)); |
225 mTest->mImageCache.insert(1, new QIcon(mIcon)); |
224 mTest->mImageCache.insert(1, new HbIcon(mIcon)); |
226 mTest->mImageCache.insert(2, new QIcon(mIcon)); |
225 mTest->mImageCache.insert(2, new HbIcon(mIcon)); |
227 mTest->cacheFirstScreen(); |
226 mTest->cacheFirstScreen(); |
228 QCOMPARE(mTest->mPendingRequest, false); |
227 QCOMPARE(mTest->mPendingRequest, false); |
229 QCOMPARE(mTest->mRequestQueue.count(), 0); |
228 QCOMPARE(mTest->mRequestQueue.count(), 0); |
230 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0); |
229 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 0); |
231 } |
230 } |
235 */ |
234 */ |
236 void TestMpCollectionAlbumArtManager::testCancel() |
235 void TestMpCollectionAlbumArtManager::testCancel() |
237 { |
236 { |
238 // First send enough requests to trigger requests to be queued. |
237 // First send enough requests to trigger requests to be queued. |
239 for ( int i = 0; i < 3; i++) { |
238 for ( int i = 0; i < 3; i++) { |
240 const QIcon* icon = mTest->albumArt(i); |
239 const HbIcon icon = mTest->albumArt(i); |
241 QVERIFY(icon->isNull() == false); |
240 QVERIFY(icon.isNull() == false); |
242 } |
241 } |
243 QCOMPARE(mTest->mPendingRequest, true); |
242 QCOMPARE(mTest->mPendingRequest, true); |
244 QCOMPARE(mTest->mRequestQueue.count(), 2); |
243 QCOMPARE(mTest->mRequestQueue.count(), 2); |
245 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1); |
244 QCOMPARE(mTest->mThumbnailManager->mThumbnailReqCounter, 1); |
246 |
245 |
257 Tests setThumbnailSize(). |
256 Tests setThumbnailSize(). |
258 */ |
257 */ |
259 void TestMpCollectionAlbumArtManager::testSetThumbnailSize() |
258 void TestMpCollectionAlbumArtManager::testSetThumbnailSize() |
260 { |
259 { |
261 mTest->mThumbnailManager->mThumbSize = ThumbnailManager::ThumbnailUndefined; |
260 mTest->mThumbnailManager->mThumbSize = ThumbnailManager::ThumbnailUndefined; |
262 |
261 |
263 mTest->setThumbnailSize(MpCommon::ListThumb); |
262 mTest->setThumbnailSize(MpCommon::ListThumb); |
264 QCOMPARE(mTest->mThumbnailManager->mThumbSize, ThumbnailManager::ThumbnailSmall); |
263 QCOMPARE(mTest->mThumbnailManager->mThumbSize, ThumbnailManager::ThumbnailSmall); |
265 |
264 |
266 mTest->setThumbnailSize(MpCommon::TBoneThumb); |
265 mTest->setThumbnailSize(MpCommon::TBoneThumb); |
267 QCOMPARE(mTest->mThumbnailManager->mThumbSize, ThumbnailManager::ThumbnailMedium); |
266 QCOMPARE(mTest->mThumbnailManager->mThumbSize, ThumbnailManager::ThumbnailMedium); |
268 |
267 |
269 mTest->setThumbnailSize(MpCommon::MediaWallThumb); |
268 mTest->setThumbnailSize(MpCommon::MediaWallThumb); |
270 QCOMPARE(mTest->mThumbnailManager->mThumbSize, ThumbnailManager::ThumbnailLarge); |
269 QCOMPARE(mTest->mThumbnailManager->mThumbSize, ThumbnailManager::ThumbnailLarge); |
271 |
270 |
272 } |
271 } |
273 |
272 |
274 /*! |
273 /*! |
275 Tests thumbnailReady() slot. |
274 Tests thumbnailReady() slot. |
276 Tests completion of cacheFirstScreen() request. |
275 Tests completion of cacheFirstScreen() request. |
291 // Emit thumbnailReady() signal for each request. Then verify that: |
290 // Emit thumbnailReady() signal for each request. Then verify that: |
292 // - Test object emitted signal albumArtReady() for 3 items |
291 // - Test object emitted signal albumArtReady() for 3 items |
293 // - 3 items are present in local cache |
292 // - 3 items are present in local cache |
294 for ( int i = 0; i < 3; i++ ) { |
293 for ( int i = 0; i < 3; i++ ) { |
295 void *clientData = reinterpret_cast<void *>(i); |
294 void *clientData = reinterpret_cast<void *>(i); |
296 emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, 0); |
295 emit thumbnailReady(mIcon.pixmap(), clientData, i+1, 0); |
297 } |
296 } |
298 |
297 |
299 QCOMPARE(spy.count(), 3); |
298 QCOMPARE(spy.count(), 3); |
300 QCOMPARE(mTest->mCachingInProgress, false); |
299 QCOMPARE(mTest->mCachingInProgress, false); |
301 QCOMPARE(mTest->mPendingRequest, false); |
300 QCOMPARE(mTest->mPendingRequest, false); |
325 // Emit thumbnailReady() signal for each request with error. Then verify that: |
324 // Emit thumbnailReady() signal for each request with error. Then verify that: |
326 // - Test object doesn't emit signal albumArtReady() |
325 // - Test object doesn't emit signal albumArtReady() |
327 // - 0 item is present in local cache |
326 // - 0 item is present in local cache |
328 for ( int i = 0; i < 3; i++ ) { |
327 for ( int i = 0; i < 3; i++ ) { |
329 void *clientData = reinterpret_cast<void *>(i); |
328 void *clientData = reinterpret_cast<void *>(i); |
330 emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, -1); |
329 emit thumbnailReady(mIcon.pixmap(), clientData, i+1, -1); |
331 } |
330 } |
332 QCOMPARE(spy.count(), 0); |
331 QCOMPARE(spy.count(), 0); |
333 QCOMPARE(mTest->mCachingInProgress, false); |
332 QCOMPARE(mTest->mCachingInProgress, false); |
334 QCOMPARE(mTest->mPendingRequest, false); |
333 QCOMPARE(mTest->mPendingRequest, false); |
335 QCOMPARE(mTest->mRequestQueue.count(), 0); |
334 QCOMPARE(mTest->mRequestQueue.count(), 0); |
348 mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) ); |
347 mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) ); |
349 QSignalSpy spy(mTest, SIGNAL(albumArtReady(int))); |
348 QSignalSpy spy(mTest, SIGNAL(albumArtReady(int))); |
350 |
349 |
351 // First send 3 albumArt() requests. |
350 // First send 3 albumArt() requests. |
352 for ( int i = 0; i < 3; i++) { |
351 for ( int i = 0; i < 3; i++) { |
353 const QIcon* icon = mTest->albumArt(i); |
352 const HbIcon icon = mTest->albumArt(i); |
354 QVERIFY(icon->isNull() == false); |
353 QVERIFY(icon.isNull() == false); |
355 } |
354 } |
356 QCOMPARE(mTest->mPendingRequest, true); |
355 QCOMPARE(mTest->mPendingRequest, true); |
357 QCOMPARE(mTest->mRequestQueue.count(), 2); |
356 QCOMPARE(mTest->mRequestQueue.count(), 2); |
358 |
357 |
359 // Emit thumbnailReady() signal for each request. Then verify that: |
358 // Emit thumbnailReady() signal for each request. Then verify that: |
360 // - Test object emitted signal albumArtReady() 3 times |
359 // - Test object emitted signal albumArtReady() 3 times |
361 // - 3 items are present in local cache |
360 // - 3 items are present in local cache |
362 for ( int i = 0; i < 3; i++ ) { |
361 for ( int i = 0; i < 3; i++ ) { |
363 void *clientData = reinterpret_cast<void *>(i); |
362 void *clientData = reinterpret_cast<void *>(i); |
364 emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, 0); |
363 emit thumbnailReady(mIcon.pixmap(), clientData, i+1, 0); |
365 } |
364 } |
366 QCOMPARE(spy.count(), 3); |
365 QCOMPARE(spy.count(), 3); |
367 QCOMPARE(mTest->mPendingRequest, false); |
366 QCOMPARE(mTest->mPendingRequest, false); |
368 QCOMPARE(mTest->mRequestQueue.count(), 0); |
367 QCOMPARE(mTest->mRequestQueue.count(), 0); |
369 QCOMPARE(mTest->mImageCache.count(), 3); |
368 QCOMPARE(mTest->mImageCache.count(), 3); |
382 mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) ); |
381 mTest->mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)) ); |
383 QSignalSpy spy(mTest, SIGNAL(albumArtReady(int))); |
382 QSignalSpy spy(mTest, SIGNAL(albumArtReady(int))); |
384 |
383 |
385 // First send 3 albumArt() requests. |
384 // First send 3 albumArt() requests. |
386 for ( int i = 0; i < 3; i++) { |
385 for ( int i = 0; i < 3; i++) { |
387 const QIcon* icon = mTest->albumArt(i); |
386 const HbIcon icon = mTest->albumArt(i); |
388 QVERIFY(icon->isNull() == false); |
387 QVERIFY(icon.isNull() == false); |
389 } |
388 } |
390 QCOMPARE(mTest->mPendingRequest, true); |
389 QCOMPARE(mTest->mPendingRequest, true); |
391 QCOMPARE(mTest->mRequestQueue.count(), 2); |
390 QCOMPARE(mTest->mRequestQueue.count(), 2); |
392 |
391 |
393 // Emit thumbnailReady() signal for each request with error. Then verify that: |
392 // Emit thumbnailReady() signal for each request with error. Then verify that: |
394 // - Test object doesn't emitted signal albumArtReady() |
393 // - Test object doesn't emitted signal albumArtReady() |
395 // - 0 items are present in local cache |
394 // - 0 items are present in local cache |
396 for ( int i = 0; i < 3; i++ ) { |
395 for ( int i = 0; i < 3; i++ ) { |
397 void *clientData = reinterpret_cast<void *>(i); |
396 void *clientData = reinterpret_cast<void *>(i); |
398 emit thumbnailReady(mIcon.pixmap(50,50), clientData, i+1, -1); |
397 emit thumbnailReady(mIcon.pixmap(), clientData, i+1, -1); |
399 } |
398 } |
400 QCOMPARE(spy.count(), 0); |
399 QCOMPARE(spy.count(), 0); |
401 QCOMPARE(mTest->mPendingRequest, false); |
400 QCOMPARE(mTest->mPendingRequest, false); |
402 QCOMPARE(mTest->mRequestQueue.count(), 0); |
401 QCOMPARE(mTest->mRequestQueue.count(), 0); |
403 QCOMPARE(mTest->mImageCache.count(), 0); |
402 QCOMPARE(mTest->mImageCache.count(), 0); |