videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp
changeset 17 69946d1824c4
parent 15 cf5481c2bc0b
child 20 b9e04db066d4
--- a/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp	Fri Apr 16 14:59:52 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp	Mon May 03 12:32:50 2010 +0300
@@ -15,31 +15,46 @@
 *
 */
 
+// Version : %version: 36 %
+
+#define private public
+#include "videoservices.h"
+#include "videosortfilterproxymodel.h"
+#include "videolistwidget.h"
+#include "videolistview.h"
+#undef private
+
+#include <qdebug.h>
+#include <xqserviceutil.h>
 #include <QtTest/QtTest>
-#include <hbapplication.h>
-#include <hbinstance.h>
+#include "hbapplication.h"
+#include "hbeffect.h"
+#include "hbinstance.h"
+#include "hbmenu.h"
+#include "hbmenudata.h"
+#include "hbtoolbar.h"
+#include "hbaction.h"
+#include "hbstackedwidget.h"
+#include "hbgroupbox.h"
+#include "hbdocumentloader.h"
+#include "hbview.h"
+#include "hblistview.h"
+#include "hbinputdialog.h"
 #include <qactiongroup.h>
-#include <hbmenu.h>
-#include <hbtoolbar.h>
-#include <hbaction.h>
 #include <videocollectioncommon.h>
-#include <hbstackedwidget.h>
-#include <hbgroupbox.h>
-#include <hbdocumentloader.h>
 #include <qhash.h>
 #include <qmap.h>
-#include <hbview.h>
-#include <hblistview.h>
 #include <mpxitemid.h>
 #include <vcxmyvideosdefs.h>
 
+#include "videocollectionuiloader.h"
 #include "videocollectionwrapper.h"
 #include "testlistview.h"
 #include "videocollectionviewutils.h"
 #include "videolistselectiondialog.h"
-#include "videosortfilterproxymodel.h"
 #include "videocollectionwrapper.h"
 #include "videohintwidget.h"
+#include "videohintwidgetdata.h"
 #include "videolistwidgetdata.h"
 #include "videocollectionwrapperdata.h"
 #include "videocollectionviewutilsdata.h"
@@ -47,12 +62,7 @@
 #include "videosortfilterproxymodeldata.h"
 #include "videocollectionuiloaderdata.h"
 #include "videolistdatamodeldata.h"
-
-#define	private	public
-#include "videolistwidget.h"
-#include "videocollectionuiloader.h"
-#include "videolistview.h"
-#undef private
+#include "xqserviceutilxtra.h"
 
 // ---------------------------------------------------------------------------
 // main
@@ -62,6 +72,7 @@
 {
 	HbApplication app(argc,	argv);
 	HbMainWindow window;
+	hbInstance->mWindowses.append(&window);
 
 	TestListView tv;
 
@@ -88,17 +99,18 @@
 //
 void TestListView::init(bool initTestView)
 {
+    XQServiceUtilXtra::service = false;
 	mUiLoader = new VideoCollectionUiLoader();
 	mUiLoader->reset();
 
 	bool ok(false);
-	QList<QObject *> objects = mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
+	mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
     if (!ok)
     {
     	return;
     }
 
-    mTestView = mUiLoader->findObject<VideoListView>( DOCML_NAME_VIEW );
+    mTestView = mUiLoader->findWidget<VideoListView>( DOCML_NAME_VIEW );
     QVERIFY(mTestView);
     if(initTestView)
     {
@@ -118,11 +130,11 @@
 //
 void TestListView::cleanup()
 {
-	delete mTestView;
-	mTestView =	0;
+	delete mUiLoader;
+	mUiLoader = 0;
 	
 	mWrapper = 0;
-
+	mTestView = 0;
 	disconnect();
 
     VideoListWidgetData::reset();
@@ -130,6 +142,7 @@
     VideoCollectionViewUtilsData::reset();
     VideoListSelectionDialogData::reset();
     VideoSortFilterProxyModelData::reset();
+    HbDocumentLoader::cleanup();
 }
 
 // ---------------------------------------------------------------------------
@@ -141,11 +154,13 @@
 	int	visibleActions(0);
 	VideoCollectionUiLoader::ActionIds key;
 	HbAction *action(0);
-	foreach(key,mUiLoader->mMenuActions.keys())
+	foreach (key,VideoCollectionUiLoaderData::mMenuActions.keys())
 	{
-		action = dynamic_cast<HbAction*>(mUiLoader->mMenuActions[key]);
-		if(action && action->isVisible())
-			visibleActions++;
+		action = dynamic_cast<HbAction*>(VideoCollectionUiLoaderData::mMenuActions[key]);
+		if (action && action->isVisible())
+		{
+            visibleActions++;
+		}
 	}
 	return visibleActions;
 }
@@ -154,29 +169,61 @@
 // setRowCount
 // ---------------------------------------------------------------------------
 //
-void TestListView::setRowCount(int count)
+void TestListView::setRowCount(int count, VideoSortFilterProxyModel *model)
 {
-    if (mTestView)
+    if(!model)
     {
-        if (!mTestView->mCurrentList)
+        if (mTestView)
         {
-            mTestView->activateView();
+            if (!mTestView->mCurrentList)
+            {
+                mTestView->activateView(TMPXItemId::InvalidId());
+            }
+            model = mTestView->mCurrentList->mModel;
         }
-        VideoSortFilterProxyModel *model = mTestView->mCurrentList->mModel;
-        if (model)
+    }
+
+    if (model)
+    {
+        VideoListDataModel *sourceModel =
+            qobject_cast<VideoListDataModel*>(
+                model->sourceModel());
+        if(sourceModel)
         {
-            VideoListDataModel *sourceModel =
-                qobject_cast<VideoListDataModel*>(
-                    model->sourceModel());
-            if (sourceModel)
-            {
-                VideoListDataModelData::setRowCount(*sourceModel, count);
-            }
+            VideoListDataModelData::setRowCount(*sourceModel, count);
         }
     }
 }
 
 // ---------------------------------------------------------------------------
+// isActionVisible
+// ---------------------------------------------------------------------------
+//
+bool TestListView::isActionVisible(const char *name) const
+{
+    bool isVisible = false;
+    
+    HbAction *action = mUiLoader->findObject<HbAction>(name);
+    if (!action)
+    {
+        // must be menu widget
+        HbMenu *menu = mUiLoader->findWidget<HbMenu>(name);
+        if (menu)
+        {
+            action = menu->menuAction();
+        }
+    }
+    
+    // check if action is visible
+    if (action)
+    {
+        isVisible = action->isVisible();
+    }
+    
+    return isVisible;
+}
+
+// ---------------------------------------------------------------------------
 // testCreateDelete
 // ---------------------------------------------------------------------------
 //
@@ -190,14 +237,14 @@
 
 	bool ok(false);
 
-	QList<QObject *> objects = mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
+	mUiLoader->load(DOCML_VIDEOCOLLECTIONVIEW_FILE, &ok);
 
     if (!ok)
     {
     	return;
     }
 
-    mTestView = mUiLoader->findObject<VideoListView>( DOCML_NAME_VIEW );
+    mTestView = mUiLoader->findWidget<VideoListView>( DOCML_NAME_VIEW );
 
     delete mTestView;
 	mTestView =	0;
@@ -213,130 +260,31 @@
     VideoHintWidget *hintWidget = 0;
     
     init(false);
-	// Test	videolist widget creation failure.
-	VideoListWidgetData::mInitializeReturnValue	= -1;
-	QVERIFY( mTestView->initializeView() < 0 );
-	QVERIFY( mTestView->mToolbarViewsActionGroup == 0 );
-	QVERIFY( mTestView->mToolbarCollectionActionGroup == 0 );
-	QVERIFY( mTestView->mVideoServices == 0 );
-	QVERIFY( mTestView->mIsService == false );
-
-	cleanup();
-
-	// Test	widget creation	succeed.
-	init(false);
-    VideoCollectionViewUtilsData::mSortRole = Qt::DisplayRole;
-    VideoCollectionViewUtilsData::mSortOrder = Qt::DescendingOrder;
-	QVERIFY( mTestView->initializeView() ==	0 );
-	// Verify
-	QCOMPARE( VideoListWidgetData::mInitializeCount, 1 );
-	QVERIFY( mTestView->mToolbarViewsActionGroup != 0 );
-	QVERIFY( mTestView->mToolbarCollectionActionGroup != 0 );
-	QCOMPARE( mTestView->mToolbarViewsActionGroup->actions().count(), 3 );
-	QCOMPARE( mTestView->mToolbarCollectionActionGroup->actions().count(), 3 );
-	QCOMPARE( mTestView->toolBar()->actions().count(), 3 );
-	// to my understanding the all videos action should	always be first.
-	QVERIFY( mTestView->mToolbarViewsActionGroup->actions().first()->isChecked()	);
-	QCOMPARE( VideoSortFilterProxyModelData::mSortRole, (int)Qt::DisplayRole );
-	QCOMPARE( VideoSortFilterProxyModelData::mSortOrder, Qt::DescendingOrder );
-	QVERIFY( VideoSortFilterProxyModelData::mSortAsync == false );
+	// Test mUiLoader is null
+    VideoCollectionUiLoader *tmp = mTestView->mUiLoader;
+	mTestView->mUiLoader = 0;
+	QVERIFY( mTestView->initializeView() < 0 );	
 	QVERIFY( mTestView->mVideoServices == 0 );
 	QVERIFY( mTestView->mIsService == false );
-	cleanup();
-	cleanup();
-
-	// Test	command	signal.
-	init(true);
-	videoListWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
-    QVERIFY(videoListWidget);
-	connect( this, SIGNAL(testSignal(int)),	videoListWidget, SIGNAL(command(int)) );
-	QSignalSpy spy(mTestView, SIGNAL(command(int)));
-	emit testSignal(5);
-	QCOMPARE( spy.count(), 1 );
-	QList<QVariant>	arguments =	spy.takeFirst();
-	QCOMPARE( arguments.at(0).toInt(), 5 );
-	disconnect();
-	cleanup();
-
-	init(true);
-	QPointer<QActionGroup> toolbar = mTestView->mToolbarViewsActionGroup;
-	QPointer<QActionGroup> toolbar2 = mTestView->mToolbarCollectionActionGroup;
-
-	// Test	calling	initializeView again.
-	QVERIFY( mTestView->initializeView() ==	0 );
-
-	QVERIFY( toolbar !=	0 );
-	QVERIFY( toolbar2 != 0 );
-	QVERIFY( mTestView->mToolbarViewsActionGroup == toolbar );
-	QVERIFY( mTestView->mToolbarCollectionActionGroup == toolbar2 );
-
-	// Test	view deletion.
-	cleanup();
-	QVERIFY( toolbar ==	0 );
-	QVERIFY( toolbar2 == 0 );
-
-	// Test	get	model failure.
-	init(false);
-	QVERIFY(mTestView);
-	VideoCollectionWrapperData::mGetModelFails	= true;
-	QVERIFY( mTestView->initializeView() < 0 );
-	QVERIFY( mTestView->mToolbarViewsActionGroup	== 0 );
-	QVERIFY( mTestView->mToolbarCollectionActionGroup	== 0 );
-	cleanup();
-
-	// Test	model open failure.
-	init(false);
-	QVERIFY(mTestView);
-	VideoSortFilterProxyModelData::mOpenFails =	true;
-	QVERIFY( mTestView->initializeView() < 0 );
-	QVERIFY( mTestView->mToolbarViewsActionGroup == 0 );
-	QVERIFY( mTestView->mToolbarCollectionActionGroup == 0 );
-	cleanup();
-
-	// Test sorting value load 'failure'.
-	init(false);
-    VideoCollectionViewUtilsData::mSortRole = Qt::DisplayRole;
-    VideoCollectionViewUtilsData::mSortOrder = Qt::DescendingOrder;
-    VideoCollectionViewUtilsData::mLoadSortingValuesFails = true;
-    QVERIFY( mTestView->initializeView() == 0 );
-    QCOMPARE( VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime );
-    QCOMPARE( VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder );
-    QVERIFY( VideoSortFilterProxyModelData::mSortAsync == false );
-    cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// Slot: test create menu
-// ---------------------------------------------------------------------------
-//
-void TestListView::testCreateListMenu()
-{
-	init(false);
-	VideoListWidgetData::mInitializeReturnValue	= -1;
-	QVERIFY( mTestView->initializeView() < 0 );
-	HbMenu*	menu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU);
-	QVERIFY( menu );
-	QCOMPARE( menu->actions().count(), 4 );
-
-	cleanup();
-
-	init(false);
-	VideoListWidgetData::mInitializeReturnValue	= 0;
-	QVERIFY( mTestView->initializeView() ==	0 );
-	menu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU);
-	QVERIFY( menu );
-	QCOMPARE( menu->actions().count(), 4 );
-
-	HbAction* sortAction = dynamic_cast<HbAction*>(menu->actions().at(3));
-	QVERIFY( sortAction	);
-	menu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU);
-	QVERIFY(menu !=	0);
-	QVERIFY( menu->actions().count() ==	4 );
-
-	QVERIFY( mUiLoader->mMenuActions.count() ==	9 );
-	QVERIFY( mTestView->mSortingRoles.count() == 5 );
-
-	cleanup();
+	mTestView->mUiLoader = tmp;
+	
+	// service flag is false and mVideoServices is != 0
+	mTestView->mIsService = false;
+	XQServiceUtilXtra::service = false;
+	mTestView->mVideoServices = VideoServices::instance();
+	QVERIFY( mTestView->initializeView() == 0 );    
+    QVERIFY( mTestView->mVideoServices != 0 );
+    QVERIFY( mTestView->mIsService == false );
+	
+    // servicve flag is true, mVideoServices is 0
+    mTestView->mVideoServices = 0;
+    XQServiceUtilXtra::service = true;
+    QVERIFY( mTestView->initializeView() == 0 );    
+    QVERIFY( mTestView->mVideoServices != 0 );
+    QVERIFY( mTestView->mIsService == true );
+    XQServiceUtilXtra::service = false;
+    
+	cleanup();	
 }
 
 // ---------------------------------------------------------------------------
