videocollection/videofiledetailsview/tsrc/testplugin/src/testvideofiledetails.cpp
author hgs
Fri, 30 Apr 2010 09:52:11 +0300
changeset 37 4eb2df7f7cbe
parent 36 8aed59de29f9
child 38 ff53afa8ad05
permissions -rw-r--r--
201017
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:   TestVideoFileDetails class implementation
hgs
parents:
diff changeset
    15
* 
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// INCLUDE FILES
hgs
parents:
diff changeset
    19
#include "hbmessagebox.h"
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    22
#include <qdebug.h>
36
hgs
parents: 35
diff changeset
    23
#include <hbglobal.h>
30
hgs
parents:
diff changeset
    24
#include <hbinstance.h>
hgs
parents:
diff changeset
    25
#include <hbwidget.h>
34
hgs
parents: 30
diff changeset
    26
#include <hblistwidget.h>
hgs
parents: 30
diff changeset
    27
#include <hblistwidgetitem.h>
30
hgs
parents:
diff changeset
    28
#include <hbpushbutton.h>
hgs
parents:
diff changeset
    29
#include <hblabel.h>
hgs
parents:
diff changeset
    30
#include <hbaction.h>
hgs
parents:
diff changeset
    31
#include <hbapplication.h>
hgs
parents:
diff changeset
    32
#include <hbmarqueeitem.h>
34
hgs
parents: 30
diff changeset
    33
#include <hbstackedwidget.h>
30
hgs
parents:
diff changeset
    34
34
hgs
parents: 30
diff changeset
    35
#include "videodetailslabel.h"
30
hgs
parents:
diff changeset
    36
#include "hbmessagebox.h"
36
hgs
parents: 35
diff changeset
    37
#include "shareui.h"
30
hgs
parents:
diff changeset
    38
#include "thumbnailmanager_qt.h"
hgs
parents:
diff changeset
    39
#include "videocollectioncommon.h"
hgs
parents:
diff changeset
    40
#include "mpxhbvideocommondefs.h"
hgs
parents:
diff changeset
    41
#include "videocollectionwrapper.h"
hgs
parents:
diff changeset
    42
#include "videosortfilterproxymodel.h"
hgs
parents:
diff changeset
    43
#include "testvideofiledetails.h"
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
// trick to get access to protected/private members.
hgs
parents:
diff changeset
    46
#define private public
hgs
parents:
diff changeset
    47
#include "videofiledetailsviewplugin.h"
hgs
parents:
diff changeset
    48
#undef private
hgs
parents:
diff changeset
    49
37
hgs
parents: 36
diff changeset
    50
const char *TEST_VIDEO_DETAILS_GFX_DEFAULT = ":/gfx/pri_large_video.svg";
30
hgs
parents:
diff changeset
    51
const char *TEST_VIDEO_DETAILS_VIEW = "videofiledetailsview";
hgs
parents:
diff changeset
    52
const char *TEST_VIDEO_DETAILS_WIDGET = "mContent";
hgs
parents:
diff changeset
    53
const char *TEST_VIDEO_DETAILS_TITLE = "mLblTitle";
34
hgs
parents: 30
diff changeset
    54
const char *TEST_VIDEO_DETAILS_LISTWIDGET ="mDetailsList";
hgs
parents: 30
diff changeset
    55
const char* const VIDEO_DETAILS_THUMBNAIL = "mDetailsLabel";
hgs
parents: 30
diff changeset
    56
const char* const VIDEO_DETAILS_BUTTON = "mButton";
30
hgs
parents:
diff changeset
    57
const char *TEST_VIDEO_DETAILS_MENUACTION_DELETE = "mOptionsDelete";
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    60
// initTestCase
hgs
parents:
diff changeset
    61
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    62
//
hgs
parents:
diff changeset
    63
void TestVideoFileDetails::initTestCase()
hgs
parents:
diff changeset
    64
{
hgs
parents:
diff changeset
    65
   mDummyModel = 0;
hgs
parents:
diff changeset
    66
   mDummyModel = new VideoSortFilterProxyModel();
hgs
parents:
diff changeset
    67
   
34
hgs
parents: 30
diff changeset
    68
   connect(this, SIGNAL(shortDetailsReady(TMPXItemId)), mDummyModel, SIGNAL(shortDetailsReady(TMPXItemId)));
36
hgs
parents: 35
diff changeset
    69
   connect(this, SIGNAL(fullDetailsReady(QVariant&)), mDummyModel, SIGNAL(fullVideoDetailsReady(QVariant&)));
30
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
   connect(this, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)), 
hgs
parents:
diff changeset
    72
           mDummyModel, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)));
hgs
parents:
diff changeset
    73
   
hgs
parents:
diff changeset
    74
   connect(this, SIGNAL(rowsRemoved(const QModelIndex&, int, int)),
hgs
parents:
diff changeset
    75
           mDummyModel, SIGNAL(rowsRemoved(const QModelIndex&, int, int)));
hgs
parents:
diff changeset
    76
   
34
hgs
parents: 30
diff changeset
    77
   VideoCollectionWrapper::instance().setModel(mDummyModel);
30
hgs
parents:
diff changeset
    78
}
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    81
// cleanupTestCase
hgs
parents:
diff changeset
    82
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    83
//
hgs
parents:
diff changeset
    84
void TestVideoFileDetails::cleanupTestCase()
hgs
parents:
diff changeset
    85
{
hgs
parents:
diff changeset
    86
    disconnect(this, SIGNAL(shortDetailsReady(int)), mDummyModel, SIGNAL(shortDetailsReady(int)));
36
hgs
parents: 35
diff changeset
    87
    disconnect(this, SIGNAL(fullDetailsReady(QVariant&)),mDummyModel, SIGNAL(fullVideoDetailsReady(QVariant&)));
30
hgs
parents:
diff changeset
    88
    disconnect(this, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)), 
hgs
parents:
diff changeset
    89
            mDummyModel, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&)));
hgs
parents:
diff changeset
    90
    disconnect(this, SIGNAL(rowsRemoved(const QModelIndex&, int, int)),
hgs
parents:
diff changeset
    91
            mDummyModel, SIGNAL(rowsRemoved(const QModelIndex&, int, int)));
hgs
parents:
diff changeset
    92
    delete mDummyModel; mDummyModel = 0;
hgs
parents:
diff changeset
    93
    delete mPlugin; mPlugin = 0;
hgs
parents:
diff changeset
    94
}
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    97
// init before every test function
hgs
parents:
diff changeset
    98
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    99
//
hgs
parents:
diff changeset
   100
void TestVideoFileDetails::init()
hgs
parents:
diff changeset
   101
{
hgs
parents:
diff changeset
   102
    mDummyModel->reset();
hgs
parents:
diff changeset
   103
    
hgs
parents:
diff changeset
   104
    mPlugin = new VideoFileDetailsViewPlugin();
hgs
parents:
diff changeset
   105
    mPlugin->createView();
hgs
parents:
diff changeset
   106
    mCommandReceived = false;
hgs
parents:
diff changeset
   107
    mReceivedCommand = -1;
hgs
parents:
diff changeset
   108
    ThumbnailManager::mRequests.clear();
hgs
parents:
diff changeset
   109
}
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   112
// cleanup after every test function
hgs
parents:
diff changeset
   113
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   114
//
hgs
parents:
diff changeset
   115
