mpengine/tsrc/unittest_mpmpxplaybackframeworkwrapper/src/unittest_mpmpxplaybackframeworkwrapper.cpp
author hgs
Fri, 28 May 2010 19:46:01 -0500
changeset 36 a0afa279b8fe
child 43 0f32e550d9d8
child 48 af3740e3753f
permissions -rw-r--r--
201021
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
36
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: Unit test for mpmpxpbframeworkwrapper
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <mpxmedia.h>
hgs
parents:
diff changeset
    19
#include <mpxcollectionplaylist.h>
hgs
parents:
diff changeset
    20
#include <xqsharablefile.h>
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include "mpxaudioeffectengine.h"
hgs
parents:
diff changeset
    23
#include "unittest_mpmpxplaybackframeworkwrapper.h"
hgs
parents:
diff changeset
    24
#include "stub/inc/mpplaybackdata.h"
hgs
parents:
diff changeset
    25
#include "stub/inc/mpxplaybackutility.h"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// Do this so we can access all member variables.
hgs
parents:
diff changeset
    29
#define private public
hgs
parents:
diff changeset
    30
#include "mpmpxplaybackframeworkwrapper.h"
hgs
parents:
diff changeset
    31
#include "mpmpxplaybackframeworkwrapper_p.h"
hgs
parents:
diff changeset
    32
#undef private
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
//This so we can test private functions
hgs
parents:
diff changeset
    35
#include "mpmpxplaybackframeworkwrapper_p.cpp"
hgs
parents:
diff changeset
    36
//Test data
hgs
parents:
diff changeset
    37
struct TTestAttrs
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
    const wchar_t* GeneralTitle;
hgs
parents:
diff changeset
    40
    const wchar_t* MusicArtist;
hgs
parents:
diff changeset
    41
    const TInt GeneralCount;
hgs
parents:
diff changeset
    42
    const wchar_t* MusicAlbumArtFileName;
hgs
parents:
diff changeset
    43
    const wchar_t* MusicAlbum;
hgs
parents:
diff changeset
    44
    const wchar_t* MusicUri;
hgs
parents:
diff changeset
    45
    const wchar_t* MimeType;
hgs
parents:
diff changeset
    46
    };
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
const TTestAttrs KAllSongsTestData[] =
hgs
parents:
diff changeset
    49
    {
hgs
parents:
diff changeset
    50
     { L"Title 1", L"Artist 1", 1, L"e:\\data\\images\\art1.jpg", L"Album 1", L"Uri 1", L"audio/x-pn-realaudio"}
hgs
parents:
diff changeset
    51
    ,{ L"Title 2", L"Artist 2", 1, L"e:\\data\\images\\art2.jpg", L"Album 2", L"Uri 2", L"audio/x-realaudio"}
hgs
parents:
diff changeset
    52
    };
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
/*!
hgs
parents:
diff changeset
    55
 Make our test case a stand-alone executable that runs all the test functions.
hgs
parents:
diff changeset
    56
 */
hgs
parents:
diff changeset
    57
int main(int argc, char *argv[])
hgs
parents:
diff changeset
    58
{
hgs
parents:
diff changeset
    59
    QApplication app(argc, argv);
hgs
parents:
diff changeset
    60
    TestMpMpxPlaybackFrameworkWrapper tv;
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
    if ( argc > 1 ) {
hgs
parents:
diff changeset
    63
        return QTest::qExec( &tv, argc, argv);
hgs
parents:
diff changeset
    64
    }
hgs
parents:
diff changeset
    65
    else {
hgs
parents:
diff changeset
    66
        char *pass[3];
hgs
parents:
diff changeset
    67
        pass[0] = argv[0];
hgs
parents:
diff changeset
    68
        pass[1] = "-o";
hgs
parents:
diff changeset
    69
        pass[2] = "c:\\data\\unittest_mpmpxplaybackframeworkwrapper.txt";
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
        return QTest::qExec(&tv, 3, pass);
hgs
parents:
diff changeset
    72
    }
hgs
parents:
diff changeset
    73
}
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
TestMpMpxPlaybackFrameworkWrapper::TestMpMpxPlaybackFrameworkWrapper()
hgs
parents:
diff changeset
    76
    : mTest(0),
hgs
parents:
diff changeset
    77
      iMediaTestData(0)
hgs
parents:
diff changeset
    78
{
hgs
parents:
diff changeset
    79
}
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
TestMpMpxPlaybackFrameworkWrapper::~TestMpMpxPlaybackFrameworkWrapper()
hgs
parents:
diff changeset
    82
{
hgs
parents:
diff changeset
    83
    delete mTest;
hgs
parents:
diff changeset
    84
    delete iMediaTestData;
hgs
parents:
diff changeset
    85
}
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
/*!
hgs
parents:
diff changeset
    88
 Called before the first testfunction is executed.
hgs
parents:
diff changeset
    89
 */