@@ -345,83 +293,98 @@
 //
 void TestListView::testMenus()
 {
-	init();
+    init();
+    mTestView->activateView(TMPXItemId::InvalidId());
+
+    HbAction* action = 0;
+    QList<QAction*> tbActions = mTestView->toolBar()->actions();
+    QList<QAction*>	tbGroupActions;
+    QList<QAction*>	tbGroupActions2;
 
-	HbAction* action;
-	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 );
+    tbGroupActions = mTestView->mToolbarViewsActionGroup->actions();
+    tbGroupActions2 = mTestView->mToolbarCollectionActionGroup->actions();
+    QCOMPARE( mTestView->mToolbarActions.count(), 5 );
+    QCOMPARE( tbActions.count(), 3 );
+    QCOMPARE( tbGroupActions.count(), 3 );
+    QCOMPARE( tbGroupActions2.count(), 2 );
+    QVERIFY( tbGroupActions.at(0)->isChecked() ); // First is checked.
 
-	// All videos is open for default, verify.
-	QVERIFY(mTestView->mToolbarViewsActionGroup != 0);
-	QVERIFY(mTestView->mToolbarCollectionActionGroup != 0);
-	tbGroupActions = mTestView->mToolbarViewsActionGroup->actions();
-	tbGroupActions2 = mTestView->mToolbarCollectionActionGroup->actions();
-	QVERIFY(mTestView->mToolbarActions.count() == 6);
-	QVERIFY(tbActions.count() == 3);
-	QVERIFY(tbGroupActions.count() == 3);
-	QVERIFY(tbGroupActions2.count() == 3);
-	QVERIFY( tbGroupActions.at(0)->isChecked() ); // First is checked.
-	// visible menu items remains constant after init until
-	// aboutToShowMainMenuSlot is called
-	QVERIFY(visibleMenuActions() == 9);
-	// Verify checkable	and	visible	toolbar	actions.
-	HbAction* allVideosAction =	mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
-	HbAction* collectionsAction	= mTestView->mToolbarActions[VideoListView::ETBActionCollections];
-	HbAction* servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
-	HbAction* addVideosAction =	mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
-	HbAction* removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
-	HbAction* sortVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionSortVideos];
-	QVERIFY( allVideosAction !=	0 && allVideosAction->isCheckable()	&& allVideosAction->isVisible() &&
-			tbActions.at(0) == tbGroupActions.at(0));
-	QVERIFY( collectionsAction != 0	&& collectionsAction->isCheckable()	&& collectionsAction->isVisible() &&
-			tbActions.at(1) == tbGroupActions.at(1));
-	QVERIFY( servicesAction	!= 0 &&	servicesAction->isCheckable() && servicesAction->isVisible() &&
-			tbActions.at(2) == tbGroupActions.at(2));
-	QVERIFY( addVideosAction !=	0 && !addVideosAction->isCheckable() &&
-			tbActions.at(0) != tbGroupActions2.at(0));
-	QVERIFY( removeVideosAction	!= 0 &&	!removeVideosAction->isCheckable() &&
-			tbActions.at(1) != tbGroupActions2.at(1));
-	QVERIFY( sortVideosAction != 0 && !sortVideosAction->isCheckable() &&
-			tbActions.at(2) != tbGroupActions2.at(2));
+    // Verify checkable	and	visible	toolbar	actions.
+    HbAction* allVideosAction =	mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
+    HbAction* collectionsAction	= mTestView->mToolbarActions[VideoListView::ETBActionCollections];
+    HbAction* servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
+    HbAction* addVideosAction =	mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
+    HbAction* removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
+    QVERIFY( allVideosAction !=	0 );
+    QVERIFY( allVideosAction->isCheckable()	);
+    QVERIFY( allVideosAction->isVisible() );
+    QVERIFY( tbActions.at(0) == tbGroupActions.at(0) );
+    
+    QVERIFY( collectionsAction != 0	);
+    QVERIFY( collectionsAction->isCheckable() );
+    QVERIFY( collectionsAction->isVisible() );
+    QVERIFY( tbActions.at(1) == tbGroupActions.at(1) );
+    
+    QVERIFY( servicesAction	!= 0 );
+    QVERIFY( !servicesAction->isCheckable() );
+    QVERIFY( servicesAction->isVisible() );
+    QVERIFY( tbActions.at(2) == tbGroupActions.at(2) );
+    
+    QVERIFY( addVideosAction !=	0 );
+    QVERIFY( !addVideosAction->isCheckable() );
+    QVERIFY( tbActions.at(0) != tbGroupActions2.at(0) );
+    
+    QVERIFY( removeVideosAction	!= 0 );
+    QVERIFY( !removeVideosAction->isCheckable() );
+    QVERIFY( tbActions.at(1) != tbGroupActions2.at(1) );
+
+    // Open	collections.
+    action = dynamic_cast<HbAction*>(tbGroupActions.at(1));
+    QVERIFY( action );
+    action->setChecked(false);
+    action->QAction::trigger();
 
-	// Open	collections.
-	action = dynamic_cast<HbAction*>(tbGroupActions.at(1));
-	QVERIFY(action);
-	action->setChecked(false);
-	action->trigger();
+    // Verify.
+    QVERIFY( mTestView->mToolbarViewsActionGroup );
+    tbGroupActions = mTestView->mToolbarViewsActionGroup->actions();
+    QCOMPARE( mTestView->mToolbarActions.count(), 5 );
+    QCOMPARE( tbGroupActions.count(), 3 );
+    QCOMPARE( tbGroupActions2.count(), 2 );
+    QVERIFY( tbGroupActions.at(1)->isChecked() ); // 2nd is	checked.
 
