videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp
changeset 52 e3cecb93e76a
parent 47 45e72b57a2fd
child 59 a76e86df7ccd
--- a/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp	Tue Jul 06 14:17:50 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp	Wed Aug 18 09:50:14 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-// Version : %version: 48 %
+// Version : %version: 51 %
 
 #define private public
 #include "videoservices.h"
@@ -63,6 +63,8 @@
 #include "videocollectionuiloaderdata.h"
 #include "videolistdatamodeldata.h"
 #include "xqserviceutilxtra.h"
+#include "videooperatorservicedata.h"
+#include "videooperatorservice.h"
 
 // ---------------------------------------------------------------------------
 // main
@@ -97,7 +99,7 @@
 // init
 // ---------------------------------------------------------------------------
 //
-void TestListView::init(bool initTestView )
+void TestListView::init(bool initTestView)
 {
     XQServiceUtilXtra::service = false;
 	mUiLoader = new VideoCollectionUiLoader();
@@ -114,6 +116,8 @@
     QVERIFY(mTestView);
     if(initTestView)
     {
+        VideoOperatorServiceData::mIcons.append("qtg_mono_ovistore");
+        VideoOperatorServiceData::mUris.append("testuri");
         QVERIFY(mTestView->initializeView() == 0);
     }
     
@@ -293,6 +297,7 @@
 void TestListView::testMenus()
 {
     init();
+    
     TMPXItemId tmpId = TMPXItemId::InvalidId();
     mTestView->activateView(tmpId);
 
@@ -300,7 +305,7 @@
     QList<QAction*> tbActions = mTestView->toolBar()->actions();
     QList<QAction*>	tbGroupActions;
     QList<QAction*>	tbGroupActions2;
-
+    
     // All videos is open for default, verify.
     QVERIFY( mTestView->mToolbarViewsActionGroup != 0 );
     QVERIFY( mTestView->mToolbarCollectionActionGroup != 0 );
@@ -311,6 +316,7 @@
     QCOMPARE( tbGroupActions.count(), 3 );
     QCOMPARE( tbGroupActions2.count(), 2 );
     QVERIFY( tbGroupActions.at(0)->isChecked() ); // First is checked.
+    QCOMPARE( VideoOperatorServiceData::mLoadCallCount, 6);
 
     // Verify checkable	and	visible	toolbar	actions.
     HbAction* allVideosAction =	mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
@@ -788,12 +794,26 @@
 	cleanup();
 }
 // ---------------------------------------------------------------------------
-// Slot: test open services	view slot
+// Slot: test open operator service slot
 // ---------------------------------------------------------------------------
 //
-void TestListView::testOpenServicesViewSlot()
+void TestListView::testOpenOperatorServiceSlot()
 {
-    QFAIL("Feature not yet implemented!");
+    init();
+    TMPXItemId tmpId = TMPXItemId::InvalidId();
+    mTestView->activateView(tmpId);
+    VideoOperatorServiceData::mLaunchServiceCallCount = 0;
+    connect(this, SIGNAL(testSignal2()), mTestView, SLOT(openOperatorServiceSlot()));
+    emit testSignal2();
+    QCOMPARE(VideoOperatorServiceData::mLaunchServiceCallCount, 1);
+    cleanup();
+
+    init();
+    VideoOperatorServiceData::mLaunchServiceCallCount = 0;
+    connect(this, SIGNAL(testSignal2()), mTestView, SLOT(openOperatorServiceSlot()));
+    emit testSignal2();
+    QCOMPARE(VideoOperatorServiceData::mLaunchServiceCallCount, 0);
+    cleanup();
 }
 
 // ---------------------------------------------------------------------------
@@ -1177,71 +1197,119 @@
 //
 void TestListView::testCollectionOpenedSlot()
 {
-	QString testString;
-
-	// View	is not initialized.
+	QString testString("");
+	TMPXItemId itemId = TMPXItemId::InvalidId();
+	int listWidgetActivateCount = 0;
+	
 	init(false);
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const QModelIndex&)),
-	    mTestView, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&)));
-	emit testCollectionOpenedSignal(false, testString, QModelIndex());
-	cleanup();
-
-	// No toolbar actions.
-	init(true);
-	mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET); // load model
-	QModelIndex index = VideoCollectionWrapperData::mCollectionsModel->index(0, 0);
-	// Clear actions.
-	QMap<VideoListView::TViewActionIds,	HbAction*> backupActions =
-		QMap<VideoListView::TViewActionIds,	HbAction*>(mTestView->mToolbarActions);
-	mTestView->mToolbarActions.clear();
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const QModelIndex&)), 
-	    mTestView, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&)));
-	emit testCollectionOpenedSignal(true, testString, index);
-	mTestView->mToolbarActions.unite(backupActions);
-	cleanup();
-
-	// index is invalid
-	init();
-	emit testCollectionOpenedSignal(true, testString, QModelIndex());
+	// collection content widget does not exist	
+	VideoCollectionUiLoaderData::mFindFailure = true;
+	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const TMPXItemId &)),
+	    mTestView, SLOT(collectionOpenedSlot(bool, const QString&,  const TMPXItemId &)));
+	emit testCollectionOpenedSignal(true, testString, itemId);
+	VideoCollectionUiLoaderData::mFindFailure = false;
+	QVERIFY(!mTestView->mCurrentList);
 	cleanup();
 	