hgs
parents:
diff changeset
    90
void TestMpMpxPlaybackFrameworkWrapper::initTestCase()
hgs
parents:
diff changeset
    91
{
hgs
parents:
diff changeset
    92
}
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
/*!
hgs
parents:
diff changeset
    95
 Called after the last testfunction was executed.
hgs
parents:
diff changeset
    96
 */
hgs
parents:
diff changeset
    97
void TestMpMpxPlaybackFrameworkWrapper::cleanupTestCase()
hgs
parents:
diff changeset
    98
{
hgs
parents:
diff changeset
    99
}
hgs
parents:
diff changeset
   100
hgs
parents:
diff changeset
   101
/*!
hgs
parents:
diff changeset
   102
 Called before each testfunction is executed.
hgs
parents:
diff changeset
   103
 */
hgs
parents:
diff changeset
   104
void TestMpMpxPlaybackFrameworkWrapper::init()
hgs
parents:
diff changeset
   105
{
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
    mTest = new MpMpxPlaybackFrameworkWrapper();
hgs
parents:
diff changeset
   108
    mTestPrivate = mTest->d_ptr;
hgs
parents:
diff changeset
   109
}
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
/*!
hgs
parents:
diff changeset
   112
 Called after every testfunction.
hgs
parents:
diff changeset
   113
 */
hgs
parents:
diff changeset
   114
void TestMpMpxPlaybackFrameworkWrapper::cleanup()
hgs
parents:
diff changeset
   115
{
hgs
parents:
diff changeset
   116
    delete mTest;
hgs
parents:
diff changeset
   117
    mTest = 0;
hgs
parents:
diff changeset
   118
}
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
/*!
hgs
parents:
diff changeset
   121
 Tests constructor.
hgs
parents:
diff changeset
   122
 */
hgs
parents:
diff changeset
   123
void TestMpMpxPlaybackFrameworkWrapper::testConstructor()
hgs
parents:
diff changeset
   124
{
hgs
parents:
diff changeset
   125
    QVERIFY(mTestPrivate->iPlaybackUtility != 0);
hgs
parents:
diff changeset
   126
    QVERIFY(mTestPrivate->iPlaybackData != 0);
hgs
parents:
diff changeset
   127
}
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
/*!
hgs
parents:
diff changeset
   130
 Tests playbackData
hgs
parents:
diff changeset
   131
 */
hgs
parents:
diff changeset
   132
void TestMpMpxPlaybackFrameworkWrapper::testPlaybackData()
hgs
parents:
diff changeset
   133
{
hgs
parents:
diff changeset
   134
    MpPlaybackData *playbackdata;
hgs
parents:
diff changeset
   135
    playbackdata = mTest->playbackData();
hgs
parents:
diff changeset
   136
    QCOMPARE(mTestPrivate->iPlaybackData, playbackdata);
hgs
parents:
diff changeset
   137
}
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
/*!
hgs
parents:
diff changeset
   140
 Tests stop.
hgs
parents:
diff changeset
   141
 */
hgs
parents:
diff changeset
   142
void TestMpMpxPlaybackFrameworkWrapper::testStop()
hgs
parents:
diff changeset
   143
{
hgs
parents:
diff changeset
   144
    mTest->stop();
hgs
parents:
diff changeset
   145
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStop);
hgs
parents:
diff changeset
   146
}
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
/*!
hgs
parents:
diff changeset
   149
 Tests playPause.
hgs
parents:
diff changeset
   150
 */
hgs
parents:
diff changeset
   151
void TestMpMpxPlaybackFrameworkWrapper::testPlayPause()
hgs
parents:
diff changeset
   152
{
hgs
parents:
diff changeset
   153
    mTest->playPause();
hgs
parents:
diff changeset
   154
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdPlayPause);
hgs
parents:
diff changeset
   155
}
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
/*!
hgs
parents:
diff changeset
   158
 Tests skipForward.
hgs
parents:
diff changeset
   159
 */
hgs
parents:
diff changeset
   160
void TestMpMpxPlaybackFrameworkWrapper::testSkipForward()
hgs
parents:
diff changeset
   161
{
hgs
parents:
diff changeset
   162
    mTest->skipForward();
hgs
parents:
diff changeset
   163
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdNext);
hgs
parents:
diff changeset
   164
}
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
/*!
hgs
parents:
diff changeset
   167
 Tests skipBackward
hgs
parents:
diff changeset
   168
 */
hgs
parents:
diff changeset
   169
