app/tsrc/unittest_mpglobalpopuphandler/src/unittest_mpglobalpopuphandler.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:46:20 +0300
changeset 48 af3740e3753f
permissions -rw-r--r--
Revision: 201031 Kit: 201033

/*
* 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: Unit test for MpMediaWallDocumentLoader
*/

#include "unittest_mpglobalpopuphandler.h"
#include "mpsongscanner.h"
#include "mpengine.h"
#include <hbpopup.h>
#include <hbprogressdialog.h>
#include <hbnotificationdialog.h>
#include <hblabel.h>
#include <QTranslator>
#include <QLocale>

/*
* Following methods were skipped on purpose since theres nothing valuable to test
* CloseUsbBlockingNote()
* HanldeMTPInfoDialogFinished
*/

// Do this so we can access all member variables.
#define private public
#include "mpglobalpopuphandler.h"
#undef private

#include "../../../src/mpglobalpopuphandler.cpp"

/*!
 Make our test case a stand-alone executable that runs all the test functions.
 */
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    TestMpGlobalPopupHandler tv;

    if ( argc > 1 ) {
        return QTest::qExec( &tv, argc, argv);
    }
    else {
        char *pass[3];
        pass[0] = argv[0];
        pass[1] = "-o";
        pass[2] = "c:\\data\\unittest_mpglobalpopuphandler.txt";

        return QTest::qExec(&tv, 3, pass);
    }
}

TestMpGlobalPopupHandler::TestMpGlobalPopupHandler()
    : mTest(0),      
      mMpTranslator(0)
{
}

TestMpGlobalPopupHandler::~TestMpGlobalPopupHandler()
{
    delete mTest;
    delete mMpTranslator;
}

/*!
 Called before the first testfunction is executed.
 */
void TestMpGlobalPopupHandler::initTestCase()
{
    QString lang = QLocale::system().name();
    QString path = QString("z:/resource/qt/translations/");
    bool translatorLoaded = false;

    mMpTranslator = new QTranslator(this);
    translatorLoaded = mMpTranslator->load(path + "musicplayer_" + lang);
    if ( translatorLoaded ) {
        qApp->installTranslator(mMpTranslator);
    }
}

/*!
 Called after the last testfunction was executed.
 */
void TestMpGlobalPopupHandler::cleanupTestCase()
{
}

/*!
 Called before each testfunction is executed.
 */
void TestMpGlobalPopupHandler::init()
{
    mTest = new MpGlobalPopupHandler( new QObject() );
}

/*!
 Called after every testfunction.
 */
void TestMpGlobalPopupHandler::cleanup()
{
    delete mTest;
    mTest = 0;
}

/*!
 test handleLibraryAboutToUpdate
 */
void TestMpGlobalPopupHandler::testHandleLibraryAboutToUpdate() 
{
    mTest->mMpSongScanner = 0;
    mTest->mMpEngine->mSongScanner = new MpSongScanner();
    
    mTest->handleLibraryAboutToUpdate();
    QCOMPARE( mTest->mMpSongScanner,  mTest->mMpEngine->mSongScanner );    
}

/*!
  test scanCountChanged
 */
void TestMpGlobalPopupHandler::testScanCountChanged() 
{
    HbProgressDialog* dialog = new HbProgressDialog( HbProgressDialog::WaitDialog );
    dialog->setModal( true );
    dialog->setText( QString("") );
    dialog->setObjectName( KScanProgressDialog );
        
    mTest->mOutstandingPopup = dialog;
    
    mTest->scanCountChanged( 2 );
    HbProgressDialog *dialogNew = qobject_cast<HbProgressDialog *>( mTest->mOutstandingPopup );
    QCOMPARE( dialogNew->text(),  hbTrId( "txt_mus_info_ln_songs_found" , 2 ));  

}

/*!
  test handleScanFinished
 */
