--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tsrc/unittest/unittest_mediamodel/unittest_mediamodel.cpp Mon Sep 20 12:39:08 2010 +0530
@@ -0,0 +1,457 @@
+/*
+* 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_mediamodel.h"
+#include "glxmediamodel.h"
+#include "glxmlwrapper.h"
+#include "glxmodelparm.h"
+#include "glxcollectionpluginall.hrh"
+#include "hbicon.h"
+
+
+// -----------------------------------------------------------------------------
+// initTestCase
+// -----------------------------------------------------------------------------
+//
+void TestGlxMediaModel::initTestCase()
+{
+ GlxModelParm modelParm;
+ modelParm.setCollection( KGlxCollectionPluginAllImplementationUid );
+ modelParm.setDepth(0);
+ modelParm.setContextMode( GlxContextLsGrid ) ;
+ mModel = new GlxMediaModel( modelParm );
+ QTest::qWait(2000);
+
+ QVERIFY( mModel );
+ QVERIFY( mModel->mMLWrapper );
+ QVERIFY( mModel->mDRMUtilityWrapper );
+ QVERIFY( mModel->m_DefaultIcon );
+ QVERIFY( mModel->m_CorruptIcon );
+ QCOMPARE( mModel->thumbnailPopulatedFlag, false );
+ QCOMPARE( mModel->mPaintPage, true );
+}
+
+// -----------------------------------------------------------------------------
+// init
+// -----------------------------------------------------------------------------
+//
+void TestGlxMediaModel::init()
+{
+
+}
+
+void TestGlxMediaModel::rowCountTestCase()
+{
+ QVERIFY( mModel->rowCount() >= 0 );
+}
+
+void TestGlxMediaModel::columnCountTestCase()
+{
+ QCOMPARE( mModel->columnCount(), 1 );
+}
+
+void TestGlxMediaModel::parentTestCase()
+{
+ QModelIndex index = mModel->parent( mModel->index( 0, 0 ) );
+ QCOMPARE( index.isValid(), false);
+}
+
+void TestGlxMediaModel::itemImageDataInvalidIndexTestCase()
+{
+ QVariant variant = mModel->itemImageData( QModelIndex(), GlxFsImageRole );
+ QCOMPARE( variant.isValid(), false );
+
+ variant = mModel->itemImageData( mModel->createIndex( mModel->rowCount(), 0 ), GlxFsImageRole );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::itemImageDataGridImagetestCase()
+{
+ mModel->itemIconCache.insert( 0, NULL );
+ QVariant variant = mModel->itemImageData( mModel->index( 0, 0), Qt::DecorationRole );
+ QCOMPARE( variant.isValid(), true );
+
+ mModel->itemIconCache.insert( 0, new HbIcon() );
+ variant = mModel->itemImageData( mModel->index( 0, 0), Qt::DecorationRole );
+ QCOMPARE( variant.isValid(), true );
+}
+
+void TestGlxMediaModel::itemImageDataHdmiBitmapTestCase()
+{
+ QVariant variant = mModel->itemImageData( mModel->index( 0, 0), GlxHdmiBitmap );
+ QCOMPARE( variant.isValid(), true );
+}
+
+void TestGlxMediaModel::ItemPropertyViewTitleTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxViewTitle );
+ QCOMPARE( variant.isValid(), true );
+}
+
+void TestGlxMediaModel::ItemPropertyImageTitleTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxImageTitle );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::ItemPropertyDateTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxDateRole );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::ItemPropertyCorruptImageTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxImageCorruptRole );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::ItemPropertyTimeTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxTimeRole );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::ItemPropertySizeTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxSizeRole );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::ItemPropertyDescTestCase()
+{
+ QVariant variant = mModel->collectionProperty( GlxDescRole );
+ QCOMPARE( variant.isValid(), false );
+}
+
+void TestGlxMediaModel::indexTestCase()
+{
+ QModelIndex index = mModel->index( -1, 0 );
+ QCOMPARE( index.isValid(), false);
+
+ index = mModel->index( 0, -1 );
+ QCOMPARE( index.isValid(), false);
+
+ index = mModel->index( mModel->rowCount(), 1 );
+ QCOMPARE( index.isValid(), false);
+
+ index = mModel->index( 0, 0 );
+ QCOMPARE( index.isValid(), true);
+}
+
+void TestGlxMediaModel::setDataContextRoleTestCase()
+{
+ mModel->setData( mModel->index( 0, 0 ), GlxContextPtGrid, GlxContextRole );
+ QCOMPARE( mModel->mContextMode, GlxContextPtGrid );
+
+ mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxContextRole );
+ QCOMPARE( mModel->mContextMode, GlxContextPtGrid );
+}
+
+void TestGlxMediaModel::setDataRemoveContextRoleTestCase()
+{
+ mModel->setData( mModel->index( 0, 0), GlxContextPtGrid, GlxContextRole );
+
+ mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxRemoveContextRole );
+ QCOMPARE( mModel->mContextMode, GlxContextPtGrid );
+}
+
+void TestGlxMediaModel::setDataFocusIndexRoleTestCase()
+{
+ mModel->setData( mModel->index( 0, 0), 1, GlxFocusIndexRole );
+ QCOMPARE( mModel->mFocusIndex, 1 );
+
+ mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxFocusIndexRole );
+ QCOMPARE( mModel->mFocusIndex, 1 );
+}
+
+void TestGlxMediaModel::setDataVisualIndexTestCase()
+{
+ mModel->setData( mModel->index( 0, 0), 1, GlxVisualWindowIndex );
+ int visualIndex = mModel->mMLWrapper->getVisibleWindowIndex();
+ QCOMPARE( visualIndex, 1 );
+
+ mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxVisualWindowIndex );
+ visualIndex = mModel->mMLWrapper->getVisibleWindowIndex();
+ QCOMPARE( visualIndex, 1 );
+}
+
+void TestGlxMediaModel::setDataSelectedIndexTestCase()
+{
+ bool result = mModel->setData( mModel->index( 0, 0), 1, GlxSelectedIndexRole );
+ QCOMPARE( result, true );
+
+ result = mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxSelectedIndexRole );
+ QCOMPARE( result, false );
+}
+
+void TestGlxMediaModel::setDataSubStateTestCase()
+{
+ bool result = mModel->setData( mModel->index( 0, 0), 5, GlxSubStateRole );
+ QCOMPARE( result, true );
+ QCOMPARE( mModel->mSubState, 5 );
+
+ result = mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxSubStateRole );
+ QCOMPARE( result, false );
+ QCOMPARE( mModel->mSubState, 5 );
+}
+
+void TestGlxMediaModel::setDataTempVisualIndexTestCase()
+{
+ bool result = mModel->setData( mModel->index( 0, 0), 2, GlxTempVisualWindowIndex );
+ QCOMPARE( result, true );
+ QCOMPARE( mModel->mTempVisibleWindowIndex, 2 );
+
+ result = mModel->setData( mModel->index( 0, 0), QVariant( QVariant::Invalid ), GlxTempVisualWindowIndex );
+ QCOMPARE( result, false );
+ QCOMPARE( mModel->mTempVisibleWindowIndex, 2 );
+}
+
+void TestGlxMediaModel::GetGridIconItemTestCase()
+{
+ QTest::qWait( 2000 );
+
+ mModel->itemIconCache.insert( 0, NULL );
+ HbIcon *icon = mModel->GetGridIconItem( 0, GlxTBContextGrid );
+ QVERIFY( icon || icon == NULL );
+
+ mModel->itemIconCache.insert( 0, new HbIcon() );
+ icon = mModel->GetGridIconItem( 0, GlxTBContextGrid );
+ QVERIFY( icon );
+}
+
+void TestGlxMediaModel::GetFsIconItemTestCase()
+{
+ mModel->setContextMode( GlxContextPtFs );
+ HbIcon *icon = mModel->GetFsIconItem( 0, GlxTBContextPtFs );
+ QTest::qWait( 2000 );
+ QVERIFY( icon || icon == NULL );
+ mModel->setContextMode( GlxContextLsGrid );
+}
+
+void TestGlxMediaModel::getFullScreenIconTestCase()
+{
+ HbIcon icon = mModel->getFullScreenIcon( 0 );
+ QCOMPARE( icon.isNull(), false );
+
+ mModel->itemIconCache.insert( 0, NULL );
+ icon = mModel->getFullScreenIcon( 0 );
+ QCOMPARE( icon.isNull(), false );
+
+ mModel->itemIconCache.insert( 0, new HbIcon() );
+ icon = mModel->getFullScreenIcon( 0 );
+ QCOMPARE( icon.isNull(), false );
+}
+
+void TestGlxMediaModel::getFullScreenImagetestCase()
+{
+ mModel->setContextMode( GlxContextLsFs );
+ QTest::qWait( 2000 );
+ QImage img = mModel->getFullScreenImage( 0 );
+ QVERIFY( img.isNull() == true || img.isNull() == false );
+
+ mModel->setContextMode( GlxContextPtFs );
+ QTest::qWait( 2000 );
+ img = mModel->getFullScreenImage( 0 );
+ QVERIFY( img.isNull() == true || img.isNull() == false );
+}
+
+void TestGlxMediaModel::setContextModeTestCase()
+{
+ mModel->setContextMode( GlxContextPtFs );
+ QCOMPARE( mModel->mContextMode, GlxContextPtFs );
+
+ mModel->setContextMode( GlxContextComment );
+ QCOMPARE( mModel->mContextMode, GlxContextPtFs );
+ mModel->removeContextMode( GlxContextComment );
+
+ mModel->setContextMode( GlxContextLsGrid );
+ QCOMPARE( mModel->mContextMode, GlxContextLsGrid );
+ QCOMPARE( mModel->itemFsIconCache.size(), 0 );
+ QCOMPARE( mModel->itemIconCache.size(), 0 );
+}
+
+void TestGlxMediaModel::removeContextModeTestCase()
+{
+ mModel->removeContextMode( GlxContextComment );
+ QCOMPARE( mModel->mContextMode, GlxContextLsGrid );
+}
+
+void TestGlxMediaModel::setFocusIndexTestCase()
+{
+ mModel->setFocusIndex( mModel->index( 1, 0 ) );
+ QModelIndex modelIndex = mModel->getFocusIndex();
+ QCOMPARE( mModel->mFocusIndex, 1 );
+ QCOMPARE( 1, modelIndex.row() );
+
+ int index = mModel->rowCount() - 1;
+ mModel->setFocusIndex( mModel->index( index, 0 ) );
+ modelIndex = mModel->getFocusIndex();
+ QCOMPARE( mModel->mFocusIndex, modelIndex.row() );
+ QCOMPARE( index, modelIndex.row() );
+
+ index = mModel->rowCount();
+ mModel->setFocusIndex( mModel->index( index, 0 ) );
+ modelIndex = mModel->getFocusIndex();
+ QCOMPARE( mModel->mFocusIndex, modelIndex.row() );
+ QCOMPARE( 0, modelIndex.row() );
+}
+
+void TestGlxMediaModel::getFocusIndexTestcase()
+{
+ mModel->mFocusIndex = -1;
+ mModel->setFocusIndex( mModel->index( 1, 0 ) );
+ QModelIndex index = mModel->getFocusIndex();
+ QCOMPARE( 1, index.row() );
+
+ mModel->mFocusIndex = 2;
+ mModel->setFocusIndex( mModel->index( 1, 0 ) );
+ index = mModel->getFocusIndex();
+ QCOMPARE( 1, index.row() );
+}
+
+void TestGlxMediaModel::setSelectedIndexTestCase()
+{
+ mModel->setSelectedIndex( mModel->index( 1, 0 ) );
+}
+
+void TestGlxMediaModel::getCorruptDefaultIconTestCase()
+{
+ HbIcon *icon = mModel->getCorruptDefaultIcon( mModel->index( 0, 0 ) );
+ QVERIFY( icon );
+}
+
+void TestGlxMediaModel::thumbnailPopulatedCheckTestCase()
+{
+ mModel->thumbnailPopulatedFlag = false;
+ mModel->thumbnailPopulatedCheck( 1 );
+ QCOMPARE( mModel->thumbnailPopulatedFlag, false );
+
+ mModel->thumbnailPopulatedCheck( 30 );
+ QCOMPARE( mModel->thumbnailPopulatedFlag, true );
+}
+
+void TestGlxMediaModel::itemUpdatedTestCase()
+{
+ mModel->itemUpdated( 0, GlxTBContextGrid );
+ QVERIFY( mModel->itemIconCache[0] == NULL );
+
+ mModel->thumbnailPopulatedFlag = false;
+ mModel->itemUpdated( 0, GlxTBContextGrid );
+ QVERIFY( mModel->itemIconCache[0] == NULL );
+
+ mModel->itemUpdated( 0, GlxTBContextPtFs );
+ QVERIFY( mModel->itemFsIconCache[0] == NULL );
+
+ mModel->itemUpdated( 0, GlxTBContextPtFs );
+ QVERIFY( mModel->itemFsIconCache[0] == NULL );
+}
+
+void TestGlxMediaModel::itemsAddedTestCase()
+{
+ mModel->itemsAdded( 1, 5 );
+ QCOMPARE( mModel->mFocusIndex, -1 );
+ QCOMPARE( mModel->itemIconCache.size(), 0 );
+ QCOMPARE( mModel->itemFsIconCache.size(), 0 );
+}
+
+void TestGlxMediaModel::itemsRemovedTestCase()
+{
+ mModel->itemsRemoved( 1, 5 );
+ QCOMPARE( mModel->mFocusIndex, -1 );
+ QCOMPARE( mModel->itemIconCache.size(), 0 );
+ QCOMPARE( mModel->itemFsIconCache.size(), 0 );
+}
+
+void TestGlxMediaModel::itemCorruptedTestCase()
+{
+ mModel->thumbnailPopulatedFlag = false;
+ mModel->itemCorrupted( 1 );
+ QCOMPARE( mModel->thumbnailPopulatedFlag, false );
+
+ mModel->itemCorrupted( 30 );
+ QCOMPARE( mModel->thumbnailPopulatedFlag, true );
+}
+
+void TestGlxMediaModel::albumTitleUpdatedTestCase()
+{
+ mModel->albumTitleUpdated( QString( "Album" ) );
+}
+
+void TestGlxMediaModel::modelpopulatedTestCase()
+{
+ int visualIndex = mModel->mMLWrapper->getVisibleWindowIndex();
+ mModel->mTempVisibleWindowIndex = -1;
+ mModel->modelpopulated();
+ QCOMPARE( mModel->mTempVisibleWindowIndex, -1 );
+ QCOMPARE( visualIndex, mModel->mMLWrapper->getVisibleWindowIndex() );
+
+ mModel->mTempVisibleWindowIndex = mModel->rowCount() - 1;
+ mModel->modelpopulated();
+ visualIndex = mModel->mMLWrapper->getVisibleWindowIndex();
+ QCOMPARE( mModel->mTempVisibleWindowIndex, -1 );
+ QCOMPARE( visualIndex, mModel->rowCount() - 1 );
+
+ mModel->mTempVisibleWindowIndex = mModel->rowCount();
+ mModel->modelpopulated();
+ visualIndex = mModel->mMLWrapper->getVisibleWindowIndex();
+ QCOMPARE( mModel->mTempVisibleWindowIndex, -1 );
+ QCOMPARE( visualIndex, 0 );
+}
+
+void TestGlxMediaModel::updateDetailItemsTestCase()
+{
+ mModel->updateDetailItems();
+}
+
+void TestGlxMediaModel::updateItemIconTestCase()
+{
+ mModel->updateItemIcon( 1, new HbIcon(), GlxTBContextGrid );
+ QVERIFY( mModel->itemIconCache[1] );
+
+ mModel->updateItemIcon( 1, new HbIcon(), GlxTBContextLsFs );
+ QVERIFY( mModel->itemFsIconCache[1] );
+
+ mModel->updateItemIcon( 1, new HbIcon(), GlxTBContextPtFs );
+ QVERIFY( mModel->itemFsIconCache[1] );
+}
+
+
+
+// -----------------------------------------------------------------------------
+// cleanup
+// -----------------------------------------------------------------------------
+//
+void TestGlxMediaModel::cleanup()
+{
+
+}
+
+// -----------------------------------------------------------------------------
+// cleanupTestCase
+// -----------------------------------------------------------------------------
+//
+void TestGlxMediaModel::cleanupTestCase()
+{
+ if( mModel ) {
+ delete mModel;
+ mModel = 0;
+ }
+}
+
+QTEST_MAIN(TestGlxMediaModel)
+#include "moc_unittest_mediamodel.cpp"