videoplayback/videoplaybackview/tsrc/testcontrolconfiguration/src/testcontrolconfiguration.cpp
changeset 52 e3cecb93e76a
child 65 a9d57bd8d7b7
equal deleted inserted replaced
47:45e72b57a2fd 52:e3cecb93e76a
       
     1 /**
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   tester for methods in videoplaybackcontrolconfiguration
       
    15 *
       
    16 */
       
    17 
       
    18 // Version : %version: 6 %
       
    19 
       
    20 #include <hbapplication.h>
       
    21 #include <hbinstance.h>
       
    22 #include <qdebug>
       
    23 #include <qgraphicswidget>
       
    24 
       
    25 #include "videoplaybackcontrol.hrh"
       
    26 #include "mpxhelixplaybackplugindefs.h"
       
    27 
       
    28 #include "testcontrolconfiguration.h"
       
    29 
       
    30 #include "videoplaybackviewfiledetails.h"
       
    31 #include "videoplaybackcontrolscontroller.h"
       
    32 #include "videoplaybackdocumentloader.h"
       
    33 
       
    34 
       
    35 #define private public
       
    36 #include "videoplaybackcontrolconfiguration.h"
       
    37 #undef private
       
    38 
       
    39 
       
    40 // ---------------------------------------------------------------------------
       
    41 // main
       
    42 // ---------------------------------------------------------------------------
       
    43 //
       
    44 int main(int argc, char *argv[])
       
    45 {
       
    46     MPX_ENTER_EXIT(_L("TestControlConfiguration::Main()"));
       
    47 
       
    48     HbApplication app(argc, argv);
       
    49     HbMainWindow window;
       
    50 
       
    51     TestControlConfiguration tv;
       
    52 
       
    53     char *pass[3];
       
    54     pass[0] = argv[0];
       
    55     pass[1] = "-o";
       
    56     pass[2] = "c:\\data\\testcontrolconfiguration.txt";
       
    57 
       
    58     int res = QTest::qExec(&tv, 3, pass);
       
    59 
       
    60     return res;
       
    61 }
       
    62 
       
    63 // ---------------------------------------------------------------------------
       
    64 // init
       
    65 // ---------------------------------------------------------------------------
       
    66 //
       
    67 void TestControlConfiguration::init()
       
    68 {
       
    69     MPX_ENTER_EXIT(_L("TestControlConfiguration::init()"));
       
    70 }
       
    71 
       
    72 // ---------------------------------------------------------------------------
       
    73 // init
       
    74 // ---------------------------------------------------------------------------
       
    75 //
       
    76 void TestControlConfiguration::setup()
       
    77 {
       
    78     MPX_ENTER_EXIT(_L("TestControlConfiguration::setup()"));
       
    79 
       
    80     mFileDetails = new VideoPlaybackViewFileDetails();
       
    81 
       
    82     mControlsController = new VideoPlaybackControlsController( mFileDetails );
       
    83 
       
    84     mControlConfig = new VideoPlaybackControlConfiguration( mControlsController );
       
    85 }
       
    86 
       
    87 // ---------------------------------------------------------------------------
       
    88 // cleanup
       
    89 // ---------------------------------------------------------------------------
       
    90 //
       
    91 void TestControlConfiguration::cleanup()
       
    92 {
       
    93     MPX_ENTER_EXIT(_L("TestControlConfiguration::cleanup()"));
       
    94 
       
    95     if ( mFileDetails )
       
    96     {
       
    97         delete mFileDetails;
       
    98         mFileDetails = NULL;
       
    99     }
       
   100 
       
   101     if ( mControlsController )
       
   102     {
       
   103         delete mControlsController;
       
   104         mControlsController = NULL;
       
   105     }
       
   106 
       
   107     if ( mControlConfig )
       
   108     {
       
   109         delete mControlConfig;
       
   110         mControlConfig = NULL;
       
   111     }
       
   112 }
       
   113 
       
   114 // ---------------------------------------------------------------------------
       
   115 // testControlList
       
   116 // ---------------------------------------------------------------------------
       
   117 //
       
   118 void TestControlConfiguration::testControlList()
       
   119 {
       
   120     MPX_ENTER_EXIT(_L("TestControlConfiguration::testControlList()"));
       
   121 
       
   122     setup();
       
   123 
       
   124     //
       
   125     // Streaming case
       
   126     //
       
   127     mFileDetails->mPlaybackMode = EMPXVideoStreaming;
       
   128 
       
   129     mControlConfig->createControlList();
       
   130     QList<TVideoPlaybackControls> controlsList = mControlConfig->controlList();
       
   131 
       
   132     QVERIFY( controlsList.contains( EStatusPane ) );
       
   133     QVERIFY( ! controlsList.contains( ERealLogoBitmap ) );
       
   134     QVERIFY( controlsList.contains( EBufferingAnimation ) );
       
   135 
       
   136     cleanup();
       
   137 
       
   138     //
       
   139     // local + RN
       
   140     //
       
   141     setup();
       
   142 
       
   143     mFileDetails->mPlaybackMode = EMPXVideoLocal;
       
   144     mFileDetails->mRNFormat = true;
       
   145 
       
   146     mControlConfig->createControlList();
       
   147     controlsList = mControlConfig->controlList();
       
   148 
       
   149     QVERIFY( controlsList.contains( EStatusPane ) );
       
   150     QVERIFY( controlsList.contains( ERealLogoBitmap ) );
       
   151     QVERIFY( ! controlsList.contains( EBufferingAnimation ) );
       
   152 
       
   153     cleanup();
       
   154 
       
   155     //
       
   156     // local + non RN
       
   157     //
       
   158     setup();
       
   159 
       
   160     mFileDetails->mPlaybackMode = EMPXVideoLocal;
       
   161     mFileDetails->mRNFormat = false;
       
   162 
       
   163     mControlConfig->createControlList();
       
   164     controlsList = mControlConfig->controlList();
       
   165 
       
   166     QVERIFY( controlsList.contains( EStatusPane ) );
       
   167     QVERIFY( ! controlsList.contains( ERealLogoBitmap ) );
       
   168     QVERIFY( ! controlsList.contains( EBufferingAnimation ) );
       
   169 
       
   170     cleanup();
       
   171 }
       
   172 
       
   173 // ---------------------------------------------------------------------------
       
   174 // testUpdateControlsWithFileDetails
       
   175 // ---------------------------------------------------------------------------
       
   176 //
       
   177 void TestControlConfiguration::testUpdateControlsWithFileDetails()
       
   178 {
       
   179     MPX_ENTER_EXIT(_L("TestControlConfiguration::testUpdateControlsWithFileDetails()"));
       
   180 
       
   181     setup();
       
   182     mControlConfig->createControlList();
       
   183 
       
   184     //
       
   185     // 1. test with mVideoEnabled = false
       
   186     //
       
   187     mControlsController->mFileDetails->mVideoEnabled = false;
       
   188 
       
   189     mControlConfig->updateControlsWithFileDetails();
       
   190 
       
   191     QList<TVideoPlaybackControls> controlsList = mControlConfig->controlList();
       
   192 
       
   193     QVERIFY( controlsList.contains( EControlBar ) );
       
   194 
       
   195     //
       
   196     // 2. test with mVideoEnabled = true
       
   197     //
       
   198     mControlsController->mFileDetails->mVideoEnabled = false;
       
   199 
       
   200     mControlConfig->updateControlsWithFileDetails();
       
   201 
       
   202     QVERIFY( controlsList.contains( EControlBar ) );
       
   203 
       
   204     QGraphicsWidget *widget =
       
   205             mControlsController->layoutLoader()->findWidget( QString( "transparentWindow" ) );
       
   206 
       
   207     QVERIFY( widget->isVisible() );
       
   208 
       
   209     cleanup();
       
   210 }
       
   211 
       
   212 // ---------------------------------------------------------------------------
       
   213 // testUpdateControlList
       
   214 // ---------------------------------------------------------------------------
       
   215 //
       
   216 void TestControlConfiguration::testUpdateControlList()
       
   217 {
       
   218     MPX_ENTER_EXIT(_L("TestControlConfiguration::testUpdateControlList()"));
       
   219 
       
   220     setup();
       
   221     mControlConfig->createControlList();
       
   222 
       
   223     QGraphicsWidget *widget =
       
   224             mControlConfig->mControlsController->layoutLoader()->findWidget( QString( "transparentWindow" ) );
       
   225     //
       
   226     // 1.  Test for Details View
       
   227     //
       
   228     mControlConfig->updateControlList( EControlCmdDetailsViewOpened );
       
   229     QList<TVideoPlaybackControls> controlsList = mControlConfig->controlList();
       
   230 
       
   231     QVERIFY( ! widget->isVisible() );
       
   232     QVERIFY( controlsList.contains( EFileDetailsWidget ) );
       
   233     QVERIFY( controlsList.contains( EDetailsViewPlaybackWindow ) );
       
   234     QVERIFY( ! controlsList.contains( EIndicatorBitmap ) );
       
   235 
       
   236     //
       
   237     // 2-1. Test for Fullscreen View
       
   238     //
       
   239     mControlConfig->mSurfaceAttached = false;
       
   240     mControlConfig->updateControlList( EControlCmdFullScreenViewOpened );
       
   241     controlsList = mControlConfig->controlList();
       
   242 
       
   243     QVERIFY( ! widget->isVisible() );
       
   244     QVERIFY( ! controlsList.contains( EFileDetailsWidget ) );
       
   245     QVERIFY( ! controlsList.contains( EDetailsViewPlaybackWindow ) );
       
   246     QVERIFY( ! controlsList.contains( EIndicatorBitmap ) );
       
   247 
       
   248     //
       
   249     // 2-2. Test for Fullscreen View
       
   250     //
       
   251     mControlConfig->mSurfaceAttached = true;
       
   252     mControlConfig->updateControlList( EControlCmdFullScreenViewOpened );
       
   253     controlsList = mControlConfig->controlList();
       
   254 
       
   255     QVERIFY( widget->isVisible() );
       
   256     QVERIFY( ! controlsList.contains( EFileDetailsWidget ) );
       
   257     QVERIFY( ! controlsList.contains( EDetailsViewPlaybackWindow ) );
       
   258     QVERIFY( ! controlsList.contains( EIndicatorBitmap ) );
       
   259 
       
   260     //
       
   261     // 3. Test for Audio Only View
       
   262     //
       
   263     mControlConfig->updateControlList( EControlCmdAudionOnlyViewOpened );
       
   264     controlsList = mControlConfig->controlList();
       
   265 
       
   266     QVERIFY( ! widget->isVisible() );
       
   267     QVERIFY( ! controlsList.contains( EDetailsViewPlaybackWindow ) );
       
   268     QVERIFY( controlsList.contains( EIndicatorBitmap ) );
       
   269     QVERIFY( controlsList.contains( EFileDetailsWidget ) );
       
   270 
       
   271     //
       
   272     // 4. RN log gets removed
       
   273     //
       
   274     mControlConfig->updateControlList( EControlCmdAudionOnlyViewOpened );
       
   275     controlsList = mControlConfig->controlList();
       
   276 
       
   277     QVERIFY( ! controlsList.contains( ERealLogoBitmap ) );
       
   278 
       
   279     //
       
   280     // 5. Surface attached
       
   281     //
       
   282     mControlConfig->updateControlList( EControlCmdSurfaceAttached );
       
   283     controlsList = mControlConfig->controlList();
       
   284 
       
   285     QVERIFY( widget->isVisible() );
       
   286 
       
   287     //
       
   288     // 6. Surface detached
       
   289     //
       
   290     mControlConfig->updateControlList( EControlCmdSurfaceDetached );
       
   291     controlsList = mControlConfig->controlList();
       
   292 
       
   293     QVERIFY( ! widget->isVisible() );
       
   294     cleanup();
       
   295 }
       
   296 
       
   297 // End of file