void TestVideoFileDetails::cleanup()
hgs
parents:
diff changeset
   116
{
hgs
parents:
diff changeset
   117
    if(mPlugin->getView()) {
hgs
parents:
diff changeset
   118
        hbInstance->allMainWindows().at(0)->removeView(mPlugin->getView());
hgs
parents:
diff changeset
   119
    }
hgs
parents:
diff changeset
   120
    mDummyModel->reset();
hgs
parents:
diff changeset
   121
    delete mPlugin; mPlugin = 0;
hgs
parents:
diff changeset
   122
}
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   125
// Helper function that activates view after init()
hgs
parents:
diff changeset
   126
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   127
//
hgs
parents:
diff changeset
   128
void TestVideoFileDetails::activateView()
hgs
parents:
diff changeset
   129
{
hgs
parents:
diff changeset
   130
    hbInstance->allMainWindows().at(0)->addView(mPlugin->getView());
hgs
parents:
diff changeset
   131
    mPlugin->activateView();
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
    // without this the xml loaded objects don't have the correct geometry.
hgs
parents:
diff changeset
   134
    mPlugin->getView()->setGeometry(hbInstance->allMainWindows().at(0)->rect());
hgs
parents:
diff changeset
   135
}
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   138
// Helper function that populates a qmap with dummy data.
hgs
parents:
diff changeset
   139
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   140
//
34
hgs
parents: 30
diff changeset
   141
QMap<QString, QVariant> TestVideoFileDetails::createDummyMetadata()
30
hgs
parents:
diff changeset
   142
{
hgs
parents:
diff changeset
   143
    using namespace VideoCollectionCommon;
hgs
parents:
diff changeset
   144
    
hgs
parents:
diff changeset
   145
    QMap<QString, QVariant> map;
hgs
parents:
diff changeset
   146
    
hgs
parents:
diff changeset
   147
    int detailCount = sizeof(VideoDetailLabelKeys) / sizeof(int);
hgs
parents:
diff changeset
   148
    QString txt;
hgs
parents:
diff changeset
   149
    for(int i = 0; i<detailCount; i++) {
hgs
parents:
diff changeset
   150
        txt = QString(VideoDetailLabelKeys[i]);
hgs
parents:
diff changeset
   151
        if(i%2 == 0)
hgs
parents:
diff changeset
   152
        {            
hgs
parents:
diff changeset
   153
            map[VideoDetailLabelKeys[i]] = txt;
hgs
parents:
diff changeset
   154
        }
hgs
parents:
diff changeset
   155
        else
hgs
parents:
diff changeset
   156
        {
hgs
parents:
diff changeset
   157
            txt.append(QString("test test test test test test test test test test test test test test test test test test test"));
hgs
parents:
diff changeset
   158
            map[VideoDetailLabelKeys[i]] = txt;
hgs
parents:
diff changeset
   159
        }
hgs
parents:
diff changeset
   160
    }
hgs
parents:
diff changeset
   161
    return map;
hgs
parents:
diff changeset
   162
}
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   165
// One round for the activate view test
hgs
parents:
diff changeset
   166
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   167
//
hgs
parents:
diff changeset
   168
inline void TestVideoFileDetails::activateViewTestRound()
hgs
parents:
diff changeset
   169
    {
hgs
parents:
diff changeset
   170
    init();
hgs
parents:
diff changeset
   171
    
hgs
parents:
diff changeset
   172
    activateView();
hgs
parents:
diff changeset
   173
    
hgs
parents:
diff changeset
   174
    QVERIFY( mPlugin->getView() != 0 );
hgs
parents:
diff changeset
   175
    QVERIFY( mPlugin->viewPlugin() == mPlugin );
34
hgs
parents: 30
diff changeset
   176
    QCOMPARE( mPlugin->mVideoId, TMPXItemId::InvalidId() );
30
hgs
parents:
diff changeset
   177
    
hgs
parents:
diff changeset
   178
    // verify that actions are currently disabled.
34
hgs
parents: 30
diff changeset
   179
    HbStackedWidget* thumbWidget = findWidget<HbStackedWidget>(VIDEO_DETAILS_THUMBNAIL);
hgs
parents: 30
diff changeset
   180
    VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0);
30
hgs
parents:
diff changeset
   181
    HbAction* deleteAction = findObject<HbAction>(TEST_VIDEO_DETAILS_MENUACTION_DELETE);
hgs
parents:
diff changeset
   182
    
34
hgs
parents: 30
diff changeset
   183
    HbPushButton* button = findWidget<HbPushButton>(VIDEO_DETAILS_BUTTON);
hgs
parents: 30
diff changeset
   184
    
hgs
parents: 30
diff changeset
   185
    QVERIFY( button != 0 );
hgs
parents: 30
diff changeset
   186
    QVERIFY( thumbLabel != 0 );
30
hgs
parents:
diff changeset
   187
    QVERIFY( deleteAction != 0 );
hgs
parents:
diff changeset
   188
    QVERIFY( deleteAction->isEnabled() );
hgs
parents:
diff changeset
   189
    
hgs
parents:
diff changeset
   190
    QVERIFY(mPlugin->mActivated);    
hgs
parents:
diff changeset
   191
     // second activation should not affect
hgs
parents:
diff changeset
   192
    activateView();
hgs
parents:
diff changeset
   193
    QVERIFY(mPlugin->mActivated);
34
hgs
parents: 30
diff changeset
   194
    QVERIFY( button != 0 );
hgs
parents: 30
diff changeset
   195
    QVERIFY( thumbLabel != 0 );
30
hgs
parents:
diff changeset
   196
    QVERIFY( deleteAction != 0 );
hgs
parents:
diff changeset
   197
    QVERIFY( deleteAction->isEnabled() );
hgs
parents:
diff changeset
   198
    
hgs
parents:
diff changeset
   199
    cleanup();
hgs
parents:
diff changeset
   200
    }
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   203
// Slot: create view
hgs
parents:
diff changeset
   204
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   205
//
hgs
parents:
diff changeset
   206
void TestVideoFileDetails::handleCommand(int command)
hgs
parents:
diff changeset
   207
{
hgs
parents:
diff changeset
   208
    mCommandReceived = true;
hgs
parents:
diff changeset
   209
    mReceivedCommand = command;
hgs
parents:
diff changeset
   210
}
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   213
// Slot: create view
hgs
parents:
diff changeset
   214
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   215
//
hgs
parents:
diff changeset
   216
