diff -r 315810614048 -r 839377eedc2b videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/src/testvideoappuiengine.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/src/testvideoappuiengine.cpp Tue Aug 31 15:15:55 2010 +0300 @@ -0,0 +1,378 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: VideoAppUiEngine test class implementation. +* +*/ + +// Version : %version: 3 % + +// INCLUDES +#include +#include + +#include +#include +#include +#include +#include + +#include "stub/inc/testutilities.h" + +#include "mpxplaybackutilityimp_stub.h" +#include "mpxcollectionutilityimp_stub.h" + +#include "stub/inc/hbinstance.h" +#include "mpxhbvideocommondefs.h" +#include "testvideoappuiengine.h" +#include "../stub/inc/videoplaybackwrapper.h" +#define private public +#include "mpxvideoplayerappuiengine.h" +#undef private +#include "mpxvideo_debug.h" + + + + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- +// +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + + TestVideoAppUiEngine tc; + + char *pass[3]; + pass[0] = argv[0]; + pass[1] = "-o"; + pass[2] = "c:\\data\\TestVideoAppUiEngine.txt"; + + return QTest::qExec(&tc, 3, pass); +} + + +TestVideoAppUiEngine::TestVideoAppUiEngine() + : mTestObject( 0 ) +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::TestVideoAppUiEngine()")); +} + +TestVideoAppUiEngine::~TestVideoAppUiEngine() +{ + MPX_ENTER_EXIT(_L("TestVideoAppUiEngine::~TestVideoAppUiEngine()")); + + delete mTestObject; + mTestObject = 0; + + delete mPlaybackWrapper; + mPlaybackWrapper = 0; + + TestUtilities* utility = reinterpret_cast( UserSvr::DllTls(12345678) ); + utility->iPlaybackUtility->RemoveTestObserverL(); + +} + + +void TestVideoAppUiEngine::init() +{ + MPX_ENTER_EXIT(_L("TestVideoAppUiEngine::init()")); + + mTestResult = false; + + mPlaybackWrapper = new VideoPlaybackWrapper(); + + TRAPD( createErr, mTestObject = CMpxVideoPlayerAppUiEngine::NewL( mPlaybackWrapper ) ); + + QVERIFY( ! createErr ); + + QVERIFY( mTestObject->iCollectionUtility ); + + TRAPD( initErr, mTestObject->LateInitL() ); + + QVERIFY( ! initErr ); + + TestUtilities* utility = reinterpret_cast( UserSvr::DllTls(12345678) ); + + TRAP_IGNORE( utility->iPlaybackUtility->AddTestObserverL( this ) ); +} + +void TestVideoAppUiEngine::cleanup() +{ + MPX_ENTER_EXIT(_L("TestVideoAppUiEngine::cleanup()")); + + delete mTestObject; + mTestObject = 0; + + delete mPlaybackWrapper; + mPlaybackWrapper = 0; + + TestUtilities* utility = reinterpret_cast( UserSvr::DllTls(12345678) ); + + if ( utility ) + { + utility->iPlaybackUtility->RemoveTestObserverL(); + } + +} + +void TestVideoAppUiEngine::cleanupTestCase() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::cleanupTestCase()")); + // all common cleanup here +} + +void TestVideoAppUiEngine::testPlaybackUtility() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testPlaybackUtility()")); + + init(); + + QVERIFY( mTestObject->PlaybackUtility() ); + +} + +void TestVideoAppUiEngine::testOpenFile() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testOpenFile()")); + + // Test for local file + init(); + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitFileName; + TRAPD( openFileErr, mTestObject->OpenFileL( KTestLocalFilename ) ); + QVERIFY( ! openFileErr ); + QVERIFY( mTestResult ); + + // Test for streaming link + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitStreamingUrl; + TRAPD( openRamFileErr, mTestObject->OpenFileL( KTestRamFilename ) ); + QVERIFY( ! openRamFileErr ); + QVERIFY( mTestResult ); + + // Test for a url + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitStreamingUrl; + TRAPD( openUrlErr, mTestObject->OpenFileL( KTestRtspUrl ) ); + QVERIFY( ! openUrlErr ); + QVERIFY( mTestResult ); + +} + +void TestVideoAppUiEngine::testOpenMedia() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testOpenMedia()")); + + init(); + + CMPXMedia* media = CMPXMedia::NewL(); + CleanupStack::PushL( media ); + media->SetTextValueL( KMPXMediaGeneralUri, KTestLocalFilename ); + media->SetTObjectValueL( KMPXMediaGeneralId, TMPXItemId( 1, 2 ) ); + + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitPlaylist; + + TRAPD( err, mTestObject->OpenMediaL( *media ) ); + QVERIFY( ! err ); + QVERIFY( mTestResult ); + +} + +void TestVideoAppUiEngine::testDoHandlePlaybackMessage() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testDoHandlePlaybackMessage()")); + + init(); + + QSignalSpy spy( mPlaybackWrapper, SIGNAL(handlePlaybackView(int)) ); + QCOMPARE( spy.count(), 0 ); + + CMPXMessage* msg = CreateMpxMessageLC(TMPXPlaybackMessage::EPlayerChanged, 0, 0); + TRAPD( err, mTestObject->DoHandlePlaybackMessageL( *msg )); + QVERIFY( ! err ); + + QCOMPARE( spy.count(), 1 ); + spy.clear(); + +} + +void TestVideoAppUiEngine::testPrepareCloseMpx() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testPrepareCloseMpx()")); + + init(); + + TRAPD( err, mTestObject->PrepareCloseMpxL() ); + + QVERIFY( ! err ); + +} + +void TestVideoAppUiEngine::testDoHandleCollectionMedia() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testDoHandleCollectionMedia()")); + + init(); + + CMPXMedia* media = CMPXMedia::NewL(); + CleanupStack::PushL( media ); + media->SetTextValueL( KMPXMediaGeneralUri, KTestLocalFilename ); + media->SetTObjectValueL( KMPXMediaGeneralId, TMPXItemId( 1, 2 ) ); + + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitPlaylist; + + TRAPD( err, mTestObject->DoHandelCollectionMediaL( *media ) ); + QVERIFY( ! err ); + QVERIFY( mTestResult ); + +} + +void TestVideoAppUiEngine::testHandlePlaybackMessage() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testHandlePlaybackMessage()")); + + init(); + + QSignalSpy spy( mPlaybackWrapper, SIGNAL(handlePlaybackView(int)) ); + QCOMPARE( spy.count(), 0 ); + + mTestObject->iUpdateSeekInfo = ETrue; + + CMPXMessage* msg = CreateMpxMessageLC(TMPXPlaybackMessage::EPlayerChanged, 0, 0); + mTestObject->HandlePlaybackMessage( msg, KErrNone ); + + QCOMPARE( spy.count(), 1 ); + spy.clear(); + + QVERIFY( ! mTestObject->iUpdateSeekInfo ); +} + +void TestVideoAppUiEngine::testHandleCollectionMessage() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testHandleCollectionMessage()")); + + init(); + + // Test for EMcItemOpened + // + CMPXMessage* msg = CreateMpxMessageLC(4, EMcPathChangedByOpen, EMcItemOpened); // EPathChanged => 4 + mTestObject->HandleCollectionMessage( msg, KErrNone ); + QVERIFY( mTestObject->iCollectionUtility ); + + // Test for EMcContainerOpened + // + mTestObject->iMultilinkPlaylist = ETrue; + + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitPlaylist; + + delete msg; + msg = NULL; + msg = CreateMpxMessageLC( 4, EMcPathChangedByOpen, EMcContainerOpened ); + mTestObject->HandleCollectionMessage( msg, KErrNone ); + + QVERIFY( mTestResult ); + +} + +void TestVideoAppUiEngine::testHandleCollectionMedia() +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::testHandleCollectionMedia()")); + + init(); + + CMPXMedia* media = CMPXMedia::NewL(); + CleanupStack::PushL( media ); + media->SetTextValueL( KMPXMediaGeneralUri, KTestLocalFilename ); + media->SetTObjectValueL( KMPXMediaGeneralId, TMPXItemId( 1, 2 ) ); + + mExpectedEvent = new (ELeave) TCallbackEvent; + mExpectedEvent->iEvent = EPlaybackUtilityInitPlaylist; + + TRAPD( err, mTestObject->HandleCollectionMediaL( *media, KErrNone ) ); + QVERIFY( ! err ); + QVERIFY( mTestResult ); + +} + +void TestVideoAppUiEngine::HandleUtilityEvent( TCallbackEvent* aEvent ) +{ + MPX_DEBUG(_L("TestVideoAppUiEngine::HandleUtilityEvent()")); + + if ( mExpectedEvent->iEvent == aEvent->iEvent ) + { + switch ( aEvent->iEvent ) + { + case EPlaybackUtilityInitFileName: + { + if ( aEvent->iFileName == KTestLocalFilename ) + { + mTestResult = true; + } + break; + } + case EPlaybackUtilityInitStreamingUrl: + { + if ( aEvent->iFileName == KTestRamFilename ) + { + mTestResult = true; + } + break; + } + case EPlaybackUtilityInitPlaylist: + { + mTestResult = true; + break; + } + case EAsxAttributeSeekUpdate: + { + mTestResult = true; + break; + } + + } + + } + + delete aEvent; +} + +// ------------------------------------------------------------------------------------------------- +// CMpxVideoPlayer_AppUiEngineTester::CreateMpxMessageLC +// ------------------------------------------------------------------------------------------------- +// +CMPXMessage* +TestVideoAppUiEngine::CreateMpxMessageLC( int aEvent, int aType, int aData ) +{ + MPX_ENTER_EXIT(_L("TestVideoAppUiEngine::CreateMpxMessageLC()")); + + CMPXMessage* pbMessage = CMPXMessage::NewL(); + CleanupStack::PushL( pbMessage ); + + pbMessage->SetTObjectValueL( KMPXMessageGeneralId, KMPXMessageGeneral ); + pbMessage->SetTObjectValueL( KMPXMessageGeneralEvent, aEvent ); + pbMessage->SetTObjectValueL( KMPXMessageGeneralType, aType ); + pbMessage->SetTObjectValueL( KMPXMessageGeneralData, aData ); + + return pbMessage; +} + + +// End of file + + +