103 // |
114 // |
104 void TestVideoThumbnailFetcher::testAddFetch() |
115 void TestVideoThumbnailFetcher::testAddFetch() |
105 { |
116 { |
106 init(); |
117 init(); |
107 |
118 |
108 mTestObject->addFetch(QString(), 0, 0); |
119 TMPXItemId mediaId(0, 0); |
|
120 |
|
121 mTestObject->addFetch(QString(), mediaId, 0); |
109 QCOMPARE(mTestObject->mFetchList.count(), 1); |
122 QCOMPARE(mTestObject->mFetchList.count(), 1); |
110 |
123 |
111 mTestObject->addFetch("test", 0, 0); |
|
112 QCOMPARE(mTestObject->mFetchList.count(), 2); |
|
113 |
|
114 int *internal = new int; |
|
115 mTestObject->addFetch("test", internal, 0); |
|
116 QCOMPARE(mTestObject->mFetchList.count(), 3); |
|
117 |
|
118 cleanup(); |
124 cleanup(); |
119 } |
125 } |
120 |
126 |
121 // --------------------------------------------------------------------------- |
127 // --------------------------------------------------------------------------- |
122 // testCancelFetches |
128 // testCancelFetches |
123 // --------------------------------------------------------------------------- |
129 // --------------------------------------------------------------------------- |
124 // |
130 // |
125 void TestVideoThumbnailFetcher::testCancelFetches() |
131 void TestVideoThumbnailFetcher::testCancelFetches() |
126 { |
132 { |
127 init(); |
133 init(); |
|
134 |
|
135 TMPXItemId mediaId(0, 0); |
128 |
136 |
129 mTestObject->addFetch(QString(), 0, 0); |
137 mTestObject->addFetch(QString(), 0, 0); |
130 mTestObject->cancelFetches(); |
138 mTestObject->cancelFetches(); |
131 QCOMPARE(mTestObject->mFetchList.count(), 0); |
139 QCOMPARE(mTestObject->mFetchList.count(), 0); |
132 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
140 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
136 mTestObject->cancelFetches(); |
144 mTestObject->cancelFetches(); |
137 QCOMPARE(mTestObject->mFetchList.count(), 0); |
145 QCOMPARE(mTestObject->mFetchList.count(), 0); |
138 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
146 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
139 QCOMPARE(mTestObject->mCreationList.count(), 0); |
147 QCOMPARE(mTestObject->mCreationList.count(), 0); |
140 |
148 |
141 int *internal = new int; |
149 mTestObject->addFetch("test", mediaId, 0); |
142 mTestObject->addFetch("test", internal, 0); |
|
143 mTestObject->cancelFetches(); |
150 mTestObject->cancelFetches(); |
144 QCOMPARE(mTestObject->mFetchList.count(), 0); |
151 QCOMPARE(mTestObject->mFetchList.count(), 0); |
145 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
152 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
146 QCOMPARE(mTestObject->mCreationList.count(), 0); |
153 QCOMPARE(mTestObject->mCreationList.count(), 0); |
147 |
154 |
207 // --------------------------------------------------------------------------- |
214 // --------------------------------------------------------------------------- |
208 // |
215 // |
209 void TestVideoThumbnailFetcher::testContinueFetching() |
216 void TestVideoThumbnailFetcher::testContinueFetching() |
210 { |
217 { |
211 init(); |
218 init(); |
212 mTestObject->mFetchList.append(new VideoThumbnailFetcher::ThumbnailFetchData()); |
219 mTestObject->mFetchList.insert(TMPXItemId(0, 0), new VideoThumbnailFetcher::ThumbnailFetchData()); |
213 mTestObject->continueFetching(); |
220 mTestObject->continueFetching(false); |
214 QCOMPARE(mTestObject->fetchCount(), 1); |
221 QCOMPARE(mTestObject->fetchCount(), 1); |
215 cleanup(); |
222 cleanup(); |
216 |
223 |
217 init(); |
224 init(); |
218 mTestObject->mCreationList.insert(0, new VideoThumbnailFetcher::ThumbnailFetchData()); |
225 mTestObject->mCreationList.insert(0, new VideoThumbnailFetcher::ThumbnailFetchData()); |
219 mTestObject->continueFetching(); |
226 mTestObject->continueFetching(false); |
220 QCOMPARE(mTestObject->fetchCount(), 0); |
227 QCOMPARE(mTestObject->fetchCount(), 0); |
221 cleanup(); |
228 cleanup(); |
222 |
229 |
223 // Test when there's nothing to fetch |
230 // Test when there's nothing to fetch |
224 init(); |
231 init(); |
225 QSignalSpy* spy = new QSignalSpy(mTestObject, SIGNAL(allThumbnailsFetched())); |
232 QSignalSpy* spy = new QSignalSpy(mTestObject, SIGNAL(allThumbnailsFetched())); |
226 mTestObject->continueFetching(); |
233 mTestObject->continueFetching(false); |
227 QCOMPARE(spy->count(), 1); |
234 QCOMPARE(spy->count(), 1); |
228 delete spy; |
235 delete spy; |
229 |
236 |
230 cleanup(); |
237 cleanup(); |
231 } |
238 } |
253 // |
260 // |
254 void TestVideoThumbnailFetcher::testStartThumbnailFetches() |
261 void TestVideoThumbnailFetcher::testStartThumbnailFetches() |
255 { |
262 { |
256 // Test when thumbnail manager is null. |
263 // Test when thumbnail manager is null. |
257 init(); |
264 init(); |
258 mTestObject->mFetchList.append(new VideoThumbnailFetcher::ThumbnailFetchData()); |
265 mTestObject->mFetchList.insert(TMPXItemId(0, 0), new VideoThumbnailFetcher::ThumbnailFetchData()); |
259 delete mTestObject->mThumbnailManager; |
266 delete mTestObject->mThumbnailManager; |
260 mTestObject->mThumbnailManager = 0; |
267 mTestObject->mThumbnailManager = 0; |
261 mTestObject->startThumbnailFetches(); |
268 mTestObject->startThumbnailFetches(false); |
262 QCOMPARE(mTestObject->mFetchList.count(), 1); |
269 QCOMPARE(mTestObject->mFetchList.count(), 1); |
263 cleanup(); |
270 cleanup(); |
264 |
271 |
265 // Test when nothing to fetch. |
272 // Test when nothing to fetch. |
266 init(); |
273 init(); |
267 mTestObject->startThumbnailFetches(); |
274 mTestObject->startThumbnailFetches(false); |
268 QVERIFY(mTestObject->mThumbnailManager->mode() == ThumbnailManager::DoNotCreate); |
275 QVERIFY(mTestObject->mThumbnailManager->mode() == ThumbnailManager::DoNotCreate); |
269 QCOMPARE(mTestObject->fetchCount(), 0); |
276 QCOMPARE(mTestObject->fetchCount(), 0); |
270 cleanup(); |
277 cleanup(); |
271 |
278 |
272 // Test when there's something to fetch. |
279 // Test when there's something to fetch. |
273 init(); |
280 init(); |
274 for(int i = 0; i < 10; i++) |
281 for(int i = 0; i < 10; i++) |
275 { |
282 { |
276 int *internal = new int(i); |
283 TMPXItemId mediaId = TMPXItemId(i, i); |
277 mTestObject->addFetch("test", internal, i); |
284 mTestObject->addFetch("test", mediaId, i); |
278 } |
285 } |
279 QCOMPARE(mTestObject->mFetchList.count(), 10); |
286 QCOMPARE(mTestObject->mFetchList.count(), 10); |
280 mTestObject->startThumbnailFetches(); |
287 mTestObject->startThumbnailFetches(false); |
281 QCOMPARE(mTestObject->mFetchList.count(), 0); |
288 QCOMPARE(mTestObject->mFetchList.count(), 0); |
282 QCOMPARE(mTestObject->mStartedFetchList.count(), 10); |
289 QCOMPARE(mTestObject->mStartedFetchList.count(), 10); |
283 QCOMPARE(mTestObject->mThumbnailManager->mRequests.count(), 10); |
290 QCOMPARE(mTestObject->mThumbnailManager->mRequests.count(), 10); |
284 cleanup(); |
291 cleanup(); |
285 |
292 |
286 // Test when request to thumbnail manager fails. |
293 // Test when request to thumbnail manager fails. |
287 init(); |
294 init(); |
288 ThumbnailManager::mGetThumbFails = true; |
295 ThumbnailManager::mGetThumbFails = true; |
289 int *internal = new int(0); |
296 TMPXItemId mediaId = TMPXItemId(0, 0); |
290 mTestObject->addFetch("test", internal, 0); |
297 mTestObject->addFetch("test", mediaId, 0); |
291 QCOMPARE(mTestObject->mFetchList.count(), 1); |
298 QCOMPARE(mTestObject->mFetchList.count(), 1); |
292 mTestObject->startThumbnailFetches(); |
299 mTestObject->startThumbnailFetches(false); |
293 QCOMPARE(mTestObject->mFetchList.count(), 0); |
300 QCOMPARE(mTestObject->mFetchList.count(), 0); |
294 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
301 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
295 QCOMPARE(mTestObject->mThumbnailManager->mRequests.count(), 0); |
302 QCOMPARE(mTestObject->mThumbnailManager->mRequests.count(), 0); |
296 cleanup(); |
303 cleanup(); |
|
304 |
|
305 // Test canceling fetches that are not on the new started list. |
|
306 init(); |
|
307 for(int i = 0; i < 10; i++) |
|
308 { |
|
309 mediaId = TMPXItemId(i, i); |
|
310 mTestObject->addFetch("test", mediaId, i); |
|
311 } |
|
312 |
|
313 // 5 overlapping, they won't be canceled. |
|
314 for(int i = 5; i < 15; i++) |
|
315 { |
|
316 mediaId = TMPXItemId(i, i); // found from the list. |
|
317 VideoThumbnailFetcher::ThumbnailFetchData *data = new VideoThumbnailFetcher::ThumbnailFetchData(); |
|
318 data->mFileName = ""; |
|
319 data->mPriority = 0; |
|
320 data->mRequestId = -1; |
|
321 data->mMediaId = mediaId; |
|
322 mTestObject->mStartedFetchList.insert(mediaId, data); |
|
323 } |
|
324 |
|
325 QCOMPARE(mTestObject->mFetchList.count(), 10); |
|
326 mTestObject->startThumbnailFetches(true); |
|
327 QCOMPARE(mTestObject->mFetchList.count(), 0); |
|
328 QCOMPARE(mTestObject->mThumbnailManager->mRequests.count(), 5); |
|
329 QCOMPARE(mTestObject->mStartedFetchList.count(), 10); |
|
330 QCOMPARE(ThumbnailManager::mCancelRequestCount, 5); |
|
331 cleanup(); |
|
332 |
297 } |
333 } |
298 |
334 |
299 // --------------------------------------------------------------------------- |
335 // --------------------------------------------------------------------------- |
300 // testStartThumbnailCreation |
336 // testStartThumbnailCreation |
301 // --------------------------------------------------------------------------- |
337 // --------------------------------------------------------------------------- |
370 int error = 0; |
405 int error = 0; |
371 QSignalSpy* spy = 0; |
406 QSignalSpy* spy = 0; |
372 |
407 |
373 // Internal parameter is null, started fetches do not contain the fetch. |
408 // Internal parameter is null, started fetches do not contain the fetch. |
374 init(); |
409 init(); |
375 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, void*, int) )); |
410 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, const TMPXItemId &, int) )); |
376 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
411 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
377 QCOMPARE(spy->count(), 1); |
412 QCOMPARE(spy->count(), 1); |
378 delete spy; spy = 0; |
413 delete spy; spy = 0; |
379 cleanup(); |
414 cleanup(); |
380 |
415 |
381 // Internal parameter is null, started fetches contains the fetch. |
416 // Internal parameter is null, started fetches contains the fetch. |
382 init(); |
417 init(); |
383 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, void*, int) )); |
418 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, const TMPXItemId &, int) )); |
384 mTestObject->mStartedFetchList.insert(requestId, new VideoThumbnailFetcher::ThumbnailFetchData()); |
419 mTestObject->mStartedFetchList.insert(requestId, new VideoThumbnailFetcher::ThumbnailFetchData()); |
385 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
420 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
386 QCOMPARE(spy->count(), 1); |
421 QCOMPARE(spy->count(), 1); |
387 delete spy; spy = 0; |
422 delete spy; spy = 0; |
388 cleanup(); |
423 cleanup(); |
389 |
424 |
390 // Test error handling. |
425 // Test error handling. |
391 init(); |
426 init(); |
392 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, void*, int) )); |
427 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, const TMPXItemId &, int) )); |
393 error = -5; |
428 error = -5; |
394 mTestObject->mStartedFetchList.insert(requestId, new VideoThumbnailFetcher::ThumbnailFetchData()); |
429 mTestObject->mStartedFetchList.insert(requestId, new VideoThumbnailFetcher::ThumbnailFetchData()); |
395 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
430 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
396 QCOMPARE(spy->count(), 1); |
431 QCOMPARE(spy->count(), 1); |
397 delete spy; spy = 0; |
432 delete spy; spy = 0; |
398 cleanup(); |
433 cleanup(); |
399 |
434 /* TODO FIX |
400 // Fetch fails because thumbnail was not created yet, fetch list contains the request. |
435 // Fetch fails because thumbnail was not created yet, fetch list contains the request. |
401 init(); |
436 init(); |
402 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, void*, int) )); |
437 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, const TMPXItemId &, int) )); |
403 error = -1; |
438 error = -1; |
404 requestId = 5; |
439 requestId = 5; |
405 internal = new int(5); |
440 internal = new int(5); |
406 mTestObject->mStartedFetchList.insert(requestId, new VideoThumbnailFetcher::ThumbnailFetchData()); |
441 mTestObject->mStartedFetchList.insert(requestId, new VideoThumbnailFetcher::ThumbnailFetchData()); |
407 mTestObject->mStartedFetchList.insert(requestId+1, new VideoThumbnailFetcher::ThumbnailFetchData()); |
442 mTestObject->mStartedFetchList.insert(requestId+1, new VideoThumbnailFetcher::ThumbnailFetchData()); |
410 QCOMPARE(mTestObject->mStartedFetchList.count(), 1); |
445 QCOMPARE(mTestObject->mStartedFetchList.count(), 1); |
411 QCOMPARE(mTestObject->mCreationList.count(), 1); |
446 QCOMPARE(mTestObject->mCreationList.count(), 1); |
412 delete spy; spy = 0; |
447 delete spy; spy = 0; |
413 delete internal; internal = 0; |
448 delete internal; internal = 0; |
414 cleanup(); |
449 cleanup(); |
415 |
450 */ |
416 // Fetch fails because thumbnail was not created yet, fetch list does not contain the request. |
451 // Fetch fails because thumbnail was not created yet, fetch list does not contain the request. |
417 init(); |
452 init(); |
418 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, void*, int) )); |
453 spy = new QSignalSpy(mTestObject, SIGNAL( thumbnailReady(QPixmap, const TMPXItemId &, int) )); |
419 error = -1; |
454 error = -1; |
420 requestId = 5; |
455 requestId = 5; |
421 internal = new int(5); |
456 internal = new int(5); |
422 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
457 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
423 QCOMPARE(spy->count(), 0); |
458 QCOMPARE(spy->count(), 0); |
431 init(); |
466 init(); |
432 internal = 0; |
467 internal = 0; |
433 requestId = 5; |
468 requestId = 5; |
434 mTestObject->mPaused = false; |
469 mTestObject->mPaused = false; |
435 mTestObject->mStartedFetchList.insert(requestId+10, new VideoThumbnailFetcher::ThumbnailFetchData()); |
470 mTestObject->mStartedFetchList.insert(requestId+10, new VideoThumbnailFetcher::ThumbnailFetchData()); |
436 mTestObject->mFetchList.append(new VideoThumbnailFetcher::ThumbnailFetchData()); |
471 mTestObject->mFetchList.insert(TMPXItemId(0, 0), new VideoThumbnailFetcher::ThumbnailFetchData()); |
437 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
472 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
438 QCOMPARE(mTestObject->mStartedFetchList.count(), 1); |
473 QCOMPARE(mTestObject->mStartedFetchList.count(), 1); |
439 QCOMPARE(mTestObject->mFetchList.count(), 1); |
474 QCOMPARE(mTestObject->mFetchList.count(), 1); |
440 cleanup(); |
475 cleanup(); |
441 |
476 |
442 // Fetching is not paused, mStartedFetchList is empty. |
477 // Fetching is not paused, mStartedFetchList is empty. |
443 init(); |
478 init(); |
444 internal = 0; |
479 internal = 0; |
445 requestId = 5; |
480 requestId = 5; |
446 mTestObject->mPaused = false; |
481 mTestObject->mPaused = false; |
447 mTestObject->mFetchList.append(new VideoThumbnailFetcher::ThumbnailFetchData()); |
482 mTestObject->mFetchList.insert(TMPXItemId(0, 0), new VideoThumbnailFetcher::ThumbnailFetchData()); |
448 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
483 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
449 QCOMPARE(mTestObject->mStartedFetchList.count(), 1); |
484 QCOMPARE(mTestObject->mStartedFetchList.count(), 1); |
450 QCOMPARE(mTestObject->mFetchList.count(), 0); |
485 QCOMPARE(mTestObject->mFetchList.count(), 0); |
451 cleanup(); |
486 cleanup(); |
452 |
487 |
453 // Fetch set to paused, mStartedFetchList is empty. |
488 // Fetch set to paused, mStartedFetchList is empty. |
454 init(); |
489 init(); |
455 internal = 0; |
490 internal = 0; |
456 requestId = 5; |
491 requestId = 5; |
457 mTestObject->mPaused = true; |
492 mTestObject->mPaused = true; |
458 mTestObject->mFetchList.append(new VideoThumbnailFetcher::ThumbnailFetchData()); |
493 mTestObject->mFetchList.insert(TMPXItemId(0, 0), new VideoThumbnailFetcher::ThumbnailFetchData()); |
459 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
494 mTestObject->mThumbnailManager->emitThumbnailReady(pmap, internal, requestId, error); |
460 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
495 QCOMPARE(mTestObject->mStartedFetchList.count(), 0); |
461 QCOMPARE(mTestObject->mFetchList.count(), 1); |
496 QCOMPARE(mTestObject->mFetchList.count(), 1); |
462 cleanup(); |
497 cleanup(); |
463 } |
498 } |