void TestMpMpxPlaybackFrameworkWrapper::testSkipBackward()
hgs
parents:
diff changeset
   170
{
hgs
parents:
diff changeset
   171
    mTest->skipBackward();
hgs
parents:
diff changeset
   172
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdPrevious);
hgs
parents:
diff changeset
   173
}
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
/*!
hgs
parents:
diff changeset
   176
 Tests setPosition
hgs
parents:
diff changeset
   177
 */
hgs
parents:
diff changeset
   178
void TestMpMpxPlaybackFrameworkWrapper::testSetPosition()
hgs
parents:
diff changeset
   179
{
hgs
parents:
diff changeset
   180
    mTest->setPosition(100);
hgs
parents:
diff changeset
   181
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 100);
hgs
parents:
diff changeset
   182
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
hgs
parents:
diff changeset
   183
    mTest->setPosition(50);
hgs
parents:
diff changeset
   184
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 50);
hgs
parents:
diff changeset
   185
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
hgs
parents:
diff changeset
   186
    mTest->setPosition(700);
hgs
parents:
diff changeset
   187
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, 700);
hgs
parents:
diff changeset
   188
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyPosition);
hgs
parents:
diff changeset
   189
}
hgs
parents:
diff changeset
   190
hgs
parents:
diff changeset
   191
/*!
hgs
parents:
diff changeset
   192
 Tests setShuffle
hgs
parents:
diff changeset
   193
 */
hgs
parents:
diff changeset
   194
void TestMpMpxPlaybackFrameworkWrapper::testSetShuffle()
hgs
parents:
diff changeset
   195
{
hgs
parents:
diff changeset
   196
    mTest->setShuffle(true);
hgs
parents:
diff changeset
   197
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, TBool(ETrue));
hgs
parents:
diff changeset
   198
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRandomMode);
hgs
parents:
diff changeset
   199
    mTest->setShuffle(false);
hgs
parents:
diff changeset
   200
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, TBool(EFalse));
hgs
parents:
diff changeset
   201
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRandomMode);
hgs
parents:
diff changeset
   202
}
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
/*!
hgs
parents:
diff changeset
   205
 Tests setRepeat
hgs
parents:
diff changeset
   206
 */
hgs
parents:
diff changeset
   207
void TestMpMpxPlaybackFrameworkWrapper::testSetRepeat()
hgs
parents:
diff changeset
   208
{
hgs
parents:
diff changeset
   209
    mTest->setRepeat(true);
hgs
parents:
diff changeset
   210
    QCOMPARE(TMPXPlaybackRepeatMode(mTestPrivate->iPlaybackUtility->iValue), EPbRepeatAll);
hgs
parents:
diff changeset
   211
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRepeatMode);
hgs
parents:
diff changeset
   212
    mTest->setRepeat(false);
hgs
parents:
diff changeset
   213
    QCOMPARE(TMPXPlaybackRepeatMode(mTestPrivate->iPlaybackUtility->iValue), EPbRepeatOff);
hgs
parents:
diff changeset
   214
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyRepeatMode);
hgs
parents:
diff changeset
   215
}
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
/*!
hgs
parents:
diff changeset
   218
 Tests handleProperty
hgs
parents:
diff changeset
   219
 */
hgs
parents:
diff changeset
   220
void TestMpMpxPlaybackFrameworkWrapper::testHandlePlaybackMessage()
hgs
parents:
diff changeset
   221
{
hgs
parents:
diff changeset
   222
    RArray<TInt> supportedIds;
hgs
parents:
diff changeset
   223
    CleanupClosePushL( supportedIds );
hgs
parents:
diff changeset
   224
    supportedIds.AppendL( KMPXMessageContentIdGeneral );
hgs
parents:
diff changeset
   225
    CMPXMedia* testMessage = CMPXMedia::NewL(supportedIds.Array());
hgs
parents:
diff changeset
   226
    CleanupStack::PopAndDestroy(&supportedIds);
hgs
parents:
diff changeset
   227
    CleanupStack::PushL(testMessage);
hgs
parents:
diff changeset
   228
    testMessage->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral);
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
    //Update State
hgs
parents:
diff changeset
   231
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EStateChanged);
hgs
parents:
diff changeset
   232
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
hgs
parents:
diff changeset
   233
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
hgs
parents:
diff changeset
   234
    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
hgs
parents:
diff changeset
   235
    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
hgs
parents:
diff changeset
   236
    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
    //Initialize complete
hgs
parents:
diff changeset
   239
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EInitializeComplete);
hgs
parents:
diff changeset
   240
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
hgs
parents:
diff changeset
   241
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,1);
hgs
parents:
diff changeset
   242
    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
hgs
parents:
diff changeset
   243
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandGeneralId),KMPXCommandIdPlaybackGeneral);
hgs
parents:
diff changeset
   244
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType),TInt(EPbCmdPlay));
hgs
parents:
diff changeset
   245
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandGeneralDoSync),TBool(ETrue));
hgs
parents:
diff changeset
   246
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandPlaybackGeneralNoBuffer),TBool(ETrue));
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
    //Property change
