videocollection/videocollectionwrapper/tsrc/testvideosortfilterproxymodel/src/testvideosortfilterproxymodel.cpp
author hgs
Thu, 01 Apr 2010 22:38:49 +0300
changeset 30 4f111d64a341
child 34 bbb98528c666
permissions -rw-r--r--
201005
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
hgs
parents:
diff changeset
     1
/**
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:   tester for methods in VideoSortFilterProxyModel
hgs
parents:
diff changeset
    15
* 
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <QModelIndex>
hgs
parents:
diff changeset
    19
#include <QModelIndexList>
hgs
parents:
diff changeset
    20
#include <hbapplication.h>
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include "videocollectioncommon.h"
hgs
parents:
diff changeset
    23
#include "testvideosortfilterproxymodel.h"
hgs
parents:
diff changeset
    24
#include "filterproxytester.h"
hgs
parents:
diff changeset
    25
#include "videolistdatamodel.h"
hgs
parents:
diff changeset
    26
#include "videocollectionclient.h"
hgs
parents:
diff changeset
    27
#include "videocollectioncommon.h"
hgs
parents:
diff changeset
    28
#include "videothumbnaildata.h"
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    31
// main
hgs
parents:
diff changeset
    32
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    33
//
hgs
parents:
diff changeset
    34
int main(int argc, char *argv[])
hgs
parents:
diff changeset
    35
{
hgs
parents:
diff changeset
    36
    HbApplication app(argc, argv);
hgs
parents:
diff changeset
    37
    
hgs
parents:
diff changeset
    38
    TestVideoSortFilterProxyModel tv;
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
    char *pass[3];
hgs
parents:
diff changeset
    41
    pass[0] = argv[0];
hgs
parents:
diff changeset
    42
    pass[1] = "-o";
hgs
parents:
diff changeset
    43
    pass[2] = "c:\\data\\testvideosortfilterproxymodel.txt";
hgs
parents:
diff changeset
    44
    
hgs
parents:
diff changeset
    45
    int res = QTest::qExec(&tv, 3, pass);
hgs
parents:
diff changeset
    46
    
hgs
parents:
diff changeset
    47
    return res;
hgs
parents:
diff changeset
    48
}
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    52
// init
hgs
parents:
diff changeset
    53
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    54
//
hgs
parents:
diff changeset
    55
void TestVideoSortFilterProxyModel::init()
hgs
parents:
diff changeset
    56
{
hgs
parents:
diff changeset
    57
	VideoListDataModel::mInitFails = false;
hgs
parents:
diff changeset
    58
	VideoListDataModel::mRemoveRowsFails = false;
hgs
parents:
diff changeset
    59
	VideoListDataModel::mGetMediaIdAtIndexFails = false;
hgs
parents:
diff changeset
    60
	VideoCollectionClient::mFailMediaPlayback = false;
hgs
parents:
diff changeset
    61
	VideoCollectionClient::mFailMediaDetails = false;
hgs
parents:
diff changeset
    62
	VideoCollectionClient::mFailInit = false;
hgs
parents:
diff changeset
    63
	VideoCollectionClient::mFailAddNewCollection = false;
hgs
parents:
diff changeset
    64
	VideoCollectionClient::mSortOrderSetCount = 0;
hgs
parents:
diff changeset
    65
	VideoCollectionClient::mAddNewCollectionName = QString();
hgs
parents:
diff changeset
    66
	VideoCollectionClient::mAddNewCollectionThumb = QString();
hgs
parents:
diff changeset
    67
	VideoCollectionClient::mAddNewCollectionIds = QList<TMPXItemId>();
hgs
parents:
diff changeset
    68
	VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
    69
	
hgs
parents:
diff changeset
    70
    mTestObject = new FilterProxyTester();
hgs
parents:
diff changeset
    71
    QVERIFY(mTestObject);
hgs
parents:
diff changeset
    72
    
hgs
parents:
diff changeset
    73
    mStubModel = new VideoListDataModel();
hgs
parents:
diff changeset
    74
    QVERIFY(mStubModel);  
hgs
parents:
diff changeset
    75
    
hgs
parents:
diff changeset
    76
    mCollectionClient = new VideoCollectionClient();
hgs
parents:
diff changeset
    77
    QVERIFY(mCollectionClient);
hgs
parents:
diff changeset
    78
}
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    81
// cleanup
hgs
parents:
diff changeset
    82
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    83
//
hgs
parents:
diff changeset
    84
void TestVideoSortFilterProxyModel::cleanup()
hgs
parents:
diff changeset
    85
{
hgs
parents:
diff changeset
    86
	delete mCollectionClient;
hgs
parents:
diff changeset
    87
	mCollectionClient = 0;
hgs
parents:
diff changeset
    88
	
hgs
parents:
diff changeset
    89
	delete mStubModel;
hgs
parents:
diff changeset
    90
    mStubModel = 0;
hgs
parents:
diff changeset
    91
 
hgs
parents:
diff changeset
    92
    delete mTestObject;
hgs
parents:
diff changeset
    93
    mTestObject = 0;
hgs
parents:
diff changeset
    94
}
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    97
// testInitialize
hgs
parents:
diff changeset
    98
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    99
//
hgs
parents:
diff changeset
   100
void TestVideoSortFilterProxyModel::testInitialize()
hgs
parents:
diff changeset
   101
{
hgs
parents:
diff changeset
   102
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   103
}
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   106
// testInitializeSignalConnectFail
hgs
parents:
diff changeset
   107
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   108
//
hgs
parents:
diff changeset
   109
void TestVideoSortFilterProxyModel::testInitializeSignalConnectFail()
hgs
parents:
diff changeset
   110
{	
hgs
parents:
diff changeset
   111
	QVERIFY(mTestObject->initialize(NULL) == -1);
hgs
parents:
diff changeset
   112
}
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   115
// testInitializeDataModelInitFail
hgs
parents:
diff changeset
   116
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   117
//
hgs
parents:
diff changeset
   118
void TestVideoSortFilterProxyModel::testInitializeDataModelInitFail()
hgs
parents:
diff changeset
   119
{
hgs
parents:
diff changeset
   120
	VideoListDataModel::mInitFails = true; 
hgs
parents:
diff changeset
   121
	
hgs
parents:
diff changeset
   122
	QVERIFY(mTestObject->initialize(mStubModel) == -1);
hgs
parents:
diff changeset
   123
}
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   126
// testInitializeCollectionInitFail
hgs
parents:
diff changeset
   127
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   128
//
hgs
parents:
diff changeset
   129
void TestVideoSortFilterProxyModel::testInitializeCollectionInitFail()
hgs
parents:
diff changeset
   130
{
hgs
parents:
diff changeset
   131
	VideoCollectionClient::mFailInit = true; 
hgs
parents:
diff changeset
   132
	
hgs
parents:
diff changeset
   133
	QVERIFY(mTestObject->initialize(mStubModel) == -1);
hgs
parents:
diff changeset
   134
}
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   137
// testSecondInitialize
hgs
parents:
diff changeset
   138
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   139
//
hgs
parents:
diff changeset
   140
void TestVideoSortFilterProxyModel::testSecondInitialize()
hgs
parents:
diff changeset
   141
{
hgs
parents:
diff changeset
   142
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   143
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   144
}
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   147
// testSecondInitializeModelInitFail
hgs
parents:
diff changeset
   148
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   149
//
hgs
parents:
diff changeset
   150
void TestVideoSortFilterProxyModel::testSecondInitializeModelInitFail()
hgs
parents:
diff changeset
   151
{
hgs
parents:
diff changeset
   152
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   153
	VideoListDataModel::mInitFails = true; 
hgs
parents:
diff changeset
   154
	QVERIFY(mTestObject->initialize(mStubModel) == -1);
hgs
parents:
diff changeset
   155
}
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   158
// testOpen
hgs
parents:
diff changeset
   159
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   160
//
hgs
parents:
diff changeset
   161
void TestVideoSortFilterProxyModel::testOpen()
hgs
parents:
diff changeset
   162
{
hgs
parents:
diff changeset
   163
	// First open.
hgs
parents:
diff changeset
   164
	QVERIFY(mTestObject->open(1) == 0); 
hgs
parents:
diff changeset
   165
	// Open again with same level.
hgs
parents:
diff changeset
   166
	QVERIFY(mTestObject->open(1) == 0); 
hgs
parents:
diff changeset
   167
	// Fail open.
hgs
parents:
diff changeset
   168
	VideoCollectionClient::mFailStartOpen = true;
hgs
parents:
diff changeset
   169
	QVERIFY(mTestObject->open(20) == -1);
hgs
parents:
diff changeset
   170
}
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   173
// testDeleteItems
hgs
parents:
diff changeset
   174
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   175
//
hgs
parents:
diff changeset
   176
void TestVideoSortFilterProxyModel::testDeleteItems()
hgs
parents:
diff changeset
   177
{
hgs
parents:
diff changeset
   178
    QString name1 = "cc";
hgs
parents:
diff changeset
   179
    QString name2 = "bb";
hgs
parents:
diff changeset
   180
    QString name3 = "aa";
hgs
parents:
diff changeset
   181
    QString name4 = "11";
hgs
parents:
diff changeset
   182
    QString name5 = "12";
hgs
parents:
diff changeset
   183
    mStubModel->appendData(name1); // to source model index 0, proxy index after sort 4
hgs
parents:
diff changeset
   184
    mStubModel->appendData(name2); // to source model index 1, proxy index after sort 3
hgs
parents:
diff changeset
   185
    mStubModel->appendData(name3); // to source model index 2, proxy index after sort 2
hgs
parents:
diff changeset
   186
    mStubModel->appendData(name4); // to source model index 3, proxy index after sort 0 
hgs
parents:
diff changeset
   187
    mStubModel->appendData(name5); // to source model index 4, proxy index after sort 1
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   190
	
hgs
parents:
diff changeset
   191
	mStubModel->setUsedRowCount(5);
hgs
parents:
diff changeset
   192
	
hgs
parents:
diff changeset
   193
	// sort to make sure that list order is different compared to source model
hgs
parents:
diff changeset
   194
	mTestObject->doSorting(Qt::DisplayRole, Qt::AscendingOrder);
hgs
parents:
diff changeset
   195
    // need to wait for awhile to make sure zero-counter gets 
hgs
parents:
diff changeset
   196
    // processing time.
hgs
parents:
diff changeset
   197
    QTest::qWait(500);
hgs
parents:
diff changeset
   198
    QVERIFY(mTestObject->sortRole() == Qt::DisplayRole);
hgs
parents:
diff changeset
   199
	
hgs
parents:
diff changeset
   200
    QModelIndexList list;
hgs
parents:
diff changeset
   201
    QModelIndex index; 
hgs
parents:
diff changeset
   202
    for(int i = 0; i < 5; ++i)
hgs
parents:
diff changeset
   203
    {
hgs
parents:
diff changeset
   204
        index = mTestObject->index(i,0);
hgs
parents:
diff changeset
   205
        list.append(index);
hgs
parents:
diff changeset
   206
    }
hgs
parents:
diff changeset
   207
    QModelIndexList emptyList;
hgs
parents:
diff changeset
   208
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   209
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   210
	QVERIFY(mTestObject->deleteItems(emptyList) == 0);
hgs
parents:
diff changeset
   211
	QVERIFY(mTestObject->deleteItems(list) == 0);
hgs
parents:
diff changeset
   212
	QVERIFY(mStubModel->mLastDeletedIndexRow == 0);
hgs
parents:
diff changeset
   213
	QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 2);
hgs
parents:
diff changeset
   214
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   215
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   216
}
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   219
// testDeleteItemsModelNull
hgs
parents:
diff changeset
   220
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   221
//
hgs
parents:
diff changeset
   222
void TestVideoSortFilterProxyModel::testDeleteItemsModelNull()
hgs
parents:
diff changeset
   223
{
hgs
parents:
diff changeset
   224
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   225
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   226
	QVERIFY(mTestObject->initialize(NULL) == -1);
hgs
parents:
diff changeset
   227
hgs
parents:
diff changeset
   228
	QModelIndex index = mStubModel->index(0, 0);
hgs
parents:
diff changeset
   229
	QModelIndexList list;
hgs
parents:
diff changeset
   230
	list.append(index);	
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   233
	
hgs
parents:
diff changeset
   234
	QVERIFY(mTestObject->deleteItems(list) == -1);
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   237
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   238
}
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   241
// testDeleteItemsRemoveRowsFail
hgs
parents:
diff changeset
   242
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   243
//
hgs
parents:
diff changeset
   244
void TestVideoSortFilterProxyModel::testDeleteItemsRemoveRowsFail()
hgs
parents:
diff changeset
   245
{
hgs
parents:
diff changeset
   246
	VideoListDataModel::mRemoveRowsFails = true;
hgs
parents:
diff changeset
   247
	
hgs
parents:
diff changeset
   248
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   249
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   250
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   251
	
hgs
parents:
diff changeset
   252
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   253
	QModelIndexList list;
hgs
parents:
diff changeset
   254
	list.append(index);
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   257
	
hgs
parents:
diff changeset
   258
	QVERIFY(mTestObject->deleteItems(list) == -1);
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   261
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   262
}
hgs
parents:
diff changeset
   263
hgs
parents:
diff changeset
   264
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   265
// testOpenItem
hgs
parents:
diff changeset
   266
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   267
//
hgs
parents:
diff changeset
   268
void TestVideoSortFilterProxyModel::testOpenItem()
hgs
parents:
diff changeset
   269
{	
hgs
parents:
diff changeset
   270
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   271
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   272
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   273
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   274
	
hgs
parents:
diff changeset
   275
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
	QVERIFY(mTestObject->openItem(index) == 0);
hgs
parents:
diff changeset
   278
	
hgs
parents:
diff changeset
   279
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   280
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   281
}
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   284
// testOpenItemGetMediaIdFail
hgs
parents:
diff changeset
   285
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   286
//
hgs
parents:
diff changeset
   287
void TestVideoSortFilterProxyModel::testOpenItemGetMediaIdFail()
hgs
parents:
diff changeset
   288
{
hgs
parents:
diff changeset
   289
	VideoListDataModel::mGetMediaIdAtIndexFails = true;
hgs
parents:
diff changeset
   290
	
hgs
parents:
diff changeset
   291
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   292
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   293
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   294
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   295
	
hgs
parents:
diff changeset
   296
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   297
		
hgs
parents:
diff changeset
   298
	QVERIFY(mTestObject->openItem(index) == -1);
hgs
parents:
diff changeset
   299
	
hgs
parents:
diff changeset
   300
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   301
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   302
}
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   305
// testOpenItemModelNull
hgs
parents:
diff changeset
   306
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   307
//
hgs
parents:
diff changeset
   308
void TestVideoSortFilterProxyModel::testOpenItemModelNull()
hgs
parents:
diff changeset
   309
{	
hgs
parents:
diff changeset
   310
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   311
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   312
	QVERIFY(mTestObject->initialize(NULL) == -1); 
hgs
parents:
diff changeset
   313
	
hgs
parents:
diff changeset
   314
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   315
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   316
		
hgs
parents:
diff changeset
   317
	QVERIFY(mTestObject->openItem(index) == -1);
hgs
parents:
diff changeset
   318
	
hgs
parents:
diff changeset
   319
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   320
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   321
}
hgs
parents:
diff changeset
   322
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   323
// testOpenItemOpenVideoFails
hgs
parents:
diff changeset
   324
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   325
//
hgs
parents:
diff changeset
   326
void TestVideoSortFilterProxyModel::testOpenItemOpenVideoFails()
hgs
parents:
diff changeset
   327
{
hgs
parents:
diff changeset
   328
	VideoCollectionClient::mFailMediaPlayback = true;
hgs
parents:
diff changeset
   329
	
hgs
parents:
diff changeset
   330
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   331
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   332
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   333
	
hgs
parents:
diff changeset
   334
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   335
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   336
		
hgs
parents:
diff changeset
   337
	QVERIFY(mTestObject->openItem(index) == -1);
hgs
parents:
diff changeset
   338
	
hgs
parents:
diff changeset
   339
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   340
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   341
}
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   344
// testBack
hgs
parents:
diff changeset
   345
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   346
//
hgs
parents:
diff changeset
   347
void TestVideoSortFilterProxyModel::testBack()
hgs
parents:
diff changeset
   348
{	
hgs
parents:
diff changeset
   349
	//mStubModel->appendData("Test");
hgs
parents:
diff changeset
   350
	//mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   351
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   352
	//QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   353
	
hgs
parents:
diff changeset
   354
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   355
hgs
parents:
diff changeset
   356
	QVERIFY(mTestObject->back() == 0);
hgs
parents:
diff changeset
   357
	
hgs
parents:
diff changeset
   358
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   359
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   360
}
hgs
parents:
diff changeset
   361
hgs
parents:
diff changeset
   362
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   363
// testBack
hgs
parents:
diff changeset
   364
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   365
//
hgs
parents:
diff changeset
   366
void TestVideoSortFilterProxyModel::testBackClientNull()
hgs
parents:
diff changeset
   367
{	
hgs
parents:
diff changeset
   368
	//mStubModel->appendData("Test");
hgs
parents:
diff changeset
   369
	//mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   370
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   371
	//QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   372
	VideoCollectionClient *tmpCollectionClient = mTestObject->getClient();
hgs
parents:
diff changeset
   373
	mTestObject->setClient(0);
hgs
parents:
diff changeset
   374
	
hgs
parents:
diff changeset
   375
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
	QVERIFY(mTestObject->back() == -1);
hgs
parents:
diff changeset
   378
	
hgs
parents:
diff changeset
   379
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   380
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
	mTestObject->setClient(tmpCollectionClient);
hgs
parents:
diff changeset
   383
}
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   386
// testFetchItemDetails
hgs
parents:
diff changeset
   387
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   388
//
hgs
parents:
diff changeset
   389
void TestVideoSortFilterProxyModel::testFetchItemDetails()
hgs
parents:
diff changeset
   390
{
hgs
parents:
diff changeset
   391
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   392
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   393
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   394
	
hgs
parents:
diff changeset
   395
	QSignalSpy fetchSpy(mTestObject, SIGNAL(shortDetailsReady(int)));
hgs
parents:
diff changeset
   396
	
hgs
parents:
diff changeset
   397
	QModelIndex index = mTestObject->index(0, 0);	
hgs
parents:
diff changeset
   398
hgs
parents:
diff changeset
   399
	QList<QVariant> arguments;
hgs
parents:
diff changeset
   400
	
hgs
parents:
diff changeset
   401
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   402
	QVERIFY(mTestObject->fetchItemDetails(index) == 0);
hgs
parents:
diff changeset
   403
hgs
parents:
diff changeset
   404
	QVERIFY(fetchSpy.count() == 1);
hgs
parents:
diff changeset
   405
	arguments = fetchSpy.takeFirst();
hgs
parents:
diff changeset
   406
	QVERIFY(arguments.at(0).toInt() == 0);
hgs
parents:
diff changeset
   407
	arguments.clear();
hgs
parents:
diff changeset
   408
	fetchSpy.clear();
hgs
parents:
diff changeset
   409
	
hgs
parents:
diff changeset
   410
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   411
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   412
}
hgs
parents:
diff changeset
   413
hgs
parents:
diff changeset
   414
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   415
// testFetchItemDetails
hgs
parents:
diff changeset
   416
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   417
//
hgs
parents:
diff changeset
   418
void TestVideoSortFilterProxyModel::testFetchItemDetailsGetMediaIdFail()
hgs
parents:
diff changeset
   419
{
hgs
parents:
diff changeset
   420
	VideoListDataModel::mGetMediaIdAtIndexFails = true;
hgs
parents:
diff changeset
   421
	
hgs
parents:
diff changeset
   422
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   423
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   424
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   425
	
hgs
parents:
diff changeset
   426
	QSignalSpy fetchSpy(mTestObject, SIGNAL(shortDetailsReady(int)));
hgs
parents:
diff changeset
   427
	
hgs
parents:
diff changeset
   428
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   429
	
hgs
parents:
diff changeset
   430
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   431
	
hgs
parents:
diff changeset
   432
	QVERIFY(mTestObject->fetchItemDetails(index) == -1);
hgs
parents:
diff changeset
   433
	
hgs
parents:
diff changeset
   434
	QVERIFY(fetchSpy.count() == 0);
hgs
parents:
diff changeset
   435
	
hgs
parents:
diff changeset
   436
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   437
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   438
}
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   441
// testFetchItemDetails
hgs
parents:
diff changeset
   442
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   443
//
hgs
parents:
diff changeset
   444
void TestVideoSortFilterProxyModel::testFetchItemDetailsGetVideoDetailsFails()
hgs
parents:
diff changeset
   445
{
hgs
parents:
diff changeset
   446
	VideoCollectionClient::mFailMediaDetails = true;
hgs
parents:
diff changeset
   447
	
hgs
parents:
diff changeset
   448
	mStubModel->appendData("Test");
hgs
parents:
diff changeset
   449
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
   450
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   451
	
hgs
parents:
diff changeset
   452
	QSignalSpy fetchSpy(mTestObject, SIGNAL(shortDetailsReady(int)));
hgs
parents:
diff changeset
   453
	QModelIndex index = mTestObject->index(0, 0);
hgs
parents:
diff changeset
   454
	
hgs
parents:
diff changeset
   455
	User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   456
		
hgs
parents:
diff changeset
   457
	QVERIFY(mTestObject->fetchItemDetails(index) == -1);
hgs
parents:
diff changeset
   458
	
hgs
parents:
diff changeset
   459
	QVERIFY(fetchSpy.count() == 0);
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
	int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   462
	QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   463
}
hgs
parents:
diff changeset
   464
hgs
parents:
diff changeset
   465
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   466
// testLessThanProxyModelNotInitialized
hgs
parents:
diff changeset
   467
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   468
//
hgs
parents:
diff changeset
   469
void TestVideoSortFilterProxyModel::testLessThanProxyModelNotInitialized()
hgs
parents:
diff changeset
   470
{
hgs
parents:
diff changeset
   471
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   472
	
hgs
parents:
diff changeset
   473
    // "normal" comparisation
hgs
parents:
diff changeset
   474
    QString name1 = "cc";
hgs
parents:
diff changeset
   475
    QString name2 = "bb";
hgs
parents:
diff changeset
   476
    QString name3 = "aa";
hgs
parents:
diff changeset
   477
    QString name4 = "11";
hgs
parents:
diff changeset
   478
    QString name5 = "11";
hgs
parents:
diff changeset
   479
    
hgs
parents:
diff changeset
   480
    mStubModel->appendData(name1); // to index 0, position 4
hgs
parents:
diff changeset
   481
    mStubModel->appendData(name2); // to index 1, position 3
hgs
parents:
diff changeset
   482
    mStubModel->appendData(name3); // to index 2, position 2
hgs
parents:
diff changeset
   483
    mStubModel->appendData(name4); // to index 3, position 0 or 1
hgs
parents:
diff changeset
   484
    mStubModel->appendData(name5); // to index 4, position 0 or 1
hgs
parents:
diff changeset
   485
    mStubModel->setUsedRowCount(5);
hgs
parents:
diff changeset
   486
   
hgs
parents:
diff changeset
   487
    mTestObject->setSortRole(Qt::DisplayRole);
hgs
parents:
diff changeset
   488
    
hgs
parents:
diff changeset
   489
    User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   490
hgs
parents:
diff changeset
   491
    QModelIndex left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   492
    QModelIndex right = mStubModel->index(1,0);
hgs
parents:
diff changeset
   493
    
hgs
parents:
diff changeset
   494
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   495
    
hgs
parents:
diff changeset
   496
    int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   497
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   498
}
hgs
parents:
diff changeset
   499
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   500
// testLessThanName
hgs
parents:
diff changeset
   501
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   502
//
hgs
parents:
diff changeset
   503
void TestVideoSortFilterProxyModel::testLessThanName()
hgs
parents:
diff changeset
   504
{
hgs
parents:
diff changeset
   505
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   506
	
hgs
parents:
diff changeset
   507
    // "normal" comparisation
hgs
parents:
diff changeset
   508
    QString name1 = "cc";
hgs
parents:
diff changeset
   509
    QString name2 = "bb";
hgs
parents:
diff changeset
   510
    QString name3 = "aa";
hgs
parents:
diff changeset
   511
    QString name4 = "11";
hgs
parents:
diff changeset
   512
    QString name5 = "11";
hgs
parents:
diff changeset
   513
    
hgs
parents:
diff changeset
   514
    mStubModel->appendData(name1); // to index 0, position 4
hgs
parents:
diff changeset
   515
    mStubModel->appendData(name2); // to index 1, position 3
hgs
parents:
diff changeset
   516
    mStubModel->appendData(name3); // to index 2, position 2
hgs
parents:
diff changeset
   517
    mStubModel->appendData(name4); // to index 3, position 0 or 1
hgs
parents:
diff changeset
   518
    mStubModel->appendData(name5); // to index 4, position 0 or 1
hgs
parents:
diff changeset
   519
    mStubModel->setUsedRowCount(5);
hgs
parents:
diff changeset
   520
   
hgs
parents:
diff changeset
   521
    mTestObject->setSortRole(Qt::DisplayRole);
hgs
parents:
diff changeset
   522
    
hgs
parents:
diff changeset
   523
    User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
    QModelIndex left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   526
    QModelIndex right = mStubModel->index(1,0);
hgs
parents:
diff changeset
   527
    
hgs
parents:
diff changeset
   528
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   529
    
hgs
parents:
diff changeset
   530
    left = mStubModel->index(1,0);
hgs
parents:
diff changeset
   531
    right = mStubModel->index(2,0);
hgs
parents:
diff changeset
   532
    
hgs
parents:
diff changeset
   533
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   534
    
hgs
parents:
diff changeset
   535
    left = mStubModel->index(2,0);
hgs
parents:
diff changeset
   536
    right = mStubModel->index(3,0);
hgs
parents:
diff changeset
   537
    
hgs
parents:
diff changeset
   538
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   539
    
hgs
parents:
diff changeset
   540
    left = mStubModel->index(3,0);
hgs
parents:
diff changeset
   541
    right = mStubModel->index(4,0);
hgs
parents:
diff changeset
   542
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   543
    
hgs
parents:
diff changeset
   544
    left = mStubModel->index(4,0);
hgs
parents:
diff changeset
   545
    right = mStubModel->index(0,0);
hgs
parents:
diff changeset
   546
    
hgs
parents:
diff changeset
   547
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   548
    
hgs
parents:
diff changeset
   549
    int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   550
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   551
    // reset model
hgs
parents:
diff changeset
   552
    delete mStubModel;
hgs
parents:
diff changeset
   553
    mStubModel = 0;
hgs
parents:
diff changeset
   554
    
hgs
parents:
diff changeset
   555
    mStubModel = new VideoListDataModel();
hgs
parents:
diff changeset
   556
    QVERIFY(mStubModel);
hgs
parents:
diff changeset
   557
    QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   558
    
hgs
parents:
diff changeset
   559
    // case sensitive check
hgs
parents:
diff changeset
   560
    name1 = "cc";
hgs
parents:
diff changeset
   561
    name2 = "CC";
hgs
parents:
diff changeset
   562
    name3 = "cC";
hgs
parents:
diff changeset
   563
    name4 = "aa";
hgs
parents:
diff changeset
   564
    name5 = "Aa";
hgs
parents:
diff changeset
   565
    QString name6 = "2Aa";
hgs
parents:
diff changeset
   566
    QString name7 = "1Aa";
hgs
parents:
diff changeset
   567
    QString name8 = "1cc";
hgs
parents:
diff changeset
   568
    
hgs
parents:
diff changeset
   569
    mStubModel->appendData(name1); // to index 0, position can be 5, 6 or 7
hgs
parents:
diff changeset
   570
    mStubModel->appendData(name2); // to index 1, position can be 5, 6 or 7
hgs
parents:
diff changeset
   571
    mStubModel->appendData(name3); // to index 2, position can be 5, 6 or 7
hgs
parents:
diff changeset
   572
    mStubModel->appendData(name4); // to index 3, position can be 3 or 4
hgs
parents:
diff changeset
   573
    mStubModel->appendData(name5); // to index 4, position can be 3 or 4
hgs
parents:
diff changeset
   574
    mStubModel->appendData(name6); // to index 5, position is 2 
hgs
parents:
diff changeset
   575
    mStubModel->appendData(name7); // to index 6, position is 0
hgs
parents:
diff changeset
   576
    mStubModel->appendData(name8); // to index 7, position is 1
hgs
parents:
diff changeset
   577
    
hgs
parents:
diff changeset
   578
    mStubModel->setUsedRowCount(8);
hgs
parents:
diff changeset
   579
    
hgs
parents:
diff changeset
   580
    mTestObject->setSortRole(Qt::DisplayRole);
hgs
parents:
diff changeset
   581
    
hgs
parents:
diff changeset
   582
    User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   583
hgs
parents:
diff changeset
   584
    left = mStubModel->index(0,0);  // "cc"
hgs
parents:
diff changeset
   585
    right = mStubModel->index(1,0); // "CC"
hgs
parents:
diff changeset
   586
        
hgs
parents:
diff changeset
   587
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   588
        
hgs
parents:
diff changeset
   589
    left = mStubModel->index(1,0);  // "CC"
hgs
parents:
diff changeset
   590
    right = mStubModel->index(2,0); // "cC"
hgs
parents:
diff changeset
   591
        
hgs
parents:
diff changeset
   592
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   593
        
hgs
parents:
diff changeset
   594
    left = mStubModel->index(2,0);  // "cC"
hgs
parents:
diff changeset
   595
    right = mStubModel->index(3,0); // "aa"
hgs
parents:
diff changeset
   596
        
hgs
parents:
diff changeset
   597
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   598
    
hgs
parents:
diff changeset
   599
    left = mStubModel->index(3,0);  // "aa"
hgs
parents:
diff changeset
   600
    right = mStubModel->index(2,0); // "cC"
hgs
parents:
diff changeset
   601
            
hgs
parents:
diff changeset
   602
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   603
       
hgs
parents:
diff changeset
   604
    left = mStubModel->index(3,0);  // "aa"
hgs
parents:
diff changeset
   605
    right = mStubModel->index(4,0); // "Aa"
hgs
parents:
diff changeset
   606
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   607
        
hgs
parents:
diff changeset
   608
    left = mStubModel->index(4,0);  // "Aa"
hgs
parents:
diff changeset
   609
    right = mStubModel->index(5,0); // "2Aa"
hgs
parents:
diff changeset
   610
      
hgs
parents:
diff changeset
   611
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   612
    
hgs
parents:
diff changeset
   613
    left = mStubModel->index(5,0);  // "2Aa"
hgs
parents:
diff changeset
   614
    right = mStubModel->index(6,0); // "1Aa"
hgs
parents:
diff changeset
   615
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   616
    
hgs
parents:
diff changeset
   617
    left = mStubModel->index(6,0);  // "1Aa"
hgs
parents:
diff changeset
   618
    right = mStubModel->index(7,0); // "1cc"
hgs
parents:
diff changeset
   619
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   620
    
hgs
parents:
diff changeset
   621
    left = mStubModel->index(5,0);  // "2Aa"
hgs
parents:
diff changeset
   622
    right = mStubModel->index(7,0); // "1cc"
hgs
parents:
diff changeset
   623
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   624
    
hgs
parents:
diff changeset
   625
    left = mStubModel->index(7,0);  // "1cc"
hgs
parents:
diff changeset
   626
    right = mStubModel->index(0,0); // "cc"
hgs
parents:
diff changeset
   627
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   628
    
hgs
parents:
diff changeset
   629
    remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   630
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   631
    
hgs
parents:
diff changeset
   632
}
hgs
parents:
diff changeset
   633
  
hgs
parents:
diff changeset
   634
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   635
// testLessThanSize
hgs
parents:
diff changeset
   636
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   637
//
hgs
parents:
diff changeset
   638
void TestVideoSortFilterProxyModel::testLessThanSize()
hgs
parents:
diff changeset
   639
{
hgs
parents:
diff changeset
   640
    QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   641
hgs
parents:
diff changeset
   642
    quint32 size1 = 300;
hgs
parents:
diff changeset
   643
    quint32 size2 = 200;
hgs
parents:
diff changeset
   644
    quint32 size3 = 100;
hgs
parents:
diff changeset
   645
    quint32 size4 = 99;
hgs
parents:
diff changeset
   646
    quint32 size5 = 99;
hgs
parents:
diff changeset
   647
    
hgs
parents:
diff changeset
   648
    mStubModel->appendData(size1); // to index 0
hgs
parents:
diff changeset
   649
    mStubModel->appendData(size2); // to index 1
hgs
parents:
diff changeset
   650
    mStubModel->appendData(size3); // to index 2    
hgs
parents:
diff changeset
   651
    mStubModel->appendData(size4); // to index 3
hgs
parents:
diff changeset
   652
    mStubModel->appendData(size5); // to index 4
hgs
parents:
diff changeset
   653
    mStubModel->setUsedRowCount(5);
hgs
parents:
diff changeset
   654
    
hgs
parents:
diff changeset
   655
    mTestObject->setSortRole(VideoCollectionCommon::KeySizeValue);
hgs
parents:
diff changeset
   656
hgs
parents:
diff changeset
   657
    User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   658
    
hgs
parents:
diff changeset
   659
    QModelIndex left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   660
    QModelIndex right = mStubModel->index(1,0);
hgs
parents:
diff changeset
   661
    
hgs
parents:
diff changeset
   662
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   663
    
hgs
parents:
diff changeset
   664
    left = mStubModel->index(1,0);
hgs
parents:
diff changeset
   665
    right = mStubModel->index(2,0);
hgs
parents:
diff changeset
   666
    
hgs
parents:
diff changeset
   667
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   668
    
hgs
parents:
diff changeset
   669
    left = mStubModel->index(2,0);
hgs
parents:
diff changeset
   670
    right = mStubModel->index(3,0);
hgs
parents:
diff changeset
   671
    
hgs
parents:
diff changeset
   672
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   673
    
hgs
parents:
diff changeset
   674
    left = mStubModel->index(3,0);
hgs
parents:
diff changeset
   675
    right = mStubModel->index(4,0);
hgs
parents:
diff changeset
   676
    
hgs
parents:
diff changeset
   677
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   678
    
hgs
parents:
diff changeset
   679
    left = mStubModel->index(4,0);
hgs
parents:
diff changeset
   680
    right = mStubModel->index(0,0);
hgs
parents:
diff changeset
   681
    
hgs
parents:
diff changeset
   682
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   683
    
hgs
parents:
diff changeset
   684
    int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   685
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   686
}
hgs
parents:
diff changeset
   687
 
hgs
parents:
diff changeset
   688
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   689
// testLessThanDate
hgs
parents:
diff changeset
   690
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   691
//
hgs
parents:
diff changeset
   692
void TestVideoSortFilterProxyModel::testLessThanDateTime()
hgs
parents:
diff changeset
   693
{
hgs
parents:
diff changeset
   694
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   695
	
hgs
parents:
diff changeset
   696
	QDateTime date1(QDate(2010, 11, 5), QTime(0,0));
hgs
parents:
diff changeset
   697
    QDateTime date2(QDate(2009, 9, 5), QTime(0,0));
hgs
parents:
diff changeset
   698
    QDateTime date3(QDate(2009, 9, 4), QTime(0,0));
hgs
parents:
diff changeset
   699
    QDateTime date4(QDate(2008, 9, 6), QTime(0,0));
hgs
parents:
diff changeset
   700
    QDateTime date5(QDate(2008, 9, 6), QTime(0,0));
hgs
parents:
diff changeset
   701
    
hgs
parents:
diff changeset
   702
    mStubModel->appendData(date1); // to index 0
hgs
parents:
diff changeset
   703
    mStubModel->appendData(date2); // to index 1
hgs
parents:
diff changeset
   704
    mStubModel->appendData(date3); // to index 2    
hgs
parents:
diff changeset
   705
    mStubModel->appendData(date4); // to index 3
hgs
parents:
diff changeset
   706
    mStubModel->appendData(date5); // to index 4
hgs
parents:
diff changeset
   707
    mStubModel->setUsedRowCount(5);
hgs
parents:
diff changeset
   708
    
hgs
parents:
diff changeset
   709
    mTestObject->setSortRole(VideoCollectionCommon::KeyDateTime);
hgs
parents:
diff changeset
   710
hgs
parents:
diff changeset
   711
    User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   712
    
hgs
parents:
diff changeset
   713
    QModelIndex left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   714
    QModelIndex right = mStubModel->index(1,0);
hgs
parents:
diff changeset
   715
    
hgs
parents:
diff changeset
   716
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   717
    
hgs
parents:
diff changeset
   718
    left = mStubModel->index(1,0);
hgs
parents:
diff changeset
   719
    right = mStubModel->index(2,0);
hgs
parents:
diff changeset
   720
    
hgs
parents:
diff changeset
   721
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   722
    
hgs
parents:
diff changeset
   723
    left = mStubModel->index(2,0);
hgs
parents:
diff changeset
   724
    right = mStubModel->index(3,0);
hgs
parents:
diff changeset
   725
    
hgs
parents:
diff changeset
   726
    QVERIFY(mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   727
    
hgs
parents:
diff changeset
   728
    left = mStubModel->index(3,0);
hgs
parents:
diff changeset
   729
    right = mStubModel->index(4,0);
hgs
parents:
diff changeset
   730
    
hgs
parents:
diff changeset
   731
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   732
    
hgs
parents:
diff changeset
   733
    left = mStubModel->index(4,0);
hgs
parents:
diff changeset
   734
    right = mStubModel->index(0,0);
hgs
parents:
diff changeset
   735
    
hgs
parents:
diff changeset
   736
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   737
    
hgs
parents:
diff changeset
   738
    int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   739
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   740
}
hgs
parents:
diff changeset
   741
hgs
parents:
diff changeset
   742
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   743
// testLessThanInvalid
hgs
parents:
diff changeset
   744
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   745
//
hgs
parents:
diff changeset
   746
void TestVideoSortFilterProxyModel::testLessThanInvalid()
hgs
parents:
diff changeset
   747
{
hgs
parents:
diff changeset
   748
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   749
	
hgs
parents:
diff changeset
   750
    // invalid role
hgs
parents:
diff changeset
   751
	mTestObject->setSortRole(10000);
hgs
parents:
diff changeset
   752
    
hgs
parents:
diff changeset
   753
    User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   754
    
hgs
parents:
diff changeset
   755
    QModelIndex left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   756
    QModelIndex right = mStubModel->index(0,0);
hgs
parents:
diff changeset
   757
    
hgs
parents:
diff changeset
   758
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   759
    
hgs
parents:
diff changeset
   760
    int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   761
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   762
    
hgs
parents:
diff changeset
   763
    // invalid role but valid data.
hgs
parents:
diff changeset
   764
    
hgs
parents:
diff changeset
   765
	QString name1 = "cc";
hgs
parents:
diff changeset
   766
	QString name2 = "bb";
hgs
parents:
diff changeset
   767
	QString name3 = "aa";
hgs
parents:
diff changeset
   768
	
hgs
parents:
diff changeset
   769
	
hgs
parents:
diff changeset
   770
	mStubModel->appendData(name1); // to index 0, position 4
hgs
parents:
diff changeset
   771
	mStubModel->appendData(name2); // to index 1, position 3
hgs
parents:
diff changeset
   772
	mStubModel->appendData(name3); // to index 2, position 2
hgs
parents:
diff changeset
   773
	mStubModel->setUsedRowCount(3);
hgs
parents:
diff changeset
   774
   
hgs
parents:
diff changeset
   775
	mTestObject->setSortRole(INVALID_ROLE_FOR_SORTING);
hgs
parents:
diff changeset
   776
	
hgs
parents:
diff changeset
   777
    left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   778
    right = mStubModel->index(1,0);
hgs
parents:
diff changeset
   779
    
hgs
parents:
diff changeset
   780
    User::Heap().__DbgMarkStart();
hgs
parents:
diff changeset
   781
    
hgs
parents:
diff changeset
   782
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   783
hgs
parents:
diff changeset
   784
    remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   785
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   786
    
hgs
parents:
diff changeset
   787
    // reset model
hgs
parents:
diff changeset
   788
    delete mStubModel;
hgs
parents:
diff changeset
   789
    mStubModel = 0;  
hgs
parents:
diff changeset
   790
    
hgs
parents:
diff changeset
   791
    mStubModel = new VideoListDataModel();
hgs
parents:
diff changeset
   792
    QVERIFY(mStubModel);
hgs
parents:
diff changeset
   793
    QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   794
    
hgs
parents:
diff changeset
   795
    // invalid left index
hgs
parents:
diff changeset
   796
    mTestObject->setSortRole(Qt::DisplayRole);
hgs
parents:
diff changeset
   797
    User::Heap().__DbgMarkStart(); 
hgs
parents:
diff changeset
   798
    left = QModelIndex();
hgs
parents:
diff changeset
   799
    right = mStubModel->index(0,0);
hgs
parents:
diff changeset
   800
    
hgs
parents:
diff changeset
   801
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   802
    remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   803
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   804
    
hgs
parents:
diff changeset
   805
    // invalid right index
hgs
parents:
diff changeset
   806
    mTestObject->setSortRole(Qt::DisplayRole);
hgs
parents:
diff changeset
   807
    User::Heap().__DbgMarkStart(); 
hgs
parents:
diff changeset
   808
    left =  mStubModel->index(0,0); 
hgs
parents:
diff changeset
   809
    right = QModelIndex();
hgs
parents:
diff changeset
   810
    
hgs
parents:
diff changeset
   811
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   812
    remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   813
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   814
    
hgs
parents:
diff changeset
   815
    // both invalid
hgs
parents:
diff changeset
   816
    mTestObject->setSortRole(Qt::DisplayRole);
hgs
parents:
diff changeset
   817
    User::Heap().__DbgMarkStart(); 
hgs
parents:
diff changeset
   818
    left =  QModelIndex();
hgs
parents:
diff changeset
   819
    right = QModelIndex();
hgs
parents:
diff changeset
   820
    
hgs
parents:
diff changeset
   821
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   822
    remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   823
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   824
    
hgs
parents:
diff changeset
   825
    // both same index, use size
hgs
parents:
diff changeset
   826
    quint32 size1 = 99;
hgs
parents:
diff changeset
   827
    
hgs
parents:
diff changeset
   828
    mStubModel->appendData(size1); // to index 0
hgs
parents:
diff changeset
   829
    
hgs
parents:
diff changeset
   830
    mTestObject->setSortRole(VideoCollectionCommon::KeySizeValue);
hgs
parents:
diff changeset
   831
    mTestObject->setSortRole(Qt::DisplayRole); 
hgs
parents:
diff changeset
   832
    
hgs
parents:
diff changeset
   833
    User::Heap().__DbgMarkStart(); 
hgs
parents:
diff changeset
   834
    
hgs
parents:
diff changeset
   835
    left = mStubModel->index(0,0);
hgs
parents:
diff changeset
   836
    right = mStubModel->index(0,0);
hgs
parents:
diff changeset
   837
    QVERIFY(!mTestObject->callLessThan(left, right));
hgs
parents:
diff changeset
   838
    remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
   839
    QVERIFY(remHeap == 0);
hgs
parents:
diff changeset
   840
 
hgs
parents:
diff changeset
   841
}
hgs
parents:
diff changeset
   842
hgs
parents:
diff changeset
   843
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   844
// testDoSorting
hgs
parents:
diff changeset
   845
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   846
//
hgs
parents:
diff changeset
   847
void TestVideoSortFilterProxyModel::testDoSorting()
hgs
parents:
diff changeset
   848
{
hgs
parents:
diff changeset
   849
    QWARN("Waiting for resolving of potential memory leak in QSortFilterProxy before adding heap allocation checks here");
hgs
parents:
diff changeset
   850
    
hgs
parents:
diff changeset
   851
    QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
   852
    
hgs
parents:
diff changeset
   853
    // these signals are emitted during sorting procedure from the fw
hgs
parents:
diff changeset
   854
    QSignalSpy spyAboutToChange(mTestObject, SIGNAL(layoutAboutToBeChanged()));
hgs
parents:
diff changeset
   855
    QSignalSpy spyChanged(mTestObject, SIGNAL(layoutChanged()));
hgs
parents:
diff changeset
   856
    
hgs
parents:
diff changeset
   857
    QString name1 = "cc";
hgs
parents:
diff changeset
   858
    QString name2 = "bb";
hgs
parents:
diff changeset
   859
    QString name3 = "aa";
hgs
parents:
diff changeset
   860
    QString name4 = "11";
hgs
parents:
diff changeset
   861
    QString name5 = "11";
hgs
parents:
diff changeset
   862
    QDateTime date1(QDate(2010, 11, 5), QTime(0,0));
hgs
parents:
diff changeset
   863
    QDateTime date2(QDate(2009, 9, 5), QTime(0,0));
hgs
parents:
diff changeset
   864
    QDateTime date3(QDate(2009, 9, 4), QTime(0,0));
hgs
parents:
diff changeset
   865
    QDateTime date4(QDate(2008, 9, 6), QTime(0,0));
hgs
parents:
diff changeset
   866
    QDateTime date5(QDate(2008, 9, 6), QTime(0,0));
hgs
parents:
diff changeset
   867
    quint32 size1 = 300;
hgs
parents:
diff changeset
   868
    quint32 size2 = 200;
hgs
parents:
diff changeset
   869
    quint32 size3 = 100;
hgs
parents:
diff changeset
   870
    quint32 size4 = 99;
hgs
parents:
diff changeset
   871
    quint32 size5 = 99;
hgs
parents:
diff changeset
   872
  
hgs
parents:
diff changeset
   873
    mStubModel->appendData(name1); // to index 0, position 4
hgs
parents:
diff changeset
   874
    mStubModel->appendData(name2); // to index 1, position 3
hgs
parents:
diff changeset
   875
    mStubModel->appendData(name3); // to index 2, position 2
hgs
parents:
diff changeset
   876
    mStubModel->appendData(name4); // to index 3, position 0 or 1
hgs
parents:
diff changeset
   877
    mStubModel->appendData(name5); // to index 4, position 0 or 1
hgs
parents:
diff changeset
   878
  
hgs
parents:
diff changeset
   879
    mStubModel->appendData(date1); // to index 0
hgs
parents:
diff changeset
   880
    mStubModel->appendData(date2); // to index 1
hgs
parents:
diff changeset
   881
    mStubModel->appendData(date3); // to index 2    
hgs
parents:
diff changeset
   882
    mStubModel->appendData(date4); // to index 3
hgs
parents:
diff changeset
   883
    mStubModel->appendData(date5); // to index 4
hgs
parents:
diff changeset
   884
  
hgs
parents:
diff changeset
   885
    mStubModel->appendData(size1); // to index 0
hgs
parents:
diff changeset
   886
    mStubModel->appendData(size2); // to index 1
hgs
parents:
diff changeset
   887
    mStubModel->appendData(size3); // to index 2    
hgs
parents:
diff changeset
   888
    mStubModel->appendData(size4); // to index 3
hgs
parents:
diff changeset
   889
    mStubModel->appendData(size5); // to index 4
hgs
parents:
diff changeset
   890
    
hgs
parents:
diff changeset
   891
    mStubModel->setUsedRowCount(5);
hgs
parents:
diff changeset
   892
hgs
parents:
diff changeset
   893
    // User::Heap().__DbgMarkStart();  
hgs
parents:
diff changeset
   894
hgs
parents:
diff changeset
   895
    // first sort call, includes timer creation and setup
hgs
parents:
diff changeset
   896
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   897
    mTestObject->doSorting(Qt::DisplayRole, Qt::AscendingOrder);
hgs
parents:
diff changeset
   898
    // need to wait for awhile to make sure zero-counter gets 
hgs
parents:
diff changeset
   899
    // processing time.
hgs
parents:
diff changeset
   900
    QTest::qWait(500);
hgs
parents:
diff changeset
   901
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   902
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   903
    QCOMPARE(mTestObject->sortRole(), (int)Qt::DisplayRole);
hgs
parents:
diff changeset
   904
    QCOMPARE(mTestObject->sortOrder(), Qt::AscendingOrder);
hgs
parents:
diff changeset
   905
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   906
   
hgs
parents:
diff changeset
   907
    // reset spys
hgs
parents:
diff changeset
   908
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   909
    spyChanged.clear();
hgs
parents:
diff changeset
   910
      
hgs
parents:
diff changeset
   911
    // second sort call, should use same timer appropriately
hgs
parents:
diff changeset
   912
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   913
    mTestObject->doSorting(Qt::DisplayRole, Qt::DescendingOrder);
hgs
parents:
diff changeset
   914
    QTest::qWait(500);
hgs
parents:
diff changeset
   915
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   916
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   917
    QCOMPARE(mTestObject->sortRole(), (int)Qt::DisplayRole);
hgs
parents:
diff changeset
   918
    QCOMPARE(mTestObject->sortOrder(), Qt::DescendingOrder);
hgs
parents:
diff changeset
   919
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   920
    
hgs
parents:
diff changeset
   921
    // reset spys
hgs
parents:
diff changeset
   922
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   923
    spyChanged.clear();    
hgs
parents:
diff changeset
   924
    
hgs
parents:
diff changeset
   925
    // double call without first letting timer to timeout
hgs
parents:
diff changeset
   926
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   927
    mTestObject->doSorting(Qt::DisplayRole, Qt::DescendingOrder);
hgs
parents:
diff changeset
   928
    mTestObject->doSorting(Qt::DisplayRole, Qt::AscendingOrder);
hgs
parents:
diff changeset
   929
    QTest::qWait(500);
hgs
parents:
diff changeset
   930
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   931
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   932
    QCOMPARE(mTestObject->sortRole(), (int)Qt::DisplayRole);
hgs
parents:
diff changeset
   933
    QCOMPARE(mTestObject->sortOrder(), Qt::AscendingOrder);
hgs
parents:
diff changeset
   934
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   935
    
hgs
parents:
diff changeset
   936
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   937
    spyChanged.clear();
hgs
parents:
diff changeset
   938
    
hgs
parents:
diff changeset
   939
    // syncronous call checks
hgs
parents:
diff changeset
   940
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   941
    mTestObject->doSorting(Qt::DisplayRole, Qt::DescendingOrder, false);
hgs
parents:
diff changeset
   942
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   943
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   944
    QCOMPARE(mTestObject->sortRole(), (int)Qt::DisplayRole);
hgs
parents:
diff changeset
   945
    QCOMPARE(mTestObject->sortOrder(), Qt::DescendingOrder);
hgs
parents:
diff changeset
   946
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   947
    
hgs
parents:
diff changeset
   948
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   949
    spyChanged.clear();
hgs
parents:
diff changeset
   950
    
hgs
parents:
diff changeset
   951
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   952
    mTestObject->doSorting(Qt::DisplayRole, Qt::AscendingOrder, false);
hgs
parents:
diff changeset
   953
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   954
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   955
    QCOMPARE(mTestObject->sortRole(), (int)Qt::DisplayRole);
hgs
parents:
diff changeset
   956
    QCOMPARE(mTestObject->sortOrder(), Qt::AscendingOrder);
hgs
parents:
diff changeset
   957
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   958
    
hgs
parents:
diff changeset
   959
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   960
    spyChanged.clear();
hgs
parents:
diff changeset
   961
    
hgs
parents:
diff changeset
   962
    // check that layout signals are not send if the sorting values don't change.
hgs
parents:
diff changeset
   963
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   964
    mTestObject->doSorting(Qt::DisplayRole, Qt::AscendingOrder);
hgs
parents:
diff changeset
   965
    QCOMPARE(spyAboutToChange.count(), 0);
hgs
parents:
diff changeset
   966
    QCOMPARE(spyChanged.count(), 0);
hgs
parents:
diff changeset
   967
    QCOMPARE(mTestObject->sortRole(), (int)Qt::DisplayRole);
hgs
parents:
diff changeset
   968
    QCOMPARE(mTestObject->sortOrder(), Qt::AscendingOrder);
hgs
parents:
diff changeset
   969
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 0);
hgs
parents:
diff changeset
   970
    
hgs
parents:
diff changeset
   971
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   972
    spyChanged.clear();
hgs
parents:
diff changeset
   973
    
hgs
parents:
diff changeset
   974
    // date role check    
hgs
parents:
diff changeset
   975
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   976
    mTestObject->doSorting(VideoCollectionCommon::KeyDateTime, Qt::AscendingOrder);
hgs
parents:
diff changeset
   977
    QTest::qWait(500);
hgs
parents:
diff changeset
   978
    int count = spyAboutToChange.count();
hgs
parents:
diff changeset
   979
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   980
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   981
    QCOMPARE(mTestObject->sortRole(), (int)VideoCollectionCommon::KeyDateTime);
hgs
parents:
diff changeset
   982
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   983
    
hgs
parents:
diff changeset
   984
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   985
    spyChanged.clear();
hgs
parents:
diff changeset
   986
    
hgs
parents:
diff changeset
   987
    // size role check
hgs
parents:
diff changeset
   988
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
   989
    mTestObject->doSorting(VideoCollectionCommon::KeySizeValue, Qt::AscendingOrder);
hgs
parents:
diff changeset
   990
    QTest::qWait(500);
hgs
parents:
diff changeset
   991
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
   992
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
   993
    QCOMPARE(mTestObject->sortRole(),  (int)VideoCollectionCommon::KeySizeValue);
hgs
parents:
diff changeset
   994
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
   995
    
hgs
parents:
diff changeset
   996
    spyAboutToChange.clear();
hgs
parents:
diff changeset
   997
    spyChanged.clear();
hgs
parents:
diff changeset
   998
    
hgs
parents:
diff changeset
   999
    // invalid role call, sorting should be set to date
hgs
parents:
diff changeset
  1000
    VideoThumbnailData::mStartBackgroundFetchingCallCount = 0;
hgs
parents:
diff changeset
  1001
    mTestObject->doSorting(Qt::DisplayRole - 100, Qt::AscendingOrder);
hgs
parents:
diff changeset
  1002
    QTest::qWait(500);
hgs
parents:
diff changeset
  1003
    QCOMPARE(spyAboutToChange.count(), 1);
hgs
parents:
diff changeset
  1004
    QCOMPARE(spyChanged.count(), 1);
hgs
parents:
diff changeset
  1005
    QCOMPARE(mTestObject->sortRole(), (int)VideoCollectionCommon::KeyDateTime);
hgs
parents:
diff changeset
  1006
    spyAboutToChange.clear();
hgs
parents:
diff changeset
  1007
    spyChanged.clear();
hgs
parents:
diff changeset
  1008
    QVERIFY(VideoThumbnailData::mStartBackgroundFetchingCallCount == 1);
hgs
parents:
diff changeset
  1009
    
hgs
parents:
diff changeset
  1010
   // cleanup();
hgs
parents:
diff changeset
  1011
   // int remHeap = User::Heap().__DbgMarkEnd(0);
hgs
parents:
diff changeset
  1012
   // QVERIFY(remHeap == 0);  
hgs
parents:
diff changeset
  1013
}
hgs
parents:
diff changeset
  1014
hgs
parents:
diff changeset
  1015
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1016
// testFilterAcceptsRow
hgs
parents:
diff changeset
  1017
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1018
//
hgs
parents:
diff changeset
  1019
void TestVideoSortFilterProxyModel::testFilterAcceptsRowProxyModelNotInitialized()
hgs
parents:
diff changeset
  1020
{	
hgs
parents:
diff changeset
  1021
	QModelIndex index = QModelIndex(); // index can be anything, test model doesn't use it.
hgs
parents:
diff changeset
  1022
    QVERIFY(mTestObject->callFilterAcceptsRow(0, index) == false);    
hgs
parents:
diff changeset
  1023
}
hgs
parents:
diff changeset
  1024
hgs
parents:
diff changeset
  1025
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1026
// testFilterAcceptsRow
hgs
parents:
diff changeset
  1027
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1028
//
hgs
parents:
diff changeset
  1029
void TestVideoSortFilterProxyModel::testFilterAcceptsRow()
hgs
parents:
diff changeset
  1030
{	
hgs
parents:
diff changeset
  1031
	QModelIndex index = QModelIndex(); // index can be anything, test model doesn't use it.
hgs
parents:
diff changeset
  1032
		
hgs
parents:
diff changeset
  1033
	// Not initialized.
hgs
parents:
diff changeset
  1034
	QVERIFY(mTestObject->callFilterAcceptsRow(0, index) == false);	
hgs
parents:
diff changeset
  1035
	
hgs
parents:
diff changeset
  1036
	QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
  1037
	
hgs
parents:
diff changeset
  1038
	// Test invalid row.
hgs
parents:
diff changeset
  1039
	QVERIFY(mTestObject->callFilterAcceptsRow(-1, index) == false);
hgs
parents:
diff changeset
  1040
	
hgs
parents:
diff changeset
  1041
	// Model data has no status role.
hgs
parents:
diff changeset
  1042
	mStubModel->appendData("test");
hgs
parents:
diff changeset
  1043
	mStubModel->setUsedRowCount(1);
hgs
parents:
diff changeset
  1044
	QVERIFY(mTestObject->callFilterAcceptsRow(0, index) == true);
hgs
parents:
diff changeset
  1045
	
hgs
parents:
diff changeset
  1046
    // reset model
hgs
parents:
diff changeset
  1047
    delete mStubModel;
hgs
parents:
diff changeset
  1048
    mStubModel = 0;
hgs
parents:
diff changeset
  1049
    
hgs
parents:
diff changeset
  1050
    mStubModel = new VideoListDataModel();
hgs
parents:
diff changeset
  1051
    QVERIFY(mStubModel);
hgs
parents:
diff changeset
  1052
    QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
  1053
	
hgs
parents:
diff changeset
  1054
    // add data with status roles.  
hgs
parents:
diff changeset
  1055
	mStubModel->appendStatus(VideoCollectionCommon::StatusNone);
hgs
parents:
diff changeset
  1056
    mStubModel->appendStatus(VideoCollectionCommon::StatusDeleted);
hgs
parents:
diff changeset
  1057
    mStubModel->setUsedRowCount(2);
hgs
parents:
diff changeset
  1058
    
hgs
parents:
diff changeset
  1059
    // Test when status is not deleted.
hgs
parents:
diff changeset
  1060
    QVERIFY(mTestObject->callFilterAcceptsRow(0, index) == true);
hgs
parents:
diff changeset
  1061
    
hgs
parents:
diff changeset
  1062
    // Test when status is deleted.
hgs
parents:
diff changeset
  1063
    index = mStubModel->index(0,0);
hgs
parents:
diff changeset
  1064
    QVERIFY(mTestObject->callFilterAcceptsRow(1, index) == false);
hgs
parents:
diff changeset
  1065
}
hgs
parents:
diff changeset
  1066
hgs
parents:
diff changeset
  1067
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1068
// testGetMediaFilePathForId
hgs
parents:
diff changeset
  1069
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1070
//
hgs
parents:
diff changeset
  1071
void TestVideoSortFilterProxyModel::testGetMediaFilePathForId()
hgs
parents:
diff changeset
  1072
{
hgs
parents:
diff changeset
  1073
    // Not initialized.
hgs
parents:
diff changeset
  1074
    VideoListDataModel::mMediaFilePathReturnValue = "testfile";
hgs
parents:
diff changeset
  1075
    QVERIFY(mTestObject->getMediaFilePathForId(TMPXItemId(0,0)) == "");
hgs
parents:
diff changeset
  1076
hgs
parents:
diff changeset
  1077
    // Ok case.
hgs
parents:
diff changeset
  1078
    QVERIFY(mTestObject->initialize(mStubModel) == 0);
hgs
parents:
diff changeset
  1079
    VideoListDataModel::mMediaFilePathReturnValue = "testfile";
hgs
parents:
diff changeset
  1080
    QVERIFY(mTestObject->getMediaFilePathForId(TMPXItemId(0,0)) == "testfile");
hgs
parents:
diff changeset
  1081
}
hgs
parents:
diff changeset
  1082
hgs
parents:
diff changeset
  1083
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1084
// testAddNewCollectionNoCollectionClient
hgs
parents:
diff changeset
  1085
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1086
//
hgs
parents:
diff changeset
  1087
void TestVideoSortFilterProxyModel::testAddNewCollectionNoCollectionClient()
hgs
parents:
diff changeset
  1088
{
hgs
parents:
diff changeset
  1089
    QString name("testname");
hgs
parents:
diff changeset
  1090
    QString thumb("testthumb");
hgs
parents:
diff changeset
  1091
    QList<TMPXItemId> ids;
hgs
parents:
diff changeset
  1092
    
hgs
parents:
diff changeset
  1093
    QCOMPARE(mTestObject->addNewCollection(name, thumb, ids), -1);
hgs
parents:
diff changeset
  1094
    QVERIFY(VideoCollectionClient::mAddNewCollectionName != name);
hgs
parents:
diff changeset
  1095
}
hgs
parents:
diff changeset
  1096
hgs
parents:
diff changeset
  1097
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1098
// testAddNewCollectionSucceed
hgs
parents:
diff changeset
  1099
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1100
//
hgs
parents:
diff changeset
  1101
void TestVideoSortFilterProxyModel::testAddNewCollectionSucceed()
hgs
parents:
diff changeset
  1102
{
hgs
parents:
diff changeset
  1103
    QString name("testname");
hgs
parents:
diff changeset
  1104
    QString thumb("testthumb");
hgs
parents:
diff changeset
  1105
    QList<TMPXItemId> ids;
hgs
parents:
diff changeset
  1106
    ids.append(TMPXItemId(5, 0));
hgs
parents:
diff changeset
  1107
    ids.append(TMPXItemId(9, 0));
hgs
parents:
diff changeset
  1108
    
hgs
parents:
diff changeset
  1109
    mTestObject->initialize(mStubModel);
hgs
parents:
diff changeset
  1110
    
hgs
parents:
diff changeset
  1111
    QCOMPARE(mTestObject->addNewCollection(name, thumb, ids), 0);
hgs
parents:
diff changeset
  1112
    QCOMPARE(VideoCollectionClient::mAddNewCollectionName, name);
hgs
parents:
diff changeset
  1113
    QCOMPARE(VideoCollectionClient::mAddNewCollectionThumb, thumb);
hgs
parents:
diff changeset
  1114
    QCOMPARE(VideoCollectionClient::mAddNewCollectionIds, ids);
hgs
parents:
diff changeset
  1115
}
hgs
parents:
diff changeset
  1116
hgs
parents:
diff changeset
  1117
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1118
// testAddNewCollectionFail
hgs
parents:
diff changeset
  1119
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1120
//
hgs
parents:
diff changeset
  1121
void TestVideoSortFilterProxyModel::testAddNewCollectionFail()
hgs
parents:
diff changeset
  1122
{
hgs
parents:
diff changeset
  1123
    QString name("testname");
hgs
parents:
diff changeset
  1124
    QString thumb("testthumb");
hgs
parents:
diff changeset
  1125
    QList<TMPXItemId> ids;
hgs
parents:
diff changeset
  1126
    ids.append(TMPXItemId(5,0));
hgs
parents:
diff changeset
  1127
    ids.append(TMPXItemId(9,0));
hgs
parents:
diff changeset
  1128
    
hgs
parents:
diff changeset
  1129
    mTestObject->initialize(mStubModel);
hgs
parents:
diff changeset
  1130
    
hgs
parents:
diff changeset
  1131
    VideoCollectionClient::mFailAddNewCollection = true;
hgs
parents:
diff changeset
  1132
    
hgs
parents:
diff changeset
  1133
    QCOMPARE(mTestObject->addNewCollection(name, thumb, ids), -1);
hgs
parents:
diff changeset
  1134
    
hgs
parents:
diff changeset
  1135
    // this makes sure that the collection client has been called.
hgs
parents:
diff changeset
  1136
    QCOMPARE(VideoCollectionClient::mAddNewCollectionName, name);
hgs
parents:
diff changeset
  1137
    QCOMPARE(VideoCollectionClient::mAddNewCollectionThumb, thumb);
hgs
parents:
diff changeset
  1138
    QCOMPARE(VideoCollectionClient::mAddNewCollectionIds, ids);
hgs
parents:
diff changeset
  1139
}
hgs
parents:
diff changeset
  1140
hgs
parents:
diff changeset
  1141
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1142
// testShortDetailsReadySlot
hgs
parents:
diff changeset
  1143
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1144
//
hgs
parents:
diff changeset
  1145
int TestVideoSortFilterProxyModel::testShortDetailsReadySlot(int index)
hgs
parents:
diff changeset
  1146
{
hgs
parents:
diff changeset
  1147
	return 1;
hgs
parents:
diff changeset
  1148
}
hgs
parents:
diff changeset
  1149
hgs
parents:
diff changeset
  1150
hgs
parents:
diff changeset
  1151
// End of file