videocollection/videocollectionview/tsrc/testvideolistselectiondialog/src/testvideolistselectiondialog.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
equal deleted inserted replaced
34:bbb98528c666 35:3738fe97f027
    13 *
    13 *
    14 * Description:   tester for methods in VideoListSelectionDialog
    14 * Description:   tester for methods in VideoListSelectionDialog
    15 * 
    15 * 
    16 */
    16 */
    17 
    17 
       
    18 #include <qdebug.h>
    18 #include <qapplication.h>
    19 #include <qapplication.h>
       
    20 #include "hbview.h"
       
    21 #include "hbabstractitemview.h"
       
    22 #include "hbdocumentloader.h"
       
    23 #include "hbstackedwidget.h"
       
    24 #include "hbcheckbox.h"
       
    25 #include "hbdialog.h"
       
    26 #include "hbwidget.h"
       
    27 #include "hblistview.h"
       
    28 #include "hbinputdialog.h"
    19 
    29 
    20 #include "testvideolistselectiondialog.h"
    30 #include "testvideolistselectiondialog.h"
    21 
    31 
       
    32 #include "videocollectionuiloader.h"
       
    33 #include "videolistdatamodel.h"
       
    34 #include "videosortfilterproxymodel.h"
       
    35 #include "videolistwidget.h"
       
    36 #include "videocollectionwrapper.h"
       
    37 #include "videocollectioncommon.h"
       
    38 #include <vcxmyvideosdefs.h>
       
    39 
       
    40 #include "videolistdatamodeldata.h"
       
    41 #include "videocollectionwrapperdata.h"
       
    42 #include "videocollectionuiloaderdata.h"
       
    43 #include "videolistwidgetdata.h"
       
    44 #include "videosortfilterproxymodeldata.h"
       
    45 #include "videocollectionviewutilsdata.h"
       
    46 
    22 #define private public
    47 #define private public
    23 #include "videolistselectiondialog.h"
    48 #include "videolistselectiondialogtester.h"
    24 #undef private
    49 #undef private
    25 
    50 
    26 // ---------------------------------------------------------------------------
    51 // ---------------------------------------------------------------------------
    27 // main
    52 // main
    28 // ---------------------------------------------------------------------------
    53 // ---------------------------------------------------------------------------
    49     
    74     
    50     return res;
    75     return res;
    51 }
    76 }
    52 
    77 
    53 // ---------------------------------------------------------------------------
    78 // ---------------------------------------------------------------------------
       
    79 // global qHash function required fo creating hash values for TMPXItemId -keys
       
    80 // ---------------------------------------------------------------------------
       
    81 inline uint qHash(TMPXItemId key) 
       
    82 { 
       
    83     QPair<uint, uint> keyPair(key.iId1, key.iId2); 
       
    84 
       
    85     return qHash(keyPair);
       
    86 }
       
    87 
       
    88 // ---------------------------------------------------------------------------
       
    89 // setRowCount
       
    90 // ---------------------------------------------------------------------------
       
    91 //
       
    92 void TestVideoListSelectionDialog::setRowCount(int count, int type, VideoListDataModel *model)
       
    93 {
       
    94     if (!model)
       
    95     {
       
    96         VideoCollectionWrapper &wrapper = VideoCollectionWrapper::instance();
       
    97         VideoSortFilterProxyModel *model = wrapper.getModel(type);
       
    98         QVERIFY(model);
       
    99         
       
   100         VideoListDataModel *sourceModel = qobject_cast<VideoListDataModel*>(model->sourceModel());
       
   101         QVERIFY(sourceModel);
       
   102         
       
   103         VideoListDataModelData::setRowCount(*sourceModel, count);
       
   104     }
       
   105     else
       
   106     {
       
   107         VideoListDataModelData::setRowCount(*model, count);
       
   108     }
       
   109 }
       
   110 
       
   111 // ---------------------------------------------------------------------------
       
   112 // initTestCase
       
   113 // ---------------------------------------------------------------------------
       
   114 //
       
   115 void TestVideoListSelectionDialog::initTestCase()
       
   116 {
       
   117     mTestHelper = new VideoListSelectionDialogTesterHelper();
       
   118 }
       
   119 
       
   120 // ---------------------------------------------------------------------------
       
   121 // cleanupTestCase
       
   122 // ---------------------------------------------------------------------------
       
   123 //
       
   124 void TestVideoListSelectionDialog::cleanupTestCase()
       
   125 {
       
   126     delete mTestHelper;
       
   127 }
       
   128 
       
   129 // ---------------------------------------------------------------------------
    54 // init
   130 // init
    55 // ---------------------------------------------------------------------------
   131 // ---------------------------------------------------------------------------
    56 //
   132 //
    57 void TestVideoListSelectionDialog::init()
   133 void TestVideoListSelectionDialog::init()
    58 {
   134 {
    59 }
   135     mTestObject = 0;
    60  
   136     mModel = 0;
       
   137     mTestUiLoader = 0;
       
   138     mTestWidget = 0;
       
   139     
       
   140     mInitOk = false;
       
   141     
       
   142     mTestUiLoader = new VideoCollectionUiLoader();
       
   143     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   144     mModel = VideoCollectionWrapper::instance().getModel(VideoCollectionWrapper::EGeneric);
       
   145     
       
   146     mTestHelper->mTestable = mTestObject;
       
   147     QVERIFY(mTestHelper->connectSignals());
       
   148     
       
   149     mInitOk = true;
       
   150 }
       
   151 
    61 // ---------------------------------------------------------------------------
   152 // ---------------------------------------------------------------------------
    62 // cleanup
   153 // cleanup
    63 // ---------------------------------------------------------------------------
   154 // ---------------------------------------------------------------------------
    64 //
   155 //
    65 void TestVideoListSelectionDialog::cleanup()
   156 void TestVideoListSelectionDialog::cleanup()
    66 {
   157 {
    67 }
   158     mTestHelper->disconnectSignals();
       
   159     
       
   160     delete mTestObject; 
       
   161     mTestObject = 0;
       
   162     
       
   163     delete mTestUiLoader;
       
   164     mTestUiLoader = 0;  
       
   165     
       
   166     mSourceModel = 0;
       
   167     
       
   168     mModel = 0;
       
   169     
       
   170     
       
   171 }
       
   172 
       
   173 // ---------------------------------------------------------------------------
       
   174 // testConstructDestruct
       
   175 // ---------------------------------------------------------------------------
       
   176 //
       
   177 void TestVideoListSelectionDialog::testConstructDestruct()
       
   178 {
       
   179     QVERIFY(mInitOk == true);
       
   180     
       
   181     QVERIFY(mTestObject != 0);
       
   182     QVERIFY(mTestObject->mModel != 0);
       
   183     QVERIFY(mModel != 0);
       
   184 
       
   185     delete mTestObject;
       
   186     mTestObject = 0;
       
   187     
       
   188     // Getting model fails 
       
   189     VideoCollectionWrapperData::mGetModelFails = true;
       
   190     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   191     QVERIFY(mTestObject->mModel == 0);
       
   192     QVERIFY(mTestObject->mListWidget == 0);
       
   193     
       
   194     delete mTestObject;
       
   195     mTestObject = 0;
       
   196 
       
   197     // List widget initialize fails
       
   198     VideoCollectionWrapperData::mGetModelFails = false;
       
   199     VideoListWidgetData::mInitializeReturnValue = -1;
       
   200     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   201     QVERIFY(mTestObject->mModel != 0);
       
   202     QVERIFY(mTestObject->mListWidget == 0);
       
   203 }
       
   204 
       
   205 // ---------------------------------------------------------------------------
       
   206 // testSetupContent
       
   207 // ---------------------------------------------------------------------------
       
   208 //
       
   209 void TestVideoListSelectionDialog::testSetupContent()
       
   210 {
       
   211     VideoCollectionWrapperData::reset();
       
   212     VideoListWidgetData::reset();
       
   213     
       
   214     QVERIFY(mInitOk == true);
       
   215     QVERIFY(mModel != 0);
       
   216     
       
   217     TMPXItemId mpxId;
       
   218     
       
   219     // invalid type provided, object's internal data will not change
       
   220     mTestObject->mTypeOfSelection = VideoListSelectionDialog::EDeleteVideos;
       
   221     mTestObject->setupContent(-1, mpxId);
       
   222     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   223     mTestObject->setupContent(600, mpxId);
       
   224     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   225     
       
   226     // No data. type EDeleteVideos. Default mpx item 
       
   227     setRowCount(0);
       
   228     mpxId = TMPXItemId();
       
   229     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   230     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   231     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   232     QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
       
   233     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   234     QVERIFY(mTestObject->mModel != 0);
       
   235     QVERIFY(mTestObject->mListWidget != 0);
       
   236     QVERIFY(mTestObject->mListContainer != 0);
       
   237     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   238     QVERIFY(mTestObject->mHeading != 0);
       
   239     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   240     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   241     QVERIFY(mTestObject->mItemCount != 0);
       
   242     QVERIFY(mTestObject->mCheckBox != 0);
       
   243     QVERIFY(mTestObject->primaryAction() != 0);
       
   244     QVERIFY(mTestObject->secondaryAction() != 0);
       
   245     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   246     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   247     
       
   248     VideoSortFilterProxyModelData::reset();
       
   249     
       
   250     // second setup (for coverity)
       
   251     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   252     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   253     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   254     QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
       
   255     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   256     QVERIFY(mTestObject->mModel != 0);
       
   257     QVERIFY(mTestObject->mListWidget != 0);
       
   258     QVERIFY(mTestObject->mListContainer != 0);
       
   259     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   260     QVERIFY(mTestObject->mHeading != 0);
       
   261     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   262     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   263     QVERIFY(mTestObject->mItemCount != 0);
       
   264     QVERIFY(mTestObject->mCheckBox != 0);
       
   265     QVERIFY(mTestObject->primaryAction() != 0);
       
   266     QVERIFY(mTestObject->secondaryAction() != 0);
       
   267     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   268     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   269         
       
   270     delete mTestObject;
       
   271     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   272     VideoSortFilterProxyModelData::reset();
       
   273     
       
   274     // No data. type ESelectCollection. Default mpx item 
       
   275     setRowCount(0);
       
   276     mpxId = TMPXItemId();
       
   277     mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
       
   278     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ESelectCollection);
       
   279     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   280     QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
       
   281     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   282     QVERIFY(mTestObject->mModel != 0);
       
   283     QVERIFY(mTestObject->mListWidget != 0);
       
   284     QVERIFY(mTestObject->mListContainer != 0);
       
   285     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   286     QVERIFY(mTestObject->mHeading != 0);
       
   287     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   288     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == false);
       
   289     QVERIFY(mTestObject->mItemCount != 0);
       
   290     QVERIFY(mTestObject->mCheckBox != 0);
       
   291     QVERIFY(mTestObject->primaryAction() != 0);
       
   292     QVERIFY(mTestObject->secondaryAction() != 0);
       
   293     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   294     QVERIFY(!VideoSortFilterProxyModelData::mGenericFilterValue);
       
   295     
       
   296     delete mTestObject;
       
   297     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   298     VideoSortFilterProxyModelData::reset();
       
   299     
       
   300     // No data. type EAddToCollection:. Default mpx item 
       
   301     setRowCount(0);
       
   302     mpxId = TMPXItemId();
       
   303     mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
       
   304     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   305     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   306     QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
       
   307     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   308     QVERIFY(mTestObject->mModel != 0);
       
   309     QVERIFY(mTestObject->mListWidget != 0);
       
   310     QVERIFY(mTestObject->mListContainer != 0);
       
   311     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   312     QVERIFY(mTestObject->mHeading != 0);
       
   313     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   314     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   315     QVERIFY(mTestObject->mItemCount != 0);
       
   316     QVERIFY(mTestObject->mCheckBox != 0);
       
   317     QVERIFY(mTestObject->primaryAction() != 0);
       
   318     QVERIFY(mTestObject->secondaryAction() != 0);
       
   319     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   320     QVERIFY(!VideoSortFilterProxyModelData::mGenericFilterValue);
       
   321     
       
   322     delete mTestObject;
       
   323     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   324     VideoSortFilterProxyModelData::reset();
       
   325     
       
   326     // No data. type ERemoveFromCollection:. Default mpx item 
       
   327     setRowCount(0);
       
   328     mpxId = TMPXItemId();
       
   329     mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
       
   330     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
       
   331     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   332     QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
       
   333     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   334     QVERIFY(mTestObject->mModel != 0);
       
   335     QVERIFY(mTestObject->mListWidget != 0);
       
   336     QVERIFY(mTestObject->mListContainer != 0);
       
   337     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   338     QVERIFY(mTestObject->mHeading != 0);
       
   339     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   340     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   341     QVERIFY(mTestObject->mItemCount != 0);
       
   342     QVERIFY(mTestObject->mCheckBox != 0);
       
   343     QVERIFY(mTestObject->primaryAction() != 0);
       
   344     QVERIFY(mTestObject->secondaryAction() != 0);
       
   345     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   346     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   347     
       
   348     delete mTestObject;
       
   349     mTestObject = new VideoListSelectionDialog(mTestUiLoader);    
       
   350     VideoSortFilterProxyModelData::reset();
       
   351     
       
   352     // Some data, mpx item type is album 
       
   353     setRowCount(10);
       
   354     mpxId = TMPXItemId(0, KVcxMvcMediaTypeAlbum);
       
   355     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   356     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   357     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   358     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   359     QVERIFY(mTestObject->mSelectedAlbumId == mpxId);
       
   360     QVERIFY(mTestObject->mModel != 0);
       
   361     QVERIFY(mTestObject->mListWidget != 0);
       
   362     QVERIFY(mTestObject->mListContainer != 0);
       
   363     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   364     QVERIFY(mTestObject->mHeading != 0);
       
   365     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   366     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   367     QVERIFY(mTestObject->mItemCount != 0);
       
   368     QVERIFY(mTestObject->mCheckBox != 0);
       
   369     QVERIFY(mTestObject->primaryAction() != 0);
       
   370     QVERIFY(mTestObject->secondaryAction() != 0);
       
   371     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   372     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   373     
       
   374     delete mTestObject;
       
   375     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   376     VideoSortFilterProxyModelData::reset();
       
   377     
       
   378     // Some data, mpx item type is invalid: category
       
   379     mpxId = TMPXItemId(0, KVcxMvcMediaTypeCategory);
       
   380     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   381     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   382     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   383     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   384     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   385     QVERIFY(mTestObject->mModel != 0);
       
   386     QVERIFY(mTestObject->mListWidget != 0);
       
   387     QVERIFY(mTestObject->mListContainer != 0);
       
   388     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   389     QVERIFY(mTestObject->mHeading != 0);
       
   390     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   391     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   392     QVERIFY(mTestObject->mItemCount != 0);
       
   393     QVERIFY(mTestObject->mCheckBox != 0);
       
   394     QVERIFY(mTestObject->primaryAction() != 0);
       
   395     QVERIFY(mTestObject->secondaryAction() != 0);
       
   396     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   397     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   398     
       
   399     delete mTestObject;
       
   400     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   401     VideoSortFilterProxyModelData::reset();
       
   402     
       
   403     // Some data, mpx item type is invalid id
       
   404     mpxId = TMPXItemId::InvalidId();
       
   405     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   406     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   407     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   408     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   409     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   410     QVERIFY(mTestObject->mModel != 0);
       
   411     QVERIFY(mTestObject->mListWidget != 0);
       
   412     QVERIFY(mTestObject->mListContainer != 0);
       
   413     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   414     QVERIFY(mTestObject->mHeading != 0);
       
   415     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   416     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   417     QVERIFY(mTestObject->mItemCount != 0);
       
   418     QVERIFY(mTestObject->mCheckBox != 0);
       
   419     QVERIFY(mTestObject->primaryAction() != 0);
       
   420     QVERIFY(mTestObject->secondaryAction() != 0);  
       
   421     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   422     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   423     
       
   424     VideoSortFilterProxyModelData::reset();
       
   425     // some data, second initialization without widget and model, for coverity
       
   426     delete mTestObject->mListWidget;
       
   427     mTestObject->mListWidget = 0;
       
   428     mTestObject->mModel = 0;
       
   429     mTestObject->mListContainer = 0;
       
   430     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   431     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   432     QCOMPARE(mTestObject->mSelection.count(), 0);
       
   433     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   434     QVERIFY(mTestObject->mSelectedAlbumId == TMPXItemId::InvalidId());
       
   435     QVERIFY(mTestObject->mModel != 0);
       
   436     QVERIFY(mTestObject->mListWidget != 0);
       
   437     QVERIFY(mTestObject->mListContainer != 0);
       
   438     QVERIFY(mTestObject->mListContainer->mCurrentWidget == mTestObject->mListWidget);
       
   439     QVERIFY(mTestObject->mHeading != 0);
       
   440     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   441     QVERIFY(mTestObject->mCheckboxContainer->isVisible() == true);
       
   442     QVERIFY(mTestObject->mItemCount != 0);
       
   443     QVERIFY(mTestObject->mCheckBox != 0);
       
   444     QVERIFY(mTestObject->primaryAction() != 0);
       
   445     QVERIFY(mTestObject->secondaryAction() != 0);  
       
   446     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterId == mpxId);
       
   447     QVERIFY(VideoSortFilterProxyModelData::mGenericFilterValue);
       
   448 }
       
   449 
       
   450 // ---------------------------------------------------------------------------
       
   451 // testSetupInitFailures
       
   452 // ---------------------------------------------------------------------------
       
   453 //
       
   454 void TestVideoListSelectionDialog::testSetupInitFailures()
       
   455 {
       
   456     TMPXItemId mpxId;
       
   457     
       
   458     // initDialog fails because model get fails. 
       
   459     QVERIFY(mTestObject->mModel != 0);
       
   460     VideoSortFilterProxyModel *backup = mTestObject->mModel;
       
   461     VideoListWidget *backupWidget = mTestObject->mListWidget;
       
   462     mTestObject->mModel = 0;
       
   463     mTestObject->mListWidget = 0;
       
   464     VideoCollectionWrapperData::mGetModelFails = true;
       
   465     mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
       
   466     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   467     VideoCollectionWrapperData::mGetModelFails = false;
       
   468     QVERIFY(mTestObject->mModel == 0);
       
   469     QVERIFY(mTestObject->mListWidget == 0);
       
   470     QVERIFY(mTestObject->mListContainer == 0);
       
   471     QVERIFY(mTestObject->mHeading == 0);
       
   472     QVERIFY(mTestObject->mCheckboxContainer == 0);
       
   473     QVERIFY(mTestObject->mItemCount == 0);
       
   474     QVERIFY(mTestObject->mCheckBox == 0);
       
   475     mTestObject->mModel = backup; backup = 0;
       
   476     mTestObject->mListWidget = backupWidget; backupWidget = 0;
       
   477     
       
   478     delete mTestObject;
       
   479     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   480     
       
   481     // initDialog fails because mListWidget::initialize
       
   482     QVERIFY(mTestObject->mModel != 0);
       
   483     VideoListWidgetData::mInitializeReturnValue = -1;
       
   484     backupWidget = mTestObject->mListWidget;
       
   485     mTestObject->mListWidget = 0;
       
   486     mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
       
   487     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   488     QVERIFY(mTestObject->mModel != 0);
       
   489     QVERIFY(mTestObject->mListWidget == 0);    
       
   490     QVERIFY(mTestObject->mListContainer == 0);
       
   491     QVERIFY(mTestObject->mHeading == 0);
       
   492     QVERIFY(mTestObject->mCheckboxContainer == 0);
       
   493     QVERIFY(mTestObject->mItemCount == 0);
       
   494     QVERIFY(mTestObject->mCheckBox == 0);  
       
   495     VideoListWidgetData::mInitializeReturnValue = 0;
       
   496     
       
   497     delete mTestObject;
       
   498     mTestObject = new VideoListSelectionDialog(mTestUiLoader);
       
   499     
       
   500     // initdialog fails because DOCML_NAME_LIST_CONTAINER finding fails
       
   501     VideoCollectionUiLoaderData::mFindFailure = false;
       
   502     VideoCollectionUiLoaderData::mFindFailureNameList.clear();
       
   503     VideoCollectionUiLoaderData::mFindFailureNameList.append(DOCML_NAME_LIST_CONTAINER);
       
   504     mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
       
   505     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   506     QVERIFY(mTestObject->mModel != 0);
       
   507     QVERIFY(mTestObject->mListWidget != 0);    
       
   508     QVERIFY(mTestObject->mListContainer == 0);
       
   509     QVERIFY(mTestObject->mHeading != 0);
       
   510     QVERIFY(mTestObject->mCheckboxContainer != 0);
       
   511     QVERIFY(mTestObject->mItemCount != 0);
       
   512     QVERIFY(mTestObject->mCheckBox != 0);     
       
   513     VideoCollectionUiLoaderData::mFindFailureNameList.clear();
       
   514 }
       
   515 
       
   516 // ---------------------------------------------------------------------------
       
   517 // testExec
       
   518 // ---------------------------------------------------------------------------
       
   519 //
       
   520 void TestVideoListSelectionDialog::testExec()
       
   521 {   
       
   522     // there's not much to test in exec -method, basically these
       
   523     // are for coberity only
       
   524     // we're using EDeleteVideos type and make sure correct
       
   525     // status exists in view utils after exec 
       
   526     TMPXItemId mpxId = TMPXItemId(0, KVcxMvcMediaTypeVideo);
       
   527     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   528     
       
   529     HbDialog::execReturnPrimary = true;
       
   530     
       
   531     VideoCollectionViewUtilsData::mLastError = -1;
       
   532     
       
   533     // empty model row count
       
   534     setRowCount(0);
       
   535     mTestObject->exec();
       
   536     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusDeleteInProgress);
       
   537     VideoCollectionViewUtilsData::mLastError = -1;
       
   538     
       
   539     // model contains data
       
   540     setRowCount(10);
       
   541     mTestObject->exec();
       
   542     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusDeleteInProgress);
       
   543     
       
   544     // just to make sure finishedSlot is called with correct params
       
   545     VideoCollectionViewUtilsData::mLastError = -1;
       
   546     HbDialog::execReturnPrimary = false;
       
   547     mTestObject->exec();
       
   548     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   549 }
       
   550 
       
   551 // ---------------------------------------------------------------------------
       
   552 // testFinishedSlot
       
   553 // ---------------------------------------------------------------------------
       
   554 //
       
   555 void TestVideoListSelectionDialog::testFinishedSlot()
       
   556 {
       
   557     // finished slot tested throught exec -method
       
   558     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   559     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   560     
       
   561     TMPXItemId mpxId = TMPXItemId(1, KVcxMvcMediaTypeAlbum);
       
   562     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   563     // finished with secondary action
       
   564     VideoCollectionViewUtilsData::mLastError = -1;
       
   565     HbDialog::execReturnPrimary = false;
       
   566     VideoSortFilterProxyModelData::reset();
       
   567     mTestObject->exec();
       
   568     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   569     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   570     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   571 
       
   572     HbDialog::execReturnPrimary = true;    
       
   573     
       
   574     ////////////
       
   575     // mTypeOfSelection == ESelectCollection     
       
   576     //  mSelectedAlbumId != TMPXItemId::InvalidId())    
       
   577     VideoCollectionViewUtilsData::mLastError = -1;    
       
   578     mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
       
   579     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   580     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   581     VideoSortFilterProxyModelData::reset();
       
   582     VideoSortFilterProxyModelData::mAddItemsInAlbumReturnValue = 0;
       
   583     mTestObject->exec();
       
   584     // type of selection has changed
       
   585     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   586     // videos added into collection
       
   587     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
       
   588     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
       
   589     QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
       
   590     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
       
   591     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
       
   592     
       
   593     
       
   594     VideoCollectionViewUtilsData::mLastError = -1;
       
   595     //  mSelectedAlbumId == TMPXItemId::InvalidId())
       
   596     mpxId = TMPXItemId::InvalidId();
       
   597     //    queryNewAlbumSelected does not set selected
       
   598     HbInputDialog::mGetTextFails = true;   
       
   599     mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
       
   600     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   601     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   602     VideoSortFilterProxyModelData::reset();
       
   603     VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId::InvalidId();
       
   604     mTestObject->exec();     
       
   605     // type of selection does not change
       
   606     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ESelectCollection);
       
   607     // since there's no selected videos, status code does not change
       
   608     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   609     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   610     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   611  
       
   612     //    queryNewAlbumSelected sets selected
       
   613     HbInputDialog::mGetTextFails = false;   
       
   614     mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
       
   615     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   616     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   617     VideoSortFilterProxyModelData::reset();
       
   618     VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId(1,2);
       
   619     mTestObject->exec();  
       
   620     // type of selection has changed
       
   621     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   622     // videos added into collection
       
   623     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
       
   624     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == VideoSortFilterProxyModelData::mNewAlbumId);
       
   625     QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
       
   626     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
       
   627     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
       
   628     
       
   629     ////////////
       
   630     // mTypeOfSelection == EAddToCollection
       
   631     VideoCollectionViewUtilsData::mLastError = -1;
       
   632     // selected album id == invalid
       
   633     mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, TMPXItemId::InvalidId());
       
   634     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   635     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   636     VideoSortFilterProxyModelData::reset();
       
   637     mTestObject->exec();  
       
   638     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   639     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   640     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   641     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   642       
       
   643     // no selected videos
       
   644     mpxId = TMPXItemId(1, KVcxMvcMediaTypeAlbum);
       
   645     mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
       
   646     VideoSortFilterProxyModelData::reset();
       
   647     mTestObject->exec();  
       
   648     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   649     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   650     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   651     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   652     
       
   653     // selected album exist, selected videos exists, add items fails    
       
   654     mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
       
   655     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   656     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   657     VideoSortFilterProxyModelData::reset();
       
   658     VideoSortFilterProxyModelData::mAddItemsInAlbumReturnValue = -1;
       
   659     mTestObject->exec();  
       
   660     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   661     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   662     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   663     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   664     
       
   665     // selected album exist, selected videos exists, add items succeeds   
       
   666     mTestObject->setupContent(VideoListSelectionDialog::EAddToCollection, mpxId);
       
   667     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   668     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   669     VideoSortFilterProxyModelData::reset();
       
   670     VideoSortFilterProxyModelData::mAddItemsInAlbumReturnValue = 0;
       
   671     mTestObject->exec();  
       
   672     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   673     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
       
   674     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
       
   675     QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
       
   676     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
       
   677     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
       
   678     
       
   679     VideoCollectionViewUtilsData::mLastError = -1;
       
   680     // selected album exist, selected videos exists, name for selected album exist
       
   681     // (using ESelectCollection type to fetch albumname)
       
   682     HbInputDialog::mGetTextFails = false;   
       
   683     mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, mpxId);
       
   684     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   685     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   686     VideoSortFilterProxyModelData::reset();
       
   687     VideoSortFilterProxyModelData::mNewAlbumId = TMPXItemId(1,2);
       
   688     mTestObject->exec();  
       
   689     // type of selection has changed
       
   690     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EAddToCollection);
       
   691     // videos added into collection
       
   692     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosAddedToCollection);
       
   693     
       
   694     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
       
   695     QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
       
   696     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
       
   697     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
       
   698     
       
   699     /////
       
   700     // mTypeOfSelection == ERemoveFromCollection
       
   701     VideoCollectionViewUtilsData::mLastError = -1;
       
   702     // selected album id == invalid
       
   703     mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, TMPXItemId::InvalidId());
       
   704     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   705     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   706     VideoSortFilterProxyModelData::reset();
       
   707     mTestObject->exec();  
       
   708     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
       
   709     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   710     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   711     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   712       
       
   713     // no selected videos
       
   714     mpxId = TMPXItemId(1, KVcxMvcMediaTypeAlbum);
       
   715     mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
       
   716     VideoSortFilterProxyModelData::reset();
       
   717     mTestObject->exec();  
       
   718     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
       
   719     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   720     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   721     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   722     
       
   723     // selected videos exists, removeitemsFromAlbum fails   
       
   724     mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
       
   725     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   726     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   727     VideoSortFilterProxyModelData::reset();
       
   728     VideoSortFilterProxyModelData::mRemoveItemsFromAlbumReturnValue = -1;
       
   729     mTestObject->exec();  
       
   730     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
       
   731     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   732     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId());
       
   733     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   734        
       
   735     mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, mpxId);
       
   736     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   737     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   738     VideoSortFilterProxyModelData::reset();
       
   739     VideoSortFilterProxyModelData::mRemoveItemsFromAlbumReturnValue = 0;
       
   740     mTestObject->exec();  
       
   741     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::ERemoveFromCollection);
       
   742     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusVideosRemovedFromCollection);
       
   743     QVERIFY(VideoSortFilterProxyModelData::mLastItemId == mpxId);
       
   744     QVERIFY(VideoSortFilterProxyModelData::mItemIds.count() == 2);
       
   745     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(0) == TMPXItemId(1,0));
       
   746     QVERIFY(VideoSortFilterProxyModelData::mItemIds.at(1) == TMPXItemId(2,0));
       
   747     
       
   748     /////
       
   749     // mTypeOfSelection == EDeleteVideos
       
   750     VideoCollectionViewUtilsData::mLastError = -1;
       
   751     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   752     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   753     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   754     VideoSortFilterProxyModelData::reset();
       
   755     mTestObject->exec();  
       
   756     QVERIFY(mTestObject->mTypeOfSelection == VideoListSelectionDialog::EDeleteVideos);
       
   757     QVERIFY(VideoCollectionViewUtilsData::mLastError == VideoCollectionCommon::statusDeleteInProgress);
       
   758     
       
   759     // invalid type
       
   760     mTestObject->mTypeOfSelection = 500;
       
   761     VideoCollectionViewUtilsData::mLastError = -1;
       
   762     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
   763     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
   764     VideoSortFilterProxyModelData::reset();
       
   765     mTestObject->exec();  
       
   766     QVERIFY(mTestObject->mTypeOfSelection == 500);
       
   767     QVERIFY(VideoCollectionViewUtilsData::mLastError == -1);
       
   768     QVERIFY(!VideoSortFilterProxyModelData::mItemIds.count());
       
   769    
       
   770 }
       
   771 
       
   772 void TestVideoListSelectionDialog::testMarkAllStateChangedSlot()
       
   773 {
       
   774     VideoCollectionWrapperData::reset();
       
   775     VideoListWidgetData::reset();
       
   776     VideoSortFilterProxyModelData::reset();
       
   777 
       
   778     mTestHelper->mTestable = mTestObject;
       
   779     mTestHelper->connectSignals();
       
   780     
       
   781     HbListView::mAllSelectedStatus = -1;
       
   782     
       
   783     // forced check
       
   784     mTestObject->mForcedCheck = true;
       
   785     mTestHelper->emitMarkAllStateChanged(Qt::Checked);
       
   786     mTestObject->mForcedCheck = false;
       
   787     QVERIFY(HbListView::mAllSelectedStatus == -1);
       
   788     
       
   789     // checked
       
   790     mTestHelper->emitMarkAllStateChanged(Qt::Checked);
       
   791     QVERIFY(HbListView::mAllSelectedStatus == 1);
       
   792     HbListView::mAllSelectedStatus = -1;
       
   793     
       
   794     // unchecked
       
   795     mTestHelper->emitMarkAllStateChanged(Qt::Unchecked);
       
   796     QVERIFY(HbListView::mAllSelectedStatus == 0);
       
   797     
       
   798     HbListView::mAllSelectedStatus = -1;
       
   799     
       
   800     mTestHelper->disconnectSignals();
       
   801 
       
   802 }
       
   803 
       
   804 void TestVideoListSelectionDialog::testSelectionChangedSlot()
       
   805 {
       
   806     QItemSelection selected;
       
   807     QItemSelection deselected;
       
   808     
       
   809     mTestHelper->mTestable = mTestObject;
       
   810     mTestHelper->connectSignals();
       
   811     
       
   812     mTestObject->mSelection.clear();
       
   813     
       
   814     // no primary action
       
   815     mTestHelper->emitSelectionChangedSlot(selected, deselected);
       
   816     QVERIFY(!mTestObject->mSelection.count());
       
   817     
       
   818     TMPXItemId mpxId = TMPXItemId::InvalidId();
       
   819     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, TMPXItemId(1,1));
       
   820 
       
   821     setRowCount(10);
       
   822     
       
   823     // select item
       
   824     mTestObject->primaryAction()->mDisable = true;
       
   825     QModelIndex index = mModel->index(0, 0);
       
   826     QItemSelectionRange range(mModel->index(0, 0));
       
   827     selected.append(range);
       
   828     mTestHelper->emitSelectionChangedSlot(selected, deselected);
       
   829     QVERIFY(mTestObject->mSelection.count() == 1);
       
   830     QVERIFY(mTestObject->primaryAction()->mDisable == false);
       
   831     
       
   832     // deselect item
       
   833     selected.clear();
       
   834     deselected.append(range);
       
   835     mTestHelper->emitSelectionChangedSlot(selected, deselected);
       
   836     QVERIFY(mTestObject->mSelection.count() == 0);
       
   837     QVERIFY(mTestObject->primaryAction()->mDisable == true);
       
   838     
       
   839     mTestHelper->disconnectSignals();
       
   840 
       
   841 }
       
   842 
       
   843 void TestVideoListSelectionDialog::testSingleItemSelectedSlot()
       
   844 {
       
   845     mTestHelper->mTestable = mTestObject;
       
   846     mTestHelper->connectSignals();
       
   847     
       
   848     setRowCount(10);
       
   849     TMPXItemId mpxId = TMPXItemId::InvalidId();
       
   850     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   851     
       
   852     mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
       
   853     mTestHelper->emitSingleItemSelectedSlot(mModel->index(0, 0));
       
   854     
       
   855     mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
       
   856     QModelIndex invalidIndex;
       
   857     mTestHelper->emitSingleItemSelectedSlot(invalidIndex);
       
   858     
       
   859     mTestObject->mTypeOfSelection = VideoListSelectionDialog::EDeleteVideos;
       
   860     mTestHelper->emitSingleItemSelectedSlot(mModel->index(0, 0));
       
   861     
       
   862     mTestHelper->disconnectSignals();
       
   863 }
       
   864 
       
   865 void TestVideoListSelectionDialog::testModelReadySlot()
       
   866 {
       
   867 
       
   868     mTestHelper->mTestable = mTestObject;
       
   869     mTestHelper->connectSignals();
       
   870     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, TMPXItemId(1,2));
       
   871     
       
   872     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   873     
       
   874     // type of selection != ESelectCollection    
       
   875     mTestHelper->emitModelReadySlot();
       
   876     QVERIFY(mTestObject->primaryAction()->mTriggeredCount == 0);    
       
   877     
       
   878     mTestObject->setupContent(VideoListSelectionDialog::ESelectCollection, TMPXItemId(1,2));
       
   879     // no items in model
       
   880     setRowCount(0);
       
   881     mTestHelper->emitModelReadySlot();
       
   882     QVERIFY(mTestObject->primaryAction()->mTriggeredCount == 1);    
       
   883     
       
   884     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   885     setRowCount(10);
       
   886     // type of selection is ESelectCollection and there are items in model
       
   887     mTestHelper->emitModelReadySlot();
       
   888     QVERIFY(mTestObject->primaryAction()->mTriggeredCount == 0);   
       
   889     
       
   890     mTestHelper->disconnectSignals();
       
   891 }
       
   892 
       
   893 void TestVideoListSelectionDialog::testUpdateCounterSlot()
       
   894 {
       
   895     mTestHelper->mTestable = mTestObject;
       
   896     mTestHelper->connectSignals();
       
   897     
       
   898     TMPXItemId mpxId = TMPXItemId::InvalidId();
       
   899     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   900     
       
   901     // itemCount is null
       
   902     HbLabel *labelBackup = mTestObject->mItemCount;
       
   903     mTestObject->mCheckBox->setChecked(true);
       
   904     mTestObject->mItemCount = 0;
       
   905     mTestHelper->emitUpdateCounterSlot();
       
   906     mTestObject->mItemCount = labelBackup;
       
   907     QVERIFY(mTestObject->mCheckBox->mChecked == true);
       
   908     
       
   909     // no items in model
       
   910     setRowCount(0);
       
   911     mTestObject->mCheckBox->setChecked(true);
       
   912     mTestHelper->emitUpdateCounterSlot();
       
   913     QVERIFY(mTestObject->mCheckBox->mChecked == false);
       
   914 
       
   915     // all selected.
       
   916     setRowCount(1);
       
   917     mTestObject->mCheckBox->setChecked(false);
       
   918     QItemSelection selected;
       
   919     QItemSelectionRange range(mTestObject->mModel->index(0, 0));
       
   920     selected.append(range);
       
   921     mTestObject->mSelection.merge(selected, QItemSelectionModel::Select);
       
   922     mTestHelper->emitUpdateCounterSlot();
       
   923     QVERIFY(mTestObject->mCheckBox->mChecked == true);
       
   924     
       
   925     // not all selected
       
   926     setRowCount(10);
       
   927     mTestObject->mCheckBox->setChecked(true);
       
   928     selected.clear();
       
   929     range = QItemSelectionRange(mModel->index(0, 0));
       
   930     selected.append(range);
       
   931     mTestObject->mSelection.clear();
       
   932     mTestObject->mSelection.merge(selected, QItemSelectionModel::Select);
       
   933     mTestHelper->emitUpdateCounterSlot();
       
   934     QVERIFY(mTestObject->mCheckBox->mChecked == false);
       
   935     
       
   936     mTestHelper->disconnectSignals();
       
   937 }
       
   938 
       
   939 void TestVideoListSelectionDialog::testPrimaryActionTriggeredSlot()
       
   940 {
       
   941     mTestHelper->mTestable = mTestObject;
       
   942     mTestHelper->connectSignals();
       
   943     
       
   944     TMPXItemId mpxId = TMPXItemId::InvalidId();
       
   945     mTestObject->setupContent(VideoListSelectionDialog::EDeleteVideos, mpxId);
       
   946     
       
   947     // nothing selected, album id invalid, selection type != EAddToCollection
       
   948     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   949     mTestObject->secondaryAction()->mTriggeredCount = 0;
       
   950     mTestObject->mTypeOfSelection = VideoListSelectionDialog::EDeleteVideos;
       
   951     mTestHelper->emitPrimaryActionTriggeredSlot();
       
   952     QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
       
   953     QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
       
   954     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   955     
       
   956     // nothing selected, album id invalid, selection type EAddToCollection
       
   957     mTestObject->mSelectedAlbumId = TMPXItemId::InvalidId();
       
   958     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   959     mTestObject->secondaryAction()->mTriggeredCount = 0;
       
   960     mTestObject->mTypeOfSelection = VideoListSelectionDialog::EAddToCollection;
       
   961     mTestHelper->emitPrimaryActionTriggeredSlot();
       
   962     QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
       
   963     QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
       
   964     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   965     
       
   966     // nothing selected, album id invalid, selection type ESelectCollection
       
   967     mTestObject->mSelectedAlbumId = TMPXItemId::InvalidId();
       
   968     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   969     mTestObject->secondaryAction()->mTriggeredCount = 0;
       
   970     mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
       
   971     mTestHelper->emitPrimaryActionTriggeredSlot();
       
   972     QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
       
   973     QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
       
   974     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   975     
       
   976     // nothing selected, album id invalid, selection type invalid
       
   977     mTestObject->mSelectedAlbumId = TMPXItemId::InvalidId();
       
   978     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   979     mTestObject->secondaryAction()->mTriggeredCount = 0;
       
   980     mTestObject->mTypeOfSelection = 555;
       
   981     mTestHelper->emitPrimaryActionTriggeredSlot();
       
   982     QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 0);
       
   983     QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
       
   984     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   985 
       
   986     // nothing selected, album id ok
       
   987     mTestObject->mSelectedAlbumId = TMPXItemId(0, KVcxMvcMediaTypeAlbum);
       
   988     mTestObject->primaryAction()->mTriggeredCount = 0;
       
   989     mTestObject->secondaryAction()->mTriggeredCount = 0;
       
   990     mTestObject->mTypeOfSelection = VideoListSelectionDialog::ESelectCollection;
       
   991     mTestHelper->emitPrimaryActionTriggeredSlot();
       
   992     QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 1);
       
   993     QCOMPARE(mTestObject->secondaryAction()->mTriggeredCount, 0);
       
   994     QCOMPARE(mTestObject->mSelectedVideos.count(), 0);
       
   995 
       
   996     setRowCount(10);
       
   997     VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(0,0));
       
   998     VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,2));
       
   999     
       
  1000     // videos selected, other one's type is not video
       
  1001     QItemSelection selected;
       
  1002     QItemSelectionRange range(mTestObject->mModel->index(0, 0), mTestObject->mModel->index(1, 0));
       
  1003     selected.append(range);
       
  1004     mTestObject->mSelection.merge(selected, QItemSelectionModel::Select);
       
  1005     mTestObject->primaryAction()->mTriggeredCount = 0;
       
  1006     mTestObject->secondaryAction()->mTriggeredCount = 0;
       
  1007     mTestObject->mTypeOfSelection = VideoListSelectionDialog::EAddToCollection;
       
  1008     mTestObject->mSelectedVideos.clear();
       
  1009     mTestHelper->emitPrimaryActionTriggeredSlot();
       
  1010     QCOMPARE(mTestObject->primaryAction()->mTriggeredCount, 1);
       
  1011     QCOMPARE(mTestObject->mSelectedVideos.count(), 1);
       
  1012   
       
  1013     mTestHelper->disconnectSignals(); 
       
  1014 }
       
  1015 
       
  1016 void TestVideoListSelectionDialog::testGetSelectedName()
       
  1017 {
       
  1018     mTestHelper->mTestable = mTestObject;
       
  1019     mTestHelper->connectSignals();
       
  1020     
       
  1021     mTestObject->setupContent(VideoListSelectionDialog::ERemoveFromCollection, TMPXItemId::InvalidId());
       
  1022     
       
  1023     mTestObject->mSelectedVideos.insert(TMPXItemId(1,0));
       
  1024     mTestObject->mSelectedVideos.insert(TMPXItemId(2,0));
       
  1025     
       
  1026     VideoCollectionViewUtilsData::mLastStatusAdditional = QVariant();
       
  1027     // mSelectedAlbumId is video
       
  1028     mTestObject->mSelectedAlbumId = TMPXItemId(1,0);
       
  1029     mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
       
  1030     QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
       
  1031     QVERIFY(!VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length());
       
  1032     
       
  1033     mTestObject->mSelectedAlbumId = TMPXItemId(1,2);
       
  1034     // fetching collections model unsucceeds
       
  1035     VideoCollectionWrapperData::mGetModelFails = true;
       
  1036     mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
       
  1037     QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
       
  1038     QVERIFY(!VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length());
       
  1039     VideoCollectionWrapperData::mGetModelFails = false;
       
  1040     
       
  1041     // invalid index for selected album
       
  1042     mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
       
  1043     QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
       
  1044     QVERIFY(!VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length());
       
  1045     
       
  1046     // succeed case:
       
  1047     // need to add album ib into selected list, because stub proxy overwrites
       
  1048     // VideoSortFilterProxyModelData::mItemIds at removeitems removeItemsFromAlbum -method
       
  1049     // and we need valid index for id
       
  1050     QStringList testnameList;
       
  1051     testnameList.append("testname");
       
  1052     VideoListDataModelData::mData[Qt::DisplayRole] = testnameList;
       
  1053     mTestObject->mSelectedVideos.insert(TMPXItemId(1,2));   
       
  1054     mTestHelper->emitFinishedSlot(mTestObject->primaryAction());
       
  1055     QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.isValid());
       
  1056     QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.toString().length() > 0);
       
  1057     QVERIFY(VideoCollectionViewUtilsData::mLastStatusAdditional.toString() == "testname");
       
  1058     
       
  1059     mTestHelper->disconnectSignals(); 
       
  1060 }
       
  1061 
    68 
  1062 
    69 // end of file
  1063 // end of file