void TestMpGlobalPopupHandler::testHandleScanFinished() 
{
    HbProgressDialog* dialog = new HbProgressDialog( HbProgressDialog::WaitDialog );
    dialog->setModal( true );
    HbLabel *title = new HbLabel( hbTrId( "testScanCountChanged" ) );
    title->setFontSpec(HbFontSpec(HbFontSpec::Primary));

    dialog->setHeadingWidget( title );
    dialog->setText( QString("") );
    dialog->setObjectName( KScanProgressDialog );
        
    mTest->mOutstandingPopup = dialog;    
    mTest->handleScanFinished( MpSongScanner::ScanErrorNone, 0 );
    QVERIFY( mTest->mOutstandingPopup->objectName() == KScanFinished );    
    QVERIFY( qobject_cast<HbNotificationDialog *>( mTest->mOutstandingPopup )->title() == hbTrId( "txt_mus_dpophead_refresh_complete" ) );
    
    mTest->mOutstandingPopup = dialog;
    mTest->handleScanFinished( MpSongScanner::ScanGeneralError, 0 );
    QVERIFY( mTest->mOutstandingPopup->objectName() == KScanFinished );
    QVERIFY( qobject_cast<HbNotificationDialog *>( mTest->mOutstandingPopup )->title() == hbTrId( "txt_mus_dpophead_refresh_cancelled" ) );
    
    mTest->mOutstandingPopup = dialog;
    mTest->handleScanFinished( MpSongScanner::ScanErrorDiskFull, 0 );
    QVERIFY( mTest->mOutstandingPopup->objectName() == KDiskFullDialog );

}

/*!
  test launchUnableToCotinueDueUsb
 */
void TestMpGlobalPopupHandler::testLaunchUnableToCotinueDueUsb()
{
    mTest->launchUnableToCotinueDueUsb();
    QVERIFY( mTest->mOutstandingPopup->objectName() == KUnableToContinueDueUSB );
}

/*!
  test launchUsbBlockingNote
 */
void TestMpGlobalPopupHandler::testLaunchUsbBlockingNote()
{
    mTest->launchUsbBlockingNote();
    QVERIFY( mTest->mOutstandingPopup->objectName() == KUsbBlockingNote );
}


/*!
  test launchMTPInfoDialog
 */
void TestMpGlobalPopupHandler::testLaunchMTPInfoDialog()
{
    mTest->launchMTPInfoDialog();
    QVERIFY( mTest->mOutstandingPopup->objectName() == KMTPInfoDialog );
}


/*!
  test outstandingPopupClosing
 */
void TestMpGlobalPopupHandler::testOutstandingPopupClosing()
{
    HbPopup *dialog = new HbPopup();
    connect( dialog, SIGNAL( aboutToClose() ), mTest, SLOT( outstandingPopupClosing() ) );
    mTest->mOutstandingPopup = dialog; 
    
    dialog->close();
    delete dialog;
    QVERIFY( mTest->mOutstandingPopup == 0 );       
}

/*!
  test launchScanFinishedDialog
 */
void TestMpGlobalPopupHandler::testLaunchScanFinishedDialog()
{
    mTest->launchScanFinishedDialog( true, 1 );
    QVERIFY( mTest->mOutstandingPopup->objectName() == KScanFinished );
    QVERIFY( qobject_cast<HbNotificationDialog *>( mTest->mOutstandingPopup )->title() == hbTrId( "txt_mus_dpophead_refresh_complete" ) );

    mTest->launchScanFinishedDialog( false, 1 );
    QVERIFY( mTest->mOutstandingPopup->objectName() == KScanFinished );
    QVERIFY( qobject_cast<HbNotificationDialog *>( mTest->mOutstandingPopup )->title() == hbTrId( "txt_mus_dpophead_refresh_cancelled" ) );
}


/*!
  test launchDiskFullDialog
 */

void TestMpGlobalPopupHandler::testLaunchDiskFullDialog() 
{
    mTest->launchDiskFullDialog();
    QVERIFY( mTest->mOutstandingPopup->objectName() == KDiskFullDialog );
}

/*!
  test setOutstandingPopup
 */
void TestMpGlobalPopupHandler::testSetOutstandingPopup() 
{
    HbPopup *dialog = new HbPopup();
    mTest->mOutstandingPopup = 0;    
    mTest->setOutstandingPopup( dialog );    
    QVERIFY( mTest->mOutstandingPopup == dialog );
}


// End of file