videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/src/testvideoappuiengine.cpp
changeset 36 8aed59de29f9
child 44 518105d52e45
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/videoplayerengine/tsrc/testvideoappuiengine/src/testvideoappuiengine.cpp	Fri Apr 16 18:13:14 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:  Videoplayerengine test class implementation.
+*
+*/
+
+// Version : %version:  %
+
+// INCLUDES
+#include <QtTest/QtTest>
+#include <qdebug.h>
+
+#include <hbapplication.h>
+#include <f32file.h>
+#include <bautils.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxplaybackmessage.h>
+
+#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/mpxvideoplaybackwrapper.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<TestUtilities*>( UserSvr::DllTls(12345678) ); 
+    utility->iPlaybackUtility->RemoveTestObserverL();
+    
+}
+
+
+void TestVideoAppUiEngine::init()
+{ 
+    MPX_ENTER_EXIT(_L("TestVideoAppUiEngine::init()"));
+    
+    mTestResult = false;    
+        
+    mPlaybackWrapper = new QMpxVideoPlaybackWrapper();
+        
+    TRAPD( createErr, mTestObject = CMpxVideoPlayerAppUiEngine::NewL( mPlaybackWrapper ) );
+    
+    QVERIFY( !createErr );
+    
+    QVERIFY( mTestObject->iCollectionUtility );
+    
+    TRAPD( initErr, mTestObject->LateInitL() );
+    
+    QVERIFY( !initErr );       
+    
+    TestUtilities* utility = reinterpret_cast<TestUtilities*>( 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<TestUtilities*>( 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<TMPXMessageId>( KMPXMessageGeneralId, KMPXMessageGeneral );
+    pbMessage->SetTObjectValueL<TInt>( KMPXMessageGeneralEvent, aEvent );
+    pbMessage->SetTObjectValueL<TInt>( KMPXMessageGeneralType, aType );
+    pbMessage->SetTObjectValueL<TInt>( KMPXMessageGeneralData, aData );
+
+    return pbMessage;
+}
+
+
+// End of file
+
+
+