mpviewplugins/mpdetailsviewplugin/tsrc/unittest_mpmpxdetailsframeworkwrapper/src/unittest_mpmpxdetailsframeworkwrapper.cpp
changeset 43 0f32e550d9d8
parent 38 b93f525c9244
child 45 612c4815aebe
equal deleted inserted replaced
38:b93f525c9244 43:0f32e550d9d8
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Unit test for mpmpxdetailsframeworkwrapper
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QSignalSpy>
       
    19 #include <hbapplication.h>
       
    20 #include <hbmainwindow.h>
       
    21 
       
    22 #include <mpxmessagegeneraldefs.h>
       
    23 #include <mpxplaybackmessage.h>
       
    24 #include <mpxmediamusicdefs.h>
       
    25 #include <mpxmediageneraldefs.h>
       
    26 
       
    27 #include <e32std.h>
       
    28 #include <e32des8.h>
       
    29 
       
    30 #include "unittest_mpmpxdetailsframeworkwrapper.h"
       
    31 #include "stub/inc/mpxplaybackutility.h"
       
    32 #include "stub/inc/mpsongdata.h"
       
    33 #include "logger.h"
       
    34 
       
    35 // classes under test
       
    36 #define private public
       
    37 #include "mpmpxdetailsframeworkwrapper.h"
       
    38 #include "mpmpxdetailsframeworkwrapper_p.h"
       
    39 #undef private
       
    40 
       
    41 struct TTestAttrs
       
    42     {
       
    43     const wchar_t* GeneralTitle;     // MpSongData::mTitle
       
    44     const wchar_t* MusicArtist;      // MpSongData::mArtist
       
    45     const wchar_t* MusicAlbum;       // MpSongData::mAlbum
       
    46     const wchar_t* MusicAlbumArtFileName; // MpSongData::mAlbumArt (TODO: not tested yet)
       
    47     const wchar_t* Comment;          // MpSongData::mComment
       
    48     const wchar_t* Composer;         // MpSongData::mComposer
       
    49     const TInt Year;                 // MpSongData::mYear
       
    50     const wchar_t* MusicAlbumTrack;  // MpSongData::mAlbumTrack
       
    51     const wchar_t* MusicGenre;       // MpSongData::mGenre
       
    52     const wchar_t* MusicUri;         // N/A in MpSongData (TODO: not tested yet)
       
    53     };
       
    54 
       
    55 // title
       
    56 const TInt KTitleZeroSized = 0;
       
    57 const TInt KTitleVeryLarge = 1;
       
    58 const TInt KTitleOff = 2;
       
    59 
       
    60 // artist
       
    61 const TInt KMusicArtistZeroSized = 3;
       
    62 const TInt KMusicArtistLarge = 4;
       
    63 const TInt KMusicArtistOff = 5;
       
    64 
       
    65 // album
       
    66 const TInt KAlbumZeroSized = 6;
       
    67 const TInt KAlbumLarge = 7;
       
    68 const TInt KAlbumOff = 8;
       
    69 
       
    70 // comment
       
    71 const TInt KCommentZeroSized = 9;
       
    72 const TInt KCommentLarge = 10;
       
    73 const TInt KCommentOff = 11;
       
    74 
       
    75 // composer
       
    76 const TInt KComposerZeroSized = 12;
       
    77 const TInt KComposerLarge = 13;
       
    78 const TInt KComposerOff = 14;
       
    79 
       
    80 // year
       
    81 const TInt KYearNegative = 15;
       
    82 const TInt KYearZero = 16;
       
    83 const TInt KYearPositive = 17;
       
    84 const TInt KYearOff = 18;
       
    85 
       
    86 // album track
       
    87 const TInt KAlbumTrackZeroSized = 19;
       
    88 const TInt KAlbumTrackLarge = 20;
       
    89 const TInt KAlbumTrackOff = 21;
       
    90 
       
    91 // genre
       
    92 const TInt KGenreZeroSized = 22;
       
    93 const TInt KGenreLarge = 23;
       
    94 const TInt KGenreOff = 24;
       
    95 
       
    96 // everything is OFF
       
    97 const TInt KAllFieldsOFF = 25;
       
    98 
       
    99 _LIT(KOff,"OFF");
       
   100 
       
   101 const TTestAttrs KAllSongsTestData[] =
       
   102     {
       
   103     // Title    
       
   104      { L"", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
       
   105     ,{ L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
       
   106     ,{ L"OFF", L"Artist 1", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
       
   107     // Artist  
       
   108     , { L"Title", L"", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
       
   109     , { L"Title", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
       
   110     ,{ L"Title", L"OFF", L"Album 1", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}  
       
   111     // Album
       
   112      , { L"Title", L"Artist", L"", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
       
   113      , { L"Title", L"Artist", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
       
   114      , { L"Title", L"Artist", L"OFF", L"e:\\data\\images\\art1.jpg", L"Comment 1", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}  
       
   115     // Comment
       
   116      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
       
   117      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Composer 1", 2009, L"Track 1", L"Genre", L"Uri 1"}
       
   118      , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"OFF", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}  
       
   119      // Composer
       
   120       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2009, L"Track 1", L"", L"Uri 1"}
       
   121       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", 2009, L"Track 1", L"Genre", L"Uri 1"}
       
   122       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"OFF", 2009, L"Track 1", L"", L"Uri 1"}
       
   123      // Year
       
   124       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", -200, L"Track 1", L"Genre", L"Uri 1"}
       
   125       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 0, L"Track 1", L"Genre", L"Uri 1"}
       
   126       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 3000, L"Track 1", L"Genre", L"Uri 1"}
       
   127       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", -1, L"Track 1", L"Genre", L"Uri 1"}     
       
   128      // Album Track
       
   129       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"", L"Genre", L"Uri 1"}
       
   130       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Genre", L"Uri 1"}
       
   131       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"OFF", L"Genre", L"Uri 1"}
       
   132      // Genre
       
   133       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"", L"Uri 1"}
       
   134       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM LOREM IPSUM", L"Uri 1"}
       
   135       , { L"Title", L"Artist", L"Album", L"e:\\data\\images\\art1.jpg", L"Comment", L"Composer 1", 2000, L"Track", L"OFF", L"Uri 1"}
       
   136      // all fields OFF
       
   137     , { L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", L"OFF", -1, L"OFF", L"OFF", L"OFF"}     
       
   138     };
       
   139 
       
   140 QString referenceGeneralTitle(int index)
       
   141 {
       
   142     QString result;
       
   143     const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].GeneralTitle));
       
   144     if(title.Match(KOff) == KErrNotFound)
       
   145     {
       
   146         result = QString::fromUtf16( title.Ptr(), title.Length() );
       
   147     }
       
   148     return result;
       
   149 }
       
   150 
       
   151 QString referenceMusicArtist(int index)
       
   152 {
       
   153     QString result;
       
   154     const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicArtist));
       
   155     if(artist.Match(KOff) == KErrNotFound)
       
   156     {
       
   157         result = QString::fromUtf16( artist.Ptr(), artist.Length());
       
   158     }    
       
   159     return result;
       
   160 }
       
   161 
       
   162 QString referenceMusicAlbum(int index)
       
   163 {
       
   164     QString result;
       
   165     const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbum));
       
   166     if(album.Match(KOff) == KErrNotFound)
       
   167     {
       
   168         result = QString::fromUtf16( album.Ptr(), album.Length() );
       
   169     }    
       
   170     return result;
       
   171 }
       
   172 
       
   173 QString referenceMusicAlbumArtFileName(int index)
       
   174 {
       
   175     QString result;
       
   176     const TDesC& musicAlbumArtFileName = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumArtFileName));
       
   177     if(musicAlbumArtFileName.Match(KOff) == KErrNotFound)
       
   178     {
       
   179         result = QString::fromUtf16( musicAlbumArtFileName.Ptr(), musicAlbumArtFileName.Length() );
       
   180     }    
       
   181     return result;
       
   182 }
       
   183 
       
   184 QString referenceComment(int index)
       
   185 {
       
   186     QString result;
       
   187     const TDesC& musicComment = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Comment));
       
   188     if(musicComment.Match(KOff) == KErrNotFound)
       
   189     {
       
   190         result = QString::fromUtf16( musicComment.Ptr(), musicComment.Length() );
       
   191     }    
       
   192     return result;
       
   193 }
       
   194 
       
   195 QString referenceComposer(int index)
       
   196 {
       
   197     QString result;
       
   198     const TDesC& composer = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].Composer));
       
   199     if(composer.Match(KOff) == KErrNotFound)
       
   200     {
       
   201         result = QString::fromUtf16( composer.Ptr(), composer.Length() );
       
   202     }    
       
   203     return result;
       
   204 }
       
   205 
       
   206 int referenceYear(int index)
       
   207 {
       
   208     return (KAllSongsTestData[index].Year >= 0) ? KAllSongsTestData[index].Year : 0;
       
   209 }
       
   210 
       
   211 QString referenceMusicAlbumTrack(int index)
       
   212 {
       
   213     QString result;
       
   214     const TDesC& musicAlbumTrack = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicAlbumTrack));
       
   215     if(musicAlbumTrack.Match(KOff) == KErrNotFound)
       
   216     {
       
   217         result = QString::fromUtf16( musicAlbumTrack.Ptr(), musicAlbumTrack.Length() );
       
   218     }    
       
   219     return result;
       
   220 }
       
   221 
       
   222 QString referenceMusicGenre(int index)
       
   223 {
       
   224     QString result;
       
   225     const TDesC& musicGenre = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicGenre));
       
   226     if(musicGenre.Match(KOff) == KErrNotFound)
       
   227     {
       
   228         result = QString::fromUtf16( musicGenre.Ptr(), musicGenre.Length() );
       
   229     }    
       
   230     return result;
       
   231 }
       
   232 
       
   233 QString referenceMusicUri(int index)
       
   234 {
       
   235     QString result;
       
   236     const TDesC& musicUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[index].MusicUri));
       
   237     if(musicUri.Match(KOff) == KErrNotFound)
       
   238     {
       
   239         result = QString::fromUtf16( musicUri.Ptr(), musicUri.Length() );
       
   240     }    
       
   241     return result;
       
   242 }
       
   243 
       
   244 /*!
       
   245  Make our test case a stand-alone executable that runs all the test functions.
       
   246  */
       
   247 int main(int argc, char *argv[])
       
   248 {
       
   249     HbApplication app(argc, argv);
       
   250     HbMainWindow window;
       
   251 
       
   252     TestMpMpxDetailsFrameworkWrapper tv;
       
   253 
       
   254     char *pass[3];
       
   255     pass[0] = argv[0];
       
   256     pass[1] = "-o";
       
   257     pass[2] = "c:\\data\\unittest_mpmpxdetailsframeworkwrapper.txt";
       
   258 
       
   259     int res = QTest::qExec(&tv, 3, pass);
       
   260 
       
   261     return res;
       
   262 }
       
   263 
       
   264 TestMpMpxDetailsFrameworkWrapper::TestMpMpxDetailsFrameworkWrapper()
       
   265     : mTest(0),
       
   266       iMediaTestData(0),
       
   267       mSongDetailInfoChanged(false)
       
   268 {
       
   269 }
       
   270 
       
   271 TestMpMpxDetailsFrameworkWrapper::~TestMpMpxDetailsFrameworkWrapper()
       
   272 {
       
   273     delete mTest;
       
   274 }
       
   275 
       
   276 /*!
       
   277  Called before the first testfunction is executed.
       
   278  */
       
   279 void TestMpMpxDetailsFrameworkWrapper::initTestCase()
       
   280 {
       
   281 }
       
   282 
       
   283 /*!
       
   284  Called after the last testfunction was executed.
       
   285  */
       
   286 void TestMpMpxDetailsFrameworkWrapper::cleanupTestCase()
       
   287 {
       
   288 }
       
   289 
       
   290 /*!
       
   291  Called before each testfunction is executed.
       
   292  */
       
   293 void TestMpMpxDetailsFrameworkWrapper::init()
       
   294 {
       
   295     User::__DbgMarkStart(RHeap::EUser);
       
   296     TInt freeCount(0);
       
   297     mAllocCells = User::CountAllocCells(freeCount);
       
   298     TRACE3("TestMpMpxDetailsFrameworkWrapper::init() -- allocCount: %d, freeCount: %d", 
       
   299             mAllocCells, freeCount );
       
   300     
       
   301     mTest = new MpMpxDetailsFrameworkWrapper();
       
   302     mTestPrivate = mTest->d_ptr;
       
   303 }
       
   304 
       
   305 /*!
       
   306  Called after every testfunction.
       
   307  */
       
   308 void TestMpMpxDetailsFrameworkWrapper::cleanup()
       
   309 {
       
   310     delete mTest;
       
   311     mTest = 0;
       
   312     mTestPrivate = 0;
       
   313 
       
   314     TInt freeCount(0);
       
   315     TInt allocCount = User::CountAllocCells(freeCount);     
       
   316     TRACE3( "TestMpMpxDetailsFrameworkWrapper::cleanup() -- allocCount: %d, freeCount: %d", 
       
   317         allocCount, freeCount );      
       
   318     User::__DbgMarkEnd(RHeap::EUser,0); // this should panic if leak        
       
   319 }
       
   320 
       
   321 /*!
       
   322  Tests constructor.
       
   323  */
       
   324 void TestMpMpxDetailsFrameworkWrapper::testConstructor()
       
   325 {
       
   326     QVERIFY( mTestPrivate->q_ptr );
       
   327     QVERIFY( mTestPrivate->iPlaybackUtility );
       
   328     QVERIFY( mTestPrivate->iSongData );
       
   329     // TODO: test observer?
       
   330 }
       
   331 
       
   332 /*!
       
   333  Tests playbackData
       
   334  */
       
   335 void TestMpMpxDetailsFrameworkWrapper::testSongData()
       
   336 {
       
   337     QCOMPARE(mTestPrivate->iSongData, mTest->songData());
       
   338 }
       
   339 
       
   340 void TestMpMpxDetailsFrameworkWrapper::testHandleProperty()
       
   341 {
       
   342     // dummy call just to get coverage up. Empty imp in function under test
       
   343     mTestPrivate->HandlePropertyL(EPbPropertyVolume, 0, 0);
       
   344 }
       
   345 
       
   346 void TestMpMpxDetailsFrameworkWrapper::testHandleSubPlayerNames()
       
   347 {
       
   348     // dummy call just to get coverage up. Empty imp in function under test
       
   349     mTestPrivate->HandleSubPlayerNamesL(TUid::Null(), 0, 0, 0);
       
   350 }
       
   351 
       
   352 /*!
       
   353  Tests testHandlePlaybackMessage
       
   354  */
       
   355 void TestMpMpxDetailsFrameworkWrapper::testHandlePlaybackMessage()
       
   356 {
       
   357     RArray<TInt> supportedIds;
       
   358     CleanupClosePushL( supportedIds );
       
   359     supportedIds.AppendL( KMPXMessageContentIdGeneral );
       
   360     CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array());
       
   361     CleanupStack::PopAndDestroy(&supportedIds);
       
   362     CleanupStack::PushL(testMessage);
       
   363     testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral);    
       
   364     
       
   365     //Media change
       
   366     testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged);
       
   367     testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
       
   368     testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
       
   369     mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
       
   370     CleanupStack::PopAndDestroy(testMessage);
       
   371 }
       
   372 
       
   373 void TestMpMpxDetailsFrameworkWrapper::verifyEmptyTestData()
       
   374 {
       
   375     QVERIFY(mTestPrivate->iSongData->title().isEmpty());
       
   376     QVERIFY(mTestPrivate->iSongData->album().isEmpty());
       
   377     QVERIFY(mTestPrivate->iSongData->artist().isEmpty());
       
   378     QVERIFY(mTestPrivate->iSongData->comment().isEmpty());
       
   379     QVERIFY(mTestPrivate->iSongData->year().isEmpty());
       
   380     QVERIFY(mTestPrivate->iSongData->genre().isEmpty());
       
   381     QVERIFY(mTestPrivate->iSongData->composer().isEmpty());
       
   382     QVERIFY(mTestPrivate->iSongData->albumTrack().isEmpty());
       
   383     QVERIFY(mTestPrivate->iSongData->link().isEmpty());    
       
   384 }
       
   385 
       
   386 void TestMpMpxDetailsFrameworkWrapper::verify(int index)
       
   387 {
       
   388     QCOMPARE(mTestPrivate->songData()->title(), referenceGeneralTitle( index ));
       
   389     QCOMPARE(mTestPrivate->songData()->album(), referenceMusicAlbum( index ));    
       
   390     QCOMPARE(mTestPrivate->songData()->artist(), referenceMusicArtist( index ));
       
   391     // TODO: how to verify albumArt ?    
       
   392     QCOMPARE(mTestPrivate->songData()->comment(), referenceComment( index ));    
       
   393     QCOMPARE(mTestPrivate->songData()->composer(), referenceComposer( index ));    
       
   394     QCOMPARE(mTestPrivate->songData()->year().toInt(), referenceYear( index ));    
       
   395     QCOMPARE(mTestPrivate->songData()->albumTrack(), referenceMusicAlbumTrack( index ));    
       
   396     QCOMPARE(mTestPrivate->songData()->genre(), referenceMusicGenre( index ));
       
   397 }
       
   398 
       
   399 void TestMpMpxDetailsFrameworkWrapper::doTestHandleMedia(int dataIndex, TInt aResult)
       
   400 {
       
   401     init();
       
   402     loadTestData(dataIndex);
       
   403     mTestPrivate->HandleMediaL(*iMediaTestData, aResult);
       
   404     if(aResult != KErrNone)
       
   405     {
       
   406         verifyEmptyTestData();        
       
   407     }
       
   408     else
       
   409     {
       
   410         verify(dataIndex);
       
   411     }
       
   412     cleanup();
       
   413 }
       
   414 
       
   415 /*
       
   416  Tests handleMedia
       
   417 */
       
   418 void TestMpMpxDetailsFrameworkWrapper::testHandleMedia()
       
   419 {
       
   420     // testing passing error code. iSongData should not be modified
       
   421     // as it got constructed fresh with init(), all its string
       
   422     // members must be empty
       
   423     doTestHandleMedia(KTitleZeroSized, KErrGeneral);
       
   424     
       
   425     // Testing zero sized title
       
   426     doTestHandleMedia(KTitleZeroSized, KErrNone);
       
   427     
       
   428     // very large title
       
   429     doTestHandleMedia(KTitleVeryLarge, KErrNone);    
       
   430     
       
   431     // Testing title field OFF
       
   432     doTestHandleMedia(KTitleOff, KErrNone);
       
   433     
       
   434     // Testing artist empty string
       
   435     doTestHandleMedia(KMusicArtistZeroSized, KErrNone);
       
   436     
       
   437     // Testing artist long
       
   438     doTestHandleMedia(KMusicArtistLarge, KErrNone);    
       
   439     
       
   440     // Testing artist field OFF
       
   441     doTestHandleMedia(KMusicArtistOff, KErrNone);    
       
   442     
       
   443     // Testing album zero sized
       
   444     doTestHandleMedia(KAlbumZeroSized, KErrNone);
       
   445     
       
   446     // Testing album long
       
   447     doTestHandleMedia(KAlbumLarge, KErrNone);
       
   448     
       
   449     // Testing album off
       
   450     doTestHandleMedia(KAlbumOff, KErrNone);
       
   451     
       
   452     // Testing comment zero sized
       
   453     doTestHandleMedia(KCommentZeroSized, KErrNone);
       
   454     
       
   455     // Testing comment large
       
   456     doTestHandleMedia(KCommentLarge, KErrNone);
       
   457     
       
   458     // Testing comment OFF
       
   459     doTestHandleMedia(KCommentOff, KErrNone);
       
   460     
       
   461     // Testing composer zero sized
       
   462     doTestHandleMedia(KComposerZeroSized, KErrNone);
       
   463     
       
   464     // Testing composer large
       
   465     doTestHandleMedia(KComposerLarge, KErrNone);
       
   466     
       
   467     // Testing composer OFF
       
   468     doTestHandleMedia(KComposerOff, KErrNone);
       
   469     
       
   470     // Testing year negative
       
   471     doTestHandleMedia(KYearNegative, KErrNone);
       
   472     
       
   473     // Testing year 0
       
   474     doTestHandleMedia(KYearZero, KErrNone);
       
   475     
       
   476     // Testing year +
       
   477     doTestHandleMedia(KYearPositive, KErrNone);
       
   478     
       
   479     // Testing year OFF
       
   480     doTestHandleMedia(KYearOff, KErrNone);
       
   481     
       
   482     // Testing album track zero sized
       
   483     doTestHandleMedia(KAlbumTrackZeroSized, KErrNone);
       
   484     
       
   485     // Testing album track large
       
   486     doTestHandleMedia(KAlbumTrackLarge, KErrNone);
       
   487     
       
   488     // Testing album track OFF
       
   489     doTestHandleMedia(KAlbumTrackOff, KErrNone);
       
   490     
       
   491     // Testing genre zero sized
       
   492     doTestHandleMedia(KGenreZeroSized, KErrNone);
       
   493  
       
   494     // Testing genre large
       
   495     doTestHandleMedia(KGenreLarge, KErrNone);    
       
   496     
       
   497     // Testing genre OFF
       
   498     doTestHandleMedia(KGenreOff, KErrNone);  
       
   499     
       
   500     // Testing all fields OFF
       
   501     doTestHandleMedia(KAllFieldsOFF, KErrNone);    
       
   502 }
       
   503 
       
   504 /*!
       
   505  Tests retrieveSong
       
   506  */
       
   507 void TestMpMpxDetailsFrameworkWrapper::testRetrieveSong()
       
   508 {
       
   509     mTest->retrieveSong(); // async
       
   510     // no need to verify the data received. As we already
       
   511     // tested them in testHandleMedia    
       
   512 }
       
   513 
       
   514 void TestMpMpxDetailsFrameworkWrapper::handleSongDetailInfoChanged()
       
   515 {
       
   516     mSongDetailInfoChanged = true;
       
   517 }
       
   518 
       
   519 /*!
       
   520  Used to load test data
       
   521  */
       
   522 void TestMpMpxDetailsFrameworkWrapper::loadTestData( TInt aPos )
       
   523 {
       
   524     TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData entry");
       
   525     if( iMediaTestData ){
       
   526         delete iMediaTestData;
       
   527         iMediaTestData=0;
       
   528     }
       
   529     RArray<TInt> supportedIds;
       
   530     CleanupClosePushL( supportedIds );
       
   531     supportedIds.AppendL( KMPXMediaIdMusic );
       
   532     supportedIds.AppendL( KMPXMediaIdGeneral );
       
   533     iMediaTestData = CMPXMedia::NewL( supportedIds.Array() );
       
   534     CleanupStack::PopAndDestroy( &supportedIds );
       
   535 
       
   536     TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Loading %d.th data entry", aPos);
       
   537     TPtrC title( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].GeneralTitle ) );
       
   538     if(title.Match(KOff) == KErrNotFound) {
       
   539         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding title: %S to iMediaTestData", &title);
       
   540         iMediaTestData->SetTextValueL( KMPXMediaGeneralTitle, title );
       
   541     }
       
   542     
       
   543     TPtrC artist( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicArtist ) );
       
   544     if(artist.Match(KOff) == KErrNotFound) {
       
   545         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding artist: %S to iMediaTestData", &artist);
       
   546         iMediaTestData->SetTextValueL( KMPXMediaMusicArtist, artist );
       
   547     }
       
   548 
       
   549     TPtrC musicAlbum( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbum ) );
       
   550     if(musicAlbum.Match(KOff) == KErrNotFound) {
       
   551         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbum: %S to iMediaTestData", &musicAlbum);        
       
   552         iMediaTestData->SetTextValueL( KMPXMediaMusicAlbum, musicAlbum );
       
   553     }
       
   554 
       
   555     TPtrC musicAlbumArtFileName( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumArtFileName ) );
       
   556     if(musicAlbumArtFileName.Match(KOff) == KErrNotFound) {
       
   557         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumArtFileName: %S to iMediaTestData", &musicAlbumArtFileName);        
       
   558         iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumArtFileName, musicAlbumArtFileName );        
       
   559     }
       
   560 
       
   561     TPtrC comment( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Comment ) );
       
   562     if(comment.Match(KOff) == KErrNotFound) {
       
   563         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding comment: %S to iMediaTestData", &comment);        
       
   564         iMediaTestData->SetTextValueL( KMPXMediaGeneralComment, comment);
       
   565     }
       
   566 
       
   567     TPtrC composer( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].Composer ) );
       
   568     if(composer.Match(KOff) == KErrNotFound) {
       
   569         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding composer: %S to iMediaTestData", &composer);        
       
   570         iMediaTestData->SetTextValueL( KMPXMediaMusicComposer, composer);
       
   571     }
       
   572     
       
   573     if(KAllSongsTestData[aPos].Year != -1) {
       
   574         TDateTime date_time;
       
   575         date_time.SetYear(KAllSongsTestData[aPos].Year);
       
   576         date_time.SetMonth(EJanuary);
       
   577         date_time.SetDay(1);
       
   578         date_time.SetHour(0);
       
   579         date_time.SetMinute(0);
       
   580         date_time.SetSecond(0);
       
   581         date_time.SetMicroSecond(0);
       
   582         TTime date(date_time);
       
   583         TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding year: %d in %LD to iMediaTestData", KAllSongsTestData[aPos].Year, date.Int64());
       
   584         TRACE3("TestMpMpxDetailsFrameworkWrapper::loadTestData Is year %d equal to %d", KAllSongsTestData[aPos].Year, date.DateTime().Year());        
       
   585         iMediaTestData->SetTObjectValueL<TInt64>( KMPXMediaMusicYear, date.Int64() );        
       
   586     }
       
   587 
       
   588     TPtrC musicAlbumTrack( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicAlbumTrack ) );
       
   589     if(musicAlbumTrack.Match(KOff) == KErrNotFound) {
       
   590         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicAlbumTrack: %S to iMediaTestData", &musicAlbumTrack);        
       
   591         iMediaTestData->SetTextValueL( KMPXMediaMusicAlbumTrack,  musicAlbumTrack);        
       
   592     }
       
   593     
       
   594     TPtrC genre( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicGenre ) );
       
   595     if(genre.Match(KOff) == KErrNotFound) {
       
   596         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding genre: %S to iMediaTestData", &genre);        
       
   597         iMediaTestData->SetTextValueL( KMPXMediaMusicGenre, genre);
       
   598     }
       
   599     
       
   600     TPtrC musicUri( reinterpret_cast<const TUint16*>( KAllSongsTestData[aPos].MusicUri ) );
       
   601     if(musicUri.Match(KOff) == KErrNotFound) {
       
   602         TRACE2("TestMpMpxDetailsFrameworkWrapper::loadTestData Adding musicUri: %S to iMediaTestData", &musicUri);        
       
   603         iMediaTestData->SetTextValueL( KMPXMediaGeneralUri, musicUri);
       
   604     }
       
   605     TRACE("TestMpMpxDetailsFrameworkWrapper::loadTestData exit");    
       
   606 }
       
   607 
       
   608 //end of file