-	// Verify.
-	QVERIFY(mTestView->mToolbarViewsActionGroup);
-	tbGroupActions = mTestView->mToolbarViewsActionGroup->actions();
-	QVERIFY(mTestView->mToolbarActions.count() == 6);
-	QVERIFY(tbGroupActions.count() == 3);
-	QVERIFY(tbGroupActions2.count() == 3);
-	QVERIFY( tbGroupActions.at(1)->isChecked() ); // 2nd is	checked.
-	// visible menu items remains constant after init until
-	// aboutToShowMainMenuSlot is called
-	QVERIFY(visibleMenuActions() ==	9);
-	// Verify checkable	and	visible	toolbar	actions.
-	allVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
-	collectionsAction =	mTestView->mToolbarActions[VideoListView::ETBActionCollections];
-	servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
-	addVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
-	removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
-	sortVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionSortVideos];
-	QVERIFY( allVideosAction !=	0 && allVideosAction->isCheckable()	&& allVideosAction->isVisible()	&&
-			tbActions.at(0) == tbGroupActions.at(0));
-	QVERIFY( collectionsAction != 0	&& collectionsAction->isCheckable()	&& collectionsAction->isVisible() &&
-			tbActions.at(1) == tbGroupActions.at(1));
-	QVERIFY( servicesAction	!= 0 &&	servicesAction->isCheckable() && servicesAction->isVisible() &&
-			tbActions.at(2) == tbGroupActions.at(2));
-	QVERIFY( addVideosAction !=	0 && !addVideosAction->isCheckable() &&
-			tbActions.at(0) != tbGroupActions2.at(0));
-	QVERIFY( removeVideosAction	!= 0 &&	!removeVideosAction->isCheckable() &&
-			tbActions.at(1) != tbGroupActions2.at(1));
-	QVERIFY( sortVideosAction != 0 && !sortVideosAction->isCheckable() &&
-			tbActions.at(2) != tbGroupActions2.at(2));
+    // Verify checkable	and	visible	toolbar	actions.
+    allVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
+    collectionsAction =	mTestView->mToolbarActions[VideoListView::ETBActionCollections];
+    servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
+    addVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
+    removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
+    QVERIFY( allVideosAction !=	0 );
+    QVERIFY( allVideosAction->isCheckable()	);
+    QVERIFY( allVideosAction->isVisible() );
+    QVERIFY( tbActions.at(0) == tbGroupActions.at(0) );
+    
+    QVERIFY( collectionsAction != 0	);
+    QVERIFY( collectionsAction->isCheckable() );
+    QVERIFY( collectionsAction->isVisible() );
+    QVERIFY( tbActions.at(1) == tbGroupActions.at(1) );
+    
+    QVERIFY( servicesAction	!= 0 );
+    QVERIFY( !servicesAction->isCheckable() );
+    QVERIFY( servicesAction->isVisible() );
+    QVERIFY( tbActions.at(2) == tbGroupActions.at(2) );
+    
+    QVERIFY( addVideosAction !=	0 );
+    QVERIFY( !addVideosAction->isCheckable() );
+    QVERIFY( tbActions.at(0) != tbGroupActions2.at(0) );
+    
+    QVERIFY( removeVideosAction	!= 0 );
+    QVERIFY( !removeVideosAction->isCheckable() );
+    QVERIFY( tbActions.at(1) != tbGroupActions2.at(1) );
 
-	cleanup();
+    cleanup();
 }
 
 // ---------------------------------------------------------------------------
@@ -431,38 +394,36 @@
 void TestListView::testCreateAction()
 {
 	init();
+	mTestView->activateView(TMPXItemId::InvalidId());
 
 	QVERIFY(mTestView->mToolbarViewsActionGroup != 0);
 
 	QList<QAction*>	actions	= mTestView->mToolbarViewsActionGroup->actions();
 	actions.append(mTestView->mToolbarCollectionActionGroup->actions());
-	QVERIFY(actions.count()	== 6);
+	QCOMPARE(actions.count(), 5);
 
 	QCOMPARE( mTestView->toolBar()->actions().count(), 3 );
 
 	HbAction* allVideos	= static_cast<HbAction*>(actions.at(0));
 	QVERIFY( allVideos->isCheckable() );
 	QCOMPARE( allVideos->icon().iconName(),	QString(":/images/qtg_mono_video_all.svg")	);
+	QVERIFY( allVideos->isChecked() );
 
 	HbAction* collections =	static_cast<HbAction*>(actions.at(1));
 	QVERIFY( collections->isCheckable()	);
-	QCOMPARE( collections->icon().iconName(), QString(":/images/qtg_mono_video_collection.svg") );
+	QCOMPARE( collections->icon().iconName(), QString("qtg_mono_video_collection") );
 
 	HbAction* services = static_cast<HbAction*>(actions.at(2));
-	QVERIFY( services->isCheckable() );
-	QCOMPARE( services->icon().iconName(), QString(":/images/qtg_mono_video_services.svg") );
+	QVERIFY( !services->isCheckable() );
+	QCOMPARE( services->icon().iconName(), QString("qtg_mono_ovistore") );
 
 	HbAction* addVideos	= static_cast<HbAction*>(actions.at(3));
 	QVERIFY( !addVideos->isCheckable() );
-	QCOMPARE( addVideos->icon().iconName(),	QString(":/images/mono_video_addvideos.svg") );
+	QCOMPARE( addVideos->icon().iconName(),	QString("qtg_mono_add_to_video_collection") );
 
 	HbAction* removeVideos = static_cast<HbAction*>(actions.at(4));
 	QVERIFY( !removeVideos->isCheckable() );
-	QCOMPARE( removeVideos->icon().iconName(), QString(":/images/mono_video_removevideos.svg") );
-
-	HbAction* sortVideos = static_cast<HbAction*>(actions.at(5));
-	QVERIFY( !sortVideos->isCheckable()	);
-	QCOMPARE( sortVideos->icon().iconName(), QString(":/images/mono_video_sortvideos.svg") );
+	QCOMPARE( removeVideos->icon().iconName(), QString("qtg_mono_remove_from_video_collection") );
 
 	cleanup();
 }
@@ -476,41 +437,113 @@
     VideoListWidget* videoListWidget = 0;
     
 	init();
-
-	videoListWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
-	QVERIFY(videoListWidget);
-	mTestView->mCurrentList = 0;
-
-	QCOMPARE( mTestView->activateView(), -1	);
+	
+	HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0);
+	mainWnd->unsetOrientation(false);
+    mTestView->mCurrentList = 0;
+	HbDocumentLoader::mFindWidgetFails = true;
+	QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), -1	);
     QVERIFY( VideoListWidgetData::mActive == false );
-    QCOMPARE( mTestView->mCurrentList, videoListWidget );
+    QVERIFY( mTestView->mCurrentList == 0 );
     QCOMPARE( VideoListWidgetData::mActivateCount, 0 );
 	QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() == false );
+	QVERIFY( mainWnd->mOrientationSet == false );
 	
+    HbDocumentLoader::mFindWidgetFails = false;
+    videoListWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
+    QVERIFY(videoListWidget);
 	VideoListWidgetData::mActivateReturnValue =	-1;
-
-	QCOMPARE( mTestView->activateView(), -1	);
+	QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), -1	);
 	QVERIFY( VideoListWidgetData::mActive == false );
 	QCOMPARE( VideoListWidgetData::mActivateCount, 1 );
 	QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() == false );
+    QVERIFY( mainWnd->mOrientationSet == false );
 
 	VideoListWidgetData::mActivateReturnValue =	0;
-	
-	QCOMPARE( mTestView->activateView(), 0 );
+	QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), 0 );
 	QVERIFY( VideoListWidgetData::mActive );
 	QCOMPARE( VideoListWidgetData::mActivateCount, 2 );
 	QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() );
+    QVERIFY( mainWnd->mOrientationSet );
+    QCOMPARE( mainWnd->mOrientation, Qt::Vertical );
 
-	QCOMPARE( mTestView->activateView(), 0 );
+	QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), 0 );
 	QVERIFY( VideoListWidgetData::mActive );
 	QCOMPARE( VideoListWidgetData::mActivateCount, 3 );
 	QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() );
+    QVERIFY( mainWnd->mOrientationSet );
+    QCOMPARE( mainWnd->mOrientation, Qt::Vertical );
+    
+    cleanup();
 
-	cleanup();
+    // activate view:
+    // -browse service
+    // -captured category
+    TMPXItemId itemId = TMPXItemId::InvalidId();
+    init();
+    VideoListWidgetData::reset();
+    VideoSortFilterProxyModelData::reset();
+    itemId.iId1 = KVcxMvcCategoryIdCaptured;
+    itemId.iId2 = KVcxMvcMediaTypeCategory;
+    QCOMPARE(mTestView->activateView(itemId), 0);
+    QVERIFY(VideoListWidgetData::mActive);
+    QCOMPARE(VideoListWidgetData::mActivateCount, 1);
+    QCOMPARE(mTestView->mCollectionName, hbTrId("txt_videos_dblist_captured"));
+    QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelDefaultColl);
+    QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, itemId);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder);
+    cleanup();
+    
+    // activate view:
+    // -browse service
+    // -downloaded category
+    init();
+    VideoListWidgetData::reset();
+    VideoSortFilterProxyModelData::reset();
+    itemId.iId1 = KVcxMvcCategoryIdDownloads;
+    itemId.iId2 = KVcxMvcMediaTypeCategory;
+    QCOMPARE(mTestView->activateView(itemId), 0);
+    QVERIFY(VideoListWidgetData::mActive);
+    QCOMPARE(VideoListWidgetData::mActivateCount, 1);
+    QCOMPARE(mTestView->mCollectionName, hbTrId("txt_videos_dblist_downloaded"));
+    QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelDefaultColl);
+    QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, itemId);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder);
+    cleanup();
+
+    // activate view:
+    // -browse service
+    // -other category
+    init();
+    VideoListWidgetData::reset();
+    VideoSortFilterProxyModelData::reset();
+    itemId.iId1 = KVcxMvcCategoryIdOther;
+    itemId.iId2 = KVcxMvcMediaTypeCategory;
+    QCOMPARE(mTestView->activateView(itemId), 0);
+    QVERIFY(VideoListWidgetData::mActive);
+    QCOMPARE(VideoListWidgetData::mActivateCount, 1);
+    QCOMPARE(mTestView->mCollectionName.length(), 0);
+    QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos);
+    QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, TMPXItemId::InvalidId());
+    cleanup();
+
+    // activate view:
+    // -browse service
+    // -invalid category but item id is ok
+    init();
+    VideoListWidgetData::reset();
+    VideoSortFilterProxyModelData::reset();
+    itemId.iId1 = 0;
+    itemId.iId2 = KVcxMvcMediaTypeVideo;
+    QCOMPARE(mTestView->activateView(itemId), 0);
+    QVERIFY(VideoListWidgetData::mActive);
+    QCOMPARE(VideoListWidgetData::mActivateCount, 1);
+    QCOMPARE(mTestView->mCollectionName.length(), 0);
+    QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos);
+    QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, TMPXItemId::InvalidId());
+    cleanup();
 }
 
 // ---------------------------------------------------------------------------
