tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp
author hgs
Wed, 06 Oct 2010 14:49:39 +0530
changeset 71 27f2d7aec52a
parent 40 112f0ac2d1f0
permissions -rw-r--r--
201039_01

/*
* 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: 
*
*/

#include "unittest_medialistwrapper.h"
#include "glxmlwrapper_p.h"
#include "glxmlwrapper.h"
#include "glxmedialist.h"
#include <glxcollectionpluginall.hrh>
#include <glxmodelparm.h>
#include <hbicon.h>
#include <qdatetime.h>
#include <QString>

// -----------------------------------------------------------------------------
// initTestCase
// -----------------------------------------------------------------------------
//
void TestGlxMLWrapper::initTestCase()
{
    mTestObject = 0;
    mTestObject = new GlxMLWrapper( KGlxCollectionPluginAllImplementationUid, 0, EGlxFilterImage );
    mListTestObject = new GlxMLWrapper( KGlxAlbumsMediaId, 0, EGlxFilterImage );
    QVERIFY( mTestObject );
    QVERIFY( mListTestObject );
}

// -----------------------------------------------------------------------------
// init
// -----------------------------------------------------------------------------
//
void TestGlxMLWrapper::init()
{

}

// -----------------------------------------------------------------------------
// cleanup
// -----------------------------------------------------------------------------
//
void TestGlxMLWrapper::cleanup()
{

}

// -----------------------------------------------------------------------------
// cleanupTestCase
// -----------------------------------------------------------------------------
//
void TestGlxMLWrapper::cleanupTestCase()
{
    if ( mTestObject ) {
        delete mTestObject;
        mTestObject = 0;
    }
    if ( mListTestObject ) {
        delete mListTestObject;
        mListTestObject = 0;
    }
}

void TestGlxMLWrapper::testRetrieveItemDateIsNull()
{
    mTestObject->setContextMode( GlxContextPtGrid );
    QTest::qWait( 3000 );    
    int count = mTestObject->getItemCount();
    QDate date = mTestObject->retrieveItemDate( count - 1 );
    qDebug ( "TestGlxMLWrapper::testRetrieveItemDateIsNull =%d", date.isNull() );
    QVERIFY( date.isNull() == 1 );
}

void TestGlxMLWrapper::testRetrieveItemIconIsNull()
{
    int itemIndex = mTestObject->getItemCount() - 1;
    // grid icon should be NULL
    HbIcon* icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextGrid );
    QVERIFY(icon == NULL);

    // fullscreen icon should be NULL
    icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextLsFs );
    QVERIFY(icon == NULL);
}

void TestGlxMLWrapper::testSetContextModeGrid()
{
    // After adding grid context should get grid icon 
    mTestObject->setContextMode( GlxContextPtGrid );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE );
    
    mTestObject->setContextMode( GlxContextLsFs );
    mTestObject->setContextMode( GlxContextLsGrid );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE );    
}

void TestGlxMLWrapper::testSetContextModeFullScreen()
{
    mTestObject->setContextMode( GlxContextPtFs );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE ); 
    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsThumbnailContext );
    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusFsThumbnailContext );
    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusGridThumbnailContext );
    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsContextActivated == TRUE ); 
    mTestObject->removeContextMode( GlxContextPtFs );
}

void TestGlxMLWrapper::testSetContextModeList()
{
    mListTestObject->setContextMode( GlxContextSelectionList );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iSelectionListContextActivated == TRUE ); 
    mListTestObject->removeContextMode( GlxContextSelectionList );
    
    mListTestObject->setContextMode( GlxContextLsList );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iPtListContextActivated == TRUE ); 
    mListTestObject->removeContextMode( GlxContextLsList );
}

void TestGlxMLWrapper::testSetContextModeFavorite()
{
    mTestObject->setContextMode( GlxContextFavorite );
    QVERIFY( mTestObject->mMLWrapperPrivate->iFavouriteContext );
    mTestObject->removeContextMode( GlxContextFavorite );
}

void TestGlxMLWrapper::testSetContextModeComment()
{
    mTestObject->setContextMode( GlxContextComment );
    QVERIFY( mTestObject->mMLWrapperPrivate->iDescContext );
    QVERIFY( mTestObject->mMLWrapperPrivate->iDetailsContextActivated == TRUE ); 
    mTestObject->removeContextMode( GlxContextComment );
}