void TestVideoFileDetails::testCreateView()
hgs
parents:
diff changeset
   217
{
hgs
parents:
diff changeset
   218
    init();
hgs
parents:
diff changeset
   219
    // actual create view is done in the init.
hgs
parents:
diff changeset
   220
    QVERIFY( mPlugin->mModel == mDummyModel );
hgs
parents:
diff changeset
   221
    QVERIFY( mPlugin->mIsService == false);
hgs
parents:
diff changeset
   222
    QVERIFY( mPlugin->mVideoServices == 0);
hgs
parents:
diff changeset
   223
    // testing the special case where the model is null.
hgs
parents:
diff changeset
   224
    cleanup();
34
hgs
parents: 30
diff changeset
   225
    VideoCollectionWrapper::instance().setModel(0);
30
hgs
parents:
diff changeset
   226
    init();
hgs
parents:
diff changeset
   227
    QVERIFY( mPlugin->mModel == 0 );
hgs
parents:
diff changeset
   228
    QVERIFY( mPlugin->mIsService == false);
hgs
parents:
diff changeset
   229
    QVERIFY( mPlugin->mVideoServices == 0);
hgs
parents:
diff changeset
   230
    
hgs
parents:
diff changeset
   231
    // restoring the proper model.
34
hgs
parents: 30
diff changeset
   232
    VideoCollectionWrapper::instance().setModel(mDummyModel);
30
hgs
parents:
diff changeset
   233
    cleanup();
hgs
parents:
diff changeset
   234
}
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
// Slot: destroy view
hgs
parents:
diff changeset
   238
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   239
//
hgs
parents:
diff changeset
   240
void TestVideoFileDetails::testDestroyView()
hgs
parents:
diff changeset
   241
{
hgs
parents:
diff changeset
   242
    init();
hgs
parents:
diff changeset
   243
    activateView();
hgs
parents:
diff changeset
   244
    mPlugin->destroyView();
hgs
parents:
diff changeset
   245
    QVERIFY( mPlugin->getView() == 0 );
hgs
parents:
diff changeset
   246
    // plugin is still alive
hgs
parents:
diff changeset
   247
    QVERIFY( mPlugin->viewPlugin() == mPlugin );
35
hgs
parents: 34
diff changeset
   248
    QVERIFY( mPlugin->mNavKeyBackAction == 0 );
30
hgs
parents:
diff changeset
   249
    QVERIFY( mPlugin->mActivated == false );
hgs
parents:
diff changeset
   250
    cleanup();
hgs
parents:
diff changeset
   251
}
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   254
// Slot: activate view
hgs
parents:
diff changeset
   255
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   256
//
hgs
parents:
diff changeset
   257
void TestVideoFileDetails::testActivateViewPortrait()
hgs
parents:
diff changeset
   258
{
hgs
parents:
diff changeset
   259
    hbInstance->allMainWindows().at(0)->setOrientation(Qt::Vertical);
hgs
parents:
diff changeset
   260
    activateViewTestRound();  
hgs
parents:
diff changeset
   261
}
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   264
// Slot: activate view
hgs
parents:
diff changeset
   265
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   266
//
hgs
parents:
diff changeset
   267
void TestVideoFileDetails::testActivateViewLandscape()
hgs
parents:
diff changeset
   268
{
hgs
parents:
diff changeset
   269
    hbInstance->allMainWindows().at(0)->setOrientation(Qt::Horizontal);
hgs
parents:
diff changeset
   270
    activateViewTestRound();
hgs
parents:
diff changeset
   271
}
hgs
parents:
diff changeset
   272
hgs
parents:
diff changeset
   273
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   274
// Slot: activate view
hgs
parents:
diff changeset
   275
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   276
//
hgs
parents:
diff changeset
   277
void TestVideoFileDetails::testDeactivateView()
hgs
parents:
diff changeset
   278
{
hgs
parents:
diff changeset
   279
    init();
hgs
parents:
diff changeset
   280
    activateView();
hgs
parents:
diff changeset
   281
    mPlugin->deactivateView();
hgs
parents:
diff changeset
   282
    QVERIFY( mPlugin->mActivated == false );
34
hgs
parents: 30
diff changeset
   283
    QCOMPARE( mPlugin->mVideoId, TMPXItemId::InvalidId() );
30
hgs
parents:
diff changeset
   284
    mPlugin->deactivateView();
hgs
parents:
diff changeset
   285
    QVERIFY( mPlugin->mActivated == false );
34
hgs
parents: 30
diff changeset
   286
    QCOMPARE( mPlugin->mVideoId, TMPXItemId::InvalidId() );
30
hgs
parents:
diff changeset
   287
    cleanup();
hgs
parents:
diff changeset
   288
}
hgs
parents:
diff changeset
   289
hgs
parents:
diff changeset
   290
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   291
// Slot: data for orientation change test
hgs
parents:
diff changeset
   292
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   293
//
hgs
parents:
diff changeset
   294
void TestVideoFileDetails::testOrientationChange_data()
hgs
parents:
diff changeset
   295
{
hgs
parents:
diff changeset
   296
    QTest::addColumn<int>("start");
hgs
parents:
diff changeset
   297
    QTest::addColumn<int>("switchTo");
hgs
parents:
diff changeset
   298
    
hgs
parents:
diff changeset
   299
    QTest::newRow("from portrait to landscape") 
hgs
parents:
diff changeset
   300
            << static_cast<int>(Qt::Vertical) 
hgs
parents:
diff changeset
   301
            << static_cast<int>(Qt::Horizontal);
hgs
parents:
diff changeset
   302
    QTest::newRow("from landscape to portrait") 
hgs
parents:
diff changeset
   303
            << static_cast<int>(Qt::Horizontal) 
hgs
parents:
diff changeset
   304
            << static_cast<int>(Qt::Vertical);
hgs
parents:
diff changeset
   305
}
hgs
parents:
diff changeset
   306
hgs
parents:
diff changeset
   307
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   308
// Slot: test for the orientationChange slot
hgs
parents:
diff changeset
   309
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   310
//
hgs
parents:
diff changeset
   311
void TestVideoFileDetails::testOrientationChange()
hgs
parents:
diff changeset
   312
{
hgs
parents:
diff changeset
   313
    QFETCH(int, start);
hgs
parents:
diff changeset
   314
    QFETCH(int, switchTo);
hgs
parents:
diff changeset
   315
    
hgs
parents:
diff changeset
   316
    init();
hgs
parents:
diff changeset
   317
    hbInstance->allMainWindows().at(0)->setOrientation(static_cast<Qt::Orientation>(start));
hgs
parents:
diff changeset
   318
    activateView();
hgs
parents:
diff changeset
   319
    
hgs
parents:
diff changeset
   320
    hbInstance->allMainWindows().at(0)->setOrientation(static_cast<Qt::Orientation>(switchTo));
hgs
parents:
diff changeset
   321
    
hgs
parents:
diff changeset
   322
    // without this the view doesn't have the correct geometry.
hgs
parents:
diff changeset
   323
    mPlugin->getView()->setGeometry(hbInstance->allMainWindows().at(0)->rect());
hgs
parents:
diff changeset
   324
    // give fw some time to update content
hgs
parents:
diff changeset
   325
    QTest::qWait(100);
hgs
parents:
diff changeset
   326
    
hgs
parents:
diff changeset
   327
    cleanup();
hgs
parents:
diff changeset
   328
}
hgs
parents:
diff changeset
   329
hgs
parents:
diff changeset
   330
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   331
// Slot: test for the back slot
hgs
parents:
diff changeset
   332
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   333
//
hgs
parents:
diff changeset
   334
