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 } |