mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp
changeset 54 c5b304f4d89b
parent 42 79c49924ae23
child 55 f3930dda3342
--- a/mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp	Wed Aug 18 09:46:20 2010 +0300
+++ b/mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp	Thu Sep 02 20:24:03 2010 +0300
@@ -21,6 +21,7 @@
 #include <apacmdln.h>
 #include <mpxmediamusicdefs.h>
 #include <mpxmediacontainerdefs.h>
+#include <mpxmediageneraldefs.h>
 #include <mpxmedia.h>
 #include <mpxmediaarray.h>
 #include <mpxcollectionpath.h>
@@ -656,7 +657,7 @@
     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
     QCOMPARE(context, ECollectionContextPlaylistSongs);
     QCOMPARE(mTestPrivate->iContext, ECollectionContextPlaylistSongs);
-    QVERIFY(mTestPrivate->albumIdIndexMapping.isEmpty());
+    QVERIFY(mTestPrivate->iAlbumIdIndexMapping.isEmpty());
 }
 
 /*!
@@ -692,12 +693,12 @@
     TCollectionContext context = qvariant_cast<TCollectionContext>(spy.at(0).at(0));
     QCOMPARE(context, ECollectionContextAlbumsMediaWall);
     QCOMPARE(mTestPrivate->iContext, ECollectionContextAlbumsMediaWall);
-    QVERIFY(!mTestPrivate->albumIdIndexMapping.isEmpty());
+    QVERIFY(!mTestPrivate->iAlbumIdIndexMapping.isEmpty());
     for (TInt i =0; i < count; i++) {
         QCOMPARE(mTest->itemIndex(KAllSongsTestData[i].GeneralId),i);
     }
     mTest->setContext(ECollectionContextPlaylistSongs);
-    QVERIFY(mTestPrivate->albumIdIndexMapping.isEmpty());
+    QVERIFY(mTestPrivate->iAlbumIdIndexMapping.isEmpty());
     CleanupStack::PopAndDestroy(array);
 }
 
@@ -860,3 +861,115 @@
     mTestPrivate->iMediaArray = NULL;
     CleanupStack::PopAndDestroy(array);
 }
+
+/*!
+ Tests hasAlbumSongProperty().
+ */
+void TestMpMpxCollectionData::testHasItemProperty()
+{
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    mTestPrivate->iMediaArray = array;
+
+    TInt count = sizeof(KAllSongsTestData)/sizeof(TTestAttrs);
+    for (TInt i =0; i < count; i++) {
+
+        CMPXMedia* media = CMPXMedia::NewL();
+        CleanupStack::PushL(media);
+        media->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle)));
+        media->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicArtist)));
+        media->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[i].GeneralCount);
+        media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName)));
+        array->AppendL(*media);
+        CleanupStack::PopAndDestroy(media);
+        mTestPrivate->iMediaArray = array;
+
+        const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].GeneralTitle));
+        QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Title), QString::fromUtf16( title.Ptr(), title.Length()));
+
+        const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicArtist));
+        QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Artist), QString::fromUtf16( artist.Ptr(), artist.Length()));
+
+        QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Count), QString().setNum(1));
+
+        const TDesC& albumArtUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[i].MusicAlbumArtFileName));
+        QCOMPARE(mTest->itemData( i, MpMpxCollectionData::AlbumArtUri), QString::fromUtf16( albumArtUri.Ptr(), albumArtUri.Length()));
+
+    }
+    mTestPrivate->iMediaArray = array;
+
+    CMPXMedia* media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    array->AppendL(*media);
+    mTestPrivate->iMediaArray = array;
+    media->SetTextValueL(KMPXMediaGeneralTitle,KNullDesC );
+    media->SetTextValueL(KMPXMediaMusicArtist, KNullDesC);
+    media->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, 0);
+    media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, KNullDesC);
+    array->AppendL(*media);
+    CleanupStack::PopAndDestroy(media);
+    mTestPrivate->iMediaArray = array;
+
+    //Media without attributes.
+    QVERIFY(mTest->itemData( count, MpMpxCollectionData::Title).isNull());
+    QVERIFY(mTest->itemData( count, MpMpxCollectionData::Artist).isNull());
+    QCOMPARE(mTest->itemData( count, MpMpxCollectionData::Count), QString().setNum(0));
+    QVERIFY(mTest->itemData( count, MpMpxCollectionData::AlbumArtUri).isNull());
+
+    //Media with empty attributes.
+    QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::Title).isNull());
+    QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::Artist).isNull());
+    QCOMPARE(mTest->itemData( count + 1, MpMpxCollectionData::Count), QString().setNum(0));
+    QVERIFY(mTest->itemData( count + 1, MpMpxCollectionData::AlbumArtUri).isNull());
+
+    // Test Attributes that are not implemented yet:
+    //     Uri, Duration, Album, Genre, Rating
+    QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Uri).isNull());
+    QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Duration).isNull());
+    QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Album).isNull());
+    QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Genre).isNull());
+    QVERIFY(mTest->itemData( 0, MpMpxCollectionData::Rating).isNull());
+
+    CleanupStack::PopAndDestroy(array);
+    mTestPrivate->iMediaArray = NULL;
+
+}
+
+/*!
+ Tests hasAlbumSongProperty().
+ */
+void TestMpMpxCollectionData::testHasAlbumSongProperty()
+{
+    // Populate the media (album) with songs. This is basically
+    // simulating setAlbumContent().
+    CMPXMediaArray* array = CMPXMediaArray::NewL();
+    CleanupStack::PushL(array);
+    CMPXMedia* media = CMPXMedia::NewL();
+    CleanupStack::PushL(media);
+    CMPXMediaArray* songArray = CMPXMediaArray::NewL();
+    CleanupStack::PushL(songArray);
+    CMPXMedia* song = CMPXMedia::NewL();
+    CleanupStack::PushL(song);
+    song->SetTObjectValueL<TUint>( KMPXMediaGeneralFlags,KMPXMediaGeneralFlagsIsCorrupted );
+    songArray->AppendL(*song);
+    CleanupStack::PopAndDestroy(song);
+    CMPXMedia* song1 = CMPXMedia::NewL();
+    CleanupStack::PushL(song1);
+    song1->SetTObjectValueL<TUint>( KMPXMediaGeneralFlags,KMPXMediaGeneralFlagsIsDrmLicenceInvalid );
+    songArray->AppendL(*song1);
+    CleanupStack::PopAndDestroy(song1);
+    
+    media->SetCObjectValueL(KMPXMediaArrayContents, songArray);
+    array->AppendL(*media);
+
+    mTestPrivate->iMediaArray = array;
+    mTestPrivate->iCurrentAlbumIndex = 0;
+
+    QCOMPARE(mTest->hasAlbumSongProperty( 0, MpMpxCollectionData::Corrupted), true);
+    QCOMPARE(mTest->hasAlbumSongProperty( 1, MpMpxCollectionData::DrmExpired), true);
+
+    CleanupStack::PopAndDestroy(songArray);
+    CleanupStack::PopAndDestroy(media);
+    mTestPrivate->iMediaArray = NULL;
+    CleanupStack::PopAndDestroy(array);
+}