148 mTest->refreshModel(); |
144 mTest->refreshModel(); |
149 // Verify that: |
145 // Verify that: |
150 // - It sets correct row count |
146 // - It sets correct row count |
151 QCOMPARE(mTest->mRowCount, 100); |
147 QCOMPARE(mTest->mRowCount, 100); |
152 QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1); |
148 QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 1); |
153 // Stub QAbstractListModel to verify call to reset() |
149 |
154 mTest->mCollectionData->mCount = 100; |
150 mTest->mCollectionData->mCount = 50; |
155 mTest->mCollectionData->mContext = ECollectionContextArtistAlbums; |
151 mTest->mCollectionData->mContext = ECollectionContextArtistAlbums; |
156 mTest->refreshModel(); |
152 mTest->refreshModel(); |
157 // Verify that: |
153 // Verify that: |
158 // - It sets correct row count |
154 // - It sets correct row count |
159 QCOMPARE(mTest->mRowCount, 100); |
155 QCOMPARE(mTest->mRowCount, 50); |
160 QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 2); |
156 QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 2); |
161 } |
157 |
162 |
158 mTest->mCollectionData->mCount = 150; |
163 /*! |
159 mTest->mCollectionData->mContext = ECollectionContextAlbumsMediaWall; |
164 Tests refreshModel() request with empty data model. |
|
165 */ |
|
166 void TestMpCollectionDataModel::testRefreshModelZeroCount() |
|
167 { |
|
168 mTest->mCollectionData->mCount = 0; |
|
169 mTest->refreshModel(); |
160 mTest->refreshModel(); |
170 // Verify that: |
161 // Verify that: |
171 // - It sets correct row count |
162 // - It sets correct row count |
172 QCOMPARE(mTest->mRowCount, 0); |
163 QCOMPARE(mTest->mRowCount, 150); |
|
164 QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 3); |
|
165 |
|
166 |
|
167 mTest->mCollectionData->mCount = 200; |
|
168 mTest->mCollectionData->mContext = ECollectionContextAllSongs; |
|
169 mTest->refreshModel(); |
|
170 // Verify that: |
|
171 // - It sets correct row count |
|
172 // - It shouldn't trigger first screen cache |
|
173 QCOMPARE(mTest->mRowCount, 200); |
|
174 QCOMPARE(mTest->mAlbumArtManager->mCacheAlbumArtCount, 3); |
173 } |
175 } |
174 |
176 |
175 /*! |
177 /*! |
176 Tests collectionData() request. |
178 Tests collectionData() request. |
177 */ |
179 */ |
194 // Qt::DisplayRole |
196 // Qt::DisplayRole |
195 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
197 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
196 QCOMPARE(data.canConvert(QVariant::StringList), true); |
198 QCOMPARE(data.canConvert(QVariant::StringList), true); |
197 QStringList dataList = data.toStringList(); |
199 QStringList dataList = data.toStringList(); |
198 QCOMPARE(dataList.count(), 2); |
200 QCOMPARE(dataList.count(), 2); |
199 QCOMPARE(dataList.at(0), QString("Title")); |
201 QCOMPARE(dataList.at(0), QString("Title1")); |
200 QCOMPARE(dataList.at(1), QString("Artist")); |
202 QCOMPARE(dataList.at(1), QString("Artist1")); |
201 |
203 |
202 // Qt::DecorationRole |
204 // Qt::DecorationRole |
203 data = mTest->data(modelIndex, Qt::DecorationRole); |
205 data = mTest->data(modelIndex, Qt::DecorationRole); |
204 QCOMPARE(data.isNull(), true); |
206 QCOMPARE(data.isNull(), true); |
205 |
207 |
206 // Hb::IndexFeedbackRole |
208 // Hb::IndexFeedbackRole |
207 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
209 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
208 QCOMPARE(data.toString(), QString("Title")); |
210 QCOMPARE(data.toString(), QString("Title1")); |
209 |
|
210 |
|
211 } |
211 } |
212 |
212 |
213 /*! |
213 /*! |
214 Tests data() request for AllSongs context with no data available. |
214 Tests data() request for AllSongs context with no data available. |
215 */ |
215 */ |
216 void TestMpCollectionDataModel::testDataAllSongsNoData() |
216 void TestMpCollectionDataModel::testDataAllSongsNoData() |
217 { |
217 { |
218 mTest->mCollectionData->mCount = 100; |
218 mTest->mCollectionData->mCount = 100; |
219 mTest->mRowCount = 100; |
219 mTest->mRowCount = 100; |
|
220 mTest->mCollectionData->mItemDataReturn = false; |
220 mTest->mCollectionData->mContext = ECollectionContextAllSongs; |
221 mTest->mCollectionData->mContext = ECollectionContextAllSongs; |
221 mTest->mCollectionData->mItemDataReturn = false; |
|
222 |
222 |
223 QModelIndex modelIndex = mHelper->indexFor(1); |
223 QModelIndex modelIndex = mHelper->indexFor(1); |
224 |
224 |
225 // Qt::DisplayRole |
225 // Qt::DisplayRole |
226 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
226 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
253 // Qt::DisplayRole |
253 // Qt::DisplayRole |
254 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
254 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
255 QCOMPARE(data.canConvert(QVariant::StringList), true); |
255 QCOMPARE(data.canConvert(QVariant::StringList), true); |
256 QStringList dataList = data.toStringList(); |
256 QStringList dataList = data.toStringList(); |
257 QCOMPARE(dataList.count(), 1); |
257 QCOMPARE(dataList.count(), 1); |
258 QCOMPARE(dataList.at(0), QString("Title")); |
258 QCOMPARE(dataList.at(0), QString("Title1")); |
259 |
259 |
260 // Qt::DecorationRole |
260 // Qt::DecorationRole |
261 data = mTest->data(modelIndex, Qt::DecorationRole); |
261 data = mTest->data(modelIndex, Qt::DecorationRole); |
262 QCOMPARE(data.isNull(), true); |
262 QCOMPARE(data.isNull(), true); |
263 |
263 |
264 // Hb::IndexFeedbackRole |
264 // Hb::IndexFeedbackRole |
265 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
265 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
266 QCOMPARE(data.toString(), QString("Title")); |
266 QCOMPARE(data.toString(), QString("Title1")); |
267 } |
267 } |
268 |
268 |
269 /*! |
269 /*! |
270 Tests data() request for Artists context with no data available. |
270 Tests data() request for Artists context with no data available. |
271 */ |
271 */ |
272 void TestMpCollectionDataModel::testDataArtistsNoData() |
272 void TestMpCollectionDataModel::testDataArtistsNoData() |
273 { |
273 { |
274 mTest->mCollectionData->mCount = 100; |
274 mTest->mCollectionData->mCount = 100; |
275 mTest->mRowCount = 100; |
275 mTest->mRowCount = 100; |
|
276 mTest->mCollectionData->mItemDataReturn = false; |
276 mTest->mCollectionData->mContext = ECollectionContextArtists; |
277 mTest->mCollectionData->mContext = ECollectionContextArtists; |
277 mTest->mCollectionData->mItemDataReturn = false; |
|
278 |
278 |
279 QModelIndex modelIndex = mHelper->indexFor(1); |
279 QModelIndex modelIndex = mHelper->indexFor(1); |
280 |
280 |
281 // Qt::DisplayRole |
281 // Qt::DisplayRole |
282 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
282 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
283 QCOMPARE(data.canConvert(QVariant::StringList), true); |
283 QCOMPARE(data.canConvert(QVariant::StringList), true); |
284 QStringList dataList = data.toStringList(); |
284 QStringList dataList = data.toStringList(); |
285 QCOMPARE(dataList.count(), 1); |
285 QCOMPARE(dataList.count(), 1); |
286 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
286 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
287 |
287 |
288 |
288 |
289 // Qt::DecorationRole |
289 // Qt::DecorationRole |
290 data = mTest->data(modelIndex, Qt::DecorationRole); |
290 data = mTest->data(modelIndex, Qt::DecorationRole); |
291 QCOMPARE(data.isNull(), true); |
291 QCOMPARE(data.isNull(), true); |
292 |
292 |
293 // Hb::IndexFeedbackRole |
293 // Hb::IndexFeedbackRole |
294 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
294 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
295 QCOMPARE(data.toString(), QString("")); |
295 QCOMPARE(data.toString(), QString("")); |
296 } |
296 } |
297 |
297 |
298 /*! |
298 /*! |
299 Tests data() request for Artist Albums context. |
299 Tests data() request for ArtistAlbums context. |
300 */ |
300 */ |
301 void TestMpCollectionDataModel::testDataArtistAlbums() |
301 void TestMpCollectionDataModel::testDataArtistAlbums() |
302 { |
302 { |
303 mTest->mCollectionData->mCount = 100; |
303 mTest->mCollectionData->mCount = 100; |
304 mTest->mRowCount = 100; |
304 mTest->mRowCount = 100; |
309 // Qt::DisplayRole |
309 // Qt::DisplayRole |
310 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
310 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
311 QCOMPARE(data.canConvert(QVariant::StringList), true); |
311 QCOMPARE(data.canConvert(QVariant::StringList), true); |
312 QStringList dataList = data.toStringList(); |
312 QStringList dataList = data.toStringList(); |
313 QCOMPARE(dataList.count(), 1); |
313 QCOMPARE(dataList.count(), 1); |
314 QCOMPARE(dataList.at(0), QString("Title")); |
314 QCOMPARE(dataList.at(0), QString("Title1")); |
315 |
315 |
316 // Qt::DecorationRole |
316 // Qt::DecorationRole |
317 data = mTest->data(modelIndex, Qt::DecorationRole); |
317 data = mTest->data(modelIndex, Qt::DecorationRole); |
318 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
318 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
319 |
319 |
320 // Hb::IndexFeedbackRole |
320 // Hb::IndexFeedbackRole |
321 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
321 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
322 QCOMPARE(data.toString(), QString("Title")); |
322 QCOMPARE(data.toString(), QString("Title1")); |
323 } |
323 } |
324 |
324 |
325 /*! |
325 /*! |
326 Tests data() request for Artist Albums context with no data available. |
326 Tests data() request for ArtistAlbums context with no data available. |
327 */ |
327 */ |
328 void TestMpCollectionDataModel::testDataArtistAlbumsNoData() |
328 void TestMpCollectionDataModel::testDataArtistAlbumsNoData() |
329 { |
329 { |
330 mTest->mCollectionData->mCount = 100; |
330 mTest->mCollectionData->mCount = 100; |
331 mTest->mRowCount = 100; |
331 mTest->mRowCount = 100; |
|
332 mTest->mCollectionData->mItemDataReturn = false; |
332 mTest->mCollectionData->mContext = ECollectionContextArtistAlbums; |
333 mTest->mCollectionData->mContext = ECollectionContextArtistAlbums; |
333 mTest->mCollectionData->mItemDataReturn = false; |
|
334 |
334 |
335 QModelIndex modelIndex = mHelper->indexFor(1); |
335 QModelIndex modelIndex = mHelper->indexFor(1); |
336 |
336 |
337 // Qt::DisplayRole |
337 // Qt::DisplayRole |
338 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
338 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
339 QCOMPARE(data.canConvert(QVariant::StringList), true); |
339 QCOMPARE(data.canConvert(QVariant::StringList), true); |
340 QStringList dataList = data.toStringList(); |
340 QStringList dataList = data.toStringList(); |
341 QCOMPARE(dataList.count(), 1); |
341 QCOMPARE(dataList.count(), 1); |
342 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
342 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
343 |
343 |
344 |
344 |
345 // Qt::DecorationRole |
345 // Qt::DecorationRole |
346 data = mTest->data(modelIndex, Qt::DecorationRole); |
346 data = mTest->data(modelIndex, Qt::DecorationRole); |
347 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
347 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
348 |
348 |
349 // Hb::IndexFeedbackRole |
349 // Hb::IndexFeedbackRole |
350 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
350 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
351 QCOMPARE(data.toString(), QString("")); |
351 QCOMPARE(data.toString(), QString("")); |
352 } |
352 } |
353 |
353 |
354 /*! |
354 /*! |
355 Tests data() request for Artist Songs context. |
355 Tests data() request for ArtistAlbumsTBone context. |
356 */ |
356 */ |
357 void TestMpCollectionDataModel::testDataArtistSongs() |
357 void TestMpCollectionDataModel::testDataArtistAlbumsTBone() |
358 { |
358 { |
359 mTest->mCollectionData->mCount = 100; |
359 mTest->mCollectionData->mCount = 100; |
360 mTest->mRowCount = 100; |
360 mTest->mRowCount = 100; |
361 mTest->mCollectionData->mContext = ECollectionContextArtistSongs; |
361 mTest->mCollectionData->mContext = ECollectionContextArtistAlbumsTBone; |
362 |
362 |
363 QModelIndex modelIndex = mHelper->indexFor(1); |
363 QModelIndex modelIndex = mHelper->indexFor(1); |
364 |
364 |
365 // Qt::DisplayRole |
365 // Qt::DisplayRole |
366 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
366 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
367 QCOMPARE(data.canConvert(QVariant::StringList), true); |
367 QCOMPARE(data.canConvert(QVariant::StringList), true); |
368 QStringList dataList = data.toStringList(); |
368 QStringList dataList = data.toStringList(); |
369 QCOMPARE(dataList.count(), 2); |
369 QCOMPARE(dataList.count(), 2); |
370 QCOMPARE(dataList.at(0), QString("Title")); |
370 QCOMPARE(dataList.at(0), QString("Title1")); |
371 QCOMPARE(dataList.at(1), QString("Album")); |
371 QCOMPARE(dataList.at(1), QString("CollectionTitle")); |
|
372 |
|
373 // Qt::DecorationRole |
|
374 data = mTest->data(modelIndex, Qt::DecorationRole); |
|
375 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
|
376 } |
|
377 |
|
378 /*! |
|
379 Tests data() request for ArtistAlbumsTBone context with no data available. |
|
380 */ |
|
381 void TestMpCollectionDataModel::testDataArtistAlbumsTBoneNoData() |
|
382 { |
|
383 mTest->mCollectionData->mCount = 100; |
|
384 mTest->mRowCount = 100; |
|
385 mTest->mCollectionData->mItemDataReturn = false; |
|
386 mTest->mCollectionData->mCollectionTitleReturn = false; |
|
387 mTest->mCollectionData->mContext = ECollectionContextArtistAlbumsTBone; |
|
388 |
|
389 QModelIndex modelIndex = mHelper->indexFor(1); |
|
390 |
|
391 // Qt::DisplayRole |
|
392 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
|
393 QCOMPARE(data.canConvert(QVariant::StringList), true); |
|
394 QStringList dataList = data.toStringList(); |
|
395 QCOMPARE(dataList.count(), 2); |
|
396 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
|
397 QCOMPARE(dataList.at(1), hbTrId("txt_mus_other_unknown3")); |
|
398 |
|
399 // Qt::DecorationRole |
|
400 data = mTest->data(modelIndex, Qt::DecorationRole); |
|
401 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
|
402 } |
|
403 |
|
404 /*! |
|
405 Tests data() request for ArtistAllSongs context. |
|
406 */ |
|
407 void TestMpCollectionDataModel::testDataArtistAllSongs() |
|
408 { |
|
409 mTest->mCollectionData->mCount = 100; |
|
410 mTest->mRowCount = 100; |
|
411 mTest->mCollectionData->mContext = ECollectionContextArtistAllSongs; |
|
412 |
|
413 QModelIndex modelIndex = mHelper->indexFor(1); |
|
414 |
|
415 // Qt::DisplayRole |
|
416 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
|
417 QCOMPARE(data.canConvert(QVariant::StringList), true); |
|
418 QStringList dataList = data.toStringList(); |
|
419 QCOMPARE(dataList.count(), 2); |
|
420 QCOMPARE(dataList.at(0), QString("Title1")); |
|
421 QCOMPARE(dataList.at(1), QString("Album1")); |
372 |
422 |
373 // Qt::DecorationRole |
423 // Qt::DecorationRole |
374 data = mTest->data(modelIndex, Qt::DecorationRole); |
424 data = mTest->data(modelIndex, Qt::DecorationRole); |
375 QCOMPARE(data.isNull(), true); |
425 QCOMPARE(data.isNull(), true); |
376 |
426 |
377 // Hb::IndexFeedbackRole |
427 // Hb::IndexFeedbackRole |
378 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
428 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
379 QCOMPARE(data.toString(), QString("Title")); |
429 QCOMPARE(data.toString(), QString("Title1")); |
380 } |
430 } |
381 |
431 |
382 /*! |
432 /*! |
383 Tests data() request for Artists context with no data available. |
433 Tests data() request for ArtistAllSongs context with no data available. |
384 */ |
434 */ |
385 void TestMpCollectionDataModel::testDataArtistSongsNoData() |
435 void TestMpCollectionDataModel::testDataArtistAllSongsNoData() |
386 { |
436 { |
387 mTest->mCollectionData->mCount = 100; |
437 mTest->mCollectionData->mCount = 100; |
388 mTest->mRowCount = 100; |
438 mTest->mRowCount = 100; |
389 mTest->mCollectionData->mContext = ECollectionContextArtistSongs; |
439 mTest->mCollectionData->mContext = ECollectionContextArtistAllSongs; |
390 mTest->mCollectionData->mItemDataReturn = false; |
440 mTest->mCollectionData->mItemDataReturn = false; |
391 |
441 |
392 QModelIndex modelIndex = mHelper->indexFor(1); |
442 QModelIndex modelIndex = mHelper->indexFor(1); |
393 |
443 |
394 // Qt::DisplayRole |
444 // Qt::DisplayRole |
395 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
445 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
396 QCOMPARE(data.canConvert(QVariant::StringList), true); |
446 QCOMPARE(data.canConvert(QVariant::StringList), true); |
397 QStringList dataList = data.toStringList(); |
447 QStringList dataList = data.toStringList(); |
398 QCOMPARE(dataList.count(), 2); |
448 QCOMPARE(dataList.count(), 2); |
399 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
449 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
400 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
450 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown3")); |
401 |
451 |
402 |
452 |
403 // Qt::DecorationRole |
453 // Qt::DecorationRole |
404 data = mTest->data(modelIndex, Qt::DecorationRole); |
454 data = mTest->data(modelIndex, Qt::DecorationRole); |
405 QCOMPARE(data.isNull(), true); |
455 QCOMPARE(data.isNull(), true); |
406 |
456 |
407 // Hb::IndexFeedbackRole |
457 // Hb::IndexFeedbackRole |
408 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
458 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
409 QCOMPARE(data.toString(), QString("")); |
459 QCOMPARE(data.toString(), QString("")); |
410 } |
460 } |
411 |
461 |
412 |
|
413 /*! |
462 /*! |
414 Tests data() request for Albums context. |
463 Tests data() request for Albums context. |
415 */ |
464 */ |
416 void TestMpCollectionDataModel::testDataAlbums() |
465 void TestMpCollectionDataModel::testDataAlbums() |
417 { |
466 { |
459 QCOMPARE(dataList.at(1), hbTrId("txt_mus_other_unknown3")); |
508 QCOMPARE(dataList.at(1), hbTrId("txt_mus_other_unknown3")); |
460 |
509 |
461 // Qt::DecorationRole |
510 // Qt::DecorationRole |
462 data = mTest->data(modelIndex, Qt::DecorationRole); |
511 data = mTest->data(modelIndex, Qt::DecorationRole); |
463 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
512 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
464 |
513 |
465 // Hb::IndexFeedbackRole |
514 // Hb::IndexFeedbackRole |
466 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
515 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
467 QCOMPARE(data.toString(), QString("")); |
516 QCOMPARE(data.toString(), QString("")); |
468 } |
517 } |
469 |
518 |
470 /*! |
519 /*! |
471 Tests data() request for AlbumSongs context. |
520 Tests data() request for AlbumsTBone context. |
472 */ |
521 */ |
473 void TestMpCollectionDataModel::testDataAlbumSongs() |
522 void TestMpCollectionDataModel::testDataAlbumsTBone() |
474 { |
523 { |
475 mTest->mCollectionData->mCount = 100; |
524 mTest->mCollectionData->mCount = 100; |
476 mTest->mRowCount = 100; |
525 mTest->mRowCount = 100; |
477 mTest->mCollectionData->mContext = ECollectionContextAlbumSongs; |
526 mTest->mCollectionData->mContext = ECollectionContextAlbumsTBone; |
|
527 |
|
528 QModelIndex modelIndex = mHelper->indexFor(1); |
|
529 |
|
530 // Qt::DisplayRole |
|
531 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
|
532 QCOMPARE(data.canConvert(QVariant::StringList), true); |
|
533 QStringList dataList = data.toStringList(); |
|
534 QCOMPARE(dataList.count(), 2); |
|
535 QCOMPARE(dataList.at(0), QString("Title1")); |
|
536 QCOMPARE(dataList.at(1), QString("Artist1")); |
|
537 |
|
538 // Qt::DecorationRole |
|
539 data = mTest->data(modelIndex, Qt::DecorationRole); |
|
540 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
|
541 |
|
542 // Hb::IndexFeedbackRole |
|
543 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
|
544 QCOMPARE(data.toString(), QString("Title1")); |
|
545 } |
|
546 |
|
547 /*! |
|
548 Tests data() request for AlbumsTBone context with no data available. |
|
549 */ |
|
550 void TestMpCollectionDataModel::testDataAlbumsTBoneNoData() |
|
551 { |
|
552 mTest->mCollectionData->mCount = 100; |
|
553 mTest->mRowCount = 100; |
|
554 mTest->mCollectionData->mContext = ECollectionContextAlbumsTBone; |
|
555 mTest->mCollectionData->mItemDataReturn = false; |
|
556 |
|
557 QModelIndex modelIndex = mHelper->indexFor(1); |
|
558 |
|
559 // Qt::DisplayRole |
|
560 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
|
561 QCOMPARE(data.canConvert(QVariant::StringList), true); |
|
562 QStringList dataList = data.toStringList(); |
|
563 QCOMPARE(dataList.count(), 2); |
|
564 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
|
565 QCOMPARE(dataList.at(1), hbTrId("txt_mus_other_unknown3")); |
|
566 |
|
567 // Qt::DecorationRole |
|
568 data = mTest->data(modelIndex, Qt::DecorationRole); |
|
569 QCOMPARE(data.userType(), QMetaType::type("QIcon")); |
|
570 |
|
571 // Hb::IndexFeedbackRole |
|
572 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
|
573 QCOMPARE(data.toString(), QString("")); |
|
574 } |
|
575 |
|
576 /*! |
|
577 Tests data() request for Playlists context. |
|
578 */ |
|
579 void TestMpCollectionDataModel::testDataPlaylists() |
|
580 { |
|
581 mTest->mCollectionData->mCount = 100; |
|
582 mTest->mRowCount = 100; |
|
583 mTest->mCollectionData->mContext = ECollectionContextPlaylists; |
478 |
584 |
479 QModelIndex modelIndex = mHelper->indexFor(1); |
585 QModelIndex modelIndex = mHelper->indexFor(1); |
480 |
586 |
481 // Qt::DisplayRole |
587 // Qt::DisplayRole |
482 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
588 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
483 QCOMPARE(data.canConvert(QVariant::StringList), true); |
589 QCOMPARE(data.canConvert(QVariant::StringList), true); |
484 QStringList dataList = data.toStringList(); |
590 QStringList dataList = data.toStringList(); |
485 QCOMPARE(dataList.count(), 1); |
591 QCOMPARE(dataList.count(), 1); |
486 QCOMPARE(dataList.at(0), QString("Title")); |
592 QCOMPARE(dataList.at(0), QString("Title1")); |
487 |
593 |
488 // Qt::DecorationRole |
594 // Qt::DecorationRole |
489 data = mTest->data(modelIndex, Qt::DecorationRole); |
595 data = mTest->data(modelIndex, Qt::DecorationRole); |
490 QCOMPARE(data.isNull(), true); |
596 QCOMPARE(data.isNull(), true); |
491 |
597 |
492 // Hb::IndexFeedbackRole |
598 // Hb::IndexFeedbackRole |
493 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
599 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
494 QCOMPARE(data.toString(), QString("Title")); |
600 QCOMPARE(data.toString(), QString("Title1")); |
495 } |
601 } |
496 |
602 |
497 /*! |
603 /*! |
498 Tests data() request for AlbumSongs context with no data available. |
604 Tests data() request for Playlists context with no data available. |
499 */ |
605 */ |
500 void TestMpCollectionDataModel::testDataAlbumSongsNoData() |
606 void TestMpCollectionDataModel::testDataPlaylistsNoData() |
501 { |
607 { |
502 mTest->mCollectionData->mCount = 100; |
608 mTest->mCollectionData->mCount = 100; |
503 mTest->mRowCount = 100; |
609 mTest->mRowCount = 100; |
504 mTest->mCollectionData->mContext = ECollectionContextAlbumSongs; |
610 mTest->mCollectionData->mContext = ECollectionContextPlaylists; |
505 mTest->mCollectionData->mItemDataReturn = false; |
611 mTest->mCollectionData->mItemDataReturn = false; |
506 |
612 |
507 QModelIndex modelIndex = mHelper->indexFor(1); |
613 QModelIndex modelIndex = mHelper->indexFor(1); |
508 |
614 |
509 // Qt::DisplayRole |
615 // Qt::DisplayRole |
517 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
623 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
518 QCOMPARE(data.toString(), QString("")); |
624 QCOMPARE(data.toString(), QString("")); |
519 } |
625 } |
520 |
626 |
521 /*! |
627 /*! |
522 Tests data() request for Playlists context. |
628 Tests data() request for PlaylistSongs context. |
523 */ |
629 */ |
524 void TestMpCollectionDataModel::testDataPlaylists() |
630 void TestMpCollectionDataModel::testDataPlaylistSongs() |
525 { |
631 { |
526 mTest->mCollectionData->mCount = 100; |
632 mTest->mCollectionData->mCount = 100; |
527 mTest->mRowCount = 100; |
633 mTest->mRowCount = 100; |
528 mTest->mCollectionData->mContext = ECollectionContextPlaylists; |
634 mTest->mCollectionData->mContext = ECollectionContextPlaylistSongs; |
529 |
635 |
530 QModelIndex modelIndex = mHelper->indexFor(1); |
636 QModelIndex modelIndex = mHelper->indexFor(1); |
531 |
637 |
532 // Qt::DisplayRole |
638 // Qt::DisplayRole |
533 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
639 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
534 QCOMPARE(data.canConvert(QVariant::StringList), true); |
640 QCOMPARE(data.canConvert(QVariant::StringList), true); |
535 QStringList dataList = data.toStringList(); |
641 QStringList dataList = data.toStringList(); |
536 QCOMPARE(dataList.count(), 1); |
642 QCOMPARE(dataList.count(), 2); |
537 QCOMPARE(dataList.at(0), QString("Title")); |
643 QCOMPARE(dataList.at(0), QString("Title1")); |
|
644 QCOMPARE(dataList.at(1), QString("Artist1")); |
538 |
645 |
539 // Qt::DecorationRole |
646 // Qt::DecorationRole |
540 data = mTest->data(modelIndex, Qt::DecorationRole); |
647 data = mTest->data(modelIndex, Qt::DecorationRole); |
541 QCOMPARE(data.isNull(), true); |
648 QCOMPARE(data.isNull(), true); |
542 |
649 |
543 // Hb::IndexFeedbackRole |
650 // Hb::IndexFeedbackRole |
544 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
651 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
545 QCOMPARE(data.toString(), QString("Title")); |
652 QCOMPARE(data.toString(), QString("Title1")); |
546 } |
|
547 |
|
548 /*! |
|
549 Tests data() request for Playlists context with no data available. |
|
550 */ |
|
551 void TestMpCollectionDataModel::testDataPlaylistsNoData() |
|
552 { |
|
553 mTest->mCollectionData->mCount = 100; |
|
554 mTest->mRowCount = 100; |
|
555 mTest->mCollectionData->mContext = ECollectionContextPlaylists; |
|
556 mTest->mCollectionData->mItemDataReturn = false; |
|
557 |
|
558 QModelIndex modelIndex = mHelper->indexFor(1); |
|
559 |
|
560 // Qt::DisplayRole |
|
561 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
|
562 QCOMPARE(data.canConvert(QVariant::StringList), true); |
|
563 QStringList dataList = data.toStringList(); |
|
564 QCOMPARE(dataList.count(), 1); |
|
565 QCOMPARE(dataList.at(0), hbTrId("txt_mus_other_unknown4")); |
|
566 |
|
567 // Hb::IndexFeedbackRole |
|
568 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
|
569 QCOMPARE(data.toString(), QString("")); |
|
570 } |
|
571 |
|
572 /*! |
|
573 Tests data() request for PlaylistSongs context. |
|
574 */ |
|
575 void TestMpCollectionDataModel::testDataPlaylistSongs() |
|
576 { |
|
577 mTest->mCollectionData->mCount = 100; |
|
578 mTest->mRowCount = 100; |
|
579 mTest->mCollectionData->mContext = ECollectionContextPlaylistSongs; |
|
580 |
|
581 QModelIndex modelIndex = mHelper->indexFor(1); |
|
582 |
|
583 // Qt::DisplayRole |
|
584 QVariant data = mTest->data(modelIndex, Qt::DisplayRole); |
|
585 QCOMPARE(data.canConvert(QVariant::StringList), true); |
|
586 QStringList dataList = data.toStringList(); |
|
587 QCOMPARE(dataList.count(), 2); |
|
588 QCOMPARE(dataList.at(0), QString("Title")); |
|
589 QCOMPARE(dataList.at(1), QString("Artist")); |
|
590 |
|
591 // Qt::DecorationRole |
|
592 data = mTest->data(modelIndex, Qt::DecorationRole); |
|
593 QCOMPARE(data.isNull(), true); |
|
594 |
|
595 // Hb::IndexFeedbackRole |
|
596 data = mTest->data(modelIndex, Hb::IndexFeedbackRole); |
|
597 QCOMPARE(data.toString(), QString("Title")); |
|
598 } |
653 } |
599 |
654 |
600 /*! |
655 /*! |
601 Tests data() request for PlaylistSongs context with no data available. |
656 Tests data() request for PlaylistSongs context with no data available. |
602 */ |
657 */ |
677 QSignalSpy spy(mTest, SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int))); |
732 QSignalSpy spy(mTest, SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int))); |
678 QSignalSpy spy2(mTest, SIGNAL(rowsRemoved(QModelIndex, int, int))); |
733 QSignalSpy spy2(mTest, SIGNAL(rowsRemoved(QModelIndex, int, int))); |
679 MpMpxCollectionData::resetItemDataCounter(); |
734 MpMpxCollectionData::resetItemDataCounter(); |
680 mTest->mCollectionData->mCount = 2; |
735 mTest->mCollectionData->mCount = 2; |
681 mTest->mRowCount = 2; |
736 mTest->mRowCount = 2; |
682 |
737 |
683 QVERIFY(!mTest->removeRows(0,0,QModelIndex())); //no rows to remove. |
738 QVERIFY(!mTest->removeRows(0,0,QModelIndex())); //no rows to remove. |
684 QVERIFY(!mTest->removeRows(0,2,QModelIndex())); //more than one row. |
739 QVERIFY(!mTest->removeRows(0,2,QModelIndex())); //more than one row. |
685 QVERIFY(!mTest->removeRows(2,1,QModelIndex())); //row out of bounds. |
740 QVERIFY(!mTest->removeRows(2,1,QModelIndex())); //row out of bounds. |
686 |
741 |
687 //a valid row to be removed. |
742 //a valid row to be removed. |
688 QVERIFY(mTest->removeRows(0,1,QModelIndex())); |
743 QVERIFY(mTest->removeRows(0,1,QModelIndex())); |
689 QCOMPARE(spy.count(), 1); |
744 QCOMPARE(spy.count(), 1); |
690 QCOMPARE(spy2.count(), 1); |
745 QCOMPARE(spy2.count(), 1); |
691 QCOMPARE(MpMpxCollectionData::getremoveItemCounter(), 1); |
746 QCOMPARE(MpMpxCollectionData::getremoveItemCounter(), 1); |
692 QCOMPARE(mTest->mRowCount, 1); |
747 QCOMPARE(mTest->mRowCount, 1); |
693 |
748 |
694 } |
749 } |
695 |
750 |
696 /*! |
751 /*! |
697 Tests mimeTypes() |
752 Tests mimeTypes() |
698 */ |
753 */ |
816 data->setData(QLatin1String("application/x-mpcollectiondatamodelrowandids"), encoded); |
871 data->setData(QLatin1String("application/x-mpcollectiondatamodelrowandids"), encoded); |
817 MpMpxCollectionData::setCachedItemId(itemId); |
872 MpMpxCollectionData::setCachedItemId(itemId); |
818 mTest->mRowCount = 2; |
873 mTest->mRowCount = 2; |
819 QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex())); |
874 QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex())); |
820 delete data; |
875 delete data; |
821 } |
876 } |
822 |
877 |
823 {//data with bad format |
878 {//data with bad format |
824 QMimeData *data = new QMimeData(); |
879 QMimeData *data = new QMimeData(); |
825 QByteArray encoded; |
880 QByteArray encoded; |
826 QDataStream stream(&encoded, QIODevice::WriteOnly); |
881 QDataStream stream(&encoded, QIODevice::WriteOnly); |
827 stream << indexFrom; |
882 stream << indexFrom; |
828 stream << containerId; |
883 stream << containerId; |
829 stream << itemId; |
884 stream << itemId; |
830 data->setData(QLatin1String("application/x-blabla"), encoded); |
885 data->setData(QLatin1String("application/x-blabla"), encoded); |
831 MpMpxCollectionData::setCachedItemId(itemId); |
886 MpMpxCollectionData::setCachedItemId(itemId); |
832 mTest->mRowCount = 10; |
887 mTest->mRowCount = 10; |
833 QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex())); |
888 QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex())); |
834 delete data; |
889 delete data; |
835 } |
890 } |
836 |
891 |
837 QMimeData *data = new QMimeData(); |
892 QMimeData *data = new QMimeData(); |
838 QByteArray encoded; |
893 QByteArray encoded; |
839 QDataStream stream(&encoded, QIODevice::WriteOnly); |
894 QDataStream stream(&encoded, QIODevice::WriteOnly); |
840 stream << indexFrom; |
895 stream << indexFrom; |
841 stream << containerId; |
896 stream << containerId; |
842 stream << itemId; |
897 stream << itemId; |
843 data->setData(QLatin1String("application/x-mpcollectiondatamodelrowandids"), encoded); |
898 data->setData(QLatin1String("application/x-mpcollectiondatamodelrowandids"), encoded); |
844 MpMpxCollectionData::setCachedItemId(0); |
899 MpMpxCollectionData::setCachedItemId(0); |
845 mTest->mRowCount = 10; |
900 mTest->mRowCount = 10; |
846 |
901 |
847 // not matching item id |
902 // not matching item id |
848 QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex())); |
903 QVERIFY(!mTest->dropMimeData(data,Qt::MoveAction,0,0,QModelIndex())); |
849 |
904 |
850 //matching item id |
905 //matching item id |
851 MpMpxCollectionData::setCachedItemId(itemId); |
906 MpMpxCollectionData::setCachedItemId(itemId); |
852 |
907 |
853 |
908 |
854 QVERIFY(mTest->dropMimeData(data,Qt::MoveAction,5,0,QModelIndex())); |
909 QVERIFY(mTest->dropMimeData(data,Qt::MoveAction,5,0,QModelIndex())); |
855 delete data; |
910 delete data; |
856 QCOMPARE(spy.count(), 1); |
911 QCOMPARE(spy.count(), 1); |
857 QCOMPARE(spy2.count(), 1); |
912 QCOMPARE(spy2.count(), 1); |
858 QCOMPARE(spy3.count(), 1); |
913 QCOMPARE(spy3.count(), 1); |
859 QList<QVariant> arguments = spy3.takeFirst(); |
914 QList<QVariant> arguments = spy3.takeFirst(); |
860 QCOMPARE(arguments.at(0).toInt(), containerId); |
915 QCOMPARE(arguments.at(0).toInt(), containerId); |
862 QCOMPARE(arguments.at(2).toInt(), indexFrom); |
917 QCOMPARE(arguments.at(2).toInt(), indexFrom); |
863 QCOMPARE(arguments.at(3).toInt(), 5); |
918 QCOMPARE(arguments.at(3).toInt(), 5); |
864 QCOMPARE(MpMpxCollectionData::getInsertCachedItemCounter(),1); |
919 QCOMPARE(MpMpxCollectionData::getInsertCachedItemCounter(),1); |
865 } |
920 } |
866 |
921 |
|
922 /*! |
|
923 Tests setContext() |
|
924 */ |
|
925 void TestMpCollectionDataModel::testSetContext() |
|
926 { |
|
927 mTest->mCollectionData->setContext(ECollectionContextArtistAlbums); |
|
928 QCOMPARE(mTest->mCollectionData->mContext, ECollectionContextArtistAlbums); |
|
929 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
930 QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::ListThumb); |
|
931 |
|
932 mTest->mCollectionData->mCount = 3; |
|
933 mTest->mCollectionData->setContext(ECollectionContextArtistAlbumsTBone); |
|
934 QCOMPARE(mTest->mCollectionData->mContext, ECollectionContextArtistAlbumsTBone); |
|
935 QCOMPARE(mTest->mAlbumIndexOffset, 1); |
|
936 QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::TBoneThumb); |
|
937 |
|
938 mTest->mCollectionData->mCount = 1; |
|
939 mTest->mCollectionData->setContext(ECollectionContextArtistAlbumsTBone); |
|
940 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
941 QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::TBoneThumb); |
|
942 |
|
943 mTest->mCollectionData->setContext(ECollectionContextAlbums); |
|
944 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
945 QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::ListThumb); |
|
946 |
|
947 mTest->mCollectionData->setContext(ECollectionContextAlbumsTBone); |
|
948 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
949 QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::TBoneThumb); |
|
950 |
|
951 mTest->mCollectionData->setContext(ECollectionContextAlbumsMediaWall); |
|
952 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
953 QCOMPARE(mTest->mAlbumArtManager->mThumbType, MpCommon::MediaWallThumb); |
|
954 |
|
955 // All other context should have index set to zero. |
|
956 mTest->mCollectionData->setContext(ECollectionContextAllSongs); |
|
957 QCOMPARE(mTest->mCollectionData->mContext, ECollectionContextAllSongs); |
|
958 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
959 mTest->mCollectionData->setContext(ECollectionContextArtists); |
|
960 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
961 mTest->mCollectionData->setContext(ECollectionContextArtistAllSongs); |
|
962 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
963 mTest->mCollectionData->setContext(ECollectionContextPlaylists); |
|
964 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
965 mTest->mCollectionData->setContext(ECollectionContextPlaylistSongs); |
|
966 QCOMPARE(mTest->mAlbumIndexOffset, 0); |
|
967 } |
867 |
968 |
868 // End of file |
969 // End of file |