hgs
parents:
diff changeset
   249
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EPropertyChanged);
hgs
parents:
diff changeset
   250
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EPbPropertyPosition);
hgs
parents:
diff changeset
   251
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,50);
hgs
parents:
diff changeset
   252
    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
hgs
parents:
diff changeset
   253
    QCOMPARE(mTestPrivate->iPlaybackData->mPosition, 50);
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,EPbPropertyDuration);
hgs
parents:
diff changeset
   256
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,100);
hgs
parents:
diff changeset
   257
    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
hgs
parents:
diff changeset
   258
    QCOMPARE(mTestPrivate->iPlaybackData->mDuration, 100);
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
    //Media change
hgs
parents:
diff changeset
   261
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralEvent,TMPXPlaybackMessage::EMediaChanged);
hgs
parents:
diff changeset
   262
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralType,0);
hgs
parents:
diff changeset
   263
    testMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralData,0);
hgs
parents:
diff changeset
   264
    mTestPrivate->HandlePlaybackMessage(testMessage, KErrNone);
hgs
parents:
diff changeset
   265
    QCOMPARE(mTestPrivate->iPlaybackUtility->iAttrs->Count(), 8);
hgs
parents:
diff changeset
   266
hgs
parents:
diff changeset
   267
    CleanupStack::PopAndDestroy(testMessage);
hgs
parents:
diff changeset
   268
}
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
/*!
hgs
parents:
diff changeset
   271
 Tests handleProperty
hgs
parents:
diff changeset
   272
 */
hgs
parents:
diff changeset
   273
void TestMpMpxPlaybackFrameworkWrapper::testHandleProperty()
hgs
parents:
diff changeset
   274
{
hgs
parents:
diff changeset
   275
    for(TInt i = 0; i < 10; i++){
hgs
parents:
diff changeset
   276
        mTestPrivate->HandlePropertyL(EPbPropertyPosition, i, KErrNone);
hgs
parents:
diff changeset
   277
        mTestPrivate->HandlePropertyL(EPbPropertyDuration, i+1, KErrNone);
hgs
parents:
diff changeset
   278
        QCOMPARE(mTestPrivate->iPlaybackData->mPosition, i);
hgs
parents:
diff changeset
   279
        QCOMPARE(mTestPrivate->iPlaybackData->mDuration, i+1);
hgs
parents:
diff changeset
   280
    }
hgs
parents:
diff changeset
   281
    mTestPrivate->iPlaybackData->mPosition = 100;
hgs
parents:
diff changeset
   282
    mTestPrivate->iPlaybackData->mDuration = 100;
hgs
parents:
diff changeset
   283
    mTestPrivate->HandlePropertyL(EPbPropertyPosition, 10, KErrNotFound);
hgs
parents:
diff changeset
   284
    mTestPrivate->HandlePropertyL(EPbPropertyDuration, 10, KErrNotFound);
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
    QCOMPARE(mTestPrivate->iPlaybackData->mPosition, 100);
hgs
parents:
diff changeset
   287
    QCOMPARE(mTestPrivate->iPlaybackData->mDuration, 100);
hgs
parents:
diff changeset
   288
}
hgs
parents:
diff changeset
   289
hgs
parents:
diff changeset
   290
/*!
hgs
parents:
diff changeset
   291
 Tests handleMedia
hgs
parents:
diff changeset
   292
 */
hgs
parents:
diff changeset
   293
void TestMpMpxPlaybackFrameworkWrapper::testHandleMedia()
hgs
parents:
diff changeset
   294
{
hgs
parents:
diff changeset
   295
    loadTestData(0);
hgs
parents:
diff changeset
   296
    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
hgs
parents:
diff changeset
   297
    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
hgs
parents:
diff changeset
   298
    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
hgs
parents:
diff changeset
   299
    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
hgs
parents:
diff changeset
   300
    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(EFalse));
hgs
parents:
diff changeset
   301
hgs
parents:
diff changeset
   302
    loadTestData(1);
hgs
parents:
diff changeset
   303
    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
hgs
parents:
diff changeset
   304
    mTestPrivate->HandleMediaL(*iMediaTestData, KErrNone);
hgs
parents:
diff changeset
   305
    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
hgs
parents:
diff changeset
   306
    const TDesC& title = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].GeneralTitle));
hgs
parents:
diff changeset
   307
    QCOMPARE(mTestPrivate->iPlaybackData->title(), QString::fromUtf16( title.Ptr(), title.Length() ));
hgs
parents:
diff changeset
   308
    const TDesC& artist = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicArtist));
