videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
--- a/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp	Thu Apr 01 23:22:15 2010 +0300
+++ b/videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp	Thu Apr 01 23:32:44 2010 +0300
@@ -15,12 +15,37 @@
 * 
 */
 
+#include <qdebug.h>
 #include <qapplication.h>
+#include "hbview.h"
+#include "hbabstractitemview.h"
+#include "hbdocumentloader.h"
+#include "hbstackedwidget.h"
+#include "hbcheckbox.h"
+#include "hbdialog.h"
+#include "hbwidget.h"
+#include "hblistview.h"
+#include "hbinputdialog.h"
 
 #include "testvideolistselectiondialog.h"
 
+#include "videocollectionuiloader.h"
+#include "videolistdatamodel.h"
+#include "videosortfilterproxymodel.h"
+#include "videolistwidget.h"
+#include "videocollectionwrapper.h"
+#include "videocollectioncommon.h"
+#include <vcxmyvideosdefs.h>
+
+#include "videolistdatamodeldata.h"
+#include "videocollectionwrapperdata.h"
+#include "videocollectionuiloaderdata.h"
+#include "videolistwidgetdata.h"
+#include "videosortfilterproxymodeldata.h"
+#include "videocollectionviewutilsdata.h"
+
 #define private public
-#include "videolistselectiondialog.h"
+#include "videolistselectiondialogtester.h"
 #undef private
 
 // ---------------------------------------------------------------------------
@@ -51,19 +76,988 @@
 }
 
 // ---------------------------------------------------------------------------
+// global qHash function required fo creating hash values for TMPXItemId -keys
+// ---------------------------------------------------------------------------
+inline uint qHash(TMPXItemId key) 
+{ 
+    QPair<uint, uint> keyPair(key.iId1, key.iId2); 
+
+    return qHash(keyPair);
+}
+
+// ---------------------------------------------------------------------------
+// setRowCount
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::setRowCount(int count, int type, VideoListDataModel *model)
+{
+    if (!model)
+    {
+        VideoCollectionWrapper &wrapper = VideoCollectionWrapper::instance();
+        VideoSortFilterProxyModel *model = wrapper.getModel(type);
+        QVERIFY(model);
+        
+        VideoListDataModel *sourceModel = qobject_cast<VideoListDataModel*>(model->sourceModel());
+        QVERIFY(sourceModel);
+        
+        VideoListDataModelData::setRowCount(*sourceModel, count);
+    }
+    else
+    {
+        VideoListDataModelData::setRowCount(*model, count);
+    }
+}
+
+// ---------------------------------------------------------------------------
+// initTestCase
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::initTestCase()
+{
+    mTestHelper = new VideoListSelectionDialogTesterHelper();
+}
+
+// ---------------------------------------------------------------------------
+// cleanupTestCase
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::cleanupTestCase()
+{
+    delete mTestHelper;
+}
+
+// ---------------------------------------------------------------------------
 // init
 // ---------------------------------------------------------------------------
 //
 void TestVideoListSelectionDialog::init()
 {
+    mTestObject = 0;
+    mModel = 0;
+    mTestUiLoader = 0;
+    mTestWidget = 0;
+    
+    mInitOk = false;
+    
+    mTestUiLoader = new VideoCollectionUiLoader();
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    mModel = VideoCollectionWrapper::instance().getModel(VideoCollectionWrapper::EGeneric);
+    
+    mTestHelper->mTestable = mTestObject;
+    QVERIFY(mTestHelper->connectSignals());
+    
+    mInitOk = true;
 }
