tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:14:51 +0300
branchRCL_3
changeset 59 8e5f6eea9c9f
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* 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.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);
    QVERIFY(mTestObject);
}

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

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

}

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

// -----------------------------------------------------------------------------
// testGetItemCount
// -----------------------------------------------------------------------------
//
void TestGlxMLWrapper::testGetItemCount()
{
    QTest::qWait(3000);
    int count = mTestObject->getItemCount();
    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::testSetContextMode()
{
    int itemIndex = mTestObject->getItemCount()-1;
    
    //Retriveing without adding any context .so grid icon should be NULL
    HbIcon* icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
    QVERIFY(icon == NULL);
    
    // After adding grid context should get grid icon 
    mTestObject->setContextMode(GlxContextPtGrid);
    QTest::qWait(10000);
    icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
    QVERIFY(icon != NULL);
}

void TestGlxMLWrapper::testRetrieveItemUri()
{
    qDebug("TestGlxMLWrapper::testRetrieveItemUri enter");
	
	int count = mTestObject->getItemCount();
	mTestObject->setContextMode(GlxContextPtGrid);
    QTest::qWait(10000);
	QString uri = mTestObject->retrieveItemUri(count-1);
	qDebug("TestGlxMLWrapper::testRetrieveItemUri =%d",uri.isEmpty());
	QVERIFY( uri.isEmpty() == 0 );
}

void TestGlxMLWrapper::testRetrieveItemUriName()
{
    qDebug("TestGlxMLWrapper::testRetrieveItemUriName enter");
	
	int count = mTestObject->getItemCount();
	mTestObject->setContextMode(GlxContextPtGrid);
    QTest::qWait(10000);
    	
    QString uri = mTestObject->retrieveItemUri(count-1);
	QString imageName = uri.section('\\',-1);
    qDebug("TestGlxMLWrapper::testRetrieveItemUriName =%d",uri.isEmpty());
    QVERIFY( imageName.isEmpty() == 0 );
}

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

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


void TestGlxMLWrapper::testRetrieveItemDateIsValid()
{
    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsValid enter");
    int count = mTestObject->getItemCount();
    mTestObject->setContextMode( GlxContextPtGrid );
    QTest::qWait(10000);
	
	QDate date = mTestObject->retrieveItemDate(count-1);
	qDebug("TestGlxMLWrapper::testRetrieveItemDateIsValid IsNull=%d",date.isNull());
    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsValid IsValid=%d",date.isValid() );
	
    QVERIFY( date.isNull() == 0 );
    QVERIFY( date.isValid() == 1 );
}

void TestGlxMLWrapper::testRetrieveItemDateValidate()
{
    qDebug("TestGlxMLWrapper::testRetrieveItemDateValidate enter");
    int count = mTestObject->getItemCount();
	mTestObject->setContextMode( GlxContextPtGrid );
    QTest::qWait(10000);
	
    QDate date = mTestObject->retrieveItemDate(count-1);
    qDebug("TestGlxMLWrapper::testRetrieveItemDateValidate =%d",date.isValid(date.year(), date.month(), date.day()) );
    QVERIFY( date.isValid(date.year(), date.month(), date.day()) == 1 );
}

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::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(); 

    // mTestObject->handleReceivedIcon(count-1,GlxTBContextLsFs);
    // 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() == GlxTBContextLsFs);
    // spysignal.clear(); 

    // mTestObject->handleReceivedIcon(count-1,GlxTBContextPtFs);
    // qDebug("Signal Count %d",spysignal.count());
    // QVERIFY(spysignal.count() == 1);
    // QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
    // QVERIFY(const_cast<GlxTBContextType>(spysignal.value(0).at(1)) == GlxTBContextPtFs);

}

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);
}

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

QTEST_MAIN(TestGlxMLWrapper)
#include "moc_unittest_medialistwrapper.cpp"