hgs
parents:
diff changeset
   309
    QCOMPARE(mTestPrivate->iPlaybackData->artist(), QString::fromUtf16( artist.Ptr(), artist.Length() ));
hgs
parents:
diff changeset
   310
    const TDesC& album = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicAlbum));
hgs
parents:
diff changeset
   311
    QCOMPARE(mTestPrivate->iPlaybackData->album(), QString::fromUtf16( album.Ptr(), album.Length() ));
hgs
parents:
diff changeset
   312
    const TDesC& albumArt = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicAlbumArtFileName));
hgs
parents:
diff changeset
   313
    QCOMPARE(mTestPrivate->iPlaybackData->currentAAUri, QString::fromUtf16( albumArt.Ptr(), albumArt.Length() ));
hgs
parents:
diff changeset
   314
    const TDesC& albumUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri));
hgs
parents:
diff changeset
   315
    QCOMPARE(mTestPrivate->iPlaybackData->currentUri, QString::fromUtf16( albumUri.Ptr(), albumUri.Length() ));
hgs
parents:
diff changeset
   316
    QVERIFY(mTestPrivate->iPlaybackData->mRealAudio);
hgs
parents:
diff changeset
   317
    QCOMPARE(mTestPrivate->iPlaybackData->mId, 1);
hgs
parents:
diff changeset
   318
    QCOMPARE(mTestPrivate->iPlaybackData->mAlbumId, 2);
hgs
parents:
diff changeset
   319
hgs
parents:
diff changeset
   320
    //Empty data
hgs
parents:
diff changeset
   321
    cleanup();
hgs
parents:
diff changeset
   322
    init();
hgs
parents:
diff changeset
   323
    RArray<TInt> supportedIds;
hgs
parents:
diff changeset
   324
    CleanupClosePushL( supportedIds );
hgs
parents:
diff changeset
   325
    supportedIds.AppendL( KMPXMediaIdMusic );
hgs
parents:
diff changeset
   326
    supportedIds.AppendL( KMPXMediaIdGeneral );
hgs
parents:
diff changeset
   327
    CMPXMedia* entries = CMPXMedia::NewL(supportedIds.Array());
hgs
parents:
diff changeset
   328
    CleanupStack::PopAndDestroy(&supportedIds);
hgs
parents:
diff changeset
   329
    CleanupStack::PushL(entries);
hgs
parents:
diff changeset
   330
    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[1].GeneralCount);
hgs
parents:
diff changeset
   331
    entries->SetTextValueL(KMPXMediaGeneralUri, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri)));
hgs
parents:
diff changeset
   332
    CMPXMedia* emptyTestData = CMPXMedia::NewL(*entries);
hgs
parents:
diff changeset
   333
    CleanupStack::PopAndDestroy(entries);
hgs
parents:
diff changeset
   334
    CleanupStack::PushL(emptyTestData);
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
    mTestPrivate->iPlaybackData->mMediaReady = EFalse;
hgs
parents:
diff changeset
   337
    mTestPrivate->HandleMediaL(*emptyTestData, KErrNone);
hgs
parents:
diff changeset
   338
    QCOMPARE(mTestPrivate->iPlaybackData->mMediaReady, TBool(ETrue));
hgs
parents:
diff changeset
   339
    const TDesC& musicUri = TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[1].MusicUri));
hgs
parents:
diff changeset
   340
    QCOMPARE(mTestPrivate->iPlaybackData->title(), QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ));
hgs
parents:
diff changeset
   341
    QCOMPARE(mTestPrivate->iPlaybackData->artist(), QString());
hgs
parents:
diff changeset
   342
    QCOMPARE(mTestPrivate->iPlaybackData->album(), QString());
hgs
parents:
diff changeset
   343
    QCOMPARE(mTestPrivate->iPlaybackData->currentAAUri, QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ));
hgs
parents:
diff changeset
   344
    QCOMPARE(mTestPrivate->iPlaybackData->currentUri, QString::fromUtf16( musicUri.Ptr(), musicUri.Length() ));
hgs
parents:
diff changeset
   345
    QVERIFY(!mTestPrivate->iPlaybackData->mRealAudio);
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
    CleanupStack::PopAndDestroy(emptyTestData);
hgs
parents:
diff changeset
   348
}
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
/*!
hgs
parents:
diff changeset
   351
 Tests retrieveSong
hgs
parents:
diff changeset
   352
 */
hgs
parents:
diff changeset
   353
void TestMpMpxPlaybackFrameworkWrapper::testRetrieveSongDetails()
hgs
parents:
diff changeset
   354
{
hgs
parents:
diff changeset
   355
    mTestPrivate->RetrieveSongDetailsL();
hgs
parents:
diff changeset
   356
    QCOMPARE(mTestPrivate->iPlaybackUtility->iAttrs->Count(), 8);
hgs
parents:
diff changeset
   357
}
hgs
parents:
diff changeset
   358