- 
+
 // ---------------------------------------------------------------------------
 // cleanup
 // ---------------------------------------------------------------------------
 //
 void TestVideoListSelectionDialog::cleanup()
 {
+    mTestHelper->disconnectSignals();
+    
+    delete mTestObject; 
+    mTestObject = 0;
+    
+    delete mTestUiLoader;
+    mTestUiLoader = 0;  
+    
+    mSourceModel = 0;
+    
+    mModel = 0;
+    
+    
+}
+
+// ---------------------------------------------------------------------------
+// testConstructDestruct
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::testConstructDestruct()
+{
+    QVERIFY(mInitOk == true);
+    
+    QVERIFY(mTestObject != 0);
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mModel != 0);
+
+    delete mTestObject;
+    mTestObject = 0;
+    
+    // Getting model fails 
+    VideoCollectionWrapperData::mGetModelFails = true;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    QVERIFY(mTestObject->mModel == 0);
+    QVERIFY(mTestObject->mListWidget == 0);
+    
+    delete mTestObject;
+    mTestObject = 0;
+
+    // List widget initialize fails
+    VideoCollectionWrapperData::mGetModelFails = false;
+    VideoListWidgetData::mInitializeReturnValue = -1;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget == 0);
+}
+
+// ---------------------------------------------------------------------------
+// testSetupContent
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::testSetupContent()
+{
+    VideoCollectionWrapperData::reset();
+    VideoListWidgetData::reset();
+    
+    QVERIFY(mInitOk == true);
+    QVERIFY(mModel != 0);
+    
+    TMPXItemId mpxId;
+    
+    // invalid type provided, object's internal data will not change
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::EDeleteVideos;
+    mTestObject->setupContent(-1, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    mTestObject->setupContent(600, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    
+    // No data. type EDeleteVideos. Default mpx item 
+    setRowCount(0);
+    mpxId = TMPXItemId();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    VideoSortFilterProxyModelData::reset();
+    
+    // second setup (for coverity)
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+        
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    VideoSortFilterProxyModelData::reset();
+    
+    // No data. type ESelectCollection. Default mpx item 
+    setRowCount(0);
+    mpxId = TMPXItemId();
+    mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ESelectCollection);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == false);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(!VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    VideoSortFilterProxyModelData::reset();
+    
+    // No data. type EAddToCollection:. Default mpx item 
+    setRowCount(0);
+    mpxId = TMPXItemId();
+    mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(!VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    VideoSortFilterProxyModelData::reset();
+    
+    // No data. type ERemoveFromCollection:. Default mpx item 
+    setRowCount(0);
+    mpxId = TMPXItemId();
+    mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);    
+    VideoSortFilterProxyModelData::reset();
+    
+    // Some data, mpx item type is album 
+    setRowCount(10);
+    mpxId = TMPXItemId(0, KVcxMvcMediaTypeAlbum);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    QVERIFY(mTestObject->mSelectedAlbumId == mpxId);
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    VideoSortFilterProxyModelData::reset();
+    
+    // Some data, mpx item type is invalid: category
+    mpxId = TMPXItemId(0, KVcxMvcMediaTypeCategory);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    VideoSortFilterProxyModelData::reset();
+    
+    // Some data, mpx item type is invalid id
+    mpxId = TMPXItemId::InvalidId();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);  
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+    
+    VideoSortFilterProxyModelData::reset();
+    // some data, second initialization without widget and model, for coverity
+    delete mTestObject->mListWidget;
+    mTestObject->mListWidget = 0;
+    mTestObject->mModel = 0;
+    mTestObject->mListContainer = 0;
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QCOMPARE(mTestObject->mSelection.count(), 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);
+    QVERIFY(mTestObject->mListContainer != 0);
+    QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);
+    QVERIFY(mTestObject->primaryAction() != 0);
+    QVERIFY(mTestObject->secondaryAction() != 0);  
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
+}
+
+// ---------------------------------------------------------------------------
+// testSetupInitFailures
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::testSetupInitFailures()
+{
+    TMPXItemId mpxId;
+    
+    // initDialog fails because model get fails. 
+    QVERIFY(mTestObject->mModel != 0);
+    VideoSortFilterProxyModel *backup = mTestObject->mModel;
+    VideoListWidget *backupWidget = mTestObject->mListWidget;
+    mTestObject->mModel = 0;
+    mTestObject->mListWidget = 0;
+    VideoCollectionWrapperData::mGetModelFails = true;
+    mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    VideoCollectionWrapperData::mGetModelFails = false;
+    QVERIFY(mTestObject->mModel == 0);
+    QVERIFY(mTestObject->mListWidget == 0);
+    QVERIFY(mTestObject->mListContainer == 0);
+    QVERIFY(mTestObject->mHeading == 0);
+    QVERIFY(mTestObject->mCheckboxContainer == 0);
+    QVERIFY(mTestObject->mItemCount == 0);
+    QVERIFY(mTestObject->mCheckBox == 0);
+    mTestObject->mModel = backup; backup = 0;
+    mTestObject->mListWidget = backupWidget; backupWidget = 0;
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    
+    // initDialog fails because mListWidget::initialize
+    QVERIFY(mTestObject->mModel != 0);
+    VideoListWidgetData::mInitializeReturnValue = -1;
+    backupWidget = mTestObject->mListWidget;
+    mTestObject->mListWidget = 0;
+    mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget == 0);    
+    QVERIFY(mTestObject->mListContainer == 0);
+    QVERIFY(mTestObject->mHeading == 0);
+    QVERIFY(mTestObject->mCheckboxContainer == 0);
+    QVERIFY(mTestObject->mItemCount == 0);
+    QVERIFY(mTestObject->mCheckBox == 0);  
+    VideoListWidgetData::mInitializeReturnValue = 0;
+    
+    delete mTestObject;
+    mTestObject = new VideoListSelectionDialog(mTestUiLoader);
+    
+    // initdialog fails because DOCML_NAME_LIST_CONTAINER finding fails
+    VideoCollectionUiLoaderData::mFindFailure = false;
+    VideoCollectionUiLoaderData::mFindFailureNameList.clear();
+    VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_LIST_CONTAINER);
+    mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    QVERIFY(mTestObject->mModel != 0);
+    QVERIFY(mTestObject->mListWidget != 0);    
+    QVERIFY(mTestObject->mListContainer == 0);
+    QVERIFY(mTestObject->mHeading != 0);
+    QVERIFY(mTestObject->mCheckboxContainer != 0);
+    QVERIFY(mTestObject->mItemCount != 0);
+    QVERIFY(mTestObject->mCheckBox != 0);     
+    VideoCollectionUiLoaderData::mFindFailureNameList.clear();
+}
+
+// ---------------------------------------------------------------------------
+// testExec
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::testExec()
+{   
+    // there's not much to test in exec -method, basically these
+    // are for coberity only
+    // we're using EDeleteVideos type and make sure correct
+    // status exists in view utils after exec 
+    TMPXItemId mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    
+    HbDialog::execReturnPrimary = true;
+    
+    VideoCollectionViewUtilsData::mLastError = -1;
+    
+    // empty model row count
+    setRowCount(0);
+    mTestObject->exec();
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusDeleteInProgress);
+    VideoCollectionViewUtilsData::mLastError = -1;
+    
+    // model contains data
+    setRowCount(10);
+    mTestObject->exec();
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusDeleteInProgress);
+    
+    // just to make sure finishedSlot is called with correct params
+    VideoCollectionViewUtilsData::mLastError = -1;
+    HbDialog::execReturnPrimary = false;
+    mTestObject->exec();
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
 }
 
