mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp
changeset 51 560ce2306a17
parent 38 b93f525c9244
child 55 f3930dda3342
equal deleted inserted replaced
47:4cc1412daed0 51:560ce2306a17
    19 #include <QMetaType>
    19 #include <QMetaType>
    20 
    20 
    21 #include <apacmdln.h>
    21 #include <apacmdln.h>
    22 #include <mpxmediamusicdefs.h>
    22 #include <mpxmediamusicdefs.h>
    23 #include <mpxmediacontainerdefs.h>
    23 #include <mpxmediacontainerdefs.h>
       
    24 #include <mpxmediageneraldefs.h>
    24 #include <mpxmedia.h>
    25 #include <mpxmedia.h>
    25 #include <mpxmediaarray.h>
    26 #include <mpxmediaarray.h>
    26 #include <mpxcollectionpath.h>
    27 #include <mpxcollectionpath.h>
    27 
    28 
    28 #include <mpxcollectionuihelper.h>
    29 #include <mpxcollectionuihelper.h>
   654     // - album index mapping is not cashed.
   655     // - album index mapping is not cashed.
   655     QCOMPARE(spy.count(), 1);
   656     QCOMPARE(spy.count(), 1);
   656     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
   657     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
   657     QCOMPARE(context, ECollectionContextPlaylistSongs);
   658     QCOMPARE(context, ECollectionContextPlaylistSongs);
   658     QCOMPARE(mTestPrivate->iContext, ECollectionContextPlaylistSongs);
   659     QCOMPARE(mTestPrivate->iContext, ECollectionContextPlaylistSongs);
   659     QVERIFY(mTestPrivate->albumIdIndexMapping.isEmpty());
   660     QVERIFY(mTestPrivate->iAlbumIdIndexMapping.isEmpty());
   660 }
   661 }
   661 
   662 
   662 /*!
   663 /*!
   663  Tests setContext() for media wall use case.
   664  Tests setContext() for media wall use case.
   664  Tests setContext() for media wall use case.
   665  Tests setContext() for media wall use case.
   690     // - album index mapping is cleared when changing context again.
   691     // - album index mapping is cleared when changing context again.
   691     QCOMPARE(spy.count(), 1);
   692     QCOMPARE(spy.count(), 1);
   692     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
   693     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
   693     QCOMPARE(context, ECollectionContextAlbumsMediaWall);
   694     QCOMPARE(context, ECollectionContextAlbumsMediaWall);
   694     QCOMPARE(mTestPrivate->iContext, ECollectionContextAlbumsMediaWall);
   695     QCOMPARE(mTestPrivate->iContext, ECollectionContextAlbumsMediaWall);
   695     QVERIFY(!mTestPrivate->albumIdIndexMapping.isEmpty());
   696     QVERIFY(!mTestPrivate->iAlbumIdIndexMapping.isEmpty());
   696     for (TInt i =0; i < count; i++) {
   697     for (TInt i =0; i < count; i++) {
   697         QCOMPARE(mTest->itemIndex(KAllSongsTestData[i].GeneralId),i);
   698         QCOMPARE(mTest->itemIndex(KAllSongsTestData[i].GeneralId),i);
   698     }
   699     }
   699     mTest->setContext(ECollectionContextPlaylistSongs);
   700     mTest->setContext(ECollectionContextPlaylistSongs);
   700     QVERIFY(mTestPrivate->albumIdIndexMapping.isEmpty());
   701     QVERIFY(mTestPrivate->iAlbumIdIndexMapping.isEmpty());
   701     CleanupStack::PopAndDestroy(array);
   702     CleanupStack::PopAndDestroy(array);
   702 }
   703 }
   703 
   704 
   704 
   705 
   705 /*!
   706 /*!
   858     CleanupStack::PopAndDestroy(songArray);
   859     CleanupStack::PopAndDestroy(songArray);
   859     CleanupStack::PopAndDestroy(media);
   860     CleanupStack::PopAndDestroy(media);
   860     mTestPrivate->iMediaArray = NULL;
   861     mTestPrivate->iMediaArray = NULL;
   861     CleanupStack::PopAndDestroy(array);
   862     CleanupStack::PopAndDestroy(array);
   862 }
   863 }
       
   864 
       
   865 /*!
       
   866  Tests hasAlbumSongProperty().
       
   867  */
       
   868 void TestMpMpxCollectionData::testHasItemProperty()
       
   869 {
       
   870     CMPXMediaArray* array = CMPXMediaArray::NewL();
       
   871     CleanupStack::PushL(array);
       
   872     mTestPrivate->iMediaArray = array;
       
   873 
       
   874     TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
       
   875     for (TInt i =0; i < count; i++) {
       
   876 
       
   877         CMPXMedia* media = CMPXMedia::NewL();
       
   878         CleanupStack::PushL(media);
       
   879         media->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle)));
       
   880         media->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicArtist)));
       
   881         media->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[i].GeneralCount);
       
   882         media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName)));
       
   883         array->AppendL(*media);
       
   884         CleanupStack::PopAndDestroy(media);
       
   885         mTestPrivate->iMediaArray = array;
       
   886 
       
   887         const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle));
       
   888         QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Title), QString::fromUtf16( title.Ptr(), title.Length()));
       
   889 
       
   890         const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicArtist));
       
   891         QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Artist), QString::fromUtf16( artist.Ptr(), artist.Length()));
       
   892 
       
   893         QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Count), QString().setNum(1));
       
   894 
       
   895         const TDesC& albumArtUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName));
       
   896         QCOMPARE(mTest->itemData( i, MpMpxCollectionData::AlbumArtUri), QString::fromUtf16( albumArtUri.Ptr(), albumArtUri.Length()));
       
   897 
       
   898     }
       
   899     mTestPrivate->iMediaArray = array;
       
   900 
       
   901     CMPXMedia* media = CMPXMedia::NewL();
       
   902     CleanupStack::PushL(media);
       
   903     array->AppendL(*media);
       
   904     mTestPrivate->iMediaArray = array;
       
   905     media->SetTextValueL(KMPXMediaGeneralTitle,KNullDesC );
       
   906     media->SetTextValueL(KMPXMediaMusicArtist, KNullDesC);
       
   907     media->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, 0);
       
   908     media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, KNullDesC);
       
   909     array->AppendL(*media);
       
   910     CleanupStack::PopAndDestroy(media);
       
   911     mTestPrivate->iMediaArray = array;
       
   912 
       
   913     //Media without attributes.
       
   914     QVERIFY(mTest->itemData( count, MpMpxCollectionData::Title).isNull());
       
   915     QVERIFY(mTest->itemData( count, MpMpxCollectionData::Artist).isNull());
       
   916     QCOMPARE(mTest->itemData( count, MpMpxCollectionData::Count), QString().setNum(0));
       
   917     QVERIFY(mTest->itemData( count, MpMpxCollectionData::AlbumArtUri).isNull());
       
   918 
       
   919     //Media with empty attributes.
       
   920     QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::Title).isNull());
       
   921     QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::Artist).isNull());
       
   922     QCOMPARE(mTest->itemData( count + 1, MpMpxCollectionData::Count), QString().setNum(0));
       
   923     QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::AlbumArtUri).isNull());
       
   924 
       
   925     // Test Attributes that are not implemented yet:
       
   926     //     Uri, Duration, Album, Genre, Rating
       
   927     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Uri).isNull());
       
   928     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Duration).isNull());
       
   929     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Album).isNull());
       
   930     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Genre).isNull());
       
   931     QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Rating).isNull());
       
   932 
       
   933     CleanupStack::PopAndDestroy(array);
       
   934     mTestPrivate->iMediaArray = NULL;
       
   935 
       
   936 }
       
   937 
       
   938 /*!
       
   939  Tests hasAlbumSongProperty().
       
   940  */
       
   941 void TestMpMpxCollectionData::testHasAlbumSongProperty()
       
   942 {
       
   943     // Populate the media (album) with songs. This is basically
       
   944     // simulating setAlbumContent().
       
   945     CMPXMediaArray* array = CMPXMediaArray::NewL();
       
   946     CleanupStack::PushL(array);
       
   947     CMPXMedia* media = CMPXMedia::NewL();
       
   948     CleanupStack::PushL(media);
       
   949     CMPXMediaArray* songArray = CMPXMediaArray::NewL();
       
   950     CleanupStack::PushL(songArray);
       
   951     CMPXMedia* song = CMPXMedia::NewL();
       
   952     CleanupStack::PushL(song);
       
   953     song->SetTObjectValueL<TUint>( KMPXMediaGeneralFlags,KMPXMediaGeneralFlagsIsCorrupted );
       
   954     songArray->AppendL(*song);
       
   955     CleanupStack::PopAndDestroy(song);
       
   956     CMPXMedia* song1 = CMPXMedia::NewL();
       
   957     CleanupStack::PushL(song1);
       
   958     song1->SetTObjectValueL<TUint>( KMPXMediaGeneralFlags,KMPXMediaGeneralFlagsIsDrmLicenceInvalid );
       
   959     songArray->AppendL(*song1);
       
   960     CleanupStack::PopAndDestroy(song1);
       
   961     
       
   962     media->SetCObjectValueL(KMPXMediaArrayContents, songArray);
       
   963     array->AppendL(*media);
       
   964 
       
   965     mTestPrivate->iMediaArray = array;
       
   966     mTestPrivate->iCurrentAlbumIndex = 0;
       
   967 
       
   968     QCOMPARE(mTest->hasAlbumSongProperty( 0, MpMpxCollectionData::Corrupted), true);
       
   969     QCOMPARE(mTest->hasAlbumSongProperty( 1, MpMpxCollectionData::DrmExpired), true);
       
   970 
       
   971     CleanupStack::PopAndDestroy(songArray);
       
   972     CleanupStack::PopAndDestroy(media);
       
   973     mTestPrivate->iMediaArray = NULL;
       
   974     CleanupStack::PopAndDestroy(array);
       
   975 }