void TestGlxMLWrapper::testRemoveContextModeGrid()
{
    // After adding grid context should get grid icon 
    mTestObject->setContextMode( GlxContextPtGrid );
    
    mTestObject->removeContextMode( GlxContextPtGrid );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == NULL );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == FALSE );
    
    mTestObject->setContextMode( GlxContextLsGrid );
    mTestObject->removeContextMode( GlxContextLsGrid );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == NULL );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == FALSE );
}

void TestGlxMLWrapper::testRemoveContextModeFullScreen()
{
    mTestObject->setContextMode( GlxContextPtFs );
    mTestObject->removeContextMode( GlxContextPtFs );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE ); 
    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsThumbnailContext == NULL );
    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusFsThumbnailContext == NULL );
    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusGridThumbnailContext == NULL );
    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsContextActivated == FALSE ); 
}

void TestGlxMLWrapper::testRemoveContextModeList()
{
    mListTestObject->setContextMode( GlxContextSelectionList );
    mListTestObject->removeContextMode( GlxContextSelectionList );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iSelectionListContextActivated == FALSE ); 
    
    mListTestObject->setContextMode( GlxContextLsList );
    mListTestObject->removeContextMode( GlxContextLsList );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
    QVERIFY( mListTestObject->mMLWrapperPrivate->iSelectionListContextActivated == FALSE ); 
    mListTestObject->setContextMode( GlxContextLsList );
}

void TestGlxMLWrapper::testRemoveContextModeFavorite()
{
    mTestObject->setContextMode( GlxContextFavorite );
    mTestObject->removeContextMode( GlxContextFavorite );
    QVERIFY( mTestObject->mMLWrapperPrivate->iFavouriteContext == NULL );
}

void TestGlxMLWrapper::testRemoveContextComment()
{
    mTestObject->setContextMode( GlxContextComment );
    mTestObject->removeContextMode( GlxContextComment );
    QVERIFY( mTestObject->mMLWrapperPrivate->iDescContext == NULL );
    QVERIFY( mTestObject->mMLWrapperPrivate->iDetailsContextActivated == FALSE );    
}

// -----------------------------------------------------------------------------
// testGetItemCount
// -----------------------------------------------------------------------------
//
void TestGlxMLWrapper::testGetItemCount()
{
    mTestObject->setContextMode( GlxContextPtGrid );
    QTest::qWait( 5000 );
    int count = mTestObject->getItemCount();
    qDebug( "TestGlxMLWrapper::testGetItemCount() count %d", count );
    QVERIFY( count >= 0 );
}

void TestGlxMLWrapper::testGetFocusIndex()
{
    int focusIndex = mTestObject->getFocusIndex();
    //QVERIFY(focusIndex == -1);
    mTestObject->setFocusIndex( mTestObject->getItemCount() - 1 );
    focusIndex = mTestObject->getFocusIndex();
    QVERIFY( focusIndex == mTestObject->getItemCount()-1 );
}

void TestGlxMLWrapper::testSetFocusIndex()
{
    mTestObject->setFocusIndex( mTestObject->getItemCount() - 1 );
    int focusIndex = mTestObject->getFocusIndex();
    QVERIFY( focusIndex == mTestObject->getItemCount()-1 );
}

void TestGlxMLWrapper::testSetSelectedIndex()
{
    mTestObject->setSelectedIndex( 0 );
    QCOMPARE( mTestObject->mMLWrapperPrivate->iMediaList->IsSelected( 0 ), 1 );
}

void TestGlxMLWrapper::testRetrieveListTitle()
{
    QTest::qWait( 5000 );
    QString title = mListTestObject->retrieveListTitle( 0 );
    QVERIFY( title.isEmpty() == TRUE );
}

void TestGlxMLWrapper::testRetrieveListSubTitle()
{
    QString title = mListTestObject->retrieveListSubTitle( 0 );
    QVERIFY( title.isEmpty() == TRUE );    
}

void TestGlxMLWrapper::testRetrieveListDesc()
{
    QString desc = mTestObject->retrieveListDesc( 0 );
    QVERIFY( desc.isEmpty() == TRUE );       
}

void TestGlxMLWrapper::testGetVisibleWindowIndex()
{
    int visibleIndex = mTestObject->getVisibleWindowIndex();
    QVERIFY(visibleIndex == 0);

    int itemIndex = mTestObject->getItemCount() - 1;
    mTestObject->setVisibleWindowIndex( itemIndex );
    visibleIndex = mTestObject->getVisibleWindowIndex();
    QVERIFY(visibleIndex == itemIndex);
}

void TestGlxMLWrapper::testSetVisibleWindowIndex()
{
    int itemIndex = mTestObject->getItemCount() - 1;
    mTestObject->setVisibleWindowIndex( itemIndex );
    int visibleIndex = mTestObject->getVisibleWindowIndex();
    QVERIFY(visibleIndex == itemIndex);
}