@@ -523,27 +556,34 @@
 
     init();
 
+    HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0);
+
     videoListWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
     QVERIFY(videoListWidget);
     mTestView->mCurrentList = 0;
-
-	mTestView->deactivateView();
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isVisible() == false );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() == false );
-	QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
+    mainWnd->mOrientationSet = true;
 
 	mTestView->deactivateView();
 	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isVisible() == false );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() == false );
+	QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
+    QVERIFY( mainWnd->mOrientationSet == false );
+    
+    mTestView->mCurrentList = videoListWidget;
+    mainWnd->mOrientationSet = true;
+    
+	mTestView->deactivateView();
+	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isVisible() == false );
 	QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 );
+    QVERIFY( mainWnd->mOrientationSet == false );
 
 	VideoListWidgetData::mActivateReturnValue =	0;
-	mTestView->activateView();
+    mainWnd->mOrientationSet = true;
+	mTestView->activateView(TMPXItemId::InvalidId());
 	mTestView->deactivateView();
 	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isVisible() == false );
-	QVERIFY( mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->isEnabled() == false );
 	QCOMPARE( VideoListWidgetData::mActivateCount, 1 );
 	QCOMPARE( VideoListWidgetData::mDeactivateCount, 2 );
+    QVERIFY( mainWnd->mOrientationSet == false );
 
 	cleanup();
 }
@@ -571,43 +611,32 @@
     HbGroupBox *subLabel = 0;
     
 	init();
+	mTestView->activateView(TMPXItemId::InvalidId());
 	
     videoListWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
-    QVERIFY(videoListWidget);
-    subLabel = mUiLoader->findWidget<HbGroupBox>(DOCML_NAME_VC_HEADINGBANNER);
-    QVERIFY(subLabel);
+    QVERIFY( videoListWidget );
 
 	QList<QAction*>	actions	= mTestView->mToolbarViewsActionGroup->actions();
 	HbAction* action = static_cast<HbAction*>(actions.at(0));
 	
-	videoListWidget->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
-	subLabel->setHeading("invalid");
-	
 	// action wont emit	if it's	already	checked.
 	action->setChecked(false);
 	action->trigger();
-	QCOMPARE( mTestView->mCurrentList->mCurrentLevel, VideoCollectionCommon::ELevelVideos );
-    QVERIFY( VideoListWidgetData::mActive == true );
-    QCOMPARE( VideoListWidgetData::mActivateCount, 1 );
-    QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
-    QCOMPARE( subLabel->heading(), tr("txt_videos_subtitle_ln_videos" ));
-	QCOMPARE(mTestView->mCurrentList, videoListWidget);
+	QCOMPARE( mTestView->mCurrentList, videoListWidget );
 
-	mTestView->activateView();
-	
-	VideoListWidgetData::mActivateCount = 0;
-	mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
-    subLabel->setHeading("invalid");
+	mTestView->mCurrentList = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);
+	QVERIFY( mTestView->mCurrentList );
+    VideoListWidgetData::mActivateCount = 0;
+	videoListWidget->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
     
     // action wont emit	if it's	already	checked.
 	action->setChecked(false);
 	action->trigger();
+    QCOMPARE( mTestView->mCurrentList, videoListWidget );
     QCOMPARE( mTestView->mCurrentList->mCurrentLevel, VideoCollectionCommon::ELevelVideos );
     QVERIFY( VideoListWidgetData::mActive == true );
 	QCOMPARE( VideoListWidgetData::mActivateCount, 1 );
-	QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
-    QCOMPARE( subLabel->heading(), tr("txt_videos_subtitle_ln_videos" ));
-    QCOMPARE(mTestView->mCurrentList, videoListWidget);
+	QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 );
 
 	cleanup();
 }
@@ -622,43 +651,33 @@
     HbGroupBox *subLabel = 0;
 
     init();
+    mTestView->activateView(TMPXItemId::InvalidId());
 
 	QList<QAction*>	actions	= mTestView->mToolbarViewsActionGroup->actions();
 	HbAction* action = static_cast<HbAction*>(actions.at(1));
 
 	collectionWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);
     QVERIFY(collectionWidget);
-    subLabel = mUiLoader->findWidget<HbGroupBox>(DOCML_NAME_VC_HEADINGBANNER);
-    QVERIFY(subLabel);
-
-	mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
-    subLabel->setHeading("invalid");
 
 	// action wont emit	if it's	already	checked.
 	action->setChecked(false);
 	action->trigger();
-    QCOMPARE( mTestView->mCurrentList->mCurrentLevel, VideoCollectionCommon::ELevelCategory );
-    QVERIFY( VideoListWidgetData::mActive == true );
-    QCOMPARE( VideoListWidgetData::mActivateCount, 1 );
-    QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
-    QCOMPARE( subLabel->heading(), tr("txt_videos_subtitle_l1_collections" ));
     QCOMPARE(mTestView->mCurrentList, collectionWidget);
 
-	mTestView->activateView();
-
+    mTestView->mCurrentList = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
+    QVERIFY( mTestView->mCurrentList );
     VideoListWidgetData::mActivateCount = 0;
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
-    subLabel->setHeading("invalid");
+    VideoListWidgetData::mDeactivateCount = 0;
+    collectionWidget->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
     
     // action wont emit	if it's	already	checked.
 	action->setChecked(false);
 	action->trigger();
+    QCOMPARE(mTestView->mCurrentList, collectionWidget);
     QCOMPARE( mTestView->mCurrentList->mCurrentLevel, VideoCollectionCommon::ELevelCategory );
     QVERIFY( VideoListWidgetData::mActive == true );
     QCOMPARE( VideoListWidgetData::mActivateCount, 1 );
-    QCOMPARE( VideoListWidgetData::mDeactivateCount, 0 );
-    QCOMPARE( subLabel->heading(), tr("txt_videos_subtitle_l1_collections" ));
-    QCOMPARE(mTestView->mCurrentList, collectionWidget);
+    QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 );
 
 	cleanup();
 }
@@ -668,16 +687,7 @@
 //
 void TestListView::testOpenServicesViewSlot()
 {
-	init();
-
-	QList<QAction*>	actions	= mTestView->mToolbarViewsActionGroup->actions();
-	HbAction* action = static_cast<HbAction*>(actions.at(2));
-
-	// action wont emit	if it's	already	checked.
-	action->setChecked(false);
-	action->trigger();
-	
-	cleanup();
+    QFAIL("Feature not yet implemented!");
 }
 
 // ---------------------------------------------------------------------------
@@ -687,36 +697,8 @@
 void TestListView::testStartSortingSlot()
 {
 	HbAction *action(0);
-
-	// Active action is	not	sort by.
-	init(true);
-	action = mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionDelete];
-	QVERIFY(action != 0);
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->setActiveAction(action);
-	connect(this, SIGNAL(testSignal(int)), mTestView, SLOT(startSorting()));
-	emit testSignal(0);
-	QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 0);
-	QCOMPARE(VideoSortFilterProxyModelData::mSortRole, -1);
-	cleanup();
-
-	// Sort	by action has no menu.
-	init(true);
-
-	// Change sort by action to	delete action which	has	no menu.
-	HbAction *sortByAction = mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortBy];
-	HbAction *deleteAction = mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionDelete];
-	mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortBy] =	deleteAction;
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->setActiveAction(deleteAction);
-
-	connect(this, SIGNAL(testSignal(int)), mTestView, SLOT(startSorting()));
-	emit testSignal(0);
-    QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 0);
-    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, -1);
-
-	// Change the action back.
-	mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortBy] =	sortByAction;
-
-	cleanup();
+	HbMenu *sortMenu(0);
+	HbAction *sortMenuAction = new HbAction("test");
 
 	// View	is not initialized.
 	init(false);
@@ -726,19 +708,53 @@
     QCOMPARE(VideoSortFilterProxyModelData::mSortRole, -1);
 	cleanup();
 
-	// Good	case.
+    // View is not activated.
+    init();
+    connect(this, SIGNAL(testSignal(int)), mTestView, SLOT(startSorting()));
+    emit testSignal(0);
+    QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 0);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, -1);
+    cleanup();
+
+    // Active action is not sort by.
+    init();
+    mTestView->activateView(TMPXItemId::InvalidId());
+    action = mUiLoader->findObject<HbAction>(DOCML_NAME_DELETE_MULTIPLE);
+    QVERIFY(action != 0);
+    mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->setActiveAction(action);
+    sortMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_SORT_MENU);
+    sortMenuAction->setMenu(sortMenu);
+    HbMenuData::mMenuAction = sortMenuAction;
+    connect(this, SIGNAL(testSignal(int)), mTestView, SLOT(startSorting()));
+    emit testSignal(0);
+    QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 0);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, -1);
+    cleanup();
+
+	// Good	cases.
 	init();