+// ---------------------------------------------------------------------------
+// testFinishedSlot
+// ---------------------------------------------------------------------------
+//
+void TestVideoListSelectionDialog::testFinishedSlot()
+{
+    // finished slot tested throught exec -method
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    
+    TMPXItemId mpxId = TMPXItemId(1, KVcxMvcMediaTypeAlbum);
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    // finished with secondary action
+    VideoCollectionViewUtilsData::mLastError = -1;
+    HbDialog::execReturnPrimary = false;
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+
+    HbDialog::execReturnPrimary = true;    
+    
+    ////////////
+    // mTypeOfSelection == ESelectCollection     
+    //  mSelectedAlbumId != TMPXItemId::InvalidId())    
+    VideoCollectionViewUtilsData::mLastError = -1;    
+    mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mAddItemsInAlbumReturnValue = 0;
+    mTestObject->exec();
+    // type of selection has changed
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    // videos added into collection
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
+    
+    
+    VideoCollectionViewUtilsData::mLastError = -1;
+    //  mSelectedAlbumId == TMPXItemId::InvalidId())
+    mpxId = TMPXItemId::InvalidId();
+    //    queryNewAlbumSelected does not set selected
+    HbInputDialog::mGetTextFails = true;   
+    mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId::InvalidId();
+    mTestObject->exec();     
+    // type of selection does not change
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ESelectCollection);
+    // since there's no selected videos, status code does not change
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+ 
+    //    queryNewAlbumSelected sets selected
+    HbInputDialog::mGetTextFails = false;   
+    mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId(1,2);
+    mTestObject->exec();  
+    // type of selection has changed
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    // videos added into collection
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == VideoSortFilterProxyModelData::mNewAlbumId);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
+    
+    ////////////
+    // mTypeOfSelection == EAddToCollection
+    VideoCollectionViewUtilsData::mLastError = -1;
+    // selected album id == invalid
+    mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, TMPXItemId::InvalidId());
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+      
+    // no selected videos
+    mpxId = TMPXItemId(1, KVcxMvcMediaTypeAlbum);
+    mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+    
+    // selected album exist, selected videos exists, add items fails    
+    mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mAddItemsInAlbumReturnValue = -1;
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+    
+    // selected album exist, selected videos exists, add items succeeds   
+    mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mAddItemsInAlbumReturnValue = 0;
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
+    
+    VideoCollectionViewUtilsData::mLastError = -1;
+    // selected album exist, selected videos exists, name for selected album exist
+    // (using ESelectCollection type to fetch albumname)
+    HbInputDialog::mGetTextFails = false;   
+    mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId(1,2);
+    mTestObject->exec();  
+    // type of selection has changed
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
+    // videos added into collection
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
+    
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
+    
+    /////
+    // mTypeOfSelection == ERemoveFromCollection
+    VideoCollectionViewUtilsData::mLastError = -1;
+    // selected album id == invalid
+    mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, TMPXItemId::InvalidId());
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+      
+    // no selected videos
+    mpxId = TMPXItemId(1, KVcxMvcMediaTypeAlbum);
+    mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+    
+    // selected videos exists, removeitemsFromAlbum fails   
+    mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mRemoveItemsFromAlbumReturnValue = -1;
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+       
+    mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    VideoSortFilterProxyModelData::mRemoveItemsFromAlbumReturnValue = 0;
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosRemovedFromCollection);
+    QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
+    QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
+    
+    /////
+    // mTypeOfSelection == EDeleteVideos
+    VideoCollectionViewUtilsData::mLastError = -1;
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusDeleteInProgress);
+    
+    // invalid type
+    mTestObject->mTypeOfSelection = 500;
+    VideoCollectionViewUtilsData::mLastError = -1;
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    VideoSortFilterProxyModelData::reset();
+    mTestObject->exec();  
+    QVERIFY(mTestObject->mTypeOfSelection == 500);
+    QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
+    QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
+   
+}
+
+void TestVideoListSelectionDialog::testMarkAllStateChangedSlot()
+{
+    VideoCollectionWrapperData::reset();
+    VideoListWidgetData::reset();
+    VideoSortFilterProxyModelData::reset();
+
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    
+    HbListView::mAllSelectedStatus = -1;
+    
+    // forced check
+    mTestObject->mForcedCheck = true;
+    mTestHelper->emitMarkAllStateChanged(Qt::Checked);
+    mTestObject->mForcedCheck = false;
+    QVERIFY(HbListView::mAllSelectedStatus == -1);
+    
+    // checked
+    mTestHelper->emitMarkAllStateChanged(Qt::Checked);
+    QVERIFY(HbListView::mAllSelectedStatus == 1);
+    HbListView::mAllSelectedStatus = -1;
+    
+    // unchecked
+    mTestHelper->emitMarkAllStateChanged(Qt::Unchecked);
+    QVERIFY(HbListView::mAllSelectedStatus == 0);
+    
+    HbListView::mAllSelectedStatus = -1;
+    
+    mTestHelper->disconnectSignals();
+
+}
+
+void TestVideoListSelectionDialog::testSelectionChangedSlot()
+{
+    QItemSelection selected;
+    QItemSelection deselected;
+    
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    
+    mTestObject->mSelection.clear();
+    
+    // no primary action
+    mTestHelper->emitSelectionChangedSlot(selected, deselected);
+    QVERIFY(!mTestObject->mSelection.count());
+    
+    TMPXItemId mpxId = TMPXItemId::InvalidId();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, TMPXItemId(1,1));
+
+    setRowCount(10);
+    
+    // select item
+    mTestObject->primaryAction()->mDisable = true;
+    QModelIndex index = mModel->index(0, 0);
+    QItemSelectionRange range(mModel->index(0, 0));
+    selected.append(range);
+    mTestHelper->emitSelectionChangedSlot(selected, deselected);
+    QVERIFY(mTestObject->mSelection.count() == 1);
+    QVERIFY(mTestObject->primaryAction()->mDisable == false);
+    
+    // deselect item
+    selected.clear();
+    deselected.append(range);
+    mTestHelper->emitSelectionChangedSlot(selected, deselected);
+    QVERIFY(mTestObject->mSelection.count() == 0);
+    QVERIFY(mTestObject->primaryAction()->mDisable == true);
+    
+    mTestHelper->disconnectSignals();
+
+}
+
+void TestVideoListSelectionDialog::testSingleItemSelectedSlot()
+{
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    
+    setRowCount(10);
+    TMPXItemId mpxId = TMPXItemId::InvalidId();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
+    mTestHelper->emitSingleItemSelectedSlot(mModel->index(0, 0));
+    
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
+    QModelIndex invalidIndex;
+    mTestHelper->emitSingleItemSelectedSlot(invalidIndex);
+    
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::EDeleteVideos;
+    mTestHelper->emitSingleItemSelectedSlot(mModel->index(0, 0));
+    
+    mTestHelper->disconnectSignals();
+}
+
+void TestVideoListSelectionDialog::testModelReadySlot()
+{
+
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, TMPXItemId(1,2));
+    
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    
+    // type of selection != ESelectCollection    
+    mTestHelper->emitModelReadySlot();
+    QVERIFY(mTestObject->primaryAction()->mTriggeredCount == 0);    
+    
+    mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, TMPXItemId(1,2));
+    // no items in model
+    setRowCount(0);
+    mTestHelper->emitModelReadySlot();
+    QVERIFY(mTestObject->primaryAction()->mTriggeredCount == 1);    
+    
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    setRowCount(10);
+    // type of selection is ESelectCollection and there are items in model
+    mTestHelper->emitModelReadySlot();
+    QVERIFY(mTestObject->primaryAction()->mTriggeredCount == 0);   
+    
+    mTestHelper->disconnectSignals();
+}
+
+void TestVideoListSelectionDialog::testUpdateCounterSlot()
+{
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    
+    TMPXItemId mpxId = TMPXItemId::InvalidId();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    
+    // itemCount is null
+    HbLabel *labelBackup = mTestObject->mItemCount;
+    mTestObject->mCheckBox->setChecked(true);
+    mTestObject->mItemCount = 0;
+    mTestHelper->emitUpdateCounterSlot();
+    mTestObject->mItemCount = labelBackup;
+    QVERIFY(mTestObject->mCheckBox->mChecked == true);
+    
+    // no items in model
+    setRowCount(0);
+    mTestObject->mCheckBox->setChecked(true);
+    mTestHelper->emitUpdateCounterSlot();
+    QVERIFY(mTestObject->mCheckBox->mChecked == false);
+
+    // all selected.
+    setRowCount(1);
+    mTestObject->mCheckBox->setChecked(false);
+    QItemSelection selected;
+    QItemSelectionRange range(mTestObject->mModel->index(0, 0));
+    selected.append(range);
+    mTestObject->mSelection.merge(selected, QItemSelectionModel::Select);
+    mTestHelper->emitUpdateCounterSlot();
+    QVERIFY(mTestObject->mCheckBox->mChecked == true);
+    
+    // not all selected
+    setRowCount(10);
+    mTestObject->mCheckBox->setChecked(true);
+    selected.clear();
+    range = QItemSelectionRange(mModel->index(0, 0));
+    selected.append(range);
+    mTestObject->mSelection.clear();
+    mTestObject->mSelection.merge(selected, QItemSelectionModel::Select);
+    mTestHelper->emitUpdateCounterSlot();
+    QVERIFY(mTestObject->mCheckBox->mChecked == false);
+    
+    mTestHelper->disconnectSignals();
+}
+
+void TestVideoListSelectionDialog::testPrimaryActionTriggeredSlot()
+{
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    
+    TMPXItemId mpxId = TMPXItemId::InvalidId();
+    mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
+    
+    // nothing selected, album id invalid, selection type != EAddToCollection
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    mTestObject->secondaryAction()->mTriggeredCount = 0;
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::EDeleteVideos;
+    mTestHelper->emitPrimaryActionTriggeredSlot();
+    QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    
+    // nothing selected, album id invalid, selection type EAddToCollection
+    mTestObject->mSelectedAlbumId = TMPXItemId::InvalidId();
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    mTestObject->secondaryAction()->mTriggeredCount = 0;
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::EAddToCollection;
+    mTestHelper->emitPrimaryActionTriggeredSlot();
+    QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    
+    // nothing selected, album id invalid, selection type ESelectCollection
+    mTestObject->mSelectedAlbumId = TMPXItemId::InvalidId();
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    mTestObject->secondaryAction()->mTriggeredCount = 0;
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
+    mTestHelper->emitPrimaryActionTriggeredSlot();
+    QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+    
+    // nothing selected, album id invalid, selection type invalid
+    mTestObject->mSelectedAlbumId = TMPXItemId::InvalidId();
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    mTestObject->secondaryAction()->mTriggeredCount = 0;
+    mTestObject->mTypeOfSelection = 555;
+    mTestHelper->emitPrimaryActionTriggeredSlot();
+    QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+
+    // nothing selected, album id ok
+    mTestObject->mSelectedAlbumId = TMPXItemId(0, KVcxMvcMediaTypeAlbum);
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    mTestObject->secondaryAction()->mTriggeredCount = 0;
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
+    mTestHelper->emitPrimaryActionTriggeredSlot();
+    QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 1);
+    QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
+
+    setRowCount(10);
+    VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0,0));
+    VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,2));
+    
+    // videos selected, other one's type is not video
+    QItemSelection selected;
+    QItemSelectionRange range(mTestObject->mModel->index(0, 0), mTestObject->mModel->index(1, 0));
+    selected.append(range);
+    mTestObject->mSelection.merge(selected, QItemSelectionModel::Select);
+    mTestObject->primaryAction()->mTriggeredCount = 0;
+    mTestObject->secondaryAction()->mTriggeredCount = 0;
+    mTestObject->mTypeOfSelection = VideoListSelectionDialog::EAddToCollection;
+    mTestObject->mSelectedVideos.clear();
+    mTestHelper->emitPrimaryActionTriggeredSlot();
+    QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 1);
+    QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
+  
+    mTestHelper->disconnectSignals(); 
+}
+
+void TestVideoListSelectionDialog::testGetSelectedName()
+{
+    mTestHelper->mTestable = mTestObject;
+    mTestHelper->connectSignals();
+    
+    mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, TMPXItemId::InvalidId());
+    
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
+    mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
+    
+    VideoCollectionViewUtilsData::mLastStatusAdditional = QVariant();
+    // mSelectedAlbumId is video
+    mTestObject->mSelectedAlbumId = TMPXItemId(1,0);
+    mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
+    QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
+    QVERIFY(!VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length());
+    
+    mTestObject->mSelectedAlbumId = TMPXItemId(1,2);
+    // fetching collections model unsucceeds
+    VideoCollectionWrapperData::mGetModelFails = true;
+    mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
+    QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
+    QVERIFY(!VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length());
+    VideoCollectionWrapperData::mGetModelFails = false;
+    
+    // invalid index for selected album
+    mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
+    QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
+    QVERIFY(!VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length());
+    
+    // succeed case:
+    // need to add album ib into selected list, because stub proxy overwrites
+    // VideoSortFilterProxyModelData::mItemIds at removeitems removeItemsFromAlbum -method
+    // and we need valid index for id
+    QStringList testnameList;
+    testnameList.append("testname");
+    VideoListDataModelData::mData[Qt::DisplayRole] = testnameList;
+    mTestObject->mSelectedVideos.insert(TMPXItemId(1,2));   
+    mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
+    QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
+    QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length() > 0);
+    QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.toString() == "testname");
+    
+    mTestHelper->disconnectSignals(); 
+}
+
+
 // end of file