void TestGlxMLWrapper::testRetrieveItemUri()
{
    qDebug( "TestGlxMLWrapper::testRetrieveItemUri enter" );

    QString uri = mTestObject->retrieveItemUri( 0 );
    qDebug( "TestGlxMLWrapper::testRetrieveItemUri =%d", uri.isEmpty() );
    QVERIFY( uri.isEmpty() == 0 || uri.isEmpty() == 1 );
}

void TestGlxMLWrapper::testRetrieveItemUriName()
{
    qDebug( "TestGlxMLWrapper::testRetrieveItemUriName enter" );
 
    QString uri = mTestObject->retrieveItemUri( 0 );
    QString imageName = uri.section( '\\', -1 );
    qDebug( "TestGlxMLWrapper::testRetrieveItemUriName =%d", uri.isEmpty() );
    QVERIFY( imageName.isEmpty() == 0 || imageName.isEmpty() == 1 );
}

void TestGlxMLWrapper::testRetrieveItemSize()
{
    int itemSize = mTestObject->retrieveItemSize( 0 );
    QVERIFY( itemSize >= 0 );
}

void TestGlxMLWrapper::testRetrieveItemIcon()
{
    int itemIndex = mTestObject->getItemCount() - 1;

    // Should get fullscreen icon 
    mTestObject->setContextMode( GlxContextLsFs );
    QTest::qWait( 4000 );
    HbIcon* icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextLsFs );
    QVERIFY( icon != NULL || icon == NULL );

    // Should get grid icon
    mTestObject->setContextMode( GlxContextPtGrid );
    QTest::qWait( 2000 );
    icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextGrid );
    QVERIFY(icon != NULL || icon == NULL );
}

void TestGlxMLWrapper::testRetrieveItemDateIsNotNull()
{
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsNotNull enter" );
    int count = mTestObject->getItemCount();

    QDate date = mTestObject->retrieveItemDate( count - 1 );
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsNotNull =%d", date.isNull() );
    QVERIFY( date.isNull() == 0 || date.isNull() == 1 );
}

void TestGlxMLWrapper::testRetrieveItemDateIsValid()
{
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsValid enter" );
    int index = mTestObject->getItemCount() -1;
    QDate date = mTestObject->retrieveItemDate( index );
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsValid IsNull=%d", date.isNull() );
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsValid IsValid=%d", date.isValid() );

    QVERIFY( date.isNull() == 0 || date.isNull() == 1 );
    QVERIFY( date.isValid() == 1 || date.isValid() == 0 );
}

void TestGlxMLWrapper::testRetrieveItemDateValidate()
{
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateValidate enter" );
    int index = mTestObject->getItemCount() -1;
    QDate date = mTestObject->retrieveItemDate( index );
    qDebug( "TestGlxMLWrapper::testRetrieveItemDateValidate =%d", date.isValid( date.year(), date.month(), date.day() ) );
    QVERIFY( date.isValid( date.year(), date.month(), date.day() ) == 1 || date.isValid( date.year(), date.month(), date.day() ) == 0 );
}

void TestGlxMLWrapper::testRetrieveItemTime()
{
    int index = mTestObject->getItemCount() -1;
    QTime time = mTestObject->retrieveItemTime( index );
    QVERIFY( time.isNull() == FALSE  || time.isNull() == TRUE );
    QVERIFY( time.isValid() == TRUE || time.isValid() == FALSE );
}

void TestGlxMLWrapper::testRetrieveViewTitle()
{
    QString title = mTestObject->retrieveViewTitle();
    QVERIFY( title.isEmpty() == TRUE ); 
}

void TestGlxMLWrapper::testIsDrmProtected()
{
    int index = mTestObject->getItemCount() -1;
    bool isDrm = mTestObject->IsDrmProtected( index );
    QVERIFY( isDrm == FALSE );       
}

void TestGlxMLWrapper::testIsDrmValid()
{
    int index = mTestObject->getItemCount() -1;
    bool isDrm = mTestObject->IsDrmValid( index );
    QVERIFY( isDrm == FALSE );       
}

void TestGlxMLWrapper::testSetDrmVaild()
{
    int index = mTestObject->getItemCount() -1;
    mTestObject->setDrmValid( index, FALSE );
    bool isDrm = mTestObject->IsDrmValid( index );
    QVERIFY( isDrm == FALSE );       

    mTestObject->setDrmValid( index, TRUE );
    isDrm = mTestObject->IsDrmValid( index );
    QVERIFY( isDrm == TRUE );           
}

