452 QVERIFY(mTestObject->getVideoDateFromIndex(MEDIA_COUNT - 1) == excepted); |
455 QVERIFY(mTestObject->getVideoDateFromIndex(MEDIA_COUNT - 1) == excepted); |
453 disconnect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
456 disconnect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
454 } |
457 } |
455 |
458 |
456 // ----------------------------------------------------------------------------- |
459 // ----------------------------------------------------------------------------- |
457 // testGetMetaDataFromIndex |
|
458 // ----------------------------------------------------------------------------- |
|
459 // |
|
460 void TestVideoModel_p::testGetMetaDataFromIndex() |
|
461 { |
|
462 using namespace VideoCollectionCommon; |
|
463 QMap<QString, QVariant> map = mTestObject->getMetaDataFromIndex(0); |
|
464 QVERIFY(map.isEmpty()); |
|
465 map = mTestObject->getMetaDataFromIndex(-1); |
|
466 QVERIFY(map.isEmpty()); |
|
467 |
|
468 mMediaFactory->removeArray(); |
|
469 QVERIFY(connect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*)))); |
|
470 mMediaFactory->createMediaItems(MEDIA_COUNT); |
|
471 emit signalNewVideoList(mMediaFactory->copyOfMediaArray()); |
|
472 |
|
473 map = mTestObject->getMetaDataFromIndex(-1); |
|
474 QVERIFY(map.isEmpty()); |
|
475 |
|
476 map = mTestObject->getMetaDataFromIndex(-1); |
|
477 QVERIFY(map.isEmpty()); |
|
478 |
|
479 map = mTestObject->getMetaDataFromIndex(0); |
|
480 |
|
481 QVERIFY(map.contains(MetaKeyDate)); |
|
482 QVERIFY(map.contains(MetaKeyDurationString)); |
|
483 QVERIFY(map.contains(MetaKeySizeString)); |
|
484 QVERIFY(map.contains(MetaKeyStarRating)); |
|
485 QVERIFY(map.contains(MetaKeyDescription)); |
|
486 QVERIFY(map.contains(MetaKeyModifiedDate)); |
|
487 QVERIFY(map.contains(MetaKeyAuthor)); |
|
488 QVERIFY(map.contains(MetaKeyCopyright)); |
|
489 QVERIFY(map.contains(MetaKeyLanguageString)); |
|
490 QVERIFY(map.contains(MetaKeyFormat)); |
|
491 |
|
492 // one or several of these will fail, when rest of the metadata is implemented. |
|
493 QVERIFY(map.contains(MetaKeyDRMInfo) == false); |
|
494 QVERIFY(map.contains(MetaKeyServiceURL) == false); |
|
495 QVERIFY(map.contains(MetaKeyShotLocation) == false); |
|
496 QVERIFY(map.contains(MetaKeyAudioType) == false); |
|
497 QVERIFY(map.contains(MetaKeyKeywords) == false); |
|
498 QVERIFY(map.contains(MetaKeyVideoResolutionString) == false); |
|
499 QVERIFY(map.contains(MetaKeyBitRate) == false); |
|
500 |
|
501 QCOMPARE(map[MetaKeyDate].toDate(), QDate(2009, 1, 1)); |
|
502 QVERIFY(map[MetaKeyDurationString].toString().isEmpty() == false); |
|
503 QVERIFY(map[MetaKeySizeString].toString().isEmpty() == false); |
|
504 QCOMPARE(map[MetaKeyStarRating].toUInt(), (uint)1); |
|
505 QCOMPARE(map[MetaKeyDescription].toString(), gQTMediaDescPrefix + "0"); |
|
506 QCOMPARE(map[MetaKeyModifiedDate].toDate(), QDate::currentDate().addDays(2)); |
|
507 QCOMPARE(map[MetaKeyAuthor].toString(), gQTMediaAuthorPrefix + "0"); |
|
508 QCOMPARE(map[MetaKeyCopyright].toString(), gQTMediaCopyrightPrefix + "0"); |
|
509 QCOMPARE(map[MetaKeyLanguageString].toString(), gQTMediaLanguagePrefix + "0"); |
|
510 QCOMPARE(map[MetaKeyFormat].toString(), gQTMediaFormatPrefix + "0"); |
|
511 |
|
512 // data does not exist |
|
513 mTestObject->mMediaData.clear(); |
|
514 mMediaFactory->removeArray(); |
|
515 mMediaFactory->createMediaItems(MEDIA_COUNT, MediaDataId); |
|
516 emit signalNewVideoList(mMediaFactory->copyOfMediaArray()); |
|
517 VideoCollectionUtils::mPrepareLengthStringReturnValue = ""; |
|
518 VideoCollectionUtils::mPrepareSizeStringReturnValue = ""; |
|
519 |
|
520 map = mTestObject->getMetaDataFromIndex(-1); |
|
521 QVERIFY(map.isEmpty()); |
|
522 |
|
523 map = mTestObject->getMetaDataFromIndex(MEDIA_COUNT); |
|
524 QVERIFY(map.isEmpty()); |
|
525 |
|
526 map = mTestObject->getMetaDataFromIndex(0); |
|
527 QCOMPARE(map.count(), 0); |
|
528 |
|
529 map = mTestObject->getMetaDataFromIndex(MEDIA_COUNT - 1); |
|
530 QCOMPARE(map.count(), 0); |
|
531 |
|
532 disconnect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
|
533 } |
|
534 |
|
535 // ----------------------------------------------------------------------------- |
|
536 // testVideoMarkAndRestoreDeleted |
460 // testVideoMarkAndRestoreDeleted |
537 // ----------------------------------------------------------------------------- |
461 // ----------------------------------------------------------------------------- |
538 // |
462 // |
539 void TestVideoModel_p::testVideoMarkAndRestoreDeleted() |
463 void TestVideoModel_p::testVideoMarkAndRestoreDeleted() |
540 { |
464 { |
1010 disconnect(this, SIGNAL(signalAlbumListAvailable(TMPXItemId, CMPXMediaArray*)), |
934 disconnect(this, SIGNAL(signalAlbumListAvailable(TMPXItemId, CMPXMediaArray*)), |
1011 mTestObject, SLOT(albumListAvailableSlot(TMPXItemId, CMPXMediaArray*))); |
935 mTestObject, SLOT(albumListAvailableSlot(TMPXItemId, CMPXMediaArray*))); |
1012 } |
936 } |
1013 |
937 |
1014 // ----------------------------------------------------------------------------- |
938 // ----------------------------------------------------------------------------- |
|
939 // testItemModifiedSlot |
|
940 // ----------------------------------------------------------------------------- |
|
941 // |
|
942 void TestVideoModel_p::testItemModifiedSlot() |
|
943 { |
|
944 mMediaFactory->removeArray(); |
|
945 |
|
946 QVERIFY(connect(this, SIGNAL(signalItemModified(const TMPXItemId &)), mTestObject, SLOT(itemModifiedSlot(const TMPXItemId &)))); |
|
947 |
|
948 QSignalSpy spysignal(mTestObject, SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &))); |
|
949 |
|
950 // invalid item id, no items |
|
951 TMPXItemId id = TMPXItemId::InvalidId(); |
|
952 emit signalItemModified(id); |
|
953 QVERIFY(spysignal.count() == 0); |
|
954 |
|
955 // invalid item id, model has items |
|
956 QVERIFY(connect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*)))); |
|
957 mMediaFactory->createMediaItems(MEDIA_COUNT); |
|
958 emit signalNewVideoList(mMediaFactory->copyOfMediaArray()); |
|
959 |
|
960 emit signalItemModified(id); |
|
961 QVERIFY(spysignal.count() == 0); |
|
962 |
|
963 // ok item id, model has items |
|
964 id = TMPXItemId(0, 0); |
|
965 emit signalItemModified(id); |
|
966 QVERIFY(spysignal.count() == 1); |
|
967 spysignal.clear(); |
|
968 |
|
969 // ok item id, model has items but returns invalid index |
|
970 VideoListDataModel::mIndexReturnsInvalid = true; |
|
971 id = TMPXItemId(0, 0); |
|
972 emit signalItemModified(id); |
|
973 QVERIFY(spysignal.count() == 0); |
|
974 spysignal.clear(); |
|
975 |
|
976 disconnect(this, SIGNAL(signalItemModified(const TMPXItemId &)), mTestObject, SLOT(itemModifiedSlot(const TMPXItemId &))); |
|
977 VideoListDataModel::mIndexReturnsInvalid = false; |
|
978 } |
|
979 |
|
980 // ----------------------------------------------------------------------------- |
1015 // testNewVideoAvailableSlot |
981 // testNewVideoAvailableSlot |
1016 // ----------------------------------------------------------------------------- |
982 // ----------------------------------------------------------------------------- |
1017 // |
983 // |
1018 void TestVideoModel_p::testNewVideoAvailableSlot() |
984 void TestVideoModel_p::testNewVideoAvailableSlot() |
1019 { |
985 { |
|
986 VideoListDataModel::mIndexReturnsInvalid = false; |
1020 QVERIFY(mTestObject->initialize() == 0); |
987 QVERIFY(mTestObject->initialize() == 0); |
1021 |
988 |
1022 connect(this, SIGNAL(signalNewVideoAvailable(CMPXMedia*)), mTestObject, SLOT(newVideoAvailableSlot(CMPXMedia*))); |
989 connect(this, SIGNAL(signalNewVideoAvailable(CMPXMedia*)), mTestObject, SLOT(newVideoAvailableSlot(CMPXMedia*))); |
1023 connect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
990 connect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
1024 |
991 |
1319 |
1286 |
1320 // ----------------------------------------------------------------------------- |
1287 // ----------------------------------------------------------------------------- |
1321 // testVideoDetailsCompletedSlot |
1288 // testVideoDetailsCompletedSlot |
1322 // ----------------------------------------------------------------------------- |
1289 // ----------------------------------------------------------------------------- |
1323 // |
1290 // |
1324 |
|
1325 void TestVideoModel_p::testVideoDetailsCompletedSlot() |
1291 void TestVideoModel_p::testVideoDetailsCompletedSlot() |
1326 { |
1292 { |
1327 mMediaFactory->removeArray(); |
1293 using namespace VideoCollectionCommon; |
1328 QVERIFY(connect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*)))); |
1294 |
1329 QVERIFY(connect(this, SIGNAL(signalVideoDetailsCompleted(TMPXItemId)), mTestObject, SLOT(videoDetailsCompletedSlot(TMPXItemId)))); |
1295 mMediaFactory->removeArray(); |
1330 |
1296 // QVERIFY(connect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*)))); |
1331 QSignalSpy spysignal(mTestObject, SIGNAL(videoDetailsReady(TMPXItemId))); |
1297 QVERIFY(connect(this, SIGNAL(signalVideoDetailsCompleted(CMPXMedia*)), mTestObject, SLOT(videoDetailsCompletedSlot(CMPXMedia*)))); |
1332 |
1298 |
1333 // no videos, id ok |
1299 HbExtendedLocale locale = HbExtendedLocale::system(); |
1334 emit signalVideoDetailsCompleted(TMPXItemId(0,0)); |
1300 |
1335 QVERIFY(spysignal.count() == 1); |
1301 MetaDataSignalSpy spysignal(mTestObject, SIGNAL(videoDetailsReady(QVariant&))); |
|
1302 |
|
1303 // check with NULL media. |
|
1304 emit signalVideoDetailsCompleted(0); |
|
1305 QCOMPARE(spysignal.count, 0); |
|
1306 |
|
1307 // setup medias. |
|
1308 mMediaFactory->createMediaItems(2); |
|
1309 CMPXMedia* media = mMediaFactory->mediaArray()->operator [](0); |
|
1310 |
|
1311 // ok case |
|
1312 emit signalVideoDetailsCompleted(media); |
|
1313 QCOMPARE(spysignal.count, 1); |
|
1314 QMap<QString, QVariant> map = spysignal.arg.toMap(); |
|
1315 |
|
1316 QVERIFY(map.contains(MetaKeyDate)); |
|
1317 QVERIFY(map.contains(MetaKeyDurationString)); |
|
1318 QVERIFY(map.contains(MetaKeySizeString)); |
|
1319 QVERIFY(map.contains(MetaKeyStarRating)); |
|
1320 QVERIFY(map.contains(MetaKeyDescription)); |
|
1321 QVERIFY(map.contains(MetaKeyModifiedDate)); |
|
1322 QVERIFY(map.contains(MetaKeyAuthor)); |
|
1323 QVERIFY(map.contains(MetaKeyCopyright)); |
|
1324 QVERIFY(map.contains(MetaKeyLanguageString)); |
|
1325 QVERIFY(map.contains(MetaKeyFormat)); |
|
1326 QVERIFY(map.contains(MetaKeyVideoResolutionString)); |
|
1327 QVERIFY(map.contains(MetaKeyBitRate)); |
|
1328 |
|
1329 // one or several of these will fail, when rest of the metadata is implemented. |
|
1330 QVERIFY(map.contains(MetaKeyDRMInfo) == false); |
|
1331 QVERIFY(map.contains(MetaKeyServiceURL) == false); |
|
1332 QVERIFY(map.contains(MetaKeyShotLocation) == false); |
|
1333 QVERIFY(map.contains(MetaKeyAudioType) == false); |
|
1334 QVERIFY(map.contains(MetaKeyKeywords) == false); |
|
1335 |
|
1336 QCOMPARE(map[MetaKeyDate].toString(), locale.format(QDate(2009, 1, 1), r_qtn_date_usual)); |
|
1337 QVERIFY(map[MetaKeyDurationString].toString().isEmpty() == false); |
|
1338 QVERIFY(map[MetaKeySizeString].toString().isEmpty() == false); |
|
1339 QCOMPARE(map[MetaKeyStarRating].toUInt(), (uint)1); |
|
1340 QCOMPARE(map[MetaKeyDescription].toString(), gQTMediaDescPrefix + "0"); |
|
1341 QCOMPARE(map[MetaKeyModifiedDate].toString(), locale.format(QDate::currentDate().addDays(2), r_qtn_date_usual)); |
|
1342 QCOMPARE(map[MetaKeyAuthor].toString(), gQTMediaAuthorPrefix + "0"); |
|
1343 QCOMPARE(map[MetaKeyCopyright].toString(), gQTMediaCopyrightPrefix + "0"); |
|
1344 QCOMPARE(map[MetaKeyLanguageString].toString(), gQTMediaLanguagePrefix + "0"); |
|
1345 QCOMPARE(map[MetaKeyFormat].toString(), gQTMediaFormatPrefix + "0"); |
|
1346 QCOMPARE(map[MetaKeyVideoResolutionString].toString(), hbTrId("txt_videos_list_l1l2").arg(1).arg(2)); |
|
1347 QCOMPARE(map[MetaKeyBitRate].toString(), hbTrId("txt_videos_list_l1_kbps", 800)); |
|
1348 |
|
1349 // Mbps case |
|
1350 media = mMediaFactory->mediaArray()->operator [](1); |
|
1351 emit signalVideoDetailsCompleted(media); |
|
1352 QCOMPARE(spysignal.count, 2); |
|
1353 map = spysignal.arg.toMap(); |
|
1354 QVERIFY(map.contains(MetaKeyBitRate)); |
|
1355 QCOMPARE(map[MetaKeyBitRate].toString(), hbTrId("txt_videos_list_l1_mbps", 2)); |
|
1356 |
|
1357 // empty media case |
1336 spysignal.clear(); |
1358 spysignal.clear(); |
1337 |
1359 mMediaFactory->removeArray(); |
1338 mMediaFactory->createMediaItems(MEDIA_COUNT); |
1360 mMediaFactory->createMediaItems(1, MediaDataId); |
1339 emit signalNewVideoList(mMediaFactory->copyOfMediaArray()); |
1361 CMPXMedia* emptyMedia = mMediaFactory->mediaArray()->operator [](0); |
1340 |
1362 |
1341 // invalid id |
1363 emit signalVideoDetailsCompleted(emptyMedia); |
1342 emit signalVideoDetailsCompleted(TMPXItemId::InvalidId()); |
1364 QCOMPARE(spysignal.count, 1); |
1343 QVERIFY(spysignal.count() == 0); |
1365 map = spysignal.arg.toMap(); |
1344 |
1366 QCOMPARE(map.count(), 2); |
1345 // correct ids |
1367 QVERIFY(map.contains(MetaKeyDurationString)); |
1346 emit signalVideoDetailsCompleted(TMPXItemId(0,0)); |
1368 QVERIFY(map.contains(MetaKeySizeString)); |
1347 QVERIFY(spysignal.count() == 1); |
|
1348 QVERIFY(spysignal.value(0).at(0).toInt() == 0); |
|
1349 spysignal.clear(); |
|
1350 emit signalVideoDetailsCompleted(TMPXItemId(MEDIA_COUNT - 1,0)); |
|
1351 QVERIFY(spysignal.count() == 1); |
|
1352 |
1369 |
1353 disconnect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
1370 disconnect(this, SIGNAL(signalNewVideoList(CMPXMediaArray*)), mTestObject, SLOT(newVideoListSlot(CMPXMediaArray*))); |
1354 disconnect(this, SIGNAL(signalVideoDetailsCompleted(TMPXItemId)), mTestObject, SLOT(videoDetailsCompletedSlot(TMPXItemId))); |
1371 disconnect(this, SIGNAL(signalVideoDetailsCompleted(TMPXItemId)), mTestObject, SLOT(videoDetailsCompletedSlot(TMPXItemId))); |
1355 } |
1372 } |
1356 |
1373 |