void TestVideoFileDetails::testBack()
hgs
parents:
diff changeset
   335
{
hgs
parents:
diff changeset
   336
    init();
hgs
parents:
diff changeset
   337
    connect(this, SIGNAL(testSignal()), mPlugin, SLOT(back()));
hgs
parents:
diff changeset
   338
    connect(mPlugin, SIGNAL(command(int)), this, SLOT(handleCommand(int)));
hgs
parents:
diff changeset
   339
    
hgs
parents:
diff changeset
   340
    emit testSignal();
hgs
parents:
diff changeset
   341
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   342
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   343
    
35
hgs
parents: 34
diff changeset
   344
    mPlugin->mNavKeyBackAction->trigger();
30
hgs
parents:
diff changeset
   345
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   346
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   347
    
hgs
parents:
diff changeset
   348
    activateView();
hgs
parents:
diff changeset
   349
    
hgs
parents:
diff changeset
   350
    emit testSignal();
hgs
parents:
diff changeset
   351
    QCOMPARE( mCommandReceived, true );
hgs
parents:
diff changeset
   352
    QCOMPARE( mReceivedCommand, static_cast<int>(MpxHbVideoCommon::ActivateCollectionView) );
hgs
parents:
diff changeset
   353
    
hgs
parents:
diff changeset
   354
    mCommandReceived = false;
hgs
parents:
diff changeset
   355
    mReceivedCommand = -1;
hgs
parents:
diff changeset
   356
35
hgs
parents: 34
diff changeset
   357
    mPlugin->mNavKeyBackAction->trigger();
30
hgs
parents:
diff changeset
   358
    QCOMPARE( mCommandReceived, true );
hgs
parents:
diff changeset
   359
    QCOMPARE( mReceivedCommand, static_cast<int>(MpxHbVideoCommon::ActivateCollectionView) );
hgs
parents:
diff changeset
   360
    
hgs
parents:
diff changeset
   361
    mCommandReceived = false;
hgs
parents:
diff changeset
   362
    mReceivedCommand = -1;
hgs
parents:
diff changeset
   363
    
hgs
parents:
diff changeset
   364
    mPlugin->deactivateView();
hgs
parents:
diff changeset
   365
    
hgs
parents:
diff changeset
   366
    emit testSignal();
hgs
parents:
diff changeset
   367
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   368
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   369
    
35
hgs
parents: 34
diff changeset
   370
    mPlugin->mNavKeyBackAction->trigger();
30
hgs
parents:
diff changeset
   371
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   372
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   373
hgs
parents:
diff changeset
   374
    disconnect(mPlugin, SIGNAL(command(int)), this, SLOT(handleCommand(int)));
hgs
parents:
diff changeset
   375
    disconnect(this, SIGNAL(testSignal()), mPlugin, SLOT(back()));
hgs
parents:
diff changeset
   376
    cleanup();
hgs
parents:
diff changeset
   377
}
hgs
parents:
diff changeset
   378
hgs
parents:
diff changeset
   379
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   380
// Slot: test for the shortDetailsReadySlot
hgs
parents:
diff changeset
   381
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   382
//
hgs
parents:
diff changeset
   383
void TestVideoFileDetails::testShortDetailsReadySlot()
hgs
parents:
diff changeset
   384
{
34
hgs
parents: 30
diff changeset
   385
    TMPXItemId testIndex(5,0);
36
hgs
parents: 35
diff changeset
   386
    QString title("title");
30
hgs
parents:
diff changeset
   387
    QString filepath("filepath");
hgs
parents:
diff changeset
   388
    
hgs
parents:
diff changeset
   389
    init();
hgs
parents:
diff changeset
   390
    activateView();
hgs
parents:
diff changeset
   391
    
hgs
parents:
diff changeset
   392
     // no data 
hgs
parents:
diff changeset
   393
    emit shortDetailsReady(testIndex);
hgs
parents:
diff changeset
   394
    
34
hgs
parents: 30
diff changeset
   395
    QCOMPARE( mPlugin->mVideoId, testIndex );
30
hgs
parents:
diff changeset
   396
    QVERIFY( mPlugin->mTitleAnim->text().isEmpty() );
hgs
parents:
diff changeset
   397
    QCOMPARE( mPlugin->mThumbnailManager->mRequests.count(), 0 );
hgs
parents:
diff changeset
   398
    
36
hgs
parents: 35
diff changeset
   399
    mDummyModel->setData(VideoCollectionCommon::KeyTitle, title);
30
hgs
parents:
diff changeset
   400
    mDummyModel->setData(VideoCollectionCommon::KeyFilePath, filepath);
hgs
parents:
diff changeset
   401
    
hgs
parents:
diff changeset
   402
    // no tn manager
hgs
parents:
diff changeset
   403
    ThumbnailManager *tmpTnManager = mPlugin->mThumbnailManager;
hgs
parents:
diff changeset
   404
    mPlugin->mThumbnailManager = 0;
hgs
parents:
diff changeset
   405
    emit shortDetailsReady(testIndex);
34
hgs
parents: 30
diff changeset
   406
    QCOMPARE( mPlugin->mVideoId, testIndex );
36
hgs
parents: 35
diff changeset
   407
    QCOMPARE( mPlugin->mTitleAnim->text(), title );
30
hgs
parents:
diff changeset
   408
    mPlugin->mThumbnailManager = tmpTnManager;
37
hgs
parents: 36
diff changeset
   409
    
hgs
parents: 36
diff changeset
   410
    // thumbnail fetching fails
hgs
parents: 36
diff changeset
   411
    tmpTnManager->mGetThumbFails = true;
hgs
parents: 36
diff changeset
   412
    emit shortDetailsReady(testIndex);
hgs
parents: 36
diff changeset
   413
    QCOMPARE( mPlugin->mVideoId, testIndex );
hgs
parents: 36
diff changeset
   414
    QCOMPARE( mPlugin->mTitleAnim->text(), title );
hgs
parents: 36
diff changeset
   415
    QCOMPARE( mPlugin->mThumbLabel->icon().iconName(), QString(TEST_VIDEO_DETAILS_GFX_DEFAULT) );
hgs
parents: 36
diff changeset
   416
    tmpTnManager->mGetThumbFails = false;
hgs
parents: 36
diff changeset
   417
    
30
hgs
parents:
diff changeset
   418
    // data exists
hgs
parents:
diff changeset
   419
    emit shortDetailsReady(testIndex);
hgs
parents:
diff changeset
   420
    
34
hgs
parents: 30
diff changeset
   421
    QCOMPARE( mPlugin->mVideoId, testIndex );
hgs
parents: 30
diff changeset
   422
    QCOMPARE( mDummyModel->lastId(), testIndex );
36
hgs
parents: 35
diff changeset
   423
    QCOMPARE( mPlugin->mTitleAnim->text(), title );
30
hgs
parents:
diff changeset
   424
    QVERIFY( ThumbnailManager::mRequests.contains(0) );
hgs
parents:
diff changeset
   425
    ThumbnailManager::TnRequest request = ThumbnailManager::mRequests[0];
hgs
parents:
diff changeset
   426
    QCOMPARE( request.name, filepath );
hgs
parents:
diff changeset
   427
    // 20 == priorityHight in this case
hgs
parents:
diff changeset
   428
    QCOMPARE( request.priority, 5000 );
hgs
parents:
diff changeset
   429
hgs
parents:
diff changeset
   430
    
36
hgs
parents: 35
diff changeset
   431
    QVariant variant = QVariant(createDummyMetadata());
hgs
parents: 35
diff changeset
   432
    emit fullDetailsReady(variant);
30
hgs
parents:
diff changeset
   433
             
hgs
parents:
diff changeset
   434
    emit shortDetailsReady(testIndex);
hgs
parents:
diff changeset
   435
    
36
hgs
parents: 35
diff changeset
   436
    int detailCount = sizeof(VideoCollectionCommon::VideoDetailLabelKeys) / sizeof(int);
34
hgs
parents: 30
diff changeset
   437
36
hgs
parents: 35
diff changeset
   438
    HbListWidget* list = findWidget<HbListWidget>(TEST_VIDEO_DETAILS_LISTWIDGET);
30
hgs
parents:
diff changeset
   439
   
36
hgs
parents: 35
diff changeset
   440
    QVERIFY(list);
hgs
parents: 35
diff changeset
   441
    QVERIFY(list->count() == 0);
34
hgs
parents: 30
diff changeset
   442
36
hgs
parents: 35
diff changeset
   443
    cleanup();
30
hgs
parents:
diff changeset
   444
}
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   447
// Slot: test for the fullDetailsReadySlot
hgs
parents:
diff changeset
   448
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   449
//
hgs
parents:
diff changeset
   450
