homescreenapp/stateplugins/hsapplibrarystateplugin/tsrc/t_collectionsstate/src/t_collectionsstate.cpp
author hgs
Wed, 06 Oct 2010 16:06:24 +0300
changeset 97 66b5fe3c07fd
parent 90 3ac3aaebaee5
child 98 e6f74eb7f69f
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
90
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 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:  Main test class for hsHomeScreenStatePlugin library.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <hbmainwindow.h>
hgs
parents:
diff changeset
    19
#include <hbinstance.h>
hgs
parents:
diff changeset
    20
#include <hbview.h>
hgs
parents:
diff changeset
    21
#include <hbmenu.h>
hgs
parents:
diff changeset
    22
#include <hblabel.h>
hgs
parents:
diff changeset
    23
#include <hblistview.h>
hgs
parents:
diff changeset
    24
#include <hblistviewitem.h>
hgs
parents:
diff changeset
    25
#include <hbgroupbox.h>
hgs
parents:
diff changeset
    26
#include <HbAction>
hgs
parents:
diff changeset
    27
#include <HbPushButton>
hgs
parents:
diff changeset
    28
#include <qscopedpointer>
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
#include "caentry.h"
hgs
parents:
diff changeset
    31
#include "caitemmodel.h"
hgs
parents:
diff changeset
    32
#include "hsmenuviewbuilder.h"
hgs
parents:
diff changeset
    33
#include "hsmenumodewrapper.h"
hgs
parents:
diff changeset
    34
#include "hsmenuevent.h"
hgs
parents:
diff changeset
    35
#include "hsmenueventtransition.h"
hgs
parents:
diff changeset
    36
#include "hscollectionstate.h"
hgs
parents:
diff changeset
    37
#include "hsmainwindow.h"
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    38
#include "hsscene.h"
90
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
#include "t_hsaddtohomescreenmockstate.h"
hgs
parents:
diff changeset
    41
#include "t_hsmockmodel.h"
hgs
parents:
diff changeset
    42
#include "t_collectionsstate.h"
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
Q_DECLARE_METATYPE(Hs::HsSortAttribute)
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    47
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    48
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    49
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    50
//
90
hgs
parents:
diff changeset
    51
class HsMainWindowMock : public HsMainWindow
hgs
parents:
diff changeset
    52
{
hgs
parents:
diff changeset
    53
    virtual void setCurrentView(HbView *view);
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
};
hgs
parents:
diff changeset
    56
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    57
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    58
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    59
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    60
//
90
hgs
parents:
diff changeset
    61
void HsMainWindowMock::setCurrentView(HbView *view)
hgs
parents:
diff changeset
    62
{
hgs
parents:
diff changeset
    63
    Q_UNUSED(view);
hgs
parents:
diff changeset
    64
    // do nothing
hgs
parents:
diff changeset
    65
}
hgs
parents:
diff changeset
    66
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    67
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    68
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    69
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    70
//
90
hgs
parents:
diff changeset
    71
void MenuStatesTest::init()
hgs
parents:
diff changeset
    72
{
hgs
parents:
diff changeset
    73
}
hgs
parents:
diff changeset
    74
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    75
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    76
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    77
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    78
//
90
hgs
parents:
diff changeset
    79
void MenuStatesTest::cleanup()
hgs
parents:
diff changeset
    80
{
hgs
parents:
diff changeset
    81
    qApp->processEvents();
hgs
parents:
diff changeset
    82
}
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    85
//
90
hgs
parents:
diff changeset
    86
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    87
//
hgs
parents:
diff changeset
    88
void MenuStatesTest::construction()
hgs
parents:
diff changeset
    89
{
hgs
parents:
diff changeset
    90
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    91
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
    92
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
    93
    __UHEAP_MARK;
hgs
parents:
diff changeset
    94
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
    95
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
    96
    {
hgs
parents:
diff changeset
    97
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
    98
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
    99
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   100
        QScopedPointer<QState> parent(new QState);
hgs
parents:
diff changeset
   101
        parent->setObjectName(tr("testName1"));
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   104
            new HsCollectionState(builder, menuMode, mainWindow, parent.data());
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
        QCOMPARE(collectionState->mSortAttribute,
hgs
parents:
diff changeset
   107
                 Hs::LatestOnTopHsSortAttribute);
hgs
parents:
diff changeset
   108
        QCOMPARE(collectionState->mCollectionId, -1);
hgs
parents:
diff changeset
   109
        QCOMPARE(collectionState->mModel, static_cast<HsMenuItemModel *>(0));
hgs
parents:
diff changeset
   110
        QCOMPARE(collectionState->objectName(),
hgs
parents:
diff changeset
   111
                 tr("testName1/collectionstate"));
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    }
hgs
parents:
diff changeset
   114
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   115
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   116
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   117
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   118
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   119
}
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   122
//
90
hgs
parents:
diff changeset
   123
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   124
//
hgs
parents:
diff changeset
   125
void MenuStatesTest::listItemActivated()
hgs
parents:
diff changeset
   126
{
hgs
parents:
diff changeset
   127
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   128
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   129
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   130
    __UHEAP_MARK;
hgs
parents:
diff changeset
   131
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   132
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   133
    {
hgs
parents:
diff changeset
   134
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   135
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   136
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   139
        QState *parent = new QState(machine.data());
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   142
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   143
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   144
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   147
            new HsCollectionState(builder, menuMode, mainWindow, parent);
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
        HsMenuItemModel *const itemModel =
hgs
parents:
diff changeset
   152
            HsMenuService::getAllApplicationsModel(Hs::AscendingNameHsSortAttribute);
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
        QModelIndex applicationModelIndex = itemModel->index(1, 0);
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
        QList<int> appList;
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
        appList << itemModel->data(applicationModelIndex, CaItemModel::IdRole).toInt();
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
        HsMenuService::addApplicationsToCollection(appList, collectionId);
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
        collectionState->stateEntered();
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
        QVERIFY(collectionState->mModel != NULL);
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
        collectionState->launchItem(applicationModelIndex);
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
        collectionState->stateExited();
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
        QTest::qWait(3000);
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
        //TODO: made some utils to closing application
hgs
parents:
diff changeset
   173
        //HsMenuService::executeAction(appList.at(0), QString("close"));
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
        // cleanup
hgs
parents:
diff changeset
   176
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   177
    }
hgs
parents:
diff changeset
   178
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   179
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   180
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   181
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   182
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   183
}
hgs
parents:
diff changeset
   184