void TestGlxMLWrapper::testRetrieveBitmap()
{
    int index = mTestObject->getItemCount() -1;
    QVariant var = mTestObject->RetrieveBitmap( index );
    QVERIFY( var.isNull() == FALSE );
    QVERIFY( var.isValid() == TRUE );
}

void TestGlxMLWrapper::testRetrieveListItemCount()
{
    int count = mListTestObject->retrieveListItemCount( 0 );
    QVERIFY( count >= 0 );
}

void TestGlxMLWrapper::testIsSystemItem()
{
    bool isSys = mListTestObject->isSystemItem( 0 );
    QVERIFY( isSys == TRUE );
    
    isSys = mListTestObject->isSystemItem( 2 );
    QVERIFY( isSys == FALSE );
}

void TestGlxMLWrapper::testIsCorruptedImage()
{
    int index = mTestObject->getItemCount() -1;
    bool isCorrupt = mTestObject->isCorruptedImage( index );
    QVERIFY( isCorrupt == FALSE );
}

void TestGlxMLWrapper::testItemsAdded()
{
    QSignalSpy spysignal( mTestObject, SIGNAL(insertItems(int ,int )) );
    QVERIFY( spysignal.count() == 0 );

    int index = mTestObject->getItemCount();
    spysignal.clear();

    mTestObject->itemsAdded( index, index + 5 );
    qDebug( "Signal Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 1);
    QVERIFY(spysignal.value(0).at(0).toInt() == index);
    QVERIFY(spysignal.value(0).at(1).toInt() == index+5);

    mTestObject->itemsAdded( index + 6, index + 6 );
    qDebug( "Signal #Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 2);
    QVERIFY(spysignal.value(1).at(0).toInt() == index+6);
    QVERIFY(spysignal.value(1).at(1).toInt() == index+6);
}

void TestGlxMLWrapper::testItemsRemoved()
{
    QSignalSpy spysignal( mTestObject, SIGNAL(removeItems(int ,int )) );
    QVERIFY(spysignal.count() == 0);

    int index = mTestObject->getItemCount();
    spysignal.clear();

    mTestObject->itemsRemoved( index, index + 5 );
    qDebug( "Signal Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 1);
    QVERIFY(spysignal.value(0).at(0).toInt() == index);
    QVERIFY(spysignal.value(0).at(1).toInt() == index+5);

    mTestObject->itemsRemoved( index + 6, index + 6 );
    qDebug( "Signal #Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 2);
    QVERIFY(spysignal.value(1).at(0).toInt() == index+6);
    QVERIFY(spysignal.value(1).at(1).toInt() == index+6);
}

void TestGlxMLWrapper::testHandleReceivedIcon()
{
    qRegisterMetaType<GlxTBContextType> ( "GlxTBContextType" );
    QSignalSpy spysignal( mTestObject, SIGNAL(updateItem(int , GlxTBContextType )) );
    QVERIFY(spysignal.count() == 0);

    int count = mTestObject->getItemCount();
    spysignal.clear();

    mTestObject->handleReceivedIcon( count - 1, GlxTBContextGrid );
    qDebug( "Signal Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 1);
    QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
    QVERIFY(spysignal.value(0).at(1).toInt() == GlxTBContextGrid);
    spysignal.clear();
}

void TestGlxMLWrapper::testHandleIconCorrupt()
{
    QSignalSpy spysignal( mTestObject, SIGNAL(itemCorrupted(int )) );
    QVERIFY(spysignal.count() == 0);

    int index = mTestObject->getItemCount();
    spysignal.clear();

    mTestObject->handleIconCorrupt( index - 1 );
    qDebug( "Signal Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 1);
    QVERIFY(spysignal.value(0).at(0).toInt() == index-1);

}

void TestGlxMLWrapper::testHandleListItemAvailable()
{
    qRegisterMetaType<GlxTBContextType> ( "GlxTBContextType" );
    QSignalSpy spysignal( mTestObject, SIGNAL(updateItem(int , GlxTBContextType )) );
    QVERIFY(spysignal.count() == 0);

    int count = mTestObject->getItemCount();
    spysignal.clear();

    mTestObject->handleListItemAvailable( count - 1 );
    qDebug( "Signal Count %d", spysignal.count() );
    QVERIFY(spysignal.count() == 1);
    QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
}


QTEST_MAIN(TestGlxMLWrapper)
#include "moc_unittest_medialistwrapper.cpp"