diff -r dec420019252 -r 4f111d64a341 videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp Thu Apr 01 22:38:49 2010 +0300 @@ -0,0 +1,257 @@ +/** +* 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 Video Display Handler +* +*/ + +#include +#include +#include + +#include +#include +#include + +#include + +#include "testvideodisplayhandler.h" +#include "../stub/inc/hbvideobaseplaybackview.h" +#include "../stub/inc/mpxvideoplaybackviewfiledetails.h" +#include "mpxvideoviewwrapper.h" + +#define private public +#include "mpxvideoplaybackdisplayhandler.h" +#undef private + + +// --------------------------------------------------------------------------- +// main +// --------------------------------------------------------------------------- +// +int main(int argc, char *argv[]) +{ + HbApplication app(argc, argv); + HbMainWindow window; + + TestVideoDisplayHandler tv; + + char *pass[3]; + pass[0] = argv[0]; + pass[1] = "-o"; + pass[2] = "c:\\data\\TestVideoDisplayHandler.txt"; + + int res = QTest::qExec(&tv, 3, pass); + + return res; +} + + +// --------------------------------------------------------------------------- +// init +// --------------------------------------------------------------------------- +// +void TestVideoDisplayHandler::init() +{ + mPlaybackUtility = MMPXPlaybackUtility::UtilityL( KPbModeDefault ); + + mBaseVideoView = new HbVideoBasePlaybackView(); + mVideoViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView ); + + mDispHdlr = CMPXVideoPlaybackDisplayHandler::NewL(mPlaybackUtility, mVideoViewWrapper); +} + +// --------------------------------------------------------------------------- +// cleanup +// --------------------------------------------------------------------------- +// +void TestVideoDisplayHandler::cleanup() +{ + if ( mPlaybackUtility ) + { + mPlaybackUtility->Close(); + mPlaybackUtility = NULL; + } + + delete mDispHdlr; + mDispHdlr = NULL; + + delete mVideoViewWrapper; + mVideoViewWrapper = NULL; + + delete mBaseVideoView; + mBaseVideoView = NULL; +} + +// --------------------------------------------------------------------------- +// setup +// --------------------------------------------------------------------------- +// +void TestVideoDisplayHandler::setup() +{ + init(); + + RWindow *window = mBaseVideoView->getWindow(); + + TRect displayRect = TRect( window->Position().iX, + window->Position().iY, + window->Position().iX + window->Size().iWidth, + window->Position().iY + window->Size().iHeight ); + + mDispHdlr->CreateDisplayWindowL( CCoeEnv::Static()->WsSession(), + *(CCoeEnv::Static()->ScreenDevice()), + *window, + displayRect); + + QCOMPARE( mDispHdlr->iWindowRect, displayRect); + +} + + +void TestVideoDisplayHandler::testCreateDisplayWindowL() +{ + setup(); + + cleanup(); +} + +void TestVideoDisplayHandler::testRemoveDisplayWindow() +{ + setup(); + + mDispHdlr->RemoveDisplayWindow(); + + QVERIFY( mDispHdlr->iVideoContainer == NULL ); + + cleanup(); +} + +void TestVideoDisplayHandler::testHandleSurfaceCreatedMessageL() +{ + setup(); + + CMPXMessage* message = NULL; + TRAP_IGNORE + ( + message = CMPXMessage::NewL(); + message->SetTObjectValueL + ( KMPXMediaVideoDisplayCommand, EPbMsgVideoSurfaceCreated ); + ); + + mDispHdlr->HandleVideoDisplayMessageL( message ); + + QVERIFY( ! mDispHdlr->iSurfaceId.IsNull() ); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); +} + +void TestVideoDisplayHandler::testHandleSurfaceChangedMessageL() +{ + setup(); + + CMPXMessage* message = NULL; + TRAP_IGNORE + ( + message = CMPXMessage::NewL(); + message->SetTObjectValueL + ( KMPXMediaVideoDisplayCommand, EPbMsgVideoSurfaceChanged ); + ); + + mDispHdlr->HandleVideoDisplayMessageL( message ); + + QVERIFY( ! mDispHdlr->iSurfaceId.IsNull() ); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); +} + +void TestVideoDisplayHandler::testHandleVideoRemovedMessageL() +{ + setup(); + + CMPXMessage* message = NULL; + TRAP_IGNORE + ( + message = CMPXMessage::NewL(); + message->SetTObjectValueL + ( KMPXMediaVideoDisplayCommand, EPbMsgVideoSurfaceRemoved ); + ); + + mDispHdlr->HandleVideoDisplayMessageL( message ); + + QVERIFY( mDispHdlr->iSurfaceId.IsNull() ); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); +} + +void TestVideoDisplayHandler::testSetAspectRatioL() +{ + setup(); + + int aspectRatio = mDispHdlr->SetAspectRatioL( EPbCmdNaturalAspectRatio ); + + QVERIFY( aspectRatio == EMMFNatural ); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); +} + +void TestVideoDisplayHandler::testSetDefaultAspectRatioL() +{ + setup(); + + mFileDetails = new QMPXVideoPlaybackViewFileDetails(); + mFileDetails->mVideoHeight = 280; + mFileDetails->mVideoWidth = 600; + + RWindow *window = mBaseVideoView->getWindow(); + + TRect displayRect = TRect( window->Position().iX, + window->Position().iY, + window->Position().iX + window->Size().iWidth, + window->Position().iY + window->Size().iHeight ); + + TReal displayAspectRatio = (TReal32)displayRect.Width() / (TReal32)displayRect.Height(); + + int aspectRatio = mDispHdlr->SetDefaultAspectRatioL( mFileDetails, displayAspectRatio ); + + QVERIFY( aspectRatio == EMMFZoom ); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); +} + +void TestVideoDisplayHandler::testUpdateVideoRectL() +{ + setup(); + + RWindow *window = mBaseVideoView->getWindow(); + + TRect displayRect = TRect( 0, 0, 200, 300 ); + + mDispHdlr->UpdateVideoRectL( displayRect, false ); + + QCOMPARE( mDispHdlr->iWindowRect, displayRect); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); +} + + + +// End of file + + +