-	action = mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortBy];
+    mTestView->activateView(TMPXItemId::InvalidId());
+    sortMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_SORT_MENU);
+    sortMenuAction->setMenu(sortMenu);
+    HbMenuData::mMenuAction = sortMenuAction;
+    VideoSortFilterProxyModel& model = mTestView->mCurrentList->getModel();
 	QVERIFY(action != 0);
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->setActiveAction(action);
-	HbAction* sortAction = mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortByName];
+	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->setActiveAction(sortMenuAction);
+	HbAction* sortAction = mUiLoader->findObject<HbAction>(DOCML_NAME_SORT_BY_NAME);
 	QVERIFY(sortAction != 0);
-	action->menu()->setActiveAction(sortAction);
+	sortMenu->setActiveAction(sortAction);
+	model.setSortRole(1);
+	connect(this, SIGNAL(testObjectReadySignal(QObject*, const QString)), mTestView, SLOT(objectReadySlot(QObject*, const QString)));
+	emit testObjectReadySignal(mUiLoader->findObject<QObject>(DOCML_NAME_SORT_BY_DATE), DOCML_NAME_SORT_BY_DATE);
+    emit testObjectReadySignal(mUiLoader->findObject<QObject>(DOCML_NAME_SORT_BY_NAME), DOCML_NAME_SORT_BY_NAME);
+    emit testObjectReadySignal(mUiLoader->findObject<QObject>(DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS), DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS);
+    emit testObjectReadySignal(mUiLoader->findObject<QObject>(DOCML_NAME_SORT_BY_SIZE), DOCML_NAME_SORT_BY_SIZE);
+    disconnect(this, SIGNAL(testObjectReadySignal(QObject*, const QString)), mTestView, SLOT(objectReadySlot(QObject*, const QString)));
 
 	connect(this, SIGNAL(testSignal(int)), mTestView, SLOT(startSorting()));
 	emit testSignal(0);
 	QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 1);
-	QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)Qt::DisplayRole);
+	QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyTitle);
 	QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder);
     QVERIFY(VideoSortFilterProxyModelData::mSortAsync);
 
@@ -746,25 +762,25 @@
     // descending order.
     emit testSignal(0);
     QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 2);
-    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)Qt::DisplayRole);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyTitle);
     QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::DescendingOrder);
     QVERIFY(VideoSortFilterProxyModelData::mSortAsync);
 
     // on third emit, sorting should be switched back to ascending
     emit testSignal(0);
     QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 3);
-    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)Qt::DisplayRole);
+    QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyTitle);
     QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder);
     QVERIFY(VideoSortFilterProxyModelData::mSortAsync);
 
     // test that after changing the sort role, the order is also switched to ascending.
-    VideoSortFilterProxyModelData::mSortOrder = Qt::DescendingOrder;
-    sortAction = mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortByDate];
+    model.doSorting(model.sortRole(), Qt::DescendingOrder);
+    sortAction = mUiLoader->findObject<HbAction>(DOCML_NAME_SORT_BY_DATE);
     QVERIFY(sortAction != 0);
-    action->menu()->setActiveAction(sortAction);
+    sortMenu->setActiveAction(sortAction);
 
     emit testSignal(0);
-    QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 4);
+    QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 5);
     QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime);
     QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder);
     QVERIFY(VideoSortFilterProxyModelData::mSortAsync);
@@ -811,64 +827,38 @@
     init();
     connect( this, SIGNAL(testSignal()), mTestView, SLOT(deleteItemsSlot()) );
     ////////////
-    // no model
+    // no current list
     ////////////
     emit testSignal();
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionLaunchCount == 0);
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionItemSelectionCount == 0);
-
-    cleanup();
-    init();
-    connect( this, SIGNAL(testSignal()), mTestView, SLOT(deleteItemsSlot()) );
-
-    ////////////
-    // no selection dialog
-    ////////////
-    emit testSignal();
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionLaunchCount == 1);
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionItemSelectionCount == 0);
-
-    cleanup();
-    init();
-    connect( this, SIGNAL(testSignal()), mTestView, SLOT(deleteItemsSlot()) );
-
+    QCOMPARE(VideoListSelectionDialogData::mMultiSelectionLaunchCount, 0);
+    
+    mTestView->activateView(TMPXItemId::InvalidId());
+    
     ////////////
     // dialog loading fails
     ////////////
     VideoCollectionUiLoaderData::mFailDialogLoad = true;
     emit testSignal();
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionLaunchCount == 0);
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionItemSelectionCount == 0);
-    VideoCollectionUiLoaderData::mFailDialogLoad = false;
-    //////////
-    // document loader deletes all objects in case of error, so we cannot cleanup all
-    disconnect();
-    ///////////////
-    init();
-    connect( this, SIGNAL(testSignal()), mTestView, SLOT(deleteItemsSlot()) );
+    QCOMPARE(VideoListSelectionDialogData::mMultiSelectionLaunchCount, 0);
 
     ////////////
     // selection dialog exists
     ////////////
-    emit testSignal();
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionLaunchCount == 1);
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionItemSelectionCount == 0);
+    VideoCollectionUiLoaderData::mFailDialogLoad = false;
+    VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId(2, 3);
     emit testSignal();
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionLaunchCount == 2);
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionItemSelectionCount == 0);
-
-    cleanup();
-    init();
-    connect( this, SIGNAL(testSignal()), mTestView, SLOT(deleteItemsSlot()) );
-
+    QCOMPARE(VideoListSelectionDialogData::mMultiSelectionLaunchCount, 1);
+    QCOMPARE(VideoListSelectionDialogData::mSelectionType, (int)VideoListSelectionDialog::EDeleteVideos);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == VideoSortFilterProxyModelData::mOpenedItemId);
+    
     ////////////
-    // exec returns primary key (just for the coverity's sake)
+    // test second successful activation.
     ////////////
-    VideoListSelectionDialogData::mExecReturnPrimary = true;
-    VideoListSelectionDialogData::mSelectionCount = 5;
+    VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId(3, 2);
     emit testSignal();
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionLaunchCount == 1);
-    QVERIFY(VideoListSelectionDialogData::mMultiSelectionItemSelectionCount == 5);
+    QCOMPARE(VideoListSelectionDialogData::mMultiSelectionLaunchCount, 2);
+    QCOMPARE(VideoListSelectionDialogData::mSelectionType, (int)VideoListSelectionDialog::EDeleteVideos);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == VideoSortFilterProxyModelData::mOpenedItemId);
 
     cleanup();
 }
@@ -879,14 +869,10 @@
 //
 void TestListView::testAboutToShowMainMenuSlot()
 {
-	// All ok.
-	init();
-	setRowCount(1);
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
-	QVERIFY(visibleMenuActions() ==	6);
-	cleanup();
+    XQServiceUtilXtra *serviceUtil = XQServiceUtilXtra::instance();
+    VideoServices *videoServices = VideoServices::instance();
 
-	// View	is not initialized.
+    // View	is not initialized.
 	init(false);
 	connect( this, SIGNAL(testSignal(int)),	mTestView, SLOT(aboutToShowMainMenuSlot()) );
 	emit testSignal(0);
@@ -896,133 +882,112 @@
 
 	// Collections is triggered	from toolbar.
 	init();
+	connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+	mTestView->activateView(TMPXItemId::InvalidId());
 	setRowCount(1);
 	action = mTestView->mToolbarActions[VideoListView::ETBActionCollections];
 	QVERIFY(action != 0);
 	action->setChecked(false);
 	action->trigger();
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
+	emit testSignal();
 	int visible = visibleMenuActions();
-	QCOMPARE(visible,	5);
+	QCOMPARE(visible, 3);
 	cleanup();
 
 	// All videos is triggered from	toolbar.
 	init();
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    mTestView->activateView(TMPXItemId::InvalidId());
     setRowCount(1);
 	action = mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
 	QVERIFY(action != 0);
 	action->setChecked(false);
 	action->trigger();
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
+    emit testSignal();
 	visible = visibleMenuActions();
-	QCOMPARE(visible,	6);
-	cleanup();
-
-	// Services	is triggered from toolbar.
-	init();
-	setRowCount(1);
-	action = mTestView->mToolbarActions[VideoListView::ETBActionServices];
-	QVERIFY(action != 0);
-	action->setChecked(false);
-	action->trigger();
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
-	visible = visibleMenuActions();
-	QCOMPARE(visible,	0);
+	QCOMPARE(visible, 5);
 	cleanup();
 
 	// Add videos action is	visible.
 	init();
-    mTestView->activateView();
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    mTestView->activateView(TMPXItemId::InvalidId());
 	mTestView->toolBar()->clearActions();
 	mTestView->toolBar()->addActions( mTestView->mToolbarCollectionActionGroup->actions() );
 	setRowCount(1);
 	QVERIFY(action != 0);
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
+    emit testSignal();
 	visible = visibleMenuActions();
-	QCOMPARE(visible,	1);
-	cleanup();
-
-	// Menu	action is null
-	init();
-    setRowCount(1);
-	action = mUiLoader->mMenuActions.take(VideoCollectionUiLoader::EActionSortBy);
-	delete action;
-	action = NULL;
-	mUiLoader->mMenuActions[VideoCollectionUiLoader::EActionSortBy] =	action;
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
-	visible = visibleMenuActions();
-	QCOMPARE(visible,	0);
-	cleanup();
-
-	// No menu actions.
-	init();
-	setRowCount(1);
-	QMap<VideoCollectionUiLoader::ActionIds, HbAction*> backupActions =
-		QMap<VideoCollectionUiLoader::ActionIds, HbAction*>(mUiLoader->mMenuActions);
-	mUiLoader->mMenuActions.clear();
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
-	mUiLoader->mMenuActions.unite(backupActions);
+	QCOMPARE(visible, 4);
 	cleanup();
 
 	// Model has no	items.
 	init();
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    mTestView->activateView(TMPXItemId::InvalidId());
 	setRowCount(0);
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
+    emit testSignal();
 	visible = visibleMenuActions();
-	QCOMPARE(visible,	0);
+	QCOMPARE(visible, 0);
 	cleanup();
 
 	// Toolbar action group	is null
 	init();
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    mTestView->activateView(TMPXItemId::InvalidId());
 	setRowCount(1);
 	QActionGroup* actionGroup =	mTestView->mToolbarViewsActionGroup;
 	mTestView->mToolbarViewsActionGroup = NULL;
-	mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->show();
+    emit testSignal();
 	mTestView->mToolbarViewsActionGroup = actionGroup;
 	cleanup();
-}
-
-// ---------------------------------------------------------------------------
-// testOpenSortByMenuSlot
-// ---------------------------------------------------------------------------
-//
-void TestListView::testOpenSortByMenuSlot()
-{
-    HbMenu *optionsMenu = 0;
-    HbMenu *sortMenu = 0;
-
-    // All ok.
-    init();
-    sortMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_SORT_MENU);
-    connect( this, SIGNAL(testSignal(int)), mTestView, SLOT(openSortByMenuSlot()) );
-    setRowCount(1);
-    mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->hide();
-    emit testSignal(0);
-    // sorting menu should be visible
-    QVERIFY(visibleMenuActions() == 4);
+	
+	// about to show main menu:
+	// -is service
+	// -current service is browse
+	// -no current list
+    serviceUtil->setCurrentService(true);
+    videoServices->mCurrentService = VideoServices::EBrowse;
+    init(true);
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    emit testSignal();
+    visible = visibleMenuActions();
+    QCOMPARE(visible, 0);
     cleanup();
 