hgs
parents:
diff changeset
   359
/*!
hgs
parents:
diff changeset
   360
 Tests updateState
hgs
parents:
diff changeset
   361
 */
hgs
parents:
diff changeset
   362
void TestMpMpxPlaybackFrameworkWrapper::testUpdateState()
hgs
parents:
diff changeset
   363
{
hgs
parents:
diff changeset
   364
    mTestPrivate->iPlaybackUtility->iReturnSource = false;
hgs
parents:
diff changeset
   365
    mTestPrivate->UpdateStateL();
hgs
parents:
diff changeset
   366
    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::NotPlaying);
hgs
parents:
diff changeset
   367
    mTestPrivate->iPlaybackUtility->iReturnSource = true;
hgs
parents:
diff changeset
   368
hgs
parents:
diff changeset
   369
    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
hgs
parents:
diff changeset
   370
    mTestPrivate->UpdateStateL();
hgs
parents:
diff changeset
   371
    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
hgs
parents:
diff changeset
   372
hgs
parents:
diff changeset
   373
    mTestPrivate->iPlaybackUtility->iState = EPbStatePaused;
hgs
parents:
diff changeset
   374
    mTestPrivate->UpdateStateL();
hgs
parents:
diff changeset
   375
    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Paused);
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
    mTestPrivate->iPlaybackUtility->iState = EPbStatePlaying;
hgs
parents:
diff changeset
   378
    mTestPrivate->UpdateStateL();
hgs
parents:
diff changeset
   379
    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Playing);
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
    mTestPrivate->iPlaybackUtility->iState = EPbStateStopped;
hgs
parents:
diff changeset
   382
    mTestPrivate->UpdateStateL();
hgs
parents:
diff changeset
   383
    QCOMPARE(mTestPrivate->iPlaybackData->mPlaybackState, MpPlaybackData::Stopped);
hgs
parents:
diff changeset
   384
}
hgs
parents:
diff changeset
   385
hgs
parents:
diff changeset
   386
/*!
hgs
parents:
diff changeset
   387
 Tests forceStop
hgs
parents:
diff changeset
   388
 */
hgs
parents:
diff changeset
   389
void TestMpMpxPlaybackFrameworkWrapper::testForceStop()
hgs
parents:
diff changeset
   390
{
hgs
parents:
diff changeset
   391
    mTestPrivate->ForceStopL();
hgs
parents:
diff changeset
   392
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandGeneralId),KMPXCommandIdPlaybackGeneral);
hgs
parents:
diff changeset
   393
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralType),TInt(EPbCmdStop));
hgs
parents:
diff changeset
   394
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandGeneralDoSync),TBool(ETrue));
hgs
parents:
diff changeset
   395
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCMPXCmd->ValueTObjectL<TBool>(KMPXCommandPlaybackGeneralNoBuffer),TBool(ETrue));
hgs
parents:
diff changeset
   396
}
hgs
parents:
diff changeset
   397
hgs
parents:
diff changeset
   398
/*!
hgs
parents:
diff changeset
   399
 Tests setBalance
hgs
parents:
diff changeset
   400
 */
hgs
parents:
diff changeset
   401
void TestMpMpxPlaybackFrameworkWrapper::testSetBalance()
hgs
parents:
diff changeset
   402
{
hgs
parents:
diff changeset
   403
    int balance = 25;
hgs
parents:
diff changeset
   404
    mTest->setBalance( balance );
hgs
parents:
diff changeset
   405
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, balance);
hgs
parents:
diff changeset
   406
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyBalance);
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
    balance = 75;
hgs
parents:
diff changeset
   409
    mTest->setBalance( balance );
hgs
parents:
diff changeset
   410
    QCOMPARE(mTestPrivate->iPlaybackUtility->iValue, balance);
hgs
parents:
diff changeset
   411
    QCOMPARE(mTestPrivate->iPlaybackUtility->iProperty, EPbPropertyBalance);
hgs
parents:
diff changeset
   412
}
hgs
parents:
diff changeset
   413
hgs
parents:
diff changeset
   414
/*!
hgs
parents:
diff changeset
   415
 Tests applyAudioEffects
hgs
parents:
diff changeset
   416
 */
hgs
parents:
diff changeset
   417
void TestMpMpxPlaybackFrameworkWrapper::testApplyAudioEffects()
hgs
parents:
diff changeset
   418
{
hgs
parents:
diff changeset
   419
    mTest->applyAudioEffects();
hgs
parents:
diff changeset
   420
    QCOMPARE(mTestPrivate->iPlaybackUtility->iComandData, TInt(KAudioEffectsID));
hgs
parents:
diff changeset
   421
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbApplyEffect);
hgs
parents:
diff changeset
   422
}
hgs
parents:
diff changeset
   423