void TestVideoFileDetails::testFullDetailsReadySlot()
hgs
parents:
diff changeset
   451
{
34
hgs
parents: 30
diff changeset
   452
    TMPXItemId testIndex(6,0);
30
hgs
parents:
diff changeset
   453
    init();
hgs
parents:
diff changeset
   454
    activateView();
hgs
parents:
diff changeset
   455
    
hgs
parents:
diff changeset
   456
    int detailCount = sizeof(VideoCollectionCommon::VideoDetailLabelKeys) / sizeof(int);
34
hgs
parents: 30
diff changeset
   457
hgs
parents: 30
diff changeset
   458
    HbListWidget* list = findWidget<HbListWidget>(TEST_VIDEO_DETAILS_LISTWIDGET);
hgs
parents: 30
diff changeset
   459
    QVERIFY(list);
hgs
parents: 30
diff changeset
   460
    QVERIFY(list->count() == 0);
30
hgs
parents:
diff changeset
   461
    
36
hgs
parents: 35
diff changeset
   462
    QVariant variant = QVariant(createDummyMetadata());
30
hgs
parents:
diff changeset
   463
       
36
hgs
parents: 35
diff changeset
   464
    emit fullDetailsReady(variant);
30
hgs
parents:
diff changeset
   465
    
hgs
parents:
diff changeset
   466
    // verify that actions are currently enabled.
34
hgs
parents: 30
diff changeset
   467
    HbStackedWidget* thumbWidget = findWidget<HbStackedWidget>(VIDEO_DETAILS_THUMBNAIL);
hgs
parents: 30
diff changeset
   468
    VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0);
30
hgs
parents:
diff changeset
   469
    HbAction* deleteAction = findObject<HbAction>(TEST_VIDEO_DETAILS_MENUACTION_DELETE);
hgs
parents:
diff changeset
   470
    
34
hgs
parents: 30
diff changeset
   471
    QVERIFY( thumbLabel != 0 );
30
hgs
parents:
diff changeset
   472
    QVERIFY( deleteAction != 0 );
hgs
parents:
diff changeset
   473
    QVERIFY( deleteAction->isEnabled() );
hgs
parents:
diff changeset
   474
    
34
hgs
parents: 30
diff changeset
   475
    QVERIFY(list->count() == detailCount);
hgs
parents: 30
diff changeset
   476
hgs
parents: 30
diff changeset
   477
    for(int i = 0; i<detailCount; i++) 
hgs
parents: 30
diff changeset
   478
    {        
30
hgs
parents:
diff changeset
   479
        QString expected = tr(VideoCollectionCommon::VideoDetailLabels[i]).arg(
hgs
parents:
diff changeset
   480
                VideoCollectionCommon::VideoDetailLabelKeys[i]);
34
hgs
parents: 30
diff changeset
   481
        HbListWidgetItem* detail = list->item(i);
30
hgs
parents:
diff changeset
   482
        QVERIFY( detail != 0 );
hgs
parents:
diff changeset
   483
        QVERIFY( detail->text().contains(expected) );
hgs
parents:
diff changeset
   484
    }
hgs
parents:
diff changeset
   485
    
hgs
parents:
diff changeset
   486
    // for coverity sake, retest without star-rating
36
hgs
parents: 35
diff changeset
   487
    variant = QVariant(createDummyMetadata());
hgs
parents: 35
diff changeset
   488
    emit fullDetailsReady(variant);
34
hgs
parents: 30
diff changeset
   489
hgs
parents: 30
diff changeset
   490
    int ii = 0;
30
hgs
parents:
diff changeset
   491
    for(int i = 0; i<detailCount; i++) 
34
hgs
parents: 30
diff changeset
   492
    {        
30
hgs
parents:
diff changeset
   493
        if(VideoCollectionCommon::VideoDetailLabelKeys[i] != VideoCollectionCommon::MetaKeyStarRating)
hgs
parents:
diff changeset
   494
        {
hgs
parents:
diff changeset
   495
            QString expected = tr(VideoCollectionCommon::VideoDetailLabels[i]).arg(
hgs
parents:
diff changeset
   496
                    VideoCollectionCommon::VideoDetailLabelKeys[i]);
34
hgs
parents: 30
diff changeset
   497
            HbListWidgetItem* detail = list->item(ii);
30
hgs
parents:
diff changeset
   498
            QVERIFY( detail != 0 );
hgs
parents:
diff changeset
   499
            QVERIFY( detail->text().contains(expected) );
hgs
parents:
diff changeset
   500
        }
34
hgs
parents: 30
diff changeset
   501
        ++ii;
30
hgs
parents:
diff changeset
   502
    }
34
hgs
parents: 30
diff changeset
   503
30
hgs
parents:
diff changeset
   504
    cleanup();
hgs
parents:
diff changeset
   505
}
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   508
// Slot: test for the testStartPlaybackSlot
hgs
parents:
diff changeset
   509
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   510
//
hgs
parents:
diff changeset
   511
void TestVideoFileDetails::testStartPlaybackSlot()
hgs
parents:
diff changeset
   512
{
34
hgs
parents: 30
diff changeset
   513
    TMPXItemId testIndex(6,0);
30
hgs
parents:
diff changeset
   514
    mDummyModel->reset();
hgs
parents:
diff changeset
   515
    init();
hgs
parents:
diff changeset
   516
    activateView();
hgs
parents:
diff changeset
   517
    
hgs
parents:
diff changeset
   518
    // Note that if the details view has not received signal in it's 
hgs
parents:
diff changeset
   519
    // fullDetailsReadySlot, the button is disabled and should not do anything.
hgs
parents:
diff changeset
   520
    
34
hgs
parents: 30
diff changeset
   521
    HbStackedWidget* thumbWidget = findWidget<HbStackedWidget>(VIDEO_DETAILS_THUMBNAIL);
hgs
parents: 30
diff changeset
   522
    VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0);
hgs
parents: 30
diff changeset
   523
    QVERIFY( thumbLabel != 0 );
hgs
parents: 30
diff changeset
   524
    thumbLabel->click();
