mpviewplugins/mpplaybackviewplugin/tsrc/unittest_mpplaybackview/src/unittest_mpplaybackview.cpp
changeset 48 af3740e3753f
child 55 f3930dda3342
equal deleted inserted replaced
42:79c49924ae23 48:af3740e3753f
       
     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: Unit test for mpplaybackview
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QMetaType>
       
    19 #include <QtGui>
       
    20 #include <hbradiobuttonlist.h>
       
    21 #include <QTranslator>
       
    22 #include <QLocale>
       
    23 
       
    24 #include "stub/inc/mpequalizerwidget.h"
       
    25 #include "mpcommondefs.h"
       
    26 #include "stub/inc/mpviewbase.h"
       
    27 #include "stub/inc/mpsettingsmanager.h"
       
    28 #include "unittest_mpplaybackview.h"
       
    29 
       
    30 // Do this so we can access all member variables.
       
    31 #define private public
       
    32 #include "mpplaybackview.h"
       
    33 #undef private
       
    34 
       
    35 //This so we can test private functions
       
    36 #include "../../src/mpplaybackview.cpp"
       
    37 
       
    38 
       
    39 
       
    40 /*!
       
    41  Make our test case a stand-alone executable that runs all the test functions.
       
    42  */
       
    43 int main(int argc, char *argv[])
       
    44 {
       
    45     QApplication app(argc, argv);
       
    46     TestMpPlaybackView tv;
       
    47 
       
    48     if ( argc > 1 ) {
       
    49         return QTest::qExec( &tv, argc, argv);
       
    50     }
       
    51     else {
       
    52         char *pass[3];
       
    53         pass[0] = argv[0];
       
    54         pass[1] = "-o";
       
    55         pass[2] = "c:\\data\\unittest_mpplaybackview.txt";
       
    56 
       
    57         return QTest::qExec(&tv, 3, pass);
       
    58     }
       
    59 }
       
    60 
       
    61 TestMpPlaybackView::TestMpPlaybackView()
       
    62         : mTest(0)
       
    63 {
       
    64 
       
    65 }
       
    66 
       
    67 TestMpPlaybackView::~TestMpPlaybackView()
       
    68 {
       
    69     delete mTest;
       
    70 }
       
    71 
       
    72 /*!
       
    73  Called before the first testfunction is executed.
       
    74  */
       
    75 void TestMpPlaybackView::initTestCase()
       
    76 {
       
    77 
       
    78 }   
       
    79 
       
    80 /*!
       
    81  Called after the last testfunction was executed.
       
    82  */
       
    83 void TestMpPlaybackView::cleanupTestCase()
       
    84 {
       
    85 QCoreApplication::processEvents();
       
    86 }
       
    87 
       
    88 /*!
       
    89  Called before each testfunction is executed.
       
    90  */
       
    91 void TestMpPlaybackView::init()
       
    92 {
       
    93     mTest = new MpPlaybackView();
       
    94     mTest->initializeView();
       
    95 }
       
    96 
       
    97 /*!
       
    98  Called after every testfunction.
       
    99  */
       
   100 void TestMpPlaybackView::cleanup()
       
   101 {
       
   102     mTest->mMpEngine->retrieveSongDetailsCount = 0;
       
   103     mTest->mMpEngine->stopCount = 0;
       
   104     mTest->mEqualizerWidget->showEqualizerWidgetCount = 0;
       
   105     mTest->mEqualizerWidget->closeEqualizerWidgetCount = 0;
       
   106     mTest->mMpEngine->startSeekBackwardCount = 0;
       
   107     mTest->mMpEngine->startSeekForwardCount = 0;
       
   108     mTest->mMpEngine->stopSeekingCount = 0;
       
   109     mTest->mMpEngine->skipBackwardCount = 0;
       
   110     mTest->mMpEngine->skipForwardCount = 0;
       
   111     delete mTest;
       
   112     mTest = 0;
       
   113 }
       
   114 
       
   115 
       
   116 /*!
       
   117 Test ActivateView
       
   118  */
       
   119 void TestMpPlaybackView::testActivateView()
       
   120 {
       
   121     QCOMPARE( mTest->mActivated, false );
       
   122     mTest->activateView();    
       
   123     QCOMPARE( mTest->mActivated, true );
       
   124     QVERIFY( mTest->navigationAction() == mTest->mSoftKeyBack );
       
   125 
       
   126 }
       
   127 
       
   128 /*!
       
   129  Test DeactivateView
       
   130  */
       
   131 void TestMpPlaybackView::testDeactivateView()
       
   132 {
       
   133     mTest->mActivated = true;
       
   134     mTest->deactivateView();
       
   135     QCOMPARE( mTest->mActivated, false );
       
   136 }
       
   137 
       
   138 /*!
       
   139  Test ShuffleEnabled
       
   140  */
       
   141 void TestMpPlaybackView::testShuffleEnabled()
       
   142 {
       
   143     mTest->mShuffle = false;
       
   144     QCOMPARE(mTest->shuffleEnabled(), false);
       
   145     mTest->mShuffle = true;
       
   146     QCOMPARE(mTest->shuffleEnabled(), true);
       
   147 }
       
   148 
       
   149 /*!
       
   150  Test RepeatEnabled
       
   151   */
       
   152 void TestMpPlaybackView::testRepeatEnabled()
       
   153 {
       
   154     mTest->mRepeat = false;
       
   155     QCOMPARE(mTest->repeatEnabled(), false);
       
   156     mTest->mRepeat = true;
       
   157     QCOMPARE(mTest->repeatEnabled(), true);
       
   158 }
       
   159 
       
   160 /*!
       
   161   Test PlaybackStatus
       
   162   */
       
   163 void TestMpPlaybackView::testPlaybackStatus()
       
   164 {
       
   165     mTest->mPlaybackData->setPlaybackState(MpPlaybackData::NotPlaying);
       
   166     QCOMPARE(mTest->playbackStatus(),QString("NotPlaying"));
       
   167 
       
   168     mTest->mPlaybackData->setPlaybackState(MpPlaybackData::Playing);
       
   169     QCOMPARE(mTest->playbackStatus(),QString("Playing"));
       
   170 
       
   171     mTest->mPlaybackData->setPlaybackState(MpPlaybackData::Paused);
       
   172     QCOMPARE(mTest->playbackStatus(),QString("Paused"));
       
   173 
       
   174     mTest->mPlaybackData->setPlaybackState(MpPlaybackData::Stopped);
       
   175     QCOMPARE(mTest->playbackStatus(),QString("Stopped"));
       
   176 }
       
   177 
       
   178 /*!
       
   179   Test StartSettingsView
       
   180   */
       
   181 void TestMpPlaybackView::testStartSettingsView()
       
   182 {
       
   183     QSignalSpy spy(mTest, SIGNAL(command(int)));
       
   184 
       
   185     mTest->startSettingsView();
       
   186     QCOMPARE(spy.count(), 1);
       
   187     QCOMPARE(spy.at(0).at(0), QVariant(MpCommon::ActivateSettingsView));
       
   188 }
       
   189 
       
   190 /*!
       
   191   Test Back
       
   192   */
       
   193 void TestMpPlaybackView::testBack()
       
   194 {
       
   195     //test Stop() gets called in MpEngine
       
   196     mTest->mMpEngine->stopCount=0;
       
   197     mTest->mViewMode = MpCommon::EmbeddedView;
       
   198     mTest->back();
       
   199     QCOMPARE(mTest->mMpEngine->stopCount,1);
       
   200 
       
   201     mTest->mViewMode = MpCommon::FetchView;
       
   202     mTest->back();
       
   203     QCOMPARE(mTest->mMpEngine->stopCount,2);
       
   204 
       
   205     QSignalSpy spy(mTest, SIGNAL(command(int)));
       
   206     mTest->mMpEngine->stopCount = 0;   
       
   207     mTest->mViewMode = MpCommon::DefaultView;
       
   208 
       
   209     mTest->back();
       
   210     QCOMPARE(spy.count(), 1);
       
   211     QCOMPARE(spy.at(0).at(0), QVariant(MpCommon::ActivateCollectionView));
       
   212     QCOMPARE(mTest->mMpEngine->stopCount,0);
       
   213 }
       
   214 
       
   215 /*!
       
   216   Test Exit
       
   217   */
       
   218 void TestMpPlaybackView::testExit()
       
   219 {
       
   220     QSignalSpy spy(mTest, SIGNAL(command(int)));
       
   221     mTest->exit();
       
   222     QCOMPARE(spy.count(), 1);
       
   223     QCOMPARE(spy.at(0).at(0), QVariant(MpCommon::Exit));
       
   224 }
       
   225 
       
   226 /*!
       
   227   Test PlaybackStateChanged
       
   228   */
       
   229 void TestMpPlaybackView::testPlaybackStateChanged()
       
   230 {
       
   231     //test signal slot connection
       
   232     mTest->mMpEngine->stopCount=0;
       
   233     mTest->mViewMode = MpCommon::FetchView;
       
   234     mTest->mPlaybackData->setPlaybackState(MpPlaybackData::Stopped);
       
   235 
       
   236     mTest->mPlaybackData->triggerStateUpdate(MpPlaybackData::Stopped);
       
   237     QCOMPARE(mTest->mMpEngine->stopCount,1);
       
   238 }
       
   239 
       
   240 /*!
       
   241   Test Flip
       
   242   */
       
   243 void TestMpPlaybackView::testFlip()
       
   244 {        
       
   245     QSignalSpy spy(mTest, SIGNAL(command(int)));
       
   246     mTest->flip();
       
   247     QCOMPARE(spy.count(), 1);
       
   248     QCOMPARE(spy.at(0).at(0), QVariant(MpCommon::ActivateDetailsView));
       
   249     QCOMPARE(mTest->mMpEngine->retrieveSongDetailsCount,1);
       
   250 }
       
   251 
       
   252 /*!
       
   253   Test ToggleShuffle and Shuffle changed
       
   254   */
       
   255 void TestMpPlaybackView::testShuffle()
       
   256 {
       
   257     mTest->mShuffle = false;
       
   258     QCOMPARE(mTest->shuffleEnabled(), false);
       
   259 
       
   260     mTest->toggleShuffle();
       
   261     mTest->shuffleChanged(true); //simulate signal
       
   262     QCOMPARE(mTest->shuffleEnabled(), true);
       
   263     QVERIFY(mTest->mShuffleAction->icon() == *mTest->mShuffleOnIcon);
       
   264 
       
   265     mTest->toggleShuffle();
       
   266     mTest->shuffleChanged(false);
       
   267     QCOMPARE(mTest->shuffleEnabled(), false);
       
   268     QVERIFY(mTest->mShuffleAction->icon() == *mTest->mShuffleOffIcon);
       
   269 }
       
   270 
       
   271 /*!
       
   272   Test ToggleRepeat and RepeatChanged
       
   273   */
       
   274 void TestMpPlaybackView::testRepeat()
       
   275 {
       
   276     mTest->mRepeat = false;
       
   277     QCOMPARE(mTest->repeatEnabled(),false);
       
   278 
       
   279     mTest->toggleRepeat();
       
   280     mTest->repeatChanged(true);
       
   281     QCOMPARE(mTest->repeatEnabled(),true);    
       
   282     QCOMPARE(mTest->mRepeatAction->text(),hbTrId( "txt_mus_opt_repeat_off" ));
       
   283 
       
   284     mTest->toggleRepeat();
       
   285     mTest->repeatChanged(false);
       
   286     QCOMPARE(mTest->repeatEnabled(),false);
       
   287     QCOMPARE(mTest->mRepeatAction->text(),hbTrId( "txt_mus_opt_repeat_on" ));
       
   288 }
       
   289 
       
   290 /*!
       
   291   Test HandleSongSelected
       
   292   */
       
   293 void TestMpPlaybackView::testHandleSongSelected()
       
   294 {
       
   295     mTest->mMpEngine->stopCount=0;
       
   296     mTest->mPlaybackData->setUri("testUri");
       
   297 
       
   298     QSignalSpy spy(mTest, SIGNAL(songSelected(QString)));
       
   299     mTest->handleSongSelected();
       
   300     QCOMPARE(spy.count(), 1);
       
   301     QCOMPARE(spy.at(0).at(0), QVariant("testUri"));
       
   302     QCOMPARE(mTest->mMpEngine->stopCount,1);
       
   303 }
       
   304 
       
   305 /*!
       
   306   Test ShowEqualizerDialog
       
   307   */
       
   308 void TestMpPlaybackView::testShowEqualizerDialog()
       
   309 {
       
   310     mTest->mEqualizerWidget->showEqualizerWidgetCount = 0;
       
   311     mTest->showEqualizerDialog();
       
   312     QCOMPARE(mTest->mEqualizerWidget->showEqualizerWidgetCount,1);
       
   313 }
       
   314 
       
   315 /*!
       
   316     TestCloseEqualizerDialog
       
   317   */
       
   318 void TestMpPlaybackView::testCloseEqualizerDialog()
       
   319 {
       
   320     mTest->mEqualizerWidget->closeEqualizerWidgetCount = 0;
       
   321     mTest->closeEqualizerDialog();
       
   322     QCOMPARE(mTest->mEqualizerWidget->closeEqualizerWidgetCount,1);
       
   323 }
       
   324 
       
   325 
       
   326 /*!
       
   327     Test StartRewindTimer and startSeekRewind
       
   328   */
       
   329 void TestMpPlaybackView::testSeekRewind()
       
   330 {    
       
   331     mTest->mMpEngine->startSeekBackwardCount = 0;
       
   332     mTest->mSeeking = false;
       
   333 
       
   334     mTest->startRewindTimer();
       
   335     QTest::qWait(2000); // wait for timer to fire and call startSeekRewind()
       
   336 
       
   337     QCOMPARE(mTest->mMpEngine->startSeekBackwardCount,1);
       
   338     QCOMPARE(mTest->mSeeking,true);
       
   339 }
       
   340 
       
   341 /*!
       
   342     Test StartForwardTimer and startSeekForward
       
   343   */
       
   344 void TestMpPlaybackView::testSeekForward()
       
   345 {
       
   346     mTest->mMpEngine->startSeekForwardCount = 0;
       
   347     mTest->mSeeking = false;
       
   348 
       
   349     mTest->startForwardTimer();
       
   350     QTest::qWait(2000); // wait for timer to fire and call startSeekForward()
       
   351 
       
   352     QCOMPARE(mTest->mMpEngine->startSeekForwardCount,1);
       
   353     QCOMPARE(mTest->mSeeking,true);
       
   354 }
       
   355 
       
   356 /*!
       
   357     Test EndRewind
       
   358   */
       
   359 void TestMpPlaybackView::testEndRewind()
       
   360 {
       
   361     mTest->mSeeking = true;
       
   362     mTest->endRewind();
       
   363     QCOMPARE(mTest->mMpEngine->stopSeekingCount,1);
       
   364     QCOMPARE(mTest->mSeeking,false);
       
   365     
       
   366     mTest->endRewind();
       
   367     QCOMPARE(mTest->mMpEngine->skipBackwardCount,1);
       
   368     QCOMPARE(mTest->mSeeking,false);
       
   369 }
       
   370 
       
   371 /*!
       
   372     Test EndForward
       
   373   */
       
   374 void TestMpPlaybackView::testEndForward()
       
   375 {
       
   376     mTest->mSeeking = true;
       
   377     mTest->endForward();
       
   378     QCOMPARE(mTest->mMpEngine->stopSeekingCount,1);
       
   379     QCOMPARE(mTest->mSeeking,false);
       
   380     
       
   381     mTest->endForward();
       
   382     QCOMPARE(mTest->mMpEngine->skipForwardCount,1);
       
   383     QCOMPARE(mTest->mSeeking,false);    
       
   384 }
       
   385 
       
   386 // End of file