hgs
parents:
diff changeset
   424
/*!
hgs
parents:
diff changeset
   425
 Tests applyEqualizer
hgs
parents:
diff changeset
   426
 */
hgs
parents:
diff changeset
   427
void TestMpMpxPlaybackFrameworkWrapper::testApplyEqualizer()
hgs
parents:
diff changeset
   428
{
hgs
parents:
diff changeset
   429
    mTest->applyEqualizer();
hgs
parents:
diff changeset
   430
    QCOMPARE(mTestPrivate->iPlaybackUtility->iComandData, TInt(KEqualizerID));
hgs
parents:
diff changeset
   431
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbApplyEffect);
hgs
parents:
diff changeset
   432
}
hgs
parents:
diff changeset
   433
hgs
parents:
diff changeset
   434
/*!
hgs
parents:
diff changeset
   435
 Tests applyEqualizer
hgs
parents:
diff changeset
   436
 */
hgs
parents:
diff changeset
   437
void TestMpMpxPlaybackFrameworkWrapper::testPlay()
hgs
parents:
diff changeset
   438
{
hgs
parents:
diff changeset
   439
    //Play from filename
hgs
parents:
diff changeset
   440
    QString fileName = QString("z:\\system\\data\\nullsound.mp3");
hgs
parents:
diff changeset
   441
    mTest->play( fileName );
hgs
parents:
diff changeset
   442
    QVERIFY( mTestPrivate->iPlaybackUtility->iInitialized );
hgs
parents:
diff changeset
   443
hgs
parents:
diff changeset
   444
    //Play from Shareable file
hgs
parents:
diff changeset
   445
    mTestPrivate->iPlaybackUtility->iInitialized = false;
hgs
parents:
diff changeset
   446
    _LIT( KMPXNullSoundPath, "z:\\system\\data\\nullsound.mp3" );
hgs
parents:
diff changeset
   447
    RFs fileServerSession;
hgs
parents:
diff changeset
   448
    RFile file;
hgs
parents:
diff changeset
   449
    TInt err( KErrNone );
hgs
parents:
diff changeset
   450
    err = fileServerSession.Connect();
hgs
parents:
diff changeset
   451
    if( err == KErrNone ) {
hgs
parents:
diff changeset
   452
        err = file.Open( fileServerSession, KMPXNullSoundPath, EFileShareReadersOrWriters );
hgs
parents:
diff changeset
   453
        if( err == KErrNone ) {
hgs
parents:
diff changeset
   454
            XQSharableFile* sFile = new XQSharableFile(file);
hgs
parents:
diff changeset
   455
hgs
parents:
diff changeset
   456
            mTest->play( *sFile );
hgs
parents:
diff changeset
   457
            QVERIFY( mTestPrivate->iPlaybackUtility->iInitialized );
hgs
parents:
diff changeset
   458
hgs
parents:
diff changeset
   459
            sFile->close();
hgs
parents:
diff changeset
   460
            delete sFile;
hgs
parents:
diff changeset
   461
            sFile = 0;
hgs
parents:
diff changeset
   462
            fileServerSession.Close();
hgs
parents:
diff changeset
   463
        }
hgs
parents:
diff changeset
   464
        else {
hgs
parents:
diff changeset
   465
            QWARN("Not able to Open test file");
hgs
parents:
diff changeset
   466
        }
hgs
parents:
diff changeset
   467
    }
hgs
parents:
diff changeset
   468
    else {
hgs
parents:
diff changeset
   469
        QWARN("Not able to create RF Session");
hgs
parents:
diff changeset
   470
    }
hgs
parents:
diff changeset
   471
}
hgs
parents:
diff changeset
   472
hgs
parents:
diff changeset
   473
/*!
hgs
parents:
diff changeset
   474
 Tests startSeekForward()
hgs
parents:
diff changeset
   475
 */
hgs
parents:
diff changeset
   476
void TestMpMpxPlaybackFrameworkWrapper::testStartSeekForward()
hgs
parents:
diff changeset
   477
{
hgs
parents:
diff changeset
   478
    mTest->startSeekForward();
hgs
parents:
diff changeset
   479
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStartSeekForward);
hgs
parents:
diff changeset
   480
}
hgs
parents:
diff changeset
   481
hgs
parents:
diff changeset
   482
/*!
hgs
parents:
diff changeset
   483
 Tests stopSeeking()
hgs
parents:
diff changeset
   484
 */
hgs
parents:
diff changeset
   485
void TestMpMpxPlaybackFrameworkWrapper::testStopSeeking()
hgs
parents:
diff changeset
   486
{
hgs
parents:
diff changeset
   487
    mTest->stopSeeking();
hgs
parents:
diff changeset
   488
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStopSeeking);
hgs
parents:
diff changeset
   489
}
hgs
parents:
diff changeset
   490