hgs
parents:
diff changeset
   185
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   186
//
90
hgs
parents:
diff changeset
   187
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   188
//
hgs
parents:
diff changeset
   189
void MenuStatesTest::listItemLongPressed()
hgs
parents:
diff changeset
   190
{
hgs
parents:
diff changeset
   191
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   192
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   193
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   194
    __UHEAP_MARK;
hgs
parents:
diff changeset
   195
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   196
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   197
    {
hgs
parents:
diff changeset
   198
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   199
        HsMenuModeWrapper menuMode;
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   200
        HsMainWindowMock mainWindow;
90
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
hgs
parents:
diff changeset
   203
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   204
        QState *parent(new QState(machine.data()));
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   207
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   208
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   209
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
        HsMenuItemModel *appsModel = HsMenuService::getAllApplicationsModel();
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   212
        QVERIFY(appsModel!=NULL);
90
hgs
parents:
diff changeset
   213
        QList<int> list;
hgs
parents:
diff changeset
   214
        list << appsModel->data(appsModel->index(0),CaItemModel::IdRole).toInt();
hgs
parents:
diff changeset
   215
        HsMenuService::addApplicationsToCollection(list,collectionId);
hgs
parents:
diff changeset
   216
        delete appsModel;
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
        HsCollectionState *collectionState = new HsCollectionState(builder, menuMode,
hgs
parents:
diff changeset
   219
                mainWindow, parent);
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   220
        QVERIFY(collectionState!=NULL);
90
hgs
parents:
diff changeset
   221
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   222
        collectionState->mCollectionType = "collection";
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
        collectionState->stateEntered();
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
        QScopedPointer<HbAbstractViewItem> item(new HbListViewItem);
hgs
parents:
diff changeset
   227
        QModelIndex itemModelIndex = collectionState->mModel->index(0, 0);
hgs
parents:
diff changeset
   228
        item->setModelIndex(itemModelIndex);
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
        collectionState->showContextMenu(item.data(), QPointF(50,50));
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
        int numberOfActions = 3;
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
        EntryFlags rootFlags =
hgs
parents:
diff changeset
   235
            collectionState->mModel->root().data(CaItemModel::FlagsRole).value<
hgs
parents:
diff changeset
   236
            EntryFlags> ();
hgs
parents:
diff changeset
   237
        if (rootFlags & RemovableEntryFlag) {
hgs
parents:
diff changeset
   238
            numberOfActions++;
hgs
parents:
diff changeset
   239
        }
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
        EntryFlags flags = item->modelIndex().data(CaItemModel::FlagsRole).value<
hgs
parents:
diff changeset
   242
                           EntryFlags> ();
hgs
parents:
diff changeset
   243
        if ((flags & RemovableEntryFlag)) {
hgs
parents:
diff changeset
   244
            numberOfActions++;
hgs
parents:
diff changeset
   245
        }
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
        QSharedPointer<const CaEntry> entry = collectionState->mModel->entry(item->modelIndex());
hgs
parents:
diff changeset
   248
        if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) {
hgs
parents:
diff changeset
   249
            numberOfActions++;
hgs
parents:
diff changeset
   250
        }
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
        QCOMPARE(collectionState->mContextMenu->actions().length(), numberOfActions);
hgs
parents:
diff changeset
   253
        QVERIFY(collectionState->mContextMenu->testAttribute(Qt::WA_DeleteOnClose));
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
        collectionState->stateExited();
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
        qApp->processEvents();
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
        // cleanup
hgs
parents:
diff changeset
   260
        if (!list.isEmpty()) {
hgs
parents:
diff changeset
   261
            for (int i=0; i<list.count(); i++) {
hgs
parents:
diff changeset
   262
                HsMenuService::removeApplicationFromCollection(list[i],collectionId);
hgs
parents:
diff changeset
   263
            }
hgs
parents:
diff changeset
   264
        }
hgs
parents:
diff changeset
   265
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   266
    }
hgs
parents:
diff changeset
   267
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   268
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   269
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   270
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   271
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   272
}
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   275
//
90
hgs
parents:
diff changeset
   276
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   277
//
hgs
parents:
diff changeset
   278
