diff -r 4cc1412daed0 -r 560ce2306a17 mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp --- a/mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp Fri Aug 06 16:51:36 2010 -0500 +++ b/mpdata/tsrc/unittest_mpmpxcollectiondata/src/unittest_mpmpxcollectiondata.cpp Tue Aug 24 03:36:14 2010 -0500 @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -656,7 +657,7 @@ TCollectionContext context = qvariant_cast(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(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(KAllSongsTestData[i].GeneralTitle))); + media->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast(KAllSongsTestData[i].MusicArtist))); + media->SetTObjectValueL(KMPXMediaGeneralCount, KAllSongsTestData[i].GeneralCount); + media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast(KAllSongsTestData[i].MusicAlbumArtFileName))); + array->AppendL(*media); + CleanupStack::PopAndDestroy(media); + mTestPrivate->iMediaArray = array; + + const TDesC& title = TPtrC(reinterpret_cast(KAllSongsTestData[i].GeneralTitle)); + QCOMPARE(mTest->itemData( i, MpMpxCollectionData::Title), QString::fromUtf16( title.Ptr(), title.Length())); + + const TDesC& artist = TPtrC(reinterpret_cast(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(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(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( KMPXMediaGeneralFlags,KMPXMediaGeneralFlagsIsCorrupted ); + songArray->AppendL(*song); + CleanupStack::PopAndDestroy(song); + CMPXMedia* song1 = CMPXMedia::NewL(); + CleanupStack::PushL(song1); + song1->SetTObjectValueL( 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); +}