-    // View is not initialized.
-    init(false);
-    sortMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_SORT_MENU);
-    optionsMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU);
-    connect( this, SIGNAL(testSignal(int)), mTestView, SLOT(openSortByMenuSlot()) );
-    setRowCount(1);
-    optionsMenu->hide();
-    emit testSignal(0);
-    QCOMPARE(visibleMenuActions(),   0);
+    // about to show main menu:
+    // -is service
+    // -current service is browse
+    // -no items
+    serviceUtil->setCurrentService(true);
+    videoServices->mCurrentService = VideoServices::EBrowse;
+    init(true);
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    mTestView->activateView(TMPXItemId::InvalidId());
+    emit testSignal();
+    visible = visibleMenuActions();
+    QCOMPARE(visible, 0);
     cleanup();
 
-    // no items
-    init();
-    sortMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_SORT_MENU);
-    optionsMenu = mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU);
-    connect( this, SIGNAL(testSignal(int)), mTestView, SLOT(openSortByMenuSlot()) );
-    setRowCount(0);
-    mUiLoader->findWidget<HbMenu>(DOCML_NAME_OPTIONS_MENU)->hide();
-    emit testSignal(0);
-    QCOMPARE(visibleMenuActions(),   0);
-    cleanup();
+    // about to show main menu:
+    // -is service
+    // -current service is browse
+    serviceUtil->setCurrentService(true);
+    videoServices->mCurrentService = VideoServices::EBrowse;
+	init(true);
+	connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot()));
+    mTestView->activateView(TMPXItemId::InvalidId());
+    setRowCount(3, &mTestView->mCurrentList->getModel());
+    emit testSignal();
+    QVERIFY(isActionVisible(DOCML_NAME_DELETE_MULTIPLE));
+    QVERIFY(isActionVisible(DOCML_NAME_SORT_BY_DATE));
+    QVERIFY(isActionVisible(DOCML_NAME_SORT_BY_NAME));
+    QVERIFY(isActionVisible(DOCML_NAME_SORT_BY_SIZE));
+	cleanup();
+
+	// final cleanup
+    serviceUtil->decreaseReferenceCount();
+    videoServices->decreaseReferenceCount();
 }
 
 // ---------------------------------------------------------------------------
@@ -1077,100 +1042,67 @@
 //
 void TestListView::testCollectionOpenedSlot()
 {
-	HbAction* removeVideosAction;
-	HbAction* allVideosAction;
-	HbAction* collectionsAction;
-	HbAction* servicesAction;
-	HbAction* addVideosAction;
-	HbAction* sortVideosAction;
-
 	QString testString;
 
 	// View	is not initialized.
 	init(false);
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&)),	mTestView, SLOT(collectionOpenedSlot(bool, const QString&)));
-	emit testCollectionOpenedSignal(false, testString);
+	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&)),	mTestView, SLOT(collectionOpenedSlot(bool, const QString&)));
-	emit testCollectionOpenedSignal(true, testString);
+	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();
 
-	// One of the toolbar actions is null.
+	// index is invalid
+	init();
+	cleanup();
+	
+	// current list is null
 	init();
-	removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
-	mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos] = NULL;
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&)),	mTestView, SLOT(collectionOpenedSlot(bool, const QString&)));
-	emit testCollectionOpenedSignal(true, testString);
-	// Verify checkable	and	visible	toolbar	actions.
-	mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos] = removeVideosAction;
-	allVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
-	collectionsAction =	mTestView->mToolbarActions[VideoListView::ETBActionCollections];
-	servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
-	addVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
-	sortVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionSortVideos];
-	// Remove videos is	not	checked	because	it was used	as null	action.
-	QCOMPARE( mTestView->mCollectionName, testString );
-	QCOMPARE( mTestView->toolBar()->actions().count(), 3 );
-	QVERIFY( allVideosAction !=	0 && allVideosAction->isCheckable());
-	QVERIFY( collectionsAction != 0	&& collectionsAction->isCheckable());
-	QVERIFY( servicesAction	!= 0 &&	servicesAction->isCheckable());
-	QVERIFY( addVideosAction !=	0 && !addVideosAction->isCheckable() );
-	QVERIFY( sortVideosAction != 0 && !sortVideosAction->isCheckable() );
+	cleanup();
+	
+	// current list is collectioncontentwidget
+	init();
 	cleanup();
-
-
+	
+	// index is for video item and not for collection.
+	init();
+	cleanup();
+	
+	// non-error cases:
 	testString = "Test text string";
 
-	// Collection opened.
+	// Collection opened with default collection.
 	init();
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&)),	mTestView, SLOT(collectionOpenedSlot(bool, const QString&)));
-	emit testCollectionOpenedSignal(true, testString);
+    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.
-	allVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
-	collectionsAction =	mTestView->mToolbarActions[VideoListView::ETBActionCollections];
-	servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
-	addVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
-	removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
-	sortVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionSortVideos];
-	QCOMPARE(mTestView->mCollectionName, testString);
-	QCOMPARE( mTestView->toolBar()->actions().count(), 3 );
-	QVERIFY( allVideosAction !=	0 && allVideosAction->isCheckable());
-	QVERIFY( collectionsAction != 0	&& collectionsAction->isCheckable());
-	QVERIFY( servicesAction	!= 0 &&	servicesAction->isCheckable());
-	QVERIFY( addVideosAction !=	0 && !addVideosAction->isCheckable() );
-	QVERIFY( removeVideosAction	!= 0 &&	!removeVideosAction->isCheckable() );
-	QVERIFY( sortVideosAction != 0 && !sortVideosAction->isCheckable() );
 	cleanup();
-
-	testString = "Test text string 2";
-
-	// Collection not opened.
+	
+	// Collection opened with userdefined album.
 	init();
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&)),	mTestView, SLOT(collectionOpenedSlot(bool, const QString&)));
-	emit testCollectionOpenedSignal(false, testString);
-	// Verify checkable	and	visible	toolbar	actions.
-	allVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAllVideos];
-	collectionsAction =	mTestView->mToolbarActions[VideoListView::ETBActionCollections];
-	servicesAction = mTestView->mToolbarActions[VideoListView::ETBActionServices];
-	addVideosAction	= mTestView->mToolbarActions[VideoListView::ETBActionAddVideos];
-	removeVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos];
-	sortVideosAction = mTestView->mToolbarActions[VideoListView::ETBActionSortVideos];
-	QCOMPARE(mTestView->mCollectionName, testString);
-	QCOMPARE( mTestView->toolBar()->actions().count(), 3 );
-	QVERIFY( allVideosAction !=	0 && allVideosAction->isCheckable());
-	QVERIFY( collectionsAction != 0	&& collectionsAction->isCheckable());
-	QVERIFY( servicesAction	!= 0 &&	servicesAction->isCheckable());
-	QVERIFY( addVideosAction !=	0 && !addVideosAction->isCheckable() );
-	QVERIFY( removeVideosAction	!= 0 &&	!removeVideosAction->isCheckable() );
-	QVERIFY( sortVideosAction != 0 && !sortVideosAction->isCheckable() );
+	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());
 	cleanup();
 }
 
@@ -1183,62 +1115,34 @@
 	init(true);
     setRowCount(1);
 	connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot()));
-	connect(this, SIGNAL(testCollectionOpenedSignal(bool, const QString&)), mTestView, SLOT(collectionOpenedSlot(bool, const QString&)));
+	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);   
     VideoListWidget *collectionContentWidget = mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET);   
 	
+    videoListWidget->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
+    collectionWidget->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
+    collectionContentWidget->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
+    
+    HbGroupBox* label = mUiLoader->findWidget<HbGroupBox>(DOCML_NAME_VC_HEADINGBANNER);
+    
 	mTestView->mCurrentList = videoListWidget; 
-	mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
 	emit testLayoutChangedSignal();