30
hgs
parents:
diff changeset
   525
    
34
hgs
parents: 30
diff changeset
   526
    QCOMPARE( mDummyModel->startPlaybackIndex(), TMPXItemId::InvalidId() );
30
hgs
parents:
diff changeset
   527
    
36
hgs
parents: 35
diff changeset
   528
    QVariant variant = QVariant(createDummyMetadata());
hgs
parents: 35
diff changeset
   529
    emit fullDetailsReady(variant);
34
hgs
parents: 30
diff changeset
   530
    mPlugin->mVideoId = testIndex;
30
hgs
parents:
diff changeset
   531
    
34
hgs
parents: 30
diff changeset
   532
    thumbLabel->click();
30
hgs
parents:
diff changeset
   533
    
hgs
parents:
diff changeset
   534
    QCOMPARE( mDummyModel->startPlaybackIndex(), testIndex );
hgs
parents:
diff changeset
   535
    
hgs
parents:
diff changeset
   536
    // invalid index
34
hgs
parents: 30
diff changeset
   537
    mPlugin->mVideoId = TMPXItemId::InvalidId();
hgs
parents: 30
diff changeset
   538
    thumbLabel->click();
30
hgs
parents:
diff changeset
   539
    // startplayback index has not changed since previous
hgs
parents:
diff changeset
   540
    QCOMPARE( mDummyModel->startPlaybackIndex(), testIndex );
hgs
parents:
diff changeset
   541
    
hgs
parents:
diff changeset
   542
    cleanup();
hgs
parents:
diff changeset
   543
}
hgs
parents:
diff changeset
   544
hgs
parents:
diff changeset
   545
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   546
// Slot: test for the sendVideoSlot
hgs
parents:
diff changeset
   547
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   548
//
hgs
parents:
diff changeset
   549
void TestVideoFileDetails::testSendVideoSlot()
hgs
parents:
diff changeset
   550
{
37
hgs
parents: 36
diff changeset
   551
//    QFAIL("Feature not yet implemented!");
36
hgs
parents: 35
diff changeset
   552
    
hgs
parents: 35
diff changeset
   553
    mDummyModel->reset();
hgs
parents: 35
diff changeset
   554
    init();
hgs
parents: 35
diff changeset
   555
    mPlugin->activateView();
hgs
parents: 35
diff changeset
   556
    
hgs
parents: 35
diff changeset
   557
    HbPushButton* shareAction = findWidget<HbPushButton>(VIDEO_DETAILS_BUTTON);
hgs
parents: 35
diff changeset
   558
    
hgs
parents: 35
diff changeset
   559
    QVERIFY( shareAction != 0 );
hgs
parents: 35
diff changeset
   560
    shareAction->click();
hgs
parents: 35
diff changeset
   561
    QCOMPARE( mDummyModel->dataAccessCount(), 0 );
hgs
parents: 35
diff changeset
   562
    mPlugin->mVideoId = (0,0);
hgs
parents: 35
diff changeset
   563
    
hgs
parents: 35
diff changeset
   564
    mDummyModel->setDataReturnInvalid(true);
hgs
parents: 35
diff changeset
   565
    QModelIndex expected = mDummyModel->index(0, 0);
hgs
parents: 35
diff changeset
   566
    shareAction->click();
hgs
parents: 35
diff changeset
   567
    QCOMPARE( mDummyModel->dataAccessCount(), 1 );
hgs
parents: 35
diff changeset
   568
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents: 35
diff changeset
   569
    QCOMPARE( ShareUi::mFileList.count(), 0 );
hgs
parents: 35
diff changeset
   570
    QVERIFY( ShareUi::mEmbedded == false );
hgs
parents: 35
diff changeset
   571
    
hgs
parents: 35
diff changeset
   572
    mDummyModel->setDataReturnInvalid(false);
hgs
parents: 35
diff changeset
   573
    QString filePath("dummyfilepath");
hgs
parents: 35
diff changeset
   574
    mDummyModel->setData(VideoCollectionCommon::KeyFilePath, filePath);
hgs
parents: 35
diff changeset
   575
    shareAction->click();
hgs
parents: 35
diff changeset
   576
    QCOMPARE( mDummyModel->dataAccessCount(), 2 );
hgs
parents: 35
diff changeset
   577
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents: 35
diff changeset
   578
    QVERIFY( ShareUi::mEmbedded );
hgs
parents: 35
diff changeset
   579
    QCOMPARE( ShareUi::mFileList.count(), 1 );
hgs
parents: 35
diff changeset
   580
    QCOMPARE( ShareUi::mFileList.at(0), filePath );
hgs
parents: 35
diff changeset
   581
    
hgs
parents: 35
diff changeset
   582
    cleanup();
30
hgs
parents:
diff changeset
   583
}
hgs
parents:
diff changeset
   584
hgs
parents:
diff changeset
   585
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   586
// Slot: test for the deleteVideoSlot
hgs
parents:
diff changeset
   587
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   588
//
hgs
parents:
diff changeset
   589