void MenuStatesTest::contextMenuAction()
hgs
parents:
diff changeset
   279
{
hgs
parents:
diff changeset
   280
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   281
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   282
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   283
    __UHEAP_MARK;
hgs
parents:
diff changeset
   284
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   285
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   286
    {
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   287
        //QScopedPointer<HbMainWindow> window(new HbMainWindow);
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   288
        //HsScene::setInstance( new HsScene(window.data()) );
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   289
90
hgs
parents:
diff changeset
   290
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   291
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   292
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   293
hgs
parents:
diff changeset
   294
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   295
hgs
parents:
diff changeset
   296
        // we will start from collection view
hgs
parents:
diff changeset
   297
hgs
parents:
diff changeset
   298
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   299
                                     QDateTime::currentDateTime().toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   300
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   301
hgs
parents:
diff changeset
   302
        HsMenuItemModel *allAppsModel = HsMenuService::getAllApplicationsModel();
hgs
parents:
diff changeset
   303
        QVERIFY(allAppsModel->rowCount() >= 1);
hgs
parents:
diff changeset
   304
        QModelIndex appIndex = allAppsModel->index(0, 0);
hgs
parents:
diff changeset
   305
hgs
parents:
diff changeset
   306
        const int appId = allAppsModel->data(appIndex, CaItemModel::IdRole).toInt();
hgs
parents:
diff changeset
   307
        QList<int> appIdList;
hgs
parents:
diff changeset
   308
        appIdList << appId;
hgs
parents:
diff changeset
   309
hgs
parents:
diff changeset
   310
        HsCollectionState *collectionState = new HsCollectionState(builder,
hgs
parents:
diff changeset
   311
                menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   314
        HsMenuService::addApplicationsToCollection(appIdList, collectionId);
hgs
parents:
diff changeset
   315
hgs
parents:
diff changeset
   316
        // create a state which is to be reached when add-to-home-screen
hgs
parents:
diff changeset
   317
        // event is triggered
hgs
parents:
diff changeset
   318
        AddToHomeScreenMockState *addToHomeScreenState =
hgs
parents:
diff changeset
   319
            new AddToHomeScreenMockState(machine.data());
hgs
parents:
diff changeset
   320
hgs
parents:
diff changeset
   321
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   322
        // an event with specified operation type
hgs
parents:
diff changeset
   323
        HsMenuEventTransition addToHomeScreenTransition(
hgs
parents:
diff changeset
   324
            HsMenuEvent::AddToHomeScreen, collectionState, addToHomeScreenState);
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
        // prepare the state graph
hgs
parents:
diff changeset
   327
        collectionState->addTransition(&addToHomeScreenTransition);
hgs
parents:
diff changeset
   328
hgs
parents:
diff changeset
   329
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   330
        machine->start();
hgs
parents:
diff changeset
   331
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   332
hgs
parents:
diff changeset
   333
        HbAction *action = new HbAction("test_addtohomescreen");
hgs
parents:
diff changeset
   334
        action->setData(Hs::AddToHomeScreenContextAction);
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
        collectionState->mContextModelIndex = collectionState->mModel->index(0,0);
hgs
parents:
diff changeset
   337
hgs
parents:
diff changeset
   338
        collectionState->contextMenuAction(action);
hgs
parents:
diff changeset
   339
hgs
parents:
diff changeset
   340
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   341
        qApp->processEvents();
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
        QVERIFY(addToHomeScreenState->enteredValue());
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
        machine->stop();
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
        // cleanup
hgs
parents:
diff changeset
   348
        delete action;
hgs
parents:
diff changeset
   349
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   350
hgs
parents:
diff changeset
   351
    }
hgs
parents:
diff changeset
   352
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   353
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   354
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   355
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   356
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   357
}
hgs
parents:
diff changeset
   358
hgs
parents:
diff changeset
   359
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   360
//
90
hgs
parents:
diff changeset
   361
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   362
//
hgs
parents:
diff changeset
   363
void MenuStatesTest::contextMenuConstruct()
hgs
parents:
diff changeset
   364
{
hgs
parents:
diff changeset
   365
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   366
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   367
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   368
    __UHEAP_MARK;
hgs
parents:
diff changeset
   369
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   370
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   371
    {
hgs
parents:
diff changeset
   372
        HsMenuViewBuilder menuView;
hgs
parents:
diff changeset
   373
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   374
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   375
hgs
parents:
diff changeset
   376
        QScopedPointer<QState> parent(new QState);
hgs
parents:
diff changeset
   377
hgs
parents:
diff changeset
   378
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   379
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   380
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   385
            new HsCollectionState(menuView, menuMode, mainWindow, parent.data());
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
        collectionState->stateEntered();
hgs
parents:
diff changeset
   390
hgs
parents:
diff changeset
   391
        qApp->processEvents();
hgs
parents:
diff changeset
   392
hgs
parents:
diff changeset
   393
        int actionsCount(
hgs
parents:
diff changeset
   394
            collectionState->mMenuView->view()->menu()->actions().count());
hgs
parents:
diff changeset
   395
        QCOMPARE(actionsCount , 5);
hgs
parents:
diff changeset
   396
        collectionState->stateExited();
hgs
parents:
diff changeset
   397
hgs
parents:
diff changeset
   398
        // cleanup
hgs
parents:
diff changeset
   399
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   400
    }
hgs
parents:
diff changeset
   401
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   402
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   403
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   404
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   405
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   406
}
hgs
parents:
diff changeset
   407
hgs
parents:
diff changeset
   408
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   409
//
90
hgs
parents:
diff changeset
   410
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   411
//
hgs
parents:
diff changeset
   412
void MenuStatesTest::contextMenuConstructNonEmptyCollection()
hgs
parents:
diff changeset
   413
{
hgs
parents:
diff changeset
   414
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   415
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   416
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   417
    __UHEAP_MARK;
hgs
parents:
diff changeset
   418
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   419
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   420
    {
hgs
parents:
diff changeset
   421
        HsMenuViewBuilder menuView;
hgs
parents:
diff changeset
   422
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   423
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
        QScopedPointer<QState> parent(new QState);
hgs
parents:
diff changeset
   426
hgs
parents:
diff changeset
   427
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   428
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   429
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   430
hgs
parents:
diff changeset
   431
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   432
hgs
parents:
diff changeset
   433
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   434
            new HsCollectionState(menuView, menuMode, mainWindow, parent.data());
hgs
parents:
diff changeset
   435
hgs
parents:
diff changeset
   436
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   437
        QVERIFY(HsMenuService::addApplicationsToCollection(QList<int>()<<1, collectionId));
hgs
parents:
diff changeset
   438
hgs
parents:
diff changeset
   439
        collectionState->stateEntered();
hgs
parents:
diff changeset
   440
hgs
parents:
diff changeset
   441
        qApp->processEvents();
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
        const int actionsCount(
hgs
parents:
diff changeset
   444
            collectionState->mMenuView->view()->menu()->actions().count());
hgs
parents:
diff changeset
   445
        // Arrange is available inside options menu.
hgs
parents:
diff changeset
   446
        QCOMPARE(actionsCount , 6);
hgs
parents:
diff changeset
   447
        collectionState->stateExited();
hgs
parents:
diff changeset
   448
hgs
parents:
diff changeset
   449
        // cleanup
hgs
parents:
diff changeset
   450
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   451
    }
hgs
parents:
diff changeset
   452
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   453
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   454
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   455
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   456
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   457
}
hgs
parents:
diff changeset
   458
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   459
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   460
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   461
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   462
//
90
hgs
parents:
diff changeset
   463
void MenuStatesTest::addAppsAction()
hgs
parents:
diff changeset
   464
{
hgs
parents:
diff changeset
   465
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   466
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   467
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   468
    __UHEAP_MARK;
hgs
parents:
diff changeset
   469
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   470
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   471
    {
hgs
parents:
diff changeset
   472
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   473
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   474
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   475
hgs
parents:
diff changeset
   476
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   477
hgs
parents:
diff changeset
   478
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   479
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   480
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   481
hgs
parents:
diff changeset
   482
        const int collectionId =
hgs
parents:
diff changeset
   483
            HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   484
hgs
parents:
diff changeset
   485
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   486
            new HsCollectionState(builder, menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
   487
hgs
parents:
diff changeset
   488
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   489
hgs
parents:
diff changeset
   490
        AddToHomeScreenMockState *mockState =
hgs
parents:
diff changeset
   491
            new AddToHomeScreenMockState(machine.data());
hgs
parents:
diff changeset
   492
hgs
parents:
diff changeset
   493
        HsMenuEventTransition transition(
hgs
parents:
diff changeset
   494
            HsMenuEvent::AddAppsToCollection, collectionState, mockState);
hgs
parents:
diff changeset
   495
hgs
parents:
diff changeset
   496
        collectionState->addTransition(&transition);
hgs
parents:
diff changeset
   497
hgs
parents:
diff changeset
   498
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   499
        machine->start();
hgs
parents:
diff changeset
   500
hgs
parents:
diff changeset
   501
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   502
        qApp->processEvents();
hgs
parents:
diff changeset
   503
hgs
parents:
diff changeset
   504
        collectionState->addAppsAction();
hgs
parents:
diff changeset
   505
hgs
parents:
diff changeset
   506
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   507
        qApp->processEvents();
hgs
parents:
diff changeset
   508
hgs
parents:
diff changeset
   509
        QVERIFY(mockState->enteredValue());
hgs
parents:
diff changeset
   510
hgs
parents:
diff changeset
   511
        machine->stop();
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
        // cleanup
hgs
parents:
diff changeset
   514
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   515
    }
hgs
parents:
diff changeset
   516
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   517
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   518
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   519
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   520
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   521
}
hgs
parents:
diff changeset
   522
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   523
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   524
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   525
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   526
//
90
hgs
parents:
diff changeset
   527
void MenuStatesTest::renameAction()
hgs
parents:
diff changeset
   528
{
hgs
parents:
diff changeset
   529
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   530
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   531
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   532
    __UHEAP_MARK;
hgs
parents:
diff changeset
   533
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   534
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   535
    {
hgs
parents:
diff changeset
   536
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   537
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   538
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   539
hgs
parents:
diff changeset
   540
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   541
hgs
parents:
diff changeset
   542
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   543
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   544
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   545
hgs
parents:
diff changeset
   546
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   547
hgs
parents:
diff changeset
   548
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   549
            new HsCollectionState(builder, menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
   550
hgs
parents:
diff changeset
   551
hgs
parents:
diff changeset
   552
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   553
hgs
parents:
diff changeset
   554
        AddToHomeScreenMockState *mockState =
hgs
parents:
diff changeset
   555
            new AddToHomeScreenMockState(machine.data());
hgs
parents:
diff changeset
   556
hgs
parents:
diff changeset
   557
        HsMenuEventTransition transition(
hgs
parents:
diff changeset
   558
            HsMenuEvent::RenameCollection, collectionState, mockState);
hgs
parents:
diff changeset
   559
hgs
parents:
diff changeset
   560
        collectionState->addTransition(&transition);
hgs
parents:
diff changeset
   561
hgs
parents:
diff changeset
   562
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   563
hgs
parents:
diff changeset
   564
        machine->start();
hgs
parents:
diff changeset
   565
hgs
parents:
diff changeset
   566
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   567
hgs
parents:
diff changeset
   568
        collectionState->renameAction();
hgs
parents:
diff changeset
   569
hgs
parents:
diff changeset
   570
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   571
hgs
parents:
diff changeset
   572
        QVERIFY(mockState->enteredValue());
hgs
parents:
diff changeset
   573
hgs
parents:
diff changeset
   574
        machine->stop();
hgs
parents:
diff changeset
   575
hgs
parents:
diff changeset
   576
        // cleanup
hgs
parents:
diff changeset
   577
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   578
    }
hgs
parents:
diff changeset
   579
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   580
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   581
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   582
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   583
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   584
}
hgs
parents:
diff changeset
   585
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   586
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   587
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   588
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   589
//
90
hgs
parents:
diff changeset
   590
void MenuStatesTest::deleteAppsAction()
hgs
parents:
diff changeset
   591
{
hgs
parents:
diff changeset
   592
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   593
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   594
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   595
    __UHEAP_MARK;
hgs
parents:
diff changeset
   596
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   597
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   598
    {
hgs
parents:
diff changeset
   599
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   600
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   601
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   602
hgs
parents:
diff changeset
   603
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   604
hgs
parents:
diff changeset
   605
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   606
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   607
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   610
hgs
parents:
diff changeset
   611
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   612
            new HsCollectionState(builder, menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
   613
hgs
parents:
diff changeset
   614
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   615
hgs
parents:
diff changeset
   616
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   617
hgs
parents:
diff changeset
   618
        AddToHomeScreenMockState *mockState =
hgs
parents:
diff changeset
   619
            new AddToHomeScreenMockState(machine.data());
hgs
parents:
diff changeset
   620
hgs
parents:
diff changeset
   621
        HsMenuEventTransition transition(
hgs
parents:
diff changeset
   622
            HsMenuEvent::DeleteCollection, collectionState, mockState);
hgs
parents:
diff changeset
   623
hgs
parents:
diff changeset
   624
        collectionState->addTransition(&transition);
hgs
parents:
diff changeset
   625
hgs
parents:
diff changeset
   626
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   627
        machine->start();
hgs
parents:
diff changeset
   628
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   629
hgs
parents:
diff changeset
   630
        collectionState->deleteAction();
hgs
parents:
diff changeset
   631
hgs
parents:
diff changeset
   632
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   633
hgs
parents:
diff changeset
   634
        QVERIFY(mockState->enteredValue());
hgs
parents:
diff changeset
   635
hgs
parents:
diff changeset
   636
        machine->stop();
hgs
parents:
diff changeset
   637
hgs
parents:
diff changeset
   638
        // cleanup
hgs
parents:
diff changeset
   639
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   640
    }
hgs
parents:
diff changeset
   641
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   642
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   643
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   644
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   645
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   646
}
hgs
parents:
diff changeset
   647
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   648
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   649
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   650
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   651
//
90
hgs
parents:
diff changeset
   652
void MenuStatesTest::updateLabel()
hgs
parents:
diff changeset
   653
{
hgs
parents:
diff changeset
   654
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   655
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   656
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   657
    __UHEAP_MARK;
hgs
parents:
diff changeset
   658
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   659
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   660
    {
hgs
parents:
diff changeset
   661
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   662
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   663
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   664
hgs
parents:
diff changeset
   665
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   666
        QState *rootState = new QState(machine.data());
hgs
parents:
diff changeset
   667
        machine->setInitialState(rootState);
hgs
parents:
diff changeset
   668
hgs
parents:
diff changeset
   669
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   670
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   671
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   672
hgs
parents:
diff changeset
   673
        const int collectionId =
hgs
parents:
diff changeset
   674
            HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   675
hgs
parents:
diff changeset
   676
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   677
            new HsCollectionState(builder, menuMode, mainWindow, rootState);
hgs
parents:
diff changeset
   678
hgs
parents:
diff changeset
   679
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   680
hgs
parents:
diff changeset
   681
        collectionState->mModel =
hgs
parents:
diff changeset
   682
            static_cast<HsMenuItemModel *>(
hgs
parents:
diff changeset
   683
                HsMenuService::getCollectionModel(collectionState->mCollectionId,
hgs
parents:
diff changeset
   684
                        collectionState->mSortAttribute));
hgs
parents:
diff changeset
   685
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   686
        const QString newName(collectionName +
90
hgs
parents:
diff changeset
   687
                              QDateTime::currentDateTime().
hgs
parents:
diff changeset
   688
                              toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   689
hgs
parents:
diff changeset
   690
        const bool renamed = HsMenuService::renameCollection(
hgs
parents:
diff changeset
   691
                                 collectionState->mCollectionId, newName);
hgs
parents:
diff changeset
   692
hgs
parents:
diff changeset
   693
        QVERIFY(renamed);
hgs
parents:
diff changeset
   694
hgs
parents:
diff changeset
   695
        QTest::qWait(3000);
hgs
parents:
diff changeset
   696
hgs
parents:
diff changeset
   697
        collectionState->updateLabel();
hgs
parents:
diff changeset
   698
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   699
        const QString label = builder.currentViewLabel()->heading();
90
hgs
parents:
diff changeset
   700
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   701
        //now label is different than collection name but should contain this name
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   702
        QVERIFY(label.contains(newName));
90
hgs
parents:
diff changeset
   703
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   704
        QVERIFY(HsMenuService::renameCollection(collectionState->mCollectionId, collectionName));
90
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
        // cleanup
hgs
parents:
diff changeset
   707
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   708
    }
hgs
parents:
diff changeset
   709
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   710
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   711
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   712
}
hgs
parents:
diff changeset
   713
hgs
parents:
diff changeset
   714
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   715
//
90
hgs
parents:
diff changeset
   716
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   717
//
hgs
parents:
diff changeset
   718
void MenuStatesTest::addElementToHomeScreen()
hgs
parents:
diff changeset
   719
{
hgs
parents:
diff changeset
   720
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   721
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   722
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   723
    __UHEAP_MARK;
hgs
parents:
diff changeset
   724
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   725
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   726
    {
hgs
parents:
diff changeset
   727
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   728
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   729
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   730
hgs
parents:
diff changeset
   731
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   732
hgs
parents:
diff changeset
   733
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   734
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   735
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   736
hgs
parents:
diff changeset
   737
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   738
        HsMenuItemModel *allAppsModel = HsMenuService::getAllApplicationsModel();
hgs
parents:
diff changeset
   739
        QVERIFY(allAppsModel->rowCount() >= 1);
hgs
parents:
diff changeset
   740
        QModelIndex appIndex = allAppsModel->index(0, 0);
hgs
parents:
diff changeset
   741
hgs
parents:
diff changeset
   742
        const int appId = allAppsModel->data(appIndex, CaItemModel::IdRole).toInt();
hgs
parents:
diff changeset
   743
        QList<int> appIdList;
hgs
parents:
diff changeset
   744
        appIdList << appId;
hgs
parents:
diff changeset
   745
hgs
parents:
diff changeset
   746
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   747
            new HsCollectionState(builder, menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
   748
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   749
hgs
parents:
diff changeset
   750
        HsMenuService::addApplicationsToCollection(appIdList, collectionId);
hgs
parents:
diff changeset
   751
hgs
parents:
diff changeset
   752
        // create a state which is to be reached when add-to-home-screen
hgs
parents:
diff changeset
   753
        // event is triggered
hgs
parents:
diff changeset
   754
        AddToHomeScreenMockState *addToHomeScreenState =
hgs
parents:
diff changeset
   755
            new AddToHomeScreenMockState(machine.data());
hgs
parents:
diff changeset
   756
hgs
parents:
diff changeset
   757
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   758
        // an event with specified operation type
hgs
parents:
diff changeset
   759
        HsMenuEventTransition addToHomeScreenTransition(
hgs
parents:
diff changeset
   760
            HsMenuEvent::AddToHomeScreen, collectionState, addToHomeScreenState);
hgs
parents:
diff changeset
   761
hgs
parents:
diff changeset
   762
        // prepare the state graph
hgs
parents:
diff changeset
   763
        collectionState->addTransition(&addToHomeScreenTransition);
hgs
parents:
diff changeset
   764
hgs
parents:
diff changeset
   765
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   766
        machine->start();
hgs
parents:
diff changeset
   767
        qApp->processEvents();
hgs
parents:
diff changeset
   768
hgs
parents:
diff changeset
   769
        const QModelIndex idx = collectionState->mModel->index(0);
hgs
parents:
diff changeset
   770
hgs
parents:
diff changeset
   771
        collectionState->addToHomeScreen(idx.data(CaItemModel::IdRole).toInt());
hgs
parents:
diff changeset
   772
hgs
parents:
diff changeset
   773
        qApp->processEvents();
hgs
parents:
diff changeset
   774
hgs
parents:
diff changeset
   775
        QVERIFY(addToHomeScreenState->enteredValue());
hgs
parents:
diff changeset
   776
hgs
parents:
diff changeset
   777
        machine->stop();
hgs
parents:
diff changeset
   778
hgs
parents:
diff changeset
   779
        // cleanup
hgs
parents:
diff changeset
   780
        if (!appIdList.isEmpty()) {
hgs
parents:
diff changeset
   781
            for (int i=0; i<appIdList.count(); i++) {
hgs
parents:
diff changeset
   782
                HsMenuService::removeApplicationFromCollection(appIdList[i],collectionId);
hgs
parents:
diff changeset
   783
            }
hgs
parents:
diff changeset
   784
        }
hgs
parents:
diff changeset
   785
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   786
    }
hgs
parents:
diff changeset
   787
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   788
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   789
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   790
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   791
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   792
}
hgs
parents:
diff changeset
   793
hgs
parents:
diff changeset
   794
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   795
//
90
hgs
parents:
diff changeset
   796
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   797
//
hgs
parents:
diff changeset
   798
void MenuStatesTest::addCollectionShortcutToHomeScreenAction()
hgs
parents:
diff changeset
   799
{
hgs
parents:
diff changeset
   800
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   801
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   802
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   803
    __UHEAP_MARK;
hgs
parents:
diff changeset
   804
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   805
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   806
    {
hgs
parents:
diff changeset
   807
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   808
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   809
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   810
hgs
parents:
diff changeset
   811
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   812
hgs
parents:
diff changeset
   813
        // we will start from collection view
hgs
parents:
diff changeset
   814
hgs
parents:
diff changeset
   815
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   816
                                     QDateTime::currentDateTime().toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   817
hgs
parents:
diff changeset
   818
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   819
hgs
parents:
diff changeset
   820
        HsCollectionState *collectionState = new HsCollectionState(builder,
hgs
parents:
diff changeset
   821
                menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
   822
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   823
hgs
parents:
diff changeset
   824
        // create a state which is to be reached when add-to-home-screen
hgs
parents:
diff changeset
   825
        // event is triggered
hgs
parents:
diff changeset
   826
        AddToHomeScreenMockState *addToHomeScreenState =
hgs
parents:
diff changeset
   827
            new AddToHomeScreenMockState(machine.data());
hgs
parents:
diff changeset
   828
hgs
parents:
diff changeset
   829
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   830
        // an event with specified operation type
hgs
parents:
diff changeset
   831
        HsMenuEventTransition addToHomeScreenTransition(
hgs
parents:
diff changeset
   832
            HsMenuEvent::AddToHomeScreen, collectionState, addToHomeScreenState);
hgs
parents:
diff changeset
   833
hgs
parents:
diff changeset
   834
        // prepare the state graph
hgs
parents:
diff changeset
   835
        collectionState->addTransition(&addToHomeScreenTransition);
hgs
parents:
diff changeset
   836
hgs
parents:
diff changeset
   837
hgs
parents:
diff changeset
   838
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
   839
        machine->start();
hgs
parents:
diff changeset
   840
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   841
hgs
parents:
diff changeset
   842
        collectionState->addCollectionShortcutToHomeScreenAction();
hgs
parents:
diff changeset
   843
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   844
hgs
parents:
diff changeset
   845
        QVERIFY(addToHomeScreenState->enteredValue());
hgs
parents:
diff changeset
   846
hgs
parents:
diff changeset
   847
        // cleanup
hgs
parents:
diff changeset
   848
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   849
    }
hgs
parents:
diff changeset
   850
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   851
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   852
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   853
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   854
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   855
}
hgs
parents:
diff changeset
   856
hgs
parents:
diff changeset
   857
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   858
//
90
hgs
parents:
diff changeset
   859
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   860
//
hgs
parents:
diff changeset
   861
void MenuStatesTest::latestOnTopMenuAction()
hgs
parents:
diff changeset
   862
{
hgs
parents:
diff changeset
   863
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   864
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   865
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   866
    __UHEAP_MARK;
hgs
parents:
diff changeset
   867
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   868
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   869
    {
hgs
parents:
diff changeset
   870
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   871
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   872
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   873
hgs
parents:
diff changeset
   874
        QScopedPointer<QState> parent(new QState);
hgs
parents:
diff changeset
   875
        parent->setObjectName(tr("testName1"));
hgs
parents:
diff changeset
   876
hgs
parents:
diff changeset
   877
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   878
                                     QDateTime::currentDateTime().toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   879
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   880
hgs
parents:
diff changeset
   881
        HsCollectionState *collectionState = new HsCollectionState(
hgs
parents:
diff changeset
   882
            builder, menuMode, mainWindow, parent.data());
hgs
parents:
diff changeset
   883
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   884
hgs
parents:
diff changeset
   885
        collectionState->mSortAttribute =
hgs
parents:
diff changeset
   886
            Hs::OldestOnTopHsSortAttribute;
hgs
parents:
diff changeset
   887
hgs
parents:
diff changeset
   888
        MockModel *collectionModel = new MockModel;
hgs
parents:
diff changeset
   889
        collectionState->mModel = collectionModel;
hgs
parents:
diff changeset
   890
        collectionState->mMenuView->setModel(collectionModel);
hgs
parents:
diff changeset
   891
hgs
parents:
diff changeset
   892
        qRegisterMetaType<Hs::HsSortAttribute>(
hgs
parents:
diff changeset
   893
            "Hs::HsSortAttribute");
hgs
parents:
diff changeset
   894
        collectionState->mCollectionType = Hs::collectionDownloadedTypeName;
hgs
parents:
diff changeset
   895
        collectionState->setMenuOptions();
hgs
parents:
diff changeset
   896
        QVERIFY(collectionModel->rowCount() > 1 );
hgs
parents:
diff changeset
   897
        QVERIFY(collectionState->mLatestOnTopMenuAction != 0);
hgs
parents:
diff changeset
   898
        QVERIFY(collectionState->mOldestOnTopMenuAction != 0);
hgs
parents:
diff changeset
   899
        collectionState->latestOnTopMenuAction();
hgs
parents:
diff changeset
   900
hgs
parents:
diff changeset
   901
        QCOMPARE(collectionState->mSortAttribute,
hgs
parents:
diff changeset
   902
                 Hs::LatestOnTopHsSortAttribute);
hgs
parents:
diff changeset
   903
hgs
parents:
diff changeset
   904
        // cleanup
hgs
parents:
diff changeset
   905
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   906
    }
hgs
parents:
diff changeset
   907
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   908
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   909
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   910
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   911
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   912
}
hgs
parents:
diff changeset
   913
hgs
parents:
diff changeset
   914
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   915
//
90
hgs
parents:
diff changeset
   916
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   917
//
hgs
parents:
diff changeset
   918
void MenuStatesTest::oldestOnTopMenuAction()
hgs
parents:
diff changeset
   919
{
hgs
parents:
diff changeset
   920
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   921
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   922
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   923
    __UHEAP_MARK;
hgs
parents:
diff changeset
   924
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   925
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   926
    {
hgs
parents:
diff changeset
   927
        // GUI objects set up
hgs
parents:
diff changeset
   928
hgs
parents:
diff changeset
   929
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   930
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   931
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   932
hgs
parents:
diff changeset
   933
        QScopedPointer<QState> parent(new QState);
hgs
parents:
diff changeset
   934
        parent->setObjectName(tr("testName1"));
hgs
parents:
diff changeset
   935
hgs
parents:
diff changeset
   936
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   937
                                     QDateTime::currentDateTime().toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   938
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   939
hgs
parents:
diff changeset
   940
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   941
            new HsCollectionState(builder, menuMode, mainWindow, parent.data());
hgs
parents:
diff changeset
   942
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
   943
hgs
parents:
diff changeset
   944
        collectionState->mSortAttribute =
hgs
parents:
diff changeset
   945
            Hs::LatestOnTopHsSortAttribute;
hgs
parents:
diff changeset
   946
hgs
parents:
diff changeset
   947
        MockModel *collectionModel = new MockModel;
hgs
parents:
diff changeset
   948
        collectionState->mModel = collectionModel;
hgs
parents:
diff changeset
   949
        collectionState->mMenuView->setModel(collectionModel);
hgs
parents:
diff changeset
   950
hgs
parents:
diff changeset
   951
        qRegisterMetaType<Hs::HsSortAttribute>(
hgs
parents:
diff changeset
   952
            "Hs::HsSortAttribute");
hgs
parents:
diff changeset
   953
        collectionState->mCollectionType = Hs::collectionDownloadedTypeName;
hgs
parents:
diff changeset
   954
        collectionState->setMenuOptions();
hgs
parents:
diff changeset
   955
        QVERIFY(collectionModel->rowCount() > 1 );
hgs
parents:
diff changeset
   956
        QVERIFY(collectionState->mLatestOnTopMenuAction != 0);
hgs
parents:
diff changeset
   957
        QVERIFY(collectionState->mOldestOnTopMenuAction != 0);
hgs
parents:
diff changeset
   958
hgs
parents:
diff changeset
   959
        collectionState->oldestOnTopMenuAction();
hgs
parents:
diff changeset
   960
hgs
parents:
diff changeset
   961
        QCOMPARE(collectionState->mSortAttribute,
hgs
parents:
diff changeset
   962
                 Hs::OldestOnTopHsSortAttribute);
hgs
parents:
diff changeset
   963
hgs
parents:
diff changeset
   964
        // cleanup
hgs
parents:
diff changeset
   965
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
   966
    }
hgs
parents:
diff changeset
   967
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   968
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   969
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   970
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   971
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   972
}
hgs
parents:
diff changeset
   973
hgs
parents:
diff changeset
   974
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   975
//
90
hgs
parents:
diff changeset
   976
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   977
//
hgs
parents:
diff changeset
   978
void MenuStatesTest::createArrangeCollection()
hgs
parents:
diff changeset
   979
{
hgs
parents:
diff changeset
   980
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   981
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   982
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   983
    __UHEAP_MARK;
hgs
parents:
diff changeset
   984
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   985
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   986
    {
hgs
parents:
diff changeset
   987
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   988
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   989
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   990
        QStateMachine *machine = new QStateMachine(0);
hgs
parents:
diff changeset
   991
hgs
parents:
diff changeset
   992
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
   993
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
   994
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
   995
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
   996
hgs
parents:
diff changeset
   997
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
   998
            new HsCollectionState(builder, menuMode, mainWindow, machine);
hgs
parents:
diff changeset
   999
hgs
parents:
diff changeset
  1000
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
  1001
hgs
parents:
diff changeset
  1002
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
  1003
hgs
parents:
diff changeset
  1004
        AddToHomeScreenMockState *mockState = new AddToHomeScreenMockState(machine);
hgs
parents:
diff changeset
  1005
hgs
parents:
diff changeset
  1006
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
  1007
        // an event with specified operation type
hgs
parents:
diff changeset
  1008
        HsMenuEventTransition *transition = new HsMenuEventTransition(
hgs
parents:
diff changeset
  1009
            HsMenuEvent::ArrangeCollection, collectionState, mockState);
hgs
parents:
diff changeset
  1010
        collectionState->addTransition(transition);
hgs
parents:
diff changeset
  1011
hgs
parents:
diff changeset
  1012
        machine->start();
hgs
parents:
diff changeset
  1013
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
  1014
        collectionState->createArrangeCollection();
hgs
parents:
diff changeset
  1015
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
  1016
hgs
parents:
diff changeset
  1017
        QVERIFY(mockState->enteredValue());
hgs
parents:
diff changeset
  1018
        qApp->removePostedEvents(0);
hgs
parents:
diff changeset
  1019
        machine->stop();
hgs
parents:
diff changeset
  1020
hgs
parents:
diff changeset
  1021
        delete machine;
hgs
parents:
diff changeset
  1022
    }
hgs
parents:
diff changeset
  1023
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1024
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1025
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
  1026
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1027
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1028
}
hgs
parents:
diff changeset
  1029
hgs
parents:
diff changeset
  1030
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
  1031
//
90
hgs
parents:
diff changeset
  1032
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1033
//
hgs
parents:
diff changeset
  1034
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1035
void MenuStatesTest::openTaskSwitcher()
hgs
parents:
diff changeset
  1036
{
hgs
parents:
diff changeset
  1037
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1038
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
  1039
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1040
    __UHEAP_MARK;
hgs
parents:
diff changeset
  1041
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1042
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1043
    {
hgs
parents:
diff changeset
  1044
hgs
parents:
diff changeset
  1045
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
  1046
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
  1047
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
  1048
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
  1049
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
  1050
            new HsCollectionState(builder, menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
  1051
        QVERIFY(collectionState->openTaskSwitcher());
hgs
parents:
diff changeset
  1052
    }
hgs
parents:
diff changeset
  1053
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1054
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1055
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
  1056
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1057
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1058
}
hgs
parents:
diff changeset
  1059
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1060
hgs
parents:
diff changeset
  1061
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
  1062
//
90
hgs
parents:
diff changeset
  1063
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
  1064
//
hgs
parents:
diff changeset
  1065
void MenuStatesTest::disableSearchAction()
hgs
parents:
diff changeset
  1066
{
hgs
parents:
diff changeset
  1067
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1068
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
  1069
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1070
    __UHEAP_MARK;
hgs
parents:
diff changeset
  1071
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1072
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1073
    {
hgs
parents:
diff changeset
  1074
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
  1075
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
  1076
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
  1077
hgs
parents:
diff changeset
  1078
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
  1079
hgs
parents:
diff changeset
  1080
        const QString collectionName("testCollection" +
hgs
parents:
diff changeset
  1081
                                     QDateTime::currentDateTime().
hgs
parents:
diff changeset
  1082
                                     toString("ddmmyyyy_hh_mm_ss_zzz"));
hgs
parents:
diff changeset
  1083
hgs
parents:
diff changeset
  1084
        const int collectionId = HsMenuService::createCollection(collectionName);
hgs
parents:
diff changeset
  1085
hgs
parents:
diff changeset
  1086
        HsCollectionState *collectionState =
hgs
parents:
diff changeset
  1087
            new HsCollectionState(builder, menuMode, mainWindow, machine.data());
hgs
parents:
diff changeset
  1088
hgs
parents:
diff changeset
  1089
hgs
parents:
diff changeset
  1090
        collectionState->mCollectionId = collectionId;
hgs
parents:
diff changeset
  1091
hgs
parents:
diff changeset
  1092
        machine->setInitialState(collectionState);
hgs
parents:
diff changeset
  1093
hgs
parents:
diff changeset
  1094
        machine->start();
hgs
parents:
diff changeset
  1095
hgs
parents:
diff changeset
  1096
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
  1097
hgs
parents:
diff changeset
  1098
        collectionState->stateEntered();
hgs
parents:
diff changeset
  1099
hgs
parents:
diff changeset
  1100
        collectionState->mMenuView->disableSearch(true);
hgs
parents:
diff changeset
  1101
hgs
parents:
diff changeset
  1102
        QVERIFY(!collectionState->mMenuView->mBuilder.searchAction()->isEnabled());
hgs
parents:
diff changeset
  1103
hgs
parents:
diff changeset
  1104
        collectionState->mMenuView->disableSearch(false);
hgs
parents:
diff changeset
  1105
hgs
parents:
diff changeset
  1106
        QVERIFY(collectionState->mMenuView->mBuilder.searchAction()->isEnabled());
hgs
parents:
diff changeset
  1107
hgs
parents:
diff changeset
  1108
        collectionState->lockSearchButton(true);
hgs
parents:
diff changeset
  1109
hgs
parents:
diff changeset
  1110
        QVERIFY(!collectionState->mMenuView->mBuilder.searchAction()->isEnabled());
hgs
parents:
diff changeset
  1111
hgs
parents:
diff changeset
  1112
        collectionState->lockSearchButton(false);
hgs
parents:
diff changeset
  1113
hgs
parents:
diff changeset
  1114
        QVERIFY(collectionState->mMenuView->mBuilder.searchAction()->isEnabled());
hgs
parents:
diff changeset
  1115
hgs
parents:
diff changeset
  1116
        collectionState->stateExited();
hgs
parents:
diff changeset
  1117
hgs
parents:
diff changeset
  1118
        machine->stop();
hgs
parents:
diff changeset
  1119
hgs
parents:
diff changeset
  1120
        // cleanup
hgs
parents:
diff changeset
  1121
        HsMenuService::removeCollection(collectionId);
hgs
parents:
diff changeset
  1122
    }
hgs
parents:
diff changeset
  1123
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1124
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1125
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
  1126
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
  1127
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
  1128
}
hgs
parents:
diff changeset
  1129
QTEST_MAIN(MenuStatesTest)
hgs
parents:
diff changeset
  1130