-	HbGroupBox* label = mUiLoader->findWidget<HbGroupBox>(DOCML_NAME_VC_HEADINGBANNER);
-	QString returnString = label->heading();
-	QString expectedString = "txt_videos_subtitle_ln_videos";
-	QCOMPARE(returnString, expectedString);
-
-    mTestView->mCurrentList = 0; 
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
-	emit testLayoutChangedSignal();
-	returnString = label->heading();
-	expectedString = "txt_videos_subtitle_ln_videos";
-	QCOMPARE(returnString, expectedString);
+	QCOMPARE( label->heading(), QString("txt_videos_subtitle_ln_videos") );
 
     mTestView->mCurrentList = collectionWidget; 
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
 	emit testLayoutChangedSignal();
-	returnString = label->heading();
-	expectedString = "txt_videos_subtitle_l1_collections";
-	QCOMPARE(returnString, expectedString);
-
-    mTestView->mCurrentList = 0; 
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
-	emit testLayoutChangedSignal();
-	returnString = label->heading();
-	expectedString = "txt_videos_subtitle_l1_collections";
-	QCOMPARE(returnString, expectedString);
+    QCOMPARE( label->heading(), QString("txt_videos_subtitle_ln_collections") );
 
     mTestView->mCurrentList = collectionContentWidget; 
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
 	emit testLayoutChangedSignal();
-	returnString = label->heading();
-	expectedString = "txt_videos_subtitle_1_l2";
-	QCOMPARE(returnString, expectedString);
+    QCOMPARE( label->heading(), QString("txt_videos_subtitle_1_l2") );
 
-    mTestView->mCurrentList = 0; 
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelVideos;
-	expectedString = "txt_videos_subtitle_1_l2";
-	emit testLayoutChangedSignal();
-	returnString = label->heading();
-	QCOMPARE(returnString, expectedString);
+    // how to test the collection name?
 	
-    mTestView->mCurrentList = collectionContentWidget; 
-    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
-	emit testCollectionOpenedSignal(true, QString("NAME"));
-	emit testLayoutChangedSignal();
-	returnString = label->heading();
-	expectedString = "txt_videos_subtitle_1_l2";
-	QCOMPARE(returnString, expectedString);
+	cleanup();
 }
 
 // ---------------------------------------------------------------------------
@@ -1247,28 +1151,521 @@
 //
 void TestListView::testShowHint()
 {
-    VideoHintWidget *hintWidget = 0;
-    
     init(true);
     connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot()));
+    mTestView->mModelReady = true;
     
-    setRowCount(1);    
-    hintWidget = mUiLoader->findWidget<VideoHintWidget>(DOCML_NAME_VC_VIDEOHINTWIDGET);    
+    // current list is null. (cannot be verified, run for coverity    
+    emit testLayoutChangedSignal();   
+    mTestView->activateView(TMPXItemId::InvalidId());
+  
+    // hint widget cannot be loaded. (cannot be tested, run for coverity)
+    VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_VC_VIDEOHINTWIDGET);
+    emit testLayoutChangedSignal();
+    VideoCollectionUiLoaderData::mFindFailureNameList.clear();
+    
+    VideoHintWidget *hintWidget = mUiLoader->findWidget<VideoHintWidget>(DOCML_NAME_VC_VIDEOHINTWIDGET);    
+    
+    /////
+    // hint widget showing
+    // model not ready (need to use another slot for this)
     mTestView->mModelReady = false;
-    hintWidget->setVisible(true);    
+    mTestView->mCurrentList =  mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_COLLECTIONWIDGET);
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(openAllVideosViewSlot()));
+    emit testSignal();
+    QVERIFY(hintWidget->isVisible() == false );
+    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(openAllVideosViewSlot()));
+    
+    // model ready, row count not zero
+    mTestView->mModelReady = true;
+    setRowCount(1);
+    emit testLayoutChangedSignal();    
+    QVERIFY(hintWidget->isVisible() == false );
+    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+
+    // model ready, row count is zero
+    setRowCount(0);
+    emit testLayoutChangedSignal();    
+    QVERIFY(hintWidget->isVisible() == true );
+    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+
+    // model ready, row count is zero show to be false
+    connect(this, SIGNAL(testSignal()), mTestView, SLOT(openCollectionViewSlot()));
+    emit testSignal();
+    QVERIFY(hintWidget->isVisible() == false );
+    QVERIFY(VideoHintWidgetData::mSettedButtonShowLevel);
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(openCollectionViewSlot()));
+   
+    mTestView->mCurrentList =  mUiLoader->findWidget<VideoListWidget>(DOCML_NAME_VC_VIDEOLISTWIDGET);
+    
+    ////////
+    // toolbar setup
+    mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->setVisible(true);
+    mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->setVisible(true);
+    // mToolbarViewsActionGroup is null
+    QActionGroup *tmp = mTestView->mToolbarViewsActionGroup;
+    mTestView->mToolbarViewsActionGroup = 0;
+    emit testLayoutChangedSignal();    
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible());
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->isVisible());
+    mTestView->mToolbarViewsActionGroup = tmp;
+    
+    //  mToolbarCollectionActionGroup is null
+    tmp = mTestView->mToolbarCollectionActionGroup;
+    mTestView->mToolbarCollectionActionGroup = 0;
+    emit testLayoutChangedSignal();    
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible());
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->isVisible());
+    mTestView->mToolbarCollectionActionGroup = tmp;
+    
+    // mIsService is true
+    mTestView->mIsService = true;
+    emit testLayoutChangedSignal();    
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible());
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->isVisible());
+    mTestView->mIsService = false;
+    
+    // show -flag is true, currentlist level != VideoCollectionCommon::ELevelDefaultColl
+    mTestView->mCurrentList->activate(VideoCollectionCommon::ELevelAlbum);
+    emit testLayoutChangedSignal();    
+    QVERIFY(!mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible());
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->isVisible());
+    
+    mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->setVisible(true);
+    // show -flag is true, currentlist level == VideoCollectionCommon::ELevelDefaultColl
+    mTestView->mCurrentList->activate(VideoCollectionCommon::ELevelDefaultColl);
+    emit testLayoutChangedSignal();    
+    QVERIFY(!mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible());
+    QVERIFY(!mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->isVisible());
+       
+    // show -flag is false
+    setRowCount(1);
+    emit testLayoutChangedSignal();   
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible());
+    QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionAddVideos]->isVisible());
+    
+    ///////
+    // sub label
+    
+    // sub label cannot be found (cannot be verified, run for coverity)
+    VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_VC_HEADINGBANNER);
     emit testLayoutChangedSignal();
-    QVERIFY(hintWidget->isVisible());
+    VideoCollectionUiLoaderData::mFindFailureNameList.clear();
+    
+    HbGroupBox *subLabel =
+            mUiLoader->findWidget<HbGroupBox>(
+                DOCML_NAME_VC_HEADINGBANNER);
+    
+    // show -flag is false
+    setRowCount(1);
+    emit testLayoutChangedSignal();  
+    QVERIFY(subLabel->isVisible());
+    
+    // show -flag is true, current list's level != ELevelVideos
+    setRowCount(0);
+    mTestView->mCurrentList->activate(VideoCollectionCommon::ELevelAlbum);
+    emit testLayoutChangedSignal();  
+    QVERIFY(subLabel->isVisible());
+    
+    // show -flag is true, current list's level == ELevelVideos
+    setRowCount(0);
+    mTestView->mCurrentList->activate(VideoCollectionCommon::ELevelVideos);
+    emit testLayoutChangedSignal();  
+    QVERIFY(!subLabel->isVisible());
+}
+
+// ---------------------------------------------------------------------------
+// testTitleReadySlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testTitleReadySlot()
+{
+    init(true);
+    
+    QVERIFY(connect(this, SIGNAL(testSignal(const QString &)), mTestView, SLOT(titleReadySlot(const QString &))));
+    
+    QString title("TEST");
+    
+    emit testSignal(title);
+    
+    QVERIFY(mTestView->mTitle == title);
+    
+    disconnect(this, SIGNAL(testSignal(const QString &)), mTestView, SLOT(titleReadySlot(const QString &)));
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testDoDelayedSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testDoDelayedsSlot()
+{
+    init(true);
+    
+    QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(doDelayedsSlot())));
+    
+    emit testSignal();
+    
+    QCOMPARE(VideoCollectionUiLoaderData::mLastLoadPhasedData, (int)VideoCollectionUiLoaderParam::LoadPhaseSecondary); 
+    
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(doDelayedsSlot()));
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testOpenNewAlbumSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testOpenNewAlbumSlot()
+{
+    init(false);
+    
+    QVERIFY(connect(this, SIGNAL(testSignal(const QModelIndex &, int, int)), mTestView, SLOT(openNewAlbumSlot(const QModelIndex &, int, int))));
+
+    QModelIndex index;
+    
+    // Not initialized, no mCurrentList
+    emit testSignal(index, 0, 0);
+    // TODO verify
+    
+    // Good case
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
+    setRowCount(1);
+    emit testSignal(index, 0, 0);
+    // TODO verify
+    
+    // Invalid index
+    emit testSignal(index, -1, 0);
+    // TODO verify
+    
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(doDelayedsSlot()));
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testAboutToChangeOrientationSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testAboutToChangeOrientationSlot()
+{
+    init(false);
+    QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToChangeOrientationSlot())));
+
+    emit testSignal();
+    
+    // nothing to verify
+    
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToChangeOrientationSlot()));
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testOrientationChangedSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testOrientationChangedSlot()
+{
+    init(false);
+    QVERIFY(connect(this, SIGNAL(testSignal(Qt::Orientation)), mTestView, 
+            SLOT(orientationChangedSlot(Qt::Orientation))));
+
+    HbView::mSetItemVisibleLast = false;
+    
+    emit testSignal(Qt::Vertical);
+    QVERIFY(HbView::mSetItemVisibleLast == true);
+
+    emit testSignal(Qt::Horizontal);
+    QVERIFY(HbView::mSetItemVisibleLast == false);
+    
+    disconnect(this, SIGNAL(testSignal(Qt::Orientation)), mTestView, 
+            SLOT(orientationChangedSlot(Qt::Orientation)));    
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testCreateCollectionSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testCreateCollectionSlot()
+{
+    init(false);
+    QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(createCollectionSlot())));
+
+    // not initialized, no mCurrentList
+    emit testSignal();
+    QCOMPARE(HbInputDialog::mGetTextCallCount, 0);
+    QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "");
+
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
+    
+    // dialog canceled
+    HbInputDialog::mGetTextFails = true;
+    emit testSignal();
+    QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "");
     