-	// current list is null
-	init();
-	VideoListWidget *tmpList = mTestView->mCurrentList;
-	emit testCollectionOpenedSignal(true, testString, index);
-	mTestView->mCurrentList = tmpList;
-	cleanup();
+	init(true);
+	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const TMPXItemId &)),
+	        mTestView, SLOT(collectionOpenedSlot(bool, const QString&,  const TMPXItemId &)));
+	QVERIFY(mTestView->mCurrentList->getLevel() < VideoCollectionCommon::ELevelDefaultColl );
+	VideoListWidget *listWidget = mTestView->mCurrentList;
+	listWidgetActivateCount = VideoListWidgetData::mActivateCount;
+	
+	// id is invalid
+	emit testCollectionOpenedSignal(true, testString, itemId);
+	QVERIFY(mTestView->mCurrentList == listWidget);
+	QVERIFY(mTestView->mCurrentList->getLevel() < VideoCollectionCommon::ELevelDefaultColl );
+	QVERIFY(listWidgetActivateCount == VideoListWidgetData::mActivateCount);
+	itemId = TMPXItemId(1,1);
+	listWidget->activate();
+	listWidget->getModel()->open(VideoCollectionCommon::ELevelDefaultColl);
+	
+	VideoListWidget *collectionContent = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET);
 	
-	// current list is collectioncontentwidget
-	init();
-	cleanup();
+	// current list is collection content
+	VideoListWidget *tmpList = mTestView->mCurrentList;
+	mTestView->mCurrentList = collectionContent;	
+	listWidgetActivateCount = VideoListWidgetData::mActivateCount;
+	emit testCollectionOpenedSignal(true, testString, itemId);
+	QVERIFY(listWidgetActivateCount == VideoListWidgetData::mActivateCount);
+	mTestView->mCurrentList = tmpList;
 	
-	// index is for video item and not for collection.
-	init();
+	// collection list widget has no model
+	VideoSortFilterProxyModel *nullModel = 0;
+	VideoSortFilterProxyModel *tempModel = collectionContent->getModel();
+	collectionContent->initialize(*nullModel, false, VideoCollectionCommon::ELevelDefaultColl);
+	listWidget = mTestView->mCurrentList;
+	listWidgetActivateCount = VideoListWidgetData::mActivateCount;
+	emit testCollectionOpenedSignal(true, testString, itemId);
+	QVERIFY(listWidgetActivateCount == VideoListWidgetData::mActivateCount);
+	QVERIFY(mTestView->mCurrentList == listWidget);
+	QVERIFY(mTestView->mCurrentList->getLevel() < VideoCollectionCommon::ELevelDefaultColl );	
 	cleanup();