hgs
parents:
diff changeset
   491
/*!
hgs
parents:
diff changeset
   492
 Tests startSeekBackward()
hgs
parents:
diff changeset
   493
 */
hgs
parents:
diff changeset
   494
void TestMpMpxPlaybackFrameworkWrapper::testStartSeekBackward()
hgs
parents:
diff changeset
   495
{
hgs
parents:
diff changeset
   496
    mTest->startSeekBackward();
hgs
parents:
diff changeset
   497
    QCOMPARE(mTestPrivate->iPlaybackUtility->iCmd, EPbCmdStartSeekBackward);
hgs
parents:
diff changeset
   498
}
hgs
parents:
diff changeset
   499
hgs
parents:
diff changeset
   500
/*!
hgs
parents:
diff changeset
   501
 Tests HandleSubPlayerNamesL()
hgs
parents:
diff changeset
   502
 */
hgs
parents:
diff changeset
   503
void TestMpMpxPlaybackFrameworkWrapper::testHandleSubPlayerNamesL()
hgs
parents:
diff changeset
   504
{
hgs
parents:
diff changeset
   505
    //HandleSubPlayerNamesL does nothing, included just to cover all declared functions.
hgs
parents:
diff changeset
   506
    TUid stubUid = {0x00000001};
hgs
parents:
diff changeset
   507
    MDesCArray* stubArray = NULL;
hgs
parents:
diff changeset
   508
    mTestPrivate->HandleSubPlayerNamesL(stubUid, stubArray, false, KErrNone);
hgs
parents:
diff changeset
   509
    QVERIFY(mTestPrivate);
hgs
parents:
diff changeset
   510
}
hgs
parents:
diff changeset
   511
hgs
parents:
diff changeset
   512
/*!
hgs
parents:
diff changeset
   513
 Used to load test data
hgs
parents:
diff changeset
   514
 */
hgs
parents:
diff changeset
   515
void TestMpMpxPlaybackFrameworkWrapper::loadTestData(TInt aPos)
hgs
parents:
diff changeset
   516
{
hgs
parents:
diff changeset
   517
    if(iMediaTestData){
hgs
parents:
diff changeset
   518
        delete iMediaTestData;
hgs
parents:
diff changeset
   519
        iMediaTestData=0;
hgs
parents:
diff changeset
   520
    }
hgs
parents:
diff changeset
   521
    RArray<TInt> supportedIds;
hgs
parents:
diff changeset
   522
    CleanupClosePushL( supportedIds );
hgs
parents:
diff changeset
   523
    supportedIds.AppendL( KMPXMediaIdMusic );
hgs
parents:
diff changeset
   524
    supportedIds.AppendL( KMPXMediaIdGeneral );
hgs
parents:
diff changeset
   525
    CMPXMedia* entries = CMPXMedia::NewL(supportedIds.Array());
hgs
parents:
diff changeset
   526
    CleanupStack::PopAndDestroy(&supportedIds);
hgs
parents:
diff changeset
   527
    CleanupStack::PushL(entries);
hgs
parents:
diff changeset
   528
hgs
parents:
diff changeset
   529
    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralId, 1);
hgs
parents:
diff changeset
   530
    entries->SetTObjectValueL<TInt>(KMPXMediaMusicAlbumId, 2);
hgs
parents:
diff changeset
   531
    entries->SetTextValueL(KMPXMediaGeneralTitle, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].GeneralTitle)));
hgs
parents:
diff changeset
   532
    entries->SetTextValueL(KMPXMediaMusicArtist, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicArtist)));
hgs
parents:
diff changeset
   533
    entries->SetTObjectValueL<TInt>(KMPXMediaGeneralCount, KAllSongsTestData[aPos].GeneralCount);
hgs
parents:
diff changeset
   534
    entries->SetTextValueL(KMPXMediaMusicAlbumArtFileName, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicAlbumArtFileName)));
hgs
parents:
diff changeset
   535
    entries->SetTextValueL(KMPXMediaMusicAlbum, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicAlbum)));
hgs
parents:
diff changeset
   536
    entries->SetTextValueL(KMPXMediaGeneralUri, TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MusicUri)));
hgs
parents:
diff changeset
   537
    entries->SetTextValueL(TMPXAttribute(KMPXMediaGeneralMimeType), TPtrC(reinterpret_cast<const TUint16*>(KAllSongsTestData[aPos].MimeType)));
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
    iMediaTestData = CMPXMedia::NewL(*entries);
hgs
parents:
diff changeset
   540
    CleanupStack::PopAndDestroy(entries);
hgs
parents:
diff changeset
   541
}
hgs
parents:
diff changeset
   542
hgs
parents:
diff changeset
   543
//end of file