void TestVideoFileDetails::testDeleteVideoSlot()
hgs
parents:
diff changeset
   590
{
hgs
parents:
diff changeset
   591
    mDummyModel->reset();
hgs
parents:
diff changeset
   592
    init();
hgs
parents:
diff changeset
   593
    
hgs
parents:
diff changeset
   594
    HbAction* deleteAction = findObject<HbAction>(TEST_VIDEO_DETAILS_MENUACTION_DELETE);
hgs
parents:
diff changeset
   595
    
hgs
parents:
diff changeset
   596
    QVERIFY( deleteAction != 0 ); 
hgs
parents:
diff changeset
   597
    deleteAction->trigger();
hgs
parents:
diff changeset
   598
    QCOMPARE( mDummyModel->dataAccessCount(), 0 );    
34
hgs
parents: 30
diff changeset
   599
    mPlugin->mVideoId = (0,0);
hgs
parents: 30
diff changeset
   600
30
hgs
parents:
diff changeset
   601
    mDummyModel->setDataReturnInvalid(true);
hgs
parents:
diff changeset
   602
    QModelIndex expected = mDummyModel->index(0, 0);
hgs
parents:
diff changeset
   603
    deleteAction->trigger();
hgs
parents:
diff changeset
   604
    QCOMPARE( mDummyModel->dataAccessCount(), 1 );
hgs
parents:
diff changeset
   605
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents:
diff changeset
   606
    QCOMPARE( mDummyModel->deleteFileIndex(), -1 ); // verify that no file was deleted.
hgs
parents:
diff changeset
   607
    mDummyModel->setDataReturnInvalid(false);
hgs
parents:
diff changeset
   608
34
hgs
parents: 30
diff changeset
   609
    mPlugin->mVideoId = (0,0);
30
hgs
parents:
diff changeset
   610
    expected = mDummyModel->index(0, 0);
hgs
parents:
diff changeset
   611
    deleteAction->trigger();
hgs
parents:
diff changeset
   612
    QCOMPARE( mDummyModel->dataAccessCount(), 2 );
hgs
parents:
diff changeset
   613
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents:
diff changeset
   614
    QCOMPARE( mDummyModel->deleteFileIndex(), -1 ); // verify that no file was deleted.
hgs
parents:
diff changeset
   615
    
hgs
parents:
diff changeset
   616
    QStringList display;
hgs
parents:
diff changeset
   617
    display.append("first row");
hgs
parents:
diff changeset
   618
    display.append("second row");
36
hgs
parents: 35
diff changeset
   619
    mDummyModel->setData(VideoCollectionCommon::KeyTitle, display);
30
hgs
parents:
diff changeset
   620
    
36
hgs
parents: 35
diff changeset
   621
    QString expectedText = hbTrId("txt_videos_info_do_you_want_to_delete_1").arg(
hgs
parents: 35
diff changeset
   622
            display.first());
30
hgs
parents:
diff changeset
   623
    
hgs
parents:
diff changeset
   624
    HbMessageBox::mQuestionReturnValue = true;
hgs
parents:
diff changeset
   625
    deleteAction->trigger();
hgs
parents:
diff changeset
   626
    QCOMPARE( mDummyModel->dataAccessCount(), 3 );
hgs
parents:
diff changeset
   627
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents:
diff changeset
   628
    QCOMPARE( mDummyModel->deleteFileIndex(), expected.row() );
hgs
parents:
diff changeset
   629
    QCOMPARE( HbMessageBox::mLatestTxt, expectedText );
hgs
parents:
diff changeset
   630
    
hgs
parents:
diff changeset
   631
    HbMessageBox::mQuestionReturnValue = false;
hgs
parents:
diff changeset
   632
    deleteAction->trigger();
hgs
parents:
diff changeset
   633
    QCOMPARE( mDummyModel->dataAccessCount(), 4 );
hgs
parents:
diff changeset
   634
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents:
diff changeset
   635
    QCOMPARE( mDummyModel->deleteFileIndex(), expected.row() );
hgs
parents:
diff changeset
   636
    QCOMPARE( HbMessageBox::mLatestTxt, expectedText );
hgs
parents:
diff changeset
   637
    
hgs
parents:
diff changeset
   638
hgs
parents:
diff changeset
   639
    mDummyModel->reset();
hgs
parents:
diff changeset
   640
    HbMessageBox::mQuestionReturnValue = false;
hgs
parents:
diff changeset
   641
    deleteAction->trigger();
hgs
parents:
diff changeset
   642
    QCOMPARE( mDummyModel->dataAccessCount(), 1 );
hgs
parents:
diff changeset
   643
    QVERIFY( mDummyModel->lastIndex() == expected );
hgs
parents:
diff changeset
   644
    QCOMPARE( mDummyModel->deleteFileIndex(), -1 ); // verify that no file was deleted.
hgs
parents:
diff changeset
   645
    QCOMPARE( HbMessageBox::mLatestTxt, expectedText );
hgs
parents:
diff changeset
   646
    
hgs
parents:
diff changeset
   647
    cleanup();
hgs
parents:
diff changeset
   648
}
hgs
parents:
diff changeset
   649
hgs
parents:
diff changeset
   650
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   651
// Slot: test for the testRowsRemovedSlot
hgs
parents:
diff changeset
   652
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   653
//
hgs
parents:
diff changeset
   654
void TestVideoFileDetails::testRowsRemovedSlot()
hgs
parents:
diff changeset
   655
{
hgs
parents:
diff changeset
   656
    const int testIndex = 9;
34
hgs
parents: 30
diff changeset
   657
    TMPXItemId testID(9,0);
30
hgs
parents:
diff changeset
   658
    init();
hgs
parents:
diff changeset
   659
    connect(mPlugin, SIGNAL(command(int)), this, SLOT(handleCommand(int)));
hgs
parents:
diff changeset
   660
    
hgs
parents:
diff changeset
   661
    emit rowsRemoved(QModelIndex(), testIndex, testIndex);
hgs
parents:
diff changeset
   662
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   663
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   664
    
hgs
parents:
diff changeset
   665
    activateView();
hgs
parents:
diff changeset
   666
    
hgs
parents:
diff changeset
   667
    emit rowsRemoved(QModelIndex(), testIndex, testIndex);
hgs
parents:
diff changeset
   668
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   669
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   670
    
36
hgs
parents: 35
diff changeset
   671
    QVariant variant = QVariant(createDummyMetadata());
hgs
parents: 35
diff changeset
   672
    emit fullDetailsReady(variant);
34
hgs
parents: 30
diff changeset
   673
    mPlugin->mVideoId = testID;
hgs
parents: 30
diff changeset
   674
    mPlugin->mDeletedIndex = testIndex;
30
hgs
parents:
diff changeset
   675
    
hgs
parents:
diff changeset
   676
    emit rowsRemoved(QModelIndex(), testIndex+1, testIndex-1);
hgs
parents:
diff changeset
   677
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   678
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   679
hgs
parents:
diff changeset
   680
    emit rowsRemoved(QModelIndex(), testIndex-3, testIndex-1);
hgs
parents:
diff changeset
   681
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   682
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   683
    
hgs
parents:
diff changeset
   684
    emit rowsRemoved(QModelIndex(), testIndex+1, testIndex+3);
hgs
parents:
diff changeset
   685
    QCOMPARE( mCommandReceived, false );
hgs
parents:
diff changeset
   686
    QCOMPARE( mReceivedCommand, -1 );
hgs
parents:
diff changeset
   687
    
hgs
parents:
diff changeset
   688
    emit rowsRemoved(QModelIndex(), testIndex, testIndex);
hgs
parents:
diff changeset
   689
    QCOMPARE( mCommandReceived, true );
hgs
parents:
diff changeset
   690
    QCOMPARE( mReceivedCommand, static_cast<int>(MpxHbVideoCommon::ActivateCollectionView) );
hgs
parents:
diff changeset
   691
    
hgs
parents:
diff changeset
   692
    disconnect(mPlugin, SIGNAL(command(int)), this, SLOT(handleCommand(int)));
hgs
parents:
diff changeset
   693
    cleanup();
hgs
parents:
diff changeset
   694
}
hgs
parents:
diff changeset
   695
hgs
parents:
diff changeset
   696
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   697
// Slot: testHandleErrorSlot test error messages
hgs
parents:
diff changeset
   698
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   699
//
hgs
parents:
diff changeset
   700