-	
-	// non-error cases:
-	testString = "Test text string";
-
+	init(true);
+	itemId = TMPXItemId::InvalidId();
+	VideoCollectionViewUtilsData::mWidgetLevel = VideoCollectionCommon::ELevelCategory;
+	mTestView->activateView(itemId);
+    connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const TMPXItemId &)),
+            mTestView, SLOT(collectionOpenedSlot(bool, const QString&,  const TMPXItemId &)));
+    
+    collectionContent = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET);
 	// Collection opened with default collection.
-	init();
-    mTestView->mCurrentList = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);
-    index = VideoCollectionWrapperData::mCollectionsModel->index(0, 0);
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const QModelIndex&)), 
-	    mTestView, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&)));
-	emit testCollectionOpenedSignal(true, testString, index);
-	// Verify checkable	and	visible	toolbar	actions.
-	cleanup();
-	
-	// Collection opened with userdefined album.
-	init();
-	cleanup();
-	
-	// Collection closed.
-	init();
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const QModelIndex&)), 
-	    mTestView, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&)));
-	emit testCollectionOpenedSignal(false, testString, QModelIndex());
+    itemId = TMPXItemId(1,1);
+    listWidgetActivateCount = VideoListWidgetData::mActivateCount;
+    emit testCollectionOpenedSignal(true, testString, itemId);
+    QVERIFY(VideoListWidgetData::mActivateCount == listWidgetActivateCount + 1);
+    QVERIFY(mTestView->mCurrentList == collectionContent);
+    QVERIFY(mTestView->mCurrentList->getLevel() == VideoCollectionCommon::ELevelDefaultColl );  
+    QVERIFY(!HbView::mSetItemVisibleLast);
+    
+    // returning collection widget
+    emit testCollectionOpenedSignal(false, testString, itemId);
+    QVERIFY(mTestView->mCurrentList != collectionContent);
+    QVERIFY(mTestView->mCurrentList->getLevel() == VideoCollectionCommon::ELevelCategory );  
+    QVERIFY(HbView::mSetItemVisibleLast);
+    
+    // Collection opened with album.
+    itemId = TMPXItemId(1,2);
+    listWidgetActivateCount = VideoListWidgetData::mActivateCount;
+    emit testCollectionOpenedSignal(true, testString, itemId);
+    QVERIFY(VideoListWidgetData::mActivateCount == listWidgetActivateCount + 1);
+    QVERIFY(mTestView->mCurrentList == collectionContent);
+    QVERIFY(mTestView->mCurrentList->getLevel() == VideoCollectionCommon::ELevelAlbum );  
+    QVERIFY(HbView::mSetItemVisibleLast);
+    
+    // returning collection widget (no mToolbarViewsActionGroup for coverage)
+    HbView::mSetItemVisibleLast = false;
+    QActionGroup *tmpActionGroup = mTestView->mToolbarViewsActionGroup;
+    mTestView->mToolbarViewsActionGroup = 0;
+    emit testCollectionOpenedSignal(false, testString, itemId);
+    QVERIFY(mTestView->mCurrentList != collectionContent);
+    QVERIFY(mTestView->mCurrentList->getLevel() == VideoCollectionCommon::ELevelCategory ); 
+    QVERIFY(!HbView::mSetItemVisibleLast);
+    mTestView->mToolbarViewsActionGroup = tmpActionGroup;
+    
+    // service
+    VideoServices *tmpService = VideoServices::instance(); 
+    mTestView->mVideoServices = tmpService;
+    itemId = TMPXItemId(1,1);
+    listWidgetActivateCount = VideoListWidgetData::mActivateCount;
+    emit testCollectionOpenedSignal(true, testString, itemId);
+    QVERIFY(VideoListWidgetData::mActivateCount == listWidgetActivateCount + 1);
+    QVERIFY(mTestView->mCurrentList == collectionContent);
+    QVERIFY(mTestView->mCurrentList->getLevel() == VideoCollectionCommon::ELevelDefaultColl );  
+    QVERIFY(!HbView::mSetItemVisibleLast);
+    
+    // returning collection widget (no mToolbarServiceExtension for coverage)
+    HbToolBarExtension *tmpExtension = mTestView->mToolbarServiceExtension;
+    mTestView->mToolbarServiceExtension = 0;
+    emit testCollectionOpenedSignal(false, testString, itemId);
+    QVERIFY(mTestView->mCurrentList != collectionContent);
+    QVERIFY(mTestView->mCurrentList->getLevel() == VideoCollectionCommon::ELevelCategory ); 
+    QVERIFY(HbView::mSetItemVisibleLast);
+    mTestView->mToolbarServiceExtension = tmpExtension;
+
 	cleanup();
 }
 
