videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackfiledetailswidget/src/testmpxvideoplaybackfiledetailswidget.cpp
changeset 44 518105d52e45
parent 42 17f382c040b1
child 49 824471cb468a
equal deleted inserted replaced
42:17f382c040b1 44:518105d52e45
     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 TestMPXVideoPlaybackFileDetailsWidget
       
    15 * 
       
    16 */
       
    17 
       
    18 // Version : %version:  4 %
       
    19 
       
    20 
       
    21 #include <QDateTime>
       
    22 #include <QFileInfo>
       
    23 
       
    24 #include <hbmainwindow.h>
       
    25 #include <hbapplication.h>
       
    26 #include <hblistwidget.h>
       
    27 #include <hblistwidgetitem.h>
       
    28 #include <hbextendedlocale.h>
       
    29 
       
    30 #include "mpxvideoplaybackviewfiledetails.h"
       
    31 #include "mpxvideoplaybackcontrolscontroller.h"
       
    32 #include "testmpxvideoplaybackfiledetailswidget.h"
       
    33 
       
    34 #define private public
       
    35 #include "mpxvideoplaybackfiledetailswidget.h"
       
    36 #undef private
       
    37 
       
    38 const QString KFILEPATH = "C:\\sample1.wav";
       
    39 
       
    40 
       
    41 // ---------------------------------------------------------------------------
       
    42 // main
       
    43 // ---------------------------------------------------------------------------
       
    44 //
       
    45 int main(int argc, char *argv[])
       
    46 {
       
    47     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::Main()"));
       
    48 
       
    49     HbApplication app(argc, argv);
       
    50     HbMainWindow window;
       
    51 
       
    52     TestMPXVideoPlaybackFileDetailsWidget tv;
       
    53 
       
    54     char *pass[3];
       
    55     pass[0] = argv[0];
       
    56     pass[1] = "-o";
       
    57     pass[2] = "c:\\data\\testmpxvideoplaybackfiledetailswidget.txt";
       
    58     
       
    59     int res = QTest::qExec(&tv, 3, pass);
       
    60     
       
    61     return res;
       
    62 }
       
    63 
       
    64 
       
    65 // ---------------------------------------------------------------------------
       
    66 // init
       
    67 // ---------------------------------------------------------------------------
       
    68 //
       
    69 void TestMPXVideoPlaybackFileDetailsWidget::init()
       
    70 {
       
    71     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::init()"));
       
    72 
       
    73     mController = new QMPXVideoPlaybackControlsController();   
       
    74     mWidget = new QMPXVideoPlaybackFileDetailsWidget( mController );
       
    75 }
       
    76 
       
    77 // ---------------------------------------------------------------------------
       
    78 // cleanup
       
    79 // ---------------------------------------------------------------------------
       
    80 //
       
    81 void TestMPXVideoPlaybackFileDetailsWidget::cleanup()
       
    82 {
       
    83     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::cleanup()"));
       
    84 
       
    85     if ( mController )
       
    86     {
       
    87         delete mController;
       
    88         mController = NULL;
       
    89     }
       
    90 
       
    91     if ( mWidget )
       
    92     {
       
    93         delete mWidget;
       
    94         mWidget = NULL;
       
    95     }
       
    96 }
       
    97 
       
    98 // ---------------------------------------------------------------------------
       
    99 // testTitle
       
   100 // ---------------------------------------------------------------------------
       
   101 //
       
   102 void TestMPXVideoPlaybackFileDetailsWidget::testTitle()
       
   103 {
       
   104     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testTitle()"));
       
   105 
       
   106     init();
       
   107 
       
   108     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   109 
       
   110     //
       
   111     // For Audio only view
       
   112     //
       
   113     mController->mViewMode = EAudioOnlyView;
       
   114 
       
   115     // If title information is available
       
   116     details->mTitle = "Title for Test clip";
       
   117     mWidget->updateWithFileDetails( details );
       
   118     verifyResult( "Title", true, details->mTitle );
       
   119 
       
   120     mWidget->mListWidget->clear();
       
   121     mWidget->mFileDetailsUpdated = false;
       
   122 
       
   123     // If title informatio is not available
       
   124     details->mTitle = "";
       
   125     details->mClipName = KFILEPATH;
       
   126 
       
   127     mWidget->updateWithFileDetails( details );
       
   128     verifyResult( "Title", true, "sample1" );
       
   129 
       
   130     mWidget->mListWidget->clear();
       
   131     mWidget->mFileDetailsUpdated = false;
       
   132 
       
   133     //
       
   134     // For Details view
       
   135     //
       
   136     mController->mViewMode = EFullScreenView;
       
   137 
       
   138     mWidget->updateWithFileDetails( details );
       
   139 
       
   140     verifyResult( "Title", false );
       
   141 
       
   142     cleanup();
       
   143 }
       
   144 
       
   145 // ---------------------------------------------------------------------------
       
   146 // testDescription
       
   147 // ---------------------------------------------------------------------------
       
   148 //
       
   149 void TestMPXVideoPlaybackFileDetailsWidget::testDescription()
       
   150 {
       
   151     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testDescription()"));
       
   152 
       
   153     init();
       
   154 
       
   155     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   156     details->mDescription = "This is for unit test";
       
   157     
       
   158     mWidget->updateWithFileDetails( details );
       
   159 
       
   160     verifyResult( "Description", true, details->mDescription );
       
   161 
       
   162     cleanup();
       
   163 }
       
   164 
       
   165 // ---------------------------------------------------------------------------
       
   166 // testDate
       
   167 // ---------------------------------------------------------------------------
       
   168 //
       
   169 void TestMPXVideoPlaybackFileDetailsWidget::testDuration()
       
   170 {
       
   171     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testDuration()"));
       
   172 
       
   173     init();
       
   174 
       
   175     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   176 
       
   177     //
       
   178     // If it's local mode, need to show the duration
       
   179     //
       
   180     details->mPlaybackMode = EMPXVideoLocal;
       
   181     details->mDuration = 3700000;
       
   182     
       
   183     mWidget->updateWithFileDetails( details );
       
   184 
       
   185     verifyResult( "Duration", true, "1 hr 1 min 40 sec" );
       
   186 
       
   187     cleanup();
       
   188 }
       
   189 
       
   190 // ---------------------------------------------------------------------------
       
   191 // testDate
       
   192 // ---------------------------------------------------------------------------
       
   193 //
       
   194 void TestMPXVideoPlaybackFileDetailsWidget::testDate()
       
   195 {
       
   196     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testDate()"));
       
   197 
       
   198     init();
       
   199 
       
   200     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   201     
       
   202     QDateTime dateTime;
       
   203     QString created("");
       
   204     QString modified("");
       
   205     details->mClipName = KFILEPATH;
       
   206     QFileInfo fileInfo( details->mClipName ); 
       
   207     
       
   208     //
       
   209     // If it is streaming case, we don't show size information
       
   210     //    
       
   211     details->mPlaybackMode = EMPXVideoStreaming;
       
   212     mWidget->updateWithFileDetails( details );
       
   213 
       
   214     //
       
   215     // verify results for streaming clip
       
   216     //
       
   217     verifyResult( "Date", false );
       
   218     verifyResult( "Modified", false );
       
   219 
       
   220     //
       
   221     // clear the widget list
       
   222     //
       
   223     mWidget->mListWidget->clear();
       
   224     mWidget->mFileDetailsUpdated = false;
       
   225 
       
   226     //
       
   227     // local clip, with no date/time metadata
       
   228     //
       
   229     details->mPlaybackMode = EMPXVideoLocal;
       
   230     mWidget->updateWithFileDetails( details );
       
   231 
       
   232     //
       
   233     // compare and verify 'Date' for non-metadata local clip
       
   234     //
       
   235     dateTime = fileInfo.created();
       
   236     created = dateTimeStringFormat( dateTime );
       
   237     verifyResult( "Date", true, created, true );
       
   238     
       
   239     //
       
   240     // compare and verify 'Modified' for non-metadata local clip
       
   241     //
       
   242     dateTime = fileInfo.lastModified();
       
   243     modified = dateTimeStringFormat( dateTime );
       
   244     verifyResult( "Modified", true, modified, true );
       
   245     
       
   246     //
       
   247     // clear the widget list
       
   248     //
       
   249     mWidget->mListWidget->clear();
       
   250     mWidget->mFileDetailsUpdated = false;
       
   251     
       
   252     //
       
   253     // local clip, with date/time metadata 
       
   254     //
       
   255     details->mPlaybackMode = EMPXVideoLocal;
       
   256     details->mCreationTime = 1242367251;        // POSIX creation time
       
   257     details->mModificationTime = 1270773249;    // POSIX modification time    
       
   258     mWidget->updateWithFileDetails( details );
       
   259 
       
   260     //
       
   261     // compare and verify 'Date' for metadata local clip
       
   262     //
       
   263     dateTime.setTime_t( details->mCreationTime );
       
   264     created = dateTimeStringFormat( dateTime );
       
   265     verifyResult( "Date", true, created, true );
       
   266     
       
   267     //
       
   268     // compare and verify 'Modified' for metadata local clip
       
   269     //
       
   270     dateTime.setTime_t( details->mModificationTime ); 
       
   271     modified = dateTimeStringFormat( dateTime );
       
   272     verifyResult( "Modified", true, modified, true );
       
   273 
       
   274     //
       
   275     // clean up
       
   276     //
       
   277     cleanup();
       
   278 }
       
   279 
       
   280 // ---------------------------------------------------------------------------
       
   281 // testLocation
       
   282 // ---------------------------------------------------------------------------
       
   283 //
       
   284 void TestMPXVideoPlaybackFileDetailsWidget::testLocation()
       
   285 {
       
   286     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testLocation()"));
       
   287 
       
   288     init();
       
   289 
       
   290     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   291     details->mLocation = "C:\\data\\Videos\\";
       
   292     
       
   293     mWidget->updateWithFileDetails( details );
       
   294 
       
   295     verifyResult( "Location", true, details->mLocation );
       
   296 
       
   297     cleanup();
       
   298 }
       
   299 
       
   300 // ---------------------------------------------------------------------------
       
   301 // testAuthor
       
   302 // ---------------------------------------------------------------------------
       
   303 //
       
   304 void TestMPXVideoPlaybackFileDetailsWidget::testAuthor()
       
   305 {
       
   306     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testAuthor()"));
       
   307 
       
   308     init();
       
   309 
       
   310     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   311     details->mArtist = "Fusion";
       
   312     
       
   313     mWidget->updateWithFileDetails( details );
       
   314 
       
   315     verifyResult( "Author", true, details->mArtist );
       
   316 
       
   317     cleanup();
       
   318 }
       
   319 
       
   320 // ---------------------------------------------------------------------------
       
   321 // testCopyright
       
   322 // ---------------------------------------------------------------------------
       
   323 //
       
   324 void TestMPXVideoPlaybackFileDetailsWidget::testCopyright()
       
   325 {
       
   326     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testCopyright()"));
       
   327 
       
   328     init();
       
   329 
       
   330     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   331     details->mCopyright = "Fusion team";
       
   332     
       
   333     mWidget->updateWithFileDetails( details );
       
   334 
       
   335     verifyResult( "Copyright", true, details->mCopyright );
       
   336 
       
   337     cleanup();
       
   338 }
       
   339 
       
   340 // ---------------------------------------------------------------------------
       
   341 // testLanguage
       
   342 // ---------------------------------------------------------------------------
       
   343 //
       
   344 void TestMPXVideoPlaybackFileDetailsWidget::testLanguage()
       
   345 {
       
   346     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testLanguage()"));
       
   347 
       
   348     init();
       
   349 
       
   350     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   351     details->mLanguage = "English";
       
   352     
       
   353     mWidget->updateWithFileDetails( details );
       
   354 
       
   355     verifyResult( "Language", true, details->mLanguage );
       
   356 
       
   357     cleanup();
       
   358 }
       
   359 
       
   360 // ---------------------------------------------------------------------------
       
   361 // testKeywords
       
   362 // ---------------------------------------------------------------------------
       
   363 //
       
   364 void TestMPXVideoPlaybackFileDetailsWidget::testKeywords()
       
   365 {
       
   366     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testKeywords()"));
       
   367 
       
   368     init();
       
   369 
       
   370     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   371     details->mKeywords = "QTest";
       
   372     
       
   373     mWidget->updateWithFileDetails( details );
       
   374 
       
   375     verifyResult( "Keywords", true, details->mKeywords );
       
   376 
       
   377     cleanup();
       
   378 }
       
   379 
       
   380 // ---------------------------------------------------------------------------
       
   381 // testSize
       
   382 // ---------------------------------------------------------------------------
       
   383 //
       
   384 void TestMPXVideoPlaybackFileDetailsWidget::testSize()
       
   385 {
       
   386     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testSize()"));
       
   387 
       
   388     init();
       
   389 
       
   390     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   391 
       
   392     //
       
   393     // If it is streaming case, we don't show size information
       
   394     //
       
   395     details->mPlaybackMode = EMPXVideoStreaming;
       
   396     details->mClipName = KFILEPATH;
       
   397 
       
   398     mWidget->updateWithFileDetails( details );
       
   399 
       
   400     verifyResult( "Size", false );
       
   401 
       
   402     mWidget->mListWidget->clear();
       
   403     mWidget->mFileDetailsUpdated = false;
       
   404 
       
   405     //
       
   406     // If it is local, we show size information
       
   407     //
       
   408     details->mPlaybackMode = EMPXVideoLocal;
       
   409     mWidget->updateWithFileDetails( details );
       
   410     
       
   411     verifyResult( "Size", true, "", false );
       
   412 
       
   413     cleanup();
       
   414 }
       
   415 
       
   416 // ---------------------------------------------------------------------------
       
   417 // testResolution
       
   418 // ---------------------------------------------------------------------------
       
   419 //
       
   420 void TestMPXVideoPlaybackFileDetailsWidget::testResolution()
       
   421 {
       
   422     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testResolution()"));
       
   423 
       
   424     init();
       
   425 
       
   426     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   427 
       
   428     //
       
   429     // If it is audio only clip, don't need to show resolution
       
   430     //
       
   431     details->mVideoEnabled = false;
       
   432     
       
   433     mWidget->updateWithFileDetails( details );
       
   434 
       
   435     verifyResult( "Resolution", false );
       
   436 
       
   437     mWidget->mListWidget->clear();
       
   438     mWidget->mFileDetailsUpdated = false;
       
   439 
       
   440     //
       
   441     // If it has video track
       
   442     //
       
   443     details->mVideoEnabled = true;
       
   444     details->mVideoWidth = 640;
       
   445     details->mVideoHeight = 360;
       
   446 
       
   447     mWidget->updateWithFileDetails( details );
       
   448 
       
   449     QString resolution = QString("%1x%2")
       
   450             .arg( details->mVideoWidth ).arg( details->mVideoHeight );
       
   451 
       
   452     verifyResult( "Resolution", true, resolution );
       
   453 
       
   454     cleanup();
       
   455 }
       
   456 
       
   457 // ---------------------------------------------------------------------------
       
   458 // testFormat
       
   459 // ---------------------------------------------------------------------------
       
   460 //
       
   461 void TestMPXVideoPlaybackFileDetailsWidget::testFormat()
       
   462 {
       
   463     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testFormat()"));
       
   464 
       
   465     init();
       
   466 
       
   467     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   468     details->mMimeType = "Nothing";
       
   469     
       
   470     mWidget->updateWithFileDetails( details );
       
   471 
       
   472     verifyResult( "Format", true, details->mMimeType );
       
   473 
       
   474     cleanup();
       
   475 }
       
   476 
       
   477 // ---------------------------------------------------------------------------
       
   478 // testBitrate
       
   479 // ---------------------------------------------------------------------------
       
   480 //
       
   481 void TestMPXVideoPlaybackFileDetailsWidget::testBitrate()
       
   482 {
       
   483     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testBitrate()"));
       
   484 
       
   485 
       
   486     init();
       
   487 
       
   488     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   489     details->mBitRate = 512;
       
   490     
       
   491     mWidget->updateWithFileDetails( details );
       
   492 
       
   493     verifyResult( "Bitrate", true, "512 kbps" );
       
   494 
       
   495     cleanup();
       
   496 }
       
   497 
       
   498 // ---------------------------------------------------------------------------
       
   499 // testFolder
       
   500 // ---------------------------------------------------------------------------
       
   501 //
       
   502 void TestMPXVideoPlaybackFileDetailsWidget::testFolder()
       
   503 {
       
   504     MPX_ENTER_EXIT(_L("TestMPXVideoPlaybackFileDetailsWidget::testFolder()"));
       
   505 
       
   506     init();
       
   507 
       
   508     QMPXVideoPlaybackViewFileDetails *details = mController->fileDetails();
       
   509 
       
   510     //
       
   511     // If it is streaming case, we don't show folder information
       
   512     //
       
   513     details->mPlaybackMode = EMPXVideoStreaming;
       
   514     details->mClipName = KFILEPATH;
       
   515     
       
   516     mWidget->updateWithFileDetails( details );
       
   517 
       
   518     verifyResult( "Collection", false );
       
   519 
       
   520     mWidget->mListWidget->clear();
       
   521     mWidget->mFileDetailsUpdated = false;
       
   522 
       
   523     //
       
   524     // If it is local case, we show folder information
       
   525     //
       
   526     details->mPlaybackMode = EMPXVideoLocal;
       
   527 
       
   528     mWidget->updateWithFileDetails( details );
       
   529 
       
   530     verifyResult( "Collection", false );
       
   531 
       
   532     cleanup();
       
   533 
       
   534 }
       
   535 
       
   536 // ---------------------------------------------------------------------------
       
   537 // verifyResult
       
   538 // ---------------------------------------------------------------------------
       
   539 //
       
   540 void TestMPXVideoPlaybackFileDetailsWidget::verifyResult( 
       
   541         QString primaryText, bool exist, QString expectedSecondaryText, bool needToBeCompared )
       
   542 {
       
   543     MPX_DEBUG(_L("TestMPXVideoPlaybackFileDetailsWidget::verifyResult(%s, %d, %s, %d)"),
       
   544             primaryText.data(), exist, expectedSecondaryText.data(), needToBeCompared );
       
   545     
       
   546     QString secondaryText = "";
       
   547     int i = 0;
       
   548 
       
   549     for( ; i < mWidget->mListWidget->count() ; i++ )
       
   550     {
       
   551         HbListWidgetItem *item = mWidget->mListWidget->item( i );
       
   552 
       
   553         if ( item->text() == primaryText )
       
   554         {
       
   555             secondaryText = item->secondaryText();
       
   556             break;
       
   557         }
       
   558     }
       
   559 
       
   560     //
       
   561     // If the item needs to be existed in HbListWidget, check the result
       
   562     //
       
   563     if ( exist )
       
   564     {
       
   565         if ( needToBeCompared )
       
   566         {
       
   567             MPX_DEBUG(_L("TestMPXVideoPlaybackFileDetailsWidget::verifyResult() : secondaryText(%s)"),
       
   568                     secondaryText.data() );
       
   569             
       
   570             QVERIFY( expectedSecondaryText == secondaryText );
       
   571         }
       
   572         else
       
   573         {
       
   574             MPX_DEBUG(_L("TestMPXVideoPlaybackFileDetailsWidget::verifyResult() : i(%d) count(%d)"),
       
   575                     i, mWidget->mListWidget->count() );
       
   576             
       
   577             //
       
   578             // Doens't need to compare the secondary text. Just make sure it's in the list
       
   579             //
       
   580             QVERIFY( i < mWidget->mListWidget->count() );
       
   581         }
       
   582 
       
   583     }
       
   584     //
       
   585     // If not, just make sure that item is not in the list
       
   586     //
       
   587     else
       
   588     {
       
   589         QVERIFY( i == mWidget->mListWidget->count() );
       
   590     }
       
   591 }
       
   592 
       
   593 
       
   594 // -------------------------------------------------------------------------------------------------
       
   595 // dateTimeStringFormat
       
   596 // -------------------------------------------------------------------------------------------------
       
   597 //
       
   598 QString TestMPXVideoPlaybackFileDetailsWidget::dateTimeStringFormat( QDateTime dateTime )
       
   599 {
       
   600     HbExtendedLocale locale = HbExtendedLocale::system();
       
   601     QString date = locale.format( dateTime.date(), r_qtn_date_usual );
       
   602     QString time = locale.format( dateTime.time(), r_qtn_time_long_with_zero );
       
   603     QString dateTimeString( date + "  " + time );
       
   604     
       
   605     MPX_DEBUG(_L("TestMPXVideoPlaybackFileDetailsWidget::dateTimeStringFormat() ret '%s'"),
       
   606             dateTimeString.data() );
       
   607     
       
   608     return dateTimeString;    
       
   609 }
       
   610 
       
   611 // End of file