-    VideoSortFilterProxyModel* model = mTestView->mCurrentList->mModel;
-    mTestView->mCurrentList->mModel = 0;
-    mTestView->mModelReady = true;    
-    emit testLayoutChangedSignal();
-    QVERIFY(hintWidget->isVisible() == false);
+    // empty name
+    HbInputDialog::mGetTextFails = false;
+    HbInputDialog::mGetTextCallCount = 0;
+    HbInputDialog::mGetTextReturnValue = "";
+    emit testSignal();
+    QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "");
+    
+    // Good case.
+    HbInputDialog::mGetTextReturnValue = "testAlbum";
+    HbInputDialog::mGetTextCallCount = 0;
+    emit testSignal();
+    QCOMPARE(HbInputDialog::mGetTextCallCount, 1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastAddedAlbumName == "testAlbum");
+    
+    HbInputDialog::mGetTextCallCount = 0;
+    HbInputDialog::mGetTextReturnValue = QString();
+    VideoSortFilterProxyModelData::mLastAddedAlbumName = "";
+    
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(createCollectionSlot()));
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testAddVideosToCollectionSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testAddVideosToCollectionSlot()
+{
+    init(false);
+    QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(addVideosToCollectionSlot())));
+
+    VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId(0, 2);
+    
+    // Not initalized, no mCurrentList
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == -1);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == TMPXItemId::InvalidId());
+    QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0);
+    
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
+    
+    // Selection dialog widget loading fails.
+    VideoCollectionUiLoaderData::mFindFailure = true;
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == -1);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == TMPXItemId::InvalidId());
+    QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0);
+    
+    // Current level is not album
+    VideoListSelectionDialogData::reset();
+    VideoCollectionViewUtilsData::reset();
+    VideoCollectionUiLoaderData::mFindFailure = false;
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == VideoSortFilterProxyModelData::mOpenedItemId);
+    QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0);
+
+    // Current level is album, video list widget load fails.
+    VideoListSelectionDialogData::reset();
+    VideoCollectionViewUtilsData::reset();
+    VideoCollectionUiLoaderData::reset();
+    HbDocumentLoader::mVideoListWidgetFailure = true;
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == VideoSortFilterProxyModelData::mOpenedItemId);
+    QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0);
+    
+    // Current level is album, but model is empty.
+    HbDocumentLoader::mVideoListWidgetFailure = false;
+    VideoListSelectionDialogData::reset();
+    VideoCollectionViewUtilsData::reset();
+    VideoCollectionUiLoaderData::reset();
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == -1);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == TMPXItemId::InvalidId());
+    QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0);
+
+    // Current level is album, all videos are in the album 
+    VideoListSelectionDialogData::reset();
+    VideoListDataModelData::reset();
+    VideoCollectionViewUtilsData::reset();
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
+    VideoListWidget *allVideos = mUiLoader->findWidget<VideoListWidget>(
+                DOCML_NAME_VC_VIDEOLISTWIDGET);
+    QVERIFY(allVideos);
+    setRowCount(3, allVideos->mModel);
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == -1);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == TMPXItemId::InvalidId());
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == 
+            VideoCollectionCommon::statusAllVideosAlreadyInCollection);
+    
+    // Current level is album, all videos are not in the album
+    VideoListSelectionDialogData::reset();
+    VideoCollectionViewUtilsData::reset();
+    VideoListDataModelData::reset();
+    QVERIFY(allVideos);
+    setRowCount(3, allVideos->mModel);
+    // Must have different model than selection dialog has. Otherwise Qt optimizes rowCount calls 
+    // to source model and VideoListDataModelData::mRowCountDecrement hack doesn't work.
+    QVERIFY(connect(this, SIGNAL(testSignal2()), mTestView, SLOT(openCollectionViewSlot())));
+    emit testSignal2();
+    disconnect(this, SIGNAL(testSignal2()), mTestView, SLOT(openCollectionViewSlot()));
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
+    VideoListDataModelData::mRowCountDecrement = 1;
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum;
+    setRowCount(1);
+    emit testSignal();
+    QVERIFY(VideoListSelectionDialogData::mSelectionType == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoListSelectionDialogData::mSettedMpxId == VideoSortFilterProxyModelData::mOpenedItemId);
+    QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0);
+    
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(addVideosToCollectionSlot()));
+    
+    cleanup();
+}
 
+// ---------------------------------------------------------------------------
+// testRemoveVideosFromCollectionSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testRemoveVideosFromCollectionSlot()
+{
+    VideoListSelectionDialogData::reset();
+    VideoCollectionViewUtilsData::reset();
+    VideoCollectionUiLoaderData::reset();
+    HbDocumentLoader::mVideoListWidgetFailure = false;
+    
+    init(false);
+    
+    QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(removeVideosFromCollectionSlot())));
+    
+    // Not initialized, no current list
+    emit testSignal();
+    
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
     setRowCount(1);
-    hintWidget->setVisible(true);
-    emit testLayoutChangedSignal();
-    QVERIFY(hintWidget->isVisible() == false);
+    
+    // Wrong level.
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelCategory;
+    emit testSignal();
+    
+    // No items in model.
+    mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelDefaultColl;
+    emit testSignal();
+
+    // Fail to load selection dialog.
+    VideoCollectionUiLoaderData::mFindFailure = true;
+    emit testSignal();
+    
+    // Open item is invalid
+    VideoCollectionUiLoaderData::mFindFailure = false;
+    VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId::InvalidId();
+    emit testSignal();
+    
+    // Open item is video!
+    VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
+    emit testSignal();
+    
+    // Good case.
+    VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId(0, KVcxMvcMediaTypeAlbum);
+    emit testSignal();
+    
+    disconnect(this, SIGNAL(testSignal()), mTestView, SLOT(removeVideosFromCollectionSlot()));
+    
+    cleanup();
+}
+
+// ---------------------------------------------------------------------------
+// testFinishCollectionOpenedSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testFinishCollectionOpenedSlot()
+{
+    XQServiceUtilXtra *serviceUtil = XQServiceUtilXtra::instance();
+    serviceUtil->setCurrentService(false);
+    
+    init(false);
+    
+    QVERIFY(connect(this, SIGNAL(testSignal(const HbEffect::EffectStatus &)), mTestView, 
+            SLOT(finishCollectionOpenedSlot(const HbEffect::EffectStatus &))));
+    
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
+
+    HbEffect::EffectStatus status;
+    
+    // Invalid status.userData
+    mTestView->mTransitionOngoing = true;
+    emit testSignal(status);
+    QVERIFY(!mTestView->mTransitionOngoing);
+    // TODO: verify
+    
+    // Category is not album
+    QVERIFY(mTestView->toolBar());
+    mTestView->toolBar()->clearActions();
+    mTestView->mTransitionOngoing = true;
+    status.userData = QVariant(static_cast<int>(VideoCollectionCommon::ELevelCategory));
+    emit testSignal(status);
+    QVERIFY(!mTestView->mTransitionOngoing);
+    QVERIFY(mTestView->toolBar()->actions().count() == 0);
+    
+    // Category is album
+    QVERIFY(mTestView->toolBar());
+    mTestView->toolBar()->clearActions();
+    mTestView->mTransitionOngoing = true;
+    status.userData = QVariant(static_cast<int>(VideoCollectionCommon::ELevelAlbum));
+    emit testSignal(status);
+    QVERIFY(!mTestView->mTransitionOngoing);
+    QVERIFY(mTestView->toolBar()->actions().count() > 0);
+    
+    disconnect(this, SIGNAL(testSignal(const HbEffect::EffectStatus &)), mTestView, 
+            SLOT(finishCollectionOpenedSlot(const HbEffect::EffectStatus &)));
+    
+    cleanup();
+    
+    // final cleanup
+    serviceUtil->decreaseReferenceCount();
+}
+
+// ---------------------------------------------------------------------------
+// testFinishCollectionOpenedSlot
+// ---------------------------------------------------------------------------
+//
+void TestListView::testFinishCollectionClosedSlot()
+{
+    init(false);
+    
+    QVERIFY(connect(this, SIGNAL(testSignal(const HbEffect::EffectStatus &)), mTestView, 
+            SLOT(finishCollectionClosedSlot(const HbEffect::EffectStatus &))));
+    
+    QVERIFY(mTestView->initializeView() == 0);
+    mTestView->activateView(TMPXItemId::InvalidId());
+
+    HbEffect::EffectStatus status;
+    
+    mTestView->mTransitionOngoing = true;
+    emit testSignal(status);
+    QVERIFY(!mTestView->mTransitionOngoing);
+
+    mTestView->mTransitionOngoing = true;
+    QActionGroup *tmp = mTestView->mToolbarViewsActionGroup;
+    mTestView->mToolbarViewsActionGroup = 0;
+    emit testSignal(status);
+    QVERIFY(!mTestView->mTransitionOngoing);
+    mTestView->mToolbarViewsActionGroup = tmp;
+
+    
+    disconnect(this, SIGNAL(testSignal(const HbEffect::EffectStatus &)), mTestView, 
+            SLOT(finishCollectionClosedSlot(const HbEffect::EffectStatus &)));
+    
+    cleanup();
 }
 
 // End of file