void TestVideoFileDetails::testHandleErrorSlot()
hgs
parents:
diff changeset
   701
{
hgs
parents:
diff changeset
   702
    init();
hgs
parents:
diff changeset
   703
    connect(this, SIGNAL(testErrorSignal(int, QVariant&)), mPlugin, SLOT(handleErrorSlot(int, QVariant&)));
hgs
parents:
diff changeset
   704
hgs
parents:
diff changeset
   705
    HbMessageBox::mLatestTxt = "";
hgs
parents:
diff changeset
   706
    QVariant additional =  QVariant();
hgs
parents:
diff changeset
   707
    // invalid msg,
hgs
parents:
diff changeset
   708
    emit testErrorSignal( VideoCollectionCommon::statusMultipleDeleteFail + 1, additional);
hgs
parents:
diff changeset
   709
    
hgs
parents:
diff changeset
   710
    QVERIFY(HbMessageBox::mLatestTxt.isEmpty());
hgs
parents:
diff changeset
   711
     
hgs
parents:
diff changeset
   712
    // VideoCollectionCommon::statusSingleDeleteFail
hgs
parents:
diff changeset
   713
    // - without additional data
hgs
parents:
diff changeset
   714
    emit testErrorSignal( VideoCollectionCommon::statusSingleDeleteFail , additional);
hgs
parents:
diff changeset
   715
    QVERIFY(HbMessageBox::mLatestTxt.isEmpty());
hgs
parents:
diff changeset
   716
    
hgs
parents:
diff changeset
   717
    // - with additional data
hgs
parents:
diff changeset
   718
    QString txt = "testdata";
hgs
parents:
diff changeset
   719
    additional = txt;
hgs
parents:
diff changeset
   720
    emit testErrorSignal( VideoCollectionCommon::statusSingleDeleteFail , additional);
36
hgs
parents: 35
diff changeset
   721
    QCOMPARE(HbMessageBox::mLatestTxt, hbTrId("txt_videos_info_unable_to_delete_1_it_is_current").arg(txt));
30
hgs
parents:
diff changeset
   722
    
hgs
parents:
diff changeset
   723
    HbMessageBox::mLatestTxt = "";
hgs
parents:
diff changeset
   724
    // VideoCollectionCommon::statusMultipleDeleteFail
hgs
parents:
diff changeset
   725
    emit testErrorSignal( VideoCollectionCommon::statusMultipleDeleteFail , additional);
hgs
parents:
diff changeset
   726
    QVERIFY(HbMessageBox::mLatestTxt.isEmpty());
hgs
parents:
diff changeset
   727
    
hgs
parents:
diff changeset
   728
    disconnect(this, SIGNAL(testErrorSignal(int, QVariant&)), mPlugin, SLOT(handleErrorSlot(int, QVariant&)));
hgs
parents:
diff changeset
   729
    
hgs
parents:
diff changeset
   730
    cleanup();
hgs
parents:
diff changeset
   731
}
hgs
parents:
diff changeset
   732
hgs
parents:
diff changeset
   733
hgs
parents:
diff changeset
   734
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   735
// Slot: test for the testThumbnailReadySlot
hgs
parents:
diff changeset
   736
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   737
//
hgs
parents:
diff changeset
   738
void TestVideoFileDetails::testThumbnailReadySlot()
hgs
parents:
diff changeset
   739
{
34
hgs
parents: 30
diff changeset
   740
    TMPXItemId testIndex(9,0);
30
hgs
parents:
diff changeset
   741
    QStringList display;
hgs
parents:
diff changeset
   742
    display.append("first row");
hgs
parents:
diff changeset
   743
    display.append("second row");
hgs
parents:
diff changeset
   744
    QString filepath("filepath");
hgs
parents:
diff changeset
   745
    
hgs
parents:
diff changeset
   746
    init();
hgs
parents:
diff changeset
   747
    activateView();
hgs
parents:
diff changeset
   748
    
36
hgs
parents: 35
diff changeset
   749
    mDummyModel->setData(VideoCollectionCommon::KeyTitle, display);
30
hgs
parents:
diff changeset
   750
    mDummyModel->setData(VideoCollectionCommon::KeyFilePath, filepath);
hgs
parents:
diff changeset
   751
hgs
parents:
diff changeset
   752
    emit shortDetailsReady(testIndex);
hgs
parents:
diff changeset
   753
    
hgs
parents:
diff changeset
   754
    mPlugin->mThumbnailManager->mThumbnailReadyError = -1;
hgs
parents:
diff changeset
   755
    mPlugin->mThumbnailManager->emitThumbnailReady(0);
hgs
parents:
diff changeset
   756
    
34
hgs
parents: 30
diff changeset
   757
    HbStackedWidget* thumbWidget = findWidget<HbStackedWidget>(VIDEO_DETAILS_THUMBNAIL);
hgs
parents: 30
diff changeset
   758
    VideoDetailsLabel* thumbLabel = (VideoDetailsLabel*)thumbWidget->widgetAt(0);
hgs
parents: 30
diff changeset
   759
    QVERIFY( thumbLabel->icon().qicon().isNull() == false );
hgs
parents: 30
diff changeset
   760
30
hgs
parents:
diff changeset
   761
    mPlugin->mThumbnailManager->mThumbnailReadyError = 0;
hgs
parents:
diff changeset
   762
    emit shortDetailsReady(testIndex);
hgs
parents:
diff changeset
   763
    mPlugin->mThumbnailManager->emitThumbnailReady(0);
hgs
parents:
diff changeset
   764
    
34
hgs
parents: 30
diff changeset
   765
    QVERIFY( thumbLabel->icon().qicon().isNull() == false );
30
hgs
parents:
diff changeset
   766
    
hgs
parents:
diff changeset
   767
    cleanup();
hgs
parents:
diff changeset
   768
}
hgs
parents:
diff changeset
   769
hgs
parents:
diff changeset
   770
hgs
parents:
diff changeset
   771
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   772
// findWidget
hgs
parents:
diff changeset
   773
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   774
//
hgs
parents:
diff changeset
   775
template<class T> 
hgs
parents:
diff changeset
   776
T* TestVideoFileDetails::findWidget(QString name)
hgs
parents:
diff changeset
   777
{
35
hgs
parents: 34
diff changeset
   778
    return qobject_cast<T *>(mPlugin->mLoader.findWidget(name));
30
hgs
parents:
diff changeset
   779
}
hgs
parents:
diff changeset
   780
hgs
parents:
diff changeset
   781
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   782
// findObject
hgs
parents:
diff changeset
   783
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   784
//
hgs
parents:
diff changeset
   785
template<class T> 
hgs
parents:
diff changeset
   786
T* TestVideoFileDetails::findObject(QString name)
hgs
parents:
diff changeset
   787
{
35
hgs
parents: 34
diff changeset
   788
    return qobject_cast<T *>(mPlugin->mLoader.findObject(name));
30
hgs
parents:
diff changeset
   789
}
hgs
parents:
diff changeset
   790
hgs
parents:
diff changeset
   791
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   792
// main
hgs
parents:
diff changeset
   793
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   794
//
hgs
parents:
diff changeset
   795
int main(int argc, char *argv[])
hgs
parents:
diff changeset
   796
{
hgs
parents:
diff changeset
   797
    HbApplication app(argc, argv);
hgs
parents:
diff changeset
   798
    HbApplication::setKeypadNavigationEnabled(false);
hgs
parents:
diff changeset
   799
    HbMainWindow mainWindow;
hgs
parents:
diff changeset
   800
    mainWindow.show();
hgs
parents:
diff changeset
   801
    
hgs
parents:
diff changeset
   802
    TestVideoFileDetails tc;
hgs
parents:
diff changeset
   803
    
hgs
parents:
diff changeset
   804
    char *pass[3];
hgs
parents:
diff changeset
   805
    pass[0] = argv[0];
hgs
parents:
diff changeset
   806
    pass[1] = "-o";
hgs
parents:
diff changeset
   807
    pass[2] = "c:\\data\\testvideofiledetailsviewplugin.txt";
hgs
parents:
diff changeset
   808
hgs
parents:
diff changeset
   809
    return QTest::qExec(&tc, 3, pass);
hgs
parents:
diff changeset
   810
}
hgs
parents:
diff changeset
   811
hgs
parents:
diff changeset
   812
// end of file