videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayback/hbvideoplaybackview/tsrc/testvideoplaybackview/src/testvideoplaybackview.cpp Fri Apr 16 14:59:52 2010 +0300
@@ -0,0 +1,500 @@
+/**
+* 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: tester for methods in VideoSortFilterProxyModel
+*
+*/
+
+// Version : %version: %
+
+#include <e32err.h>
+#include <w32std.h>
+
+#include <mmf/common/mmferrors.h>
+#include <caf/caferr.h>
+
+#include <mpxvideoplaybackdefs.h>
+
+#include <hbapplication.h>
+#include <hbinstance.h>
+#include <qgraphicssceneevent>
+#include <QDebug>
+
+#include "mpxvideoplaybackviewfiledetails.h"
+
+#include "testvideoplaybackview.h"
+#include "mpxvideoviewwrapper.h"
+
+#define private public
+#define protected public
+#include "hbvideoplaybackview.h"
+#include "hbvideobaseplaybackview.h"
+#undef protected
+#undef private
+
+
+
+
+// ---------------------------------------------------------------------------
+// main
+// ---------------------------------------------------------------------------
+//
+int main(int argc, char *argv[])
+{
+ HbApplication app(argc, argv);
+ HbMainWindow window;
+
+ TestVideoPlaybackView tv;
+
+ char *pass[3];
+ pass[0] = argv[0];
+ pass[1] = "-o";
+ pass[2] = "c:\\data\\TestVideoPlaybackView.txt";
+
+ int res = QTest::qExec(&tv, 3, pass);
+
+ return res;
+}
+
+
+// ---------------------------------------------------------------------------
+// init
+// ---------------------------------------------------------------------------
+//
+void TestVideoPlaybackView::init()
+{
+ mVideoView = new HbVideoPlaybackView();
+}
+
+// ---------------------------------------------------------------------------
+// cleanup
+// ---------------------------------------------------------------------------
+//
+void TestVideoPlaybackView::cleanup()
+{
+ delete mVideoView;
+ mVideoView = NULL;
+}
+
+// ---------------------------------------------------------------------------
+// setup
+// ---------------------------------------------------------------------------
+//
+void TestVideoPlaybackView::setup()
+{
+ init();
+ mVideoView->handleActivateView();
+}
+
+
+void TestVideoPlaybackView::testHandleActivateView()
+{
+ init();
+ mVideoView->handleActivateView();
+
+ QVERIFY( mVideoView->mVideoMpxWrapper->iMediaRequested == true );
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iFileDetails->mBitRate, 16000 );
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iFileDetails->mTitle, QString("Test Video Title") );
+
+ cleanup();
+}
+
+void TestVideoPlaybackView::testHandlePluginError()
+{
+ //
+ // playback view is closed after displaying these error notes
+ //
+ verifyHandlePluginError( KErrNotSupported );
+ verifyHandlePluginError( KErrUnknown );
+ verifyHandlePluginError( KErrMMDecoder );
+ verifyHandlePluginError( KErrCorrupt );
+ verifyHandlePluginError( KErrTooBig );
+ verifyHandlePluginError( KErrMMInvalidProtocol );
+ verifyHandlePluginError( KErrMMInvalidURL );
+ verifyHandlePluginError( KErrArgument );
+ verifyHandlePluginError( KErrSessionClosed );
+ verifyHandlePluginError( KErrTimedOut );
+ verifyHandlePluginError( KErrNotFound );
+ verifyHandlePluginError( KErrMMNotEnoughBandwidth );
+ verifyHandlePluginError( KErrDisconnected );
+ verifyHandlePluginError( KErrMMProxyServer );
+ verifyHandlePluginError( KErrCouldNotConnect );
+ verifyHandlePluginError( KErrAbort );
+ verifyHandlePluginError( KErrCancel );
+ verifyHandlePluginError( KErrMMDRMNotAuthorized );
+ verifyHandlePluginError( KErrCANoRights );
+ verifyHandlePluginError( KErrCANoPermission );
+ verifyHandlePluginError( KMPXVideoTvOutPlaybackNotAllowedClose );
+
+ //
+ // playback view remains open after displaying these error notes
+ //
+ verifyHandlePluginError( KMPXVideoCallOngoingError, false );
+ verifyHandlePluginError( KMPXVideoTvOutPlaybackNotAllowed, false );
+ verifyHandlePluginError( KMPXVideoPlayOver2GDuringVoiceCallError, false );
+
+ //
+ // default error case, playback view is closed after displaying error note
+ //
+ verifyHandlePluginError( KErrGeneral );
+}
+
+void TestVideoPlaybackView::testShowDialog()
+{
+ //
+ // construct and activate playback view
+ //
+ setup();
+
+ //
+ // ensure that playback view is currently activated
+ //
+ QVERIFY( ! mVideoView->mTimerForClosingView->isActive() );
+
+ //
+ // test showDialog() method
+ //
+ mVideoView->showDialog( "test error msg" );
+
+ //
+ // connect and emit signal for handleClosePopupDialog() slot
+ //
+ connect( this, SIGNAL( commandSignal() ), mVideoView, SLOT( handleClosePopupDialog() ) );
+ emit commandSignal();
+
+ //
+ // verify that playback view is properly closed
+ //
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ //
+ // disconnect signal for handleClosePopupDialog() slot
+ //
+ disconnect( this, SIGNAL( commandSignal() ), mVideoView, SLOT( handleClosePopupDialog() ) );
+
+ //
+ // destruct playback view
+ //
+ cleanup();
+}
+
+
+void TestVideoPlaybackView::testGetWindow()
+{
+ setup();
+
+ QVERIFY( mVideoView->getWindow() != NULL );
+
+ cleanup();
+}
+
+
+void TestVideoPlaybackView::testIssuePlayCommand()
+{
+ setup();
+
+ mVideoView->issuePlayCommand();
+
+ //JAM remove
+ QVERIFY( mVideoView->isEnabled() );
+
+ cleanup();
+}
+
+void TestVideoPlaybackView::testEvent()
+{
+ setup();
+
+ //
+ // ensure default foreground is false
+ //
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iForeground, 0 );
+
+ //
+ // declare foreground/background event
+ //
+ QEvent* windowActivate = new QEvent( QEvent::WindowActivate );
+ QEvent* windowDeactivate = new QEvent( QEvent::WindowDeactivate );
+
+ //
+ // verify the returned value (consumed) of HbVideoBasePlaybackView::event()
+ // for QEvent::WindowActivate is false
+ //
+ QVERIFY( ! mVideoView->event( windowActivate ) );
+
+ //
+ // verify view is in foreground
+ //
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iForeground, 1 );
+
+ //
+ // verify the returned value (consumed) of HbVideoBasePlaybackView::event()
+ // for QEvent::WindowDeactivate is false
+ //
+ QVERIFY( ! mVideoView->event( windowDeactivate ) );
+
+ //
+ // verify view is in background
+ //
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iForeground, 0 );
+
+ //
+ // clean up
+ //
+ delete windowActivate;
+ windowActivate = NULL;
+ delete windowDeactivate;
+ windowDeactivate = NULL;
+ cleanup();
+}
+
+void TestVideoPlaybackView::testClosePlaybackView()
+{
+ setup();
+
+ QVERIFY( ! mVideoView->mTimerForClosingView->isActive() );
+
+ mVideoView->closePlaybackView();
+
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ cleanup();
+}
+
+void TestVideoPlaybackView::testMousePressEvent()
+{
+ setup();
+
+ //
+ // declare QEvent::GraphicsSceneMousePress
+ //
+ QGraphicsSceneMouseEvent* event = new QGraphicsSceneMouseEvent( QEvent::GraphicsSceneMousePress );
+
+ //
+ // set m_accept value to false
+ //
+ event->setAccepted( false );
+
+ //
+ // simulate QEvent::GraphicsSceneMousePress event
+ //
+ mVideoView->mousePressEvent( event );
+
+ //
+ // verify event has been accepted
+ //
+ QVERIFY( event->isAccepted() );
+
+ //
+ // clean up
+ //
+ delete event;
+ event = NULL;
+ cleanup();
+}
+
+void TestVideoPlaybackView::testMouseReleaseEvent()
+{
+ setup();
+
+ //
+ // declare QEvent::GraphicsSceneMouseRelease
+ //
+ QGraphicsSceneMouseEvent* event = new QGraphicsSceneMouseEvent( QEvent::GraphicsSceneMouseRelease );
+
+ //
+ // connect to tappedOnScreen() signal and record its emission
+ //
+ QSignalSpy spy( mVideoView, SIGNAL(tappedOnScreen()) );
+
+ //
+ // ensure signal has not been emitted yet
+ //
+ QCOMPARE(spy.count(), 0);
+
+ //
+ // simulate QEvent::GraphicsSceneMousePress event
+ //
+ mVideoView->mouseReleaseEvent( event );
+
+ //
+ // ensure signal has been emitted and its emission count is incremented
+ //
+ QCOMPARE(spy.count(), 1);
+
+ //
+ // clean up
+ //
+ delete event;
+ event = NULL;
+ spy.clear();
+ cleanup();
+}
+
+
+void TestVideoPlaybackView::testHandlePdlStateChange()
+{
+ setup();
+
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iFileDetails->mClipName, QString("testClip.3gp") );
+
+ mVideoView->handlePdlStateChange( 0 );
+
+ QCOMPARE( mVideoView->mVideoMpxWrapper->iFileDetails->mClipName, QString("testClip.3gp") );
+
+ cleanup();
+}
+
+void TestVideoPlaybackView::testHandleStoppedStateNoPrevView()
+{
+ setup();
+
+ QVERIFY( ! mVideoView->mTimerForClosingView->isActive() );
+ mVideoView->handleStoppedState();
+
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ cleanup();
+}
+
+
+void TestVideoPlaybackView::testHandleStoppedStatePrevView()
+{
+ setup();
+
+ mVideoView->handleStoppedState();
+
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ cleanup();
+
+}
+
+void TestVideoPlaybackView::testHandleBackNoPrevView()
+{
+ setup();
+
+ QVERIFY( ! mVideoView->mTimerForClosingView->isActive() );
+ mVideoView->handleBack();
+
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ cleanup();
+
+}
+
+void TestVideoPlaybackView::testHandleBackPrevView()
+{
+ setup();
+
+ mVideoView->handleBack();
+
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ cleanup();
+}
+
+void TestVideoPlaybackView::testHandleSoftkeyback()
+{
+ setup();
+
+ mVideoView->handleSoftkeyBack();
+
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ cleanup();
+}
+
+
+
+void TestVideoPlaybackView::testDoClosePlayer()
+{
+ // quits app - which can be problematic for the qvptestrunner app
+
+// setup();
+//
+// mVideoView->handleActivateView();
+//
+// mVideoView->doClosePlayer();
+//
+// cleanup();
+
+}
+
+void TestVideoPlaybackView::testHandleDeactivateView()
+{
+ setup();
+
+ mVideoView->handleDeactivateView();
+
+ QVERIFY( mVideoView->mVideoMpxWrapper == NULL );
+
+ cleanup();
+}
+
+void TestVideoPlaybackView::verifyHandlePluginError( TInt error, bool closeView )
+{
+ //
+ // construct and activate playback view
+ //
+ setup();
+
+ //
+ // ensure that playback view is currently open
+ //
+ QVERIFY( ! mVideoView->mTimerForClosingView->isActive() );
+
+ //
+ // test handlePluginError() method
+ //
+ mVideoView->handlePluginError( error );
+
+ //
+ // close playback view after error note has been launched
+ //
+ if ( closeView )
+ {
+ //
+ // connect and emit signal for handleClosePopupDialog() slot
+ //
+ connect( this, SIGNAL( commandSignal() ), mVideoView, SLOT( handleClosePopupDialog() ) );
+ emit commandSignal();
+
+ //
+ // verify that playback view is properly closed
+ //
+ QVERIFY( mVideoView->mTimerForClosingView->isActive() );
+
+ //
+ // disconnect signal for handleClosePopupDialog() slot
+ //
+ disconnect( this, SIGNAL( commandSignal() ), mVideoView, SLOT( handleClosePopupDialog() ) );
+ }
+ else
+ {
+ //
+ // verify that playback view is still open after error note has been launched
+ //
+ QVERIFY( ! mVideoView->mTimerForClosingView->isActive() );
+ }
+
+ //
+ // destruct playback view
+ //
+ cleanup();
+}
+
+// End of file
+
+
+