@@ -1255,8 +1323,6 @@
     setRowCount(1);
     mTestView->mModelReady = true;
 	connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot()));
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&, const QModelIndex&)), 
-	    mTestView, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&)));
 
     VideoListWidget *videoListWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);   
     VideoListWidget *collectionWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);   
@@ -1685,4 +1751,61 @@
     cleanup();
 }
 
+// ---------------------------------------------------------------------------
+// testCreateOperatorServicesToolbar
+// ---------------------------------------------------------------------------
+//
+void TestListView::testCreateOperatorServicesToolbar()
+{
+    // Only one service.
+    init();
+    HbToolBarExtension::mAddActionCallCount = 0;
+    VideoOperatorServiceData::mIcons.clear();
+    VideoOperatorServiceData::mUris.clear();
+    VideoOperatorServiceData::mIcons.append("qtg_mono_ovistore");
+    VideoOperatorServiceData::mUris.append("testuri");
+    QCOMPARE(mTestView->mVideoOperatorServices.count(), 0);
+    TMPXItemId tmpId = TMPXItemId::InvalidId();
+    mTestView->activateView(tmpId);
+    QCOMPARE(mTestView->mVideoOperatorServices.count(), 1);
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionServices] != 0);
+    QVERIFY(mTestView->mToolbarServiceExtension == 0);
+    QCOMPARE(HbToolBarExtension::mAddActionCallCount, 0);
+    cleanup();
+    
+    // Multiple, 3, services
+    init();
+    HbToolBarExtension::mAddActionCallCount = 0;
+    VideoOperatorServiceData::mIcons.clear();
+    VideoOperatorServiceData::mUris.clear();
+    VideoOperatorServiceData::mIcons.append("qtg_mono_ovistore");
+    VideoOperatorServiceData::mUris.append("testuri");
+    VideoOperatorServiceData::mIcons.append("qtg_mono_ovistore2");
+    VideoOperatorServiceData::mUris.append("testuri2");
+    VideoOperatorServiceData::mIcons.append("qtg_mono_ovistore3");
+    VideoOperatorServiceData::mUris.append("testuri3");
+    QCOMPARE(mTestView->mVideoOperatorServices.count(), 0);
+    tmpId = TMPXItemId::InvalidId();
+    mTestView->activateView(tmpId);
+    QCOMPARE(mTestView->mVideoOperatorServices.count(), 3);
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionServices] == 0);
+    QVERIFY(mTestView->mToolbarServiceExtension != 0); 
+    QCOMPARE(HbToolBarExtension::mAddActionCallCount, 3);
+    cleanup();
+    
+    // Services already loaded.
+    init();
+    VideoOperatorServiceData::mIcons.clear();
+    VideoOperatorServiceData::mUris.clear();
+    VideoOperatorServiceData::mIcons.append("qtg_mono_ovistore");
+    VideoOperatorServiceData::mUris.append("testuri");    
+    mTestView->mVideoOperatorServices.append(new VideoOperatorService());
+    mTestView->activateView(tmpId);
+    QCOMPARE(mTestView->mVideoOperatorServices.count(), 1);
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionServices] == 0);
+    QVERIFY(mTestView->mToolbarServiceExtension == 0); 
+    cleanup();
+    
+}
+
 // End of file