homescreenapp/stateplugins/hsapplibrarystateplugin/tsrc/t_allcollectionsstate/src/t_allcollectionsstate.cpp
author hgs
Mon, 18 Oct 2010 10:20:15 +0300
changeset 98 e6f74eb7f69f
parent 97 66b5fe3c07fd
permissions -rw-r--r--
201041
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 <hblistview.h>
hgs
parents:
diff changeset
    22
#include <hblistviewitem.h>
hgs
parents:
diff changeset
    23
#include <HbMenu>
hgs
parents:
diff changeset
    24
#include <HbAction>
hgs
parents:
diff changeset
    25
#include <qscopedpointer>
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
#include "caentry.h"
hgs
parents:
diff changeset
    28
#include "caitemmodel.h"
hgs
parents:
diff changeset
    29
#include "hsmenuview.h"
hgs
parents:
diff changeset
    30
#include "hsmenuviewbuilder.h"
hgs
parents:
diff changeset
    31
#include "hsmenumodewrapper.h"
hgs
parents:
diff changeset
    32
#include "hsmenuevent.h"
hgs
parents:
diff changeset
    33
#include "hsallcollectionsstate.h"
hgs
parents:
diff changeset
    34
#include "hsmenueventtransition.h"
hgs
parents:
diff changeset
    35
#include "hsmainwindow.h"
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    36
#include "hsscene.h"
90
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
#include "t_hsaddtohomescreenmockstate.h"
hgs
parents:
diff changeset
    39
#include "t_hsmockmodel.h"
hgs
parents:
diff changeset
    40
#include "t_allcollectionsstate.h"
hgs
parents:
diff changeset
    41
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    42
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    43
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    44
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    45
//
90
hgs
parents:
diff changeset
    46
class HsMainWindowMock : public HsMainWindow
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
    virtual void setCurrentView(HbView *view);
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
};
hgs
parents:
diff changeset
    51
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    52
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    53
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    54
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    55
//
90
hgs
parents:
diff changeset
    56
void HsMainWindowMock::setCurrentView(HbView *view)
hgs
parents:
diff changeset
    57
{
hgs
parents:
diff changeset
    58
    Q_UNUSED(view);
hgs
parents:
diff changeset
    59
    // do nothing    
hgs
parents:
diff changeset
    60
}
hgs
parents:
diff changeset
    61
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    62
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    63
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    64
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    65
//
90
hgs
parents:
diff changeset
    66
void MenuStatesTest::initTestCase()
hgs
parents:
diff changeset
    67
{
hgs
parents:
diff changeset
    68
//    mWindow = NULL;
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    71
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    72
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    73
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    74
//
90
hgs
parents:
diff changeset
    75
void MenuStatesTest::init()
hgs
parents:
diff changeset
    76
{
hgs
parents:
diff changeset
    77
//    mWindow = new HbMainWindow;
hgs
parents:
diff changeset
    78
}
hgs
parents:
diff changeset
    79
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    80
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    81
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    82
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    83
//
90
hgs
parents:
diff changeset
    84
void MenuStatesTest::cleanup()
hgs
parents:
diff changeset
    85
{
hgs
parents:
diff changeset
    86
    qApp->processEvents();
hgs
parents:
diff changeset
    87
//    delete mWindow;
hgs
parents:
diff changeset
    88
//    mWindow = NULL;
hgs
parents:
diff changeset
    89
}
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    92
//
90
hgs
parents:
diff changeset
    93
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    94
//
hgs
parents:
diff changeset
    95
void MenuStatesTest::construction()
hgs
parents:
diff changeset
    96
{
hgs
parents:
diff changeset
    97
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    98
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
    99
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   100
    __UHEAP_MARK;
hgs
parents:
diff changeset
   101
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   102
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   103
    {
hgs
parents:
diff changeset
   104
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   105
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   106
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   107
        QState *parent = new QState;
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   110
            new HsAllCollectionsState(builder,
hgs
parents:
diff changeset
   111
                                      menuMode,
hgs
parents:
diff changeset
   112
                                      mainWindow,
hgs
parents:
diff changeset
   113
                                      parent);
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
        QCOMPARE(allCollectionsState->mBackKeyAction,
hgs
parents:
diff changeset
   116
                 allCollectionsState->mMenuView->view()->navigationAction());
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
        QVERIFY(allCollectionsState->mModel !=
hgs
parents:
diff changeset
   119
                static_cast<HsMenuItemModel *>(0));
hgs
parents:
diff changeset
   120
        delete parent;
hgs
parents:
diff changeset
   121
    }
hgs
parents:
diff changeset
   122
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   123
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   124
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   125
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   126
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   127
}
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   130
//
90
hgs
parents:
diff changeset
   131
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   132
//
hgs
parents:
diff changeset
   133
void MenuStatesTest::addModeEnteredExited()
hgs
parents:
diff changeset
   134
{
hgs
parents:
diff changeset
   135
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   136
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   137
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   138
    __UHEAP_MARK;
hgs
parents:
diff changeset
   139
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   140
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   141
    {
hgs
parents:
diff changeset
   142
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   143
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   144
        QState *parent = new QState;
hgs
parents:
diff changeset
   145
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   146
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   147
            new HsAllCollectionsState(
hgs
parents:
diff changeset
   148
            builder, menuMode, mainWindow, parent);
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
        allCollectionsState->mMenuMode->setHsMenuMode(Hs::AddHsMenuMode);
hgs
parents:
diff changeset
   151
        allCollectionsState->addModeEntered();
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
        QCOMPARE(allCollectionsState->mMenuMode->getHsMenuMode(),
hgs
parents:
diff changeset
   154
                 Hs::AddHsMenuMode);
hgs
parents:
diff changeset
   155
        delete parent;
hgs
parents:
diff changeset
   156
    }
hgs
parents:
diff changeset
   157
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   158
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   159
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   160
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   161
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   162
}
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   165
//
90
hgs
parents:
diff changeset
   166
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   167
//
hgs
parents:
diff changeset
   168
void MenuStatesTest::normalModeEnteredExited()
hgs
parents:
diff changeset
   169
{
hgs
parents:
diff changeset
   170
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   171
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   172
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   173
    __UHEAP_MARK;
hgs
parents:
diff changeset
   174
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   175
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   176
    {
hgs
parents:
diff changeset
   177
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   178
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   179
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   180
        QState *parent = new QState;
hgs
parents:
diff changeset
   181
        HsAllCollectionsState *allCollectionsState = new HsAllCollectionsState(
hgs
parents:
diff changeset
   182
            builder, menuMode, mainWindow, parent);
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
        allCollectionsState->mMenuMode->setHsMenuMode(Hs::NormalHsMenuMode);
hgs
parents:
diff changeset
   185
        allCollectionsState->normalModeEntered();
hgs
parents:
diff changeset
   186
        QCOMPARE(allCollectionsState->mMenuMode->getHsMenuMode(),
hgs
parents:
diff changeset
   187
                 Hs::NormalHsMenuMode);
hgs
parents:
diff changeset
   188
        allCollectionsState->normalModeExited();
hgs
parents:
diff changeset
   189
        QCOMPARE(allCollectionsState->mMenuMode->getHsMenuMode(),
hgs
parents:
diff changeset
   190
                 Hs::NormalHsMenuMode);
hgs
parents:
diff changeset
   191
        delete parent;
hgs
parents:
diff changeset
   192
    }
hgs
parents:
diff changeset
   193
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   194
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   195
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   196
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   197
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   198
}
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   201
//
90
hgs
parents:
diff changeset
   202
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   203
//
hgs
parents:
diff changeset
   204
void MenuStatesTest::createNewCollection()
hgs
parents:
diff changeset
   205
{
hgs
parents:
diff changeset
   206
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   207
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   208
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   209
    __UHEAP_MARK;
hgs
parents:
diff changeset
   210
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   211
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   212
    {
hgs
parents:
diff changeset
   213
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   214
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   215
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   216
        QStateMachine *machine = new QStateMachine(0);
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   219
            new HsAllCollectionsState(builder, menuMode, mainWindow, machine);
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
        machine->setInitialState(allCollectionsState);
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
        AddToHomeScreenMockState *mockState = new AddToHomeScreenMockState(machine);
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   226
        // an event with specified operation type
hgs
parents:
diff changeset
   227
        HsMenuEventTransition *newCollectionTransition = new HsMenuEventTransition(
hgs
parents:
diff changeset
   228
            HsMenuEvent::CreateCollection, allCollectionsState, mockState);
hgs
parents:
diff changeset
   229
hgs
parents:
diff changeset
   230
        allCollectionsState->addTransition(newCollectionTransition);
hgs
parents:
diff changeset
   231
hgs
parents:
diff changeset
   232
        allCollectionsState->scrollToBeginning();
hgs
parents:
diff changeset
   233
        allCollectionsState->stateEntered();
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
        machine->start();
hgs
parents:
diff changeset
   236
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
        allCollectionsState->createNewCollection();
hgs
parents:
diff changeset
   239
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   240
        QVERIFY(mockState->enteredValue());
hgs
parents:
diff changeset
   241
        qApp->removePostedEvents(0);
hgs
parents:
diff changeset
   242
        machine->stop();
hgs
parents:
diff changeset
   243
        delete machine;
hgs
parents:
diff changeset
   244
    }
hgs
parents:
diff changeset
   245
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   246
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   247
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   248
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   249
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   250
}
hgs
parents:
diff changeset
   251
hgs
parents:
diff changeset
   252
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   253
//
90
hgs
parents:
diff changeset
   254
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   255
//
hgs
parents:
diff changeset
   256
void MenuStatesTest::createArrangeCollection()
hgs
parents:
diff changeset
   257
{
hgs
parents:
diff changeset
   258
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   259
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   260
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   261
    __UHEAP_MARK;
hgs
parents:
diff changeset
   262
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   263
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   264
    {
hgs
parents:
diff changeset
   265
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   266
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   267
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   268
        QStateMachine *machine = new QStateMachine(0);
hgs
parents:
diff changeset
   269
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   270
            new HsAllCollectionsState(builder, menuMode, mainWindow, machine);
hgs
parents:
diff changeset
   271
hgs
parents:
diff changeset
   272
        machine->setInitialState(allCollectionsState);
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
        AddToHomeScreenMockState *mockState = new AddToHomeScreenMockState(machine);
hgs
parents:
diff changeset
   275
hgs
parents:
diff changeset
   276
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   277
        // an event with specified operation type
hgs
parents:
diff changeset
   278
        HsMenuEventTransition *transition = new HsMenuEventTransition(
hgs
parents:
diff changeset
   279
            HsMenuEvent::ArrangeAllCollections, allCollectionsState, mockState);
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
        allCollectionsState->addTransition(transition);
hgs
parents:
diff changeset
   282
hgs
parents:
diff changeset
   283
        allCollectionsState->scrollToBeginning();
hgs
parents:
diff changeset
   284
        allCollectionsState->stateEntered();
hgs
parents:
diff changeset
   285
        machine->start();
hgs
parents:
diff changeset
   286
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   287
hgs
parents:
diff changeset
   288
        allCollectionsState->createArrangeCollection();
hgs
parents:
diff changeset
   289
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   290
hgs
parents:
diff changeset
   291
        QVERIFY(mockState->enteredValue());
hgs
parents:
diff changeset
   292
        qApp->removePostedEvents(0);
hgs
parents:
diff changeset
   293
        machine->stop();
hgs
parents:
diff changeset
   294
hgs
parents:
diff changeset
   295
        delete machine;
hgs
parents:
diff changeset
   296
    }
hgs
parents:
diff changeset
   297
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   298
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   299
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   300
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   301
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   302
}
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   305
//
90
hgs
parents:
diff changeset
   306
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   307
//
hgs
parents:
diff changeset
   308
void MenuStatesTest::listItemActivated()
hgs
parents:
diff changeset
   309
{
hgs
parents:
diff changeset
   310
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   311
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   312
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   313
    __UHEAP_MARK;
hgs
parents:
diff changeset
   314
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   315
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   316
    {
hgs
parents:
diff changeset
   317
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   318
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   319
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   320
        QStateMachine *machine = new QStateMachine(0);
hgs
parents:
diff changeset
   321
        QState *parent = new QState(machine);
hgs
parents:
diff changeset
   322
hgs
parents:
diff changeset
   323
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   324
            new HsAllCollectionsState(builder, menuMode, mainWindow, parent);
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
        allCollectionsState->scrollToBeginning();
hgs
parents:
diff changeset
   327
        allCollectionsState->stateEntered();
hgs
parents:
diff changeset
   328
hgs
parents:
diff changeset
   329
        QVERIFY(allCollectionsState->mModel != NULL);
hgs
parents:
diff changeset
   330
        QModelIndex applicationModelIndex =
hgs
parents:
diff changeset
   331
            allCollectionsState->mModel->index(0, 0);
hgs
parents:
diff changeset
   332
hgs
parents:
diff changeset
   333
        allCollectionsState->openCollection(applicationModelIndex);
hgs
parents:
diff changeset
   334
hgs
parents:
diff changeset
   335
        allCollectionsState->stateExited();
hgs
parents:
diff changeset
   336
hgs
parents:
diff changeset
   337
        qApp->processEvents();
hgs
parents:
diff changeset
   338
        delete machine;
hgs
parents:
diff changeset
   339
    }
hgs
parents:
diff changeset
   340
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   341
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   342
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   343
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   344
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   345
}
hgs
parents:
diff changeset
   346
hgs
parents:
diff changeset
   347
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   348
//
90
hgs
parents:
diff changeset
   349
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   350
//
90
hgs
parents:
diff changeset
   351
void MenuStatesTest::listItemLongPressed()
hgs
parents:
diff changeset
   352
{
hgs
parents:
diff changeset
   353
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   354
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   355
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   356
    __UHEAP_MARK;
hgs
parents:
diff changeset
   357
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   358
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   359
    {
hgs
parents:
diff changeset
   360
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   361
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   362
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   363
        
hgs
parents:
diff changeset
   364
        QStateMachine *machine = new QStateMachine(0);
hgs
parents:
diff changeset
   365
        QState *parent = new QState(machine);
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   368
            new HsAllCollectionsState(builder, menuMode, mainWindow, parent);
hgs
parents:
diff changeset
   369
hgs
parents:
diff changeset
   370
        allCollectionsState->scrollToBeginning();
hgs
parents:
diff changeset
   371
        allCollectionsState->stateEntered();
hgs
parents:
diff changeset
   372
hgs
parents:
diff changeset
   373
        HbAbstractViewItem *item = new HbListViewItem;
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
        item->setModelIndex(allCollectionsState->mModel->index(0,0));        
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
        allCollectionsState->showContextMenu(item ,
hgs
parents:
diff changeset
   378
                QPointF(50,50));
hgs
parents:
diff changeset
   379
hgs
parents:
diff changeset
   380
        uint flags = allCollectionsState->mModel->data(allCollectionsState->mModel->index(0, 0),
hgs
parents:
diff changeset
   381
                                          CaItemModel::FlagsRole).value<EntryFlags> ();
hgs
parents:
diff changeset
   382
hgs
parents:
diff changeset
   383
        if (flags & RemovableEntryFlag) {
hgs
parents:
diff changeset
   384
            QCOMPARE(allCollectionsState->mContextMenu->actions().length(), 4);
hgs
parents:
diff changeset
   385
        } else {
hgs
parents:
diff changeset
   386
            QCOMPARE(allCollectionsState->mContextMenu->actions().length(), 2);
hgs
parents:
diff changeset
   387
        }
hgs
parents:
diff changeset
   388
hgs
parents:
diff changeset
   389
hgs
parents:
diff changeset
   390
        QVERIFY(allCollectionsState->mContextMenu->testAttribute(Qt::WA_DeleteOnClose));
hgs
parents:
diff changeset
   391
hgs
parents:
diff changeset
   392
        qApp->processEvents();
hgs
parents:
diff changeset
   393
hgs
parents:
diff changeset
   394
        allCollectionsState->stateExited();
hgs
parents:
diff changeset
   395
hgs
parents:
diff changeset
   396
        qApp->processEvents();
hgs
parents:
diff changeset
   397
        delete machine;
hgs
parents:
diff changeset
   398
        delete item;
hgs
parents:
diff changeset
   399
    }
hgs
parents:
diff changeset
   400
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   401
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   402
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   403
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   404
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   405
}
hgs
parents:
diff changeset
   406
hgs
parents:
diff changeset
   407
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   408
//
90
hgs
parents:
diff changeset
   409
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   410
//
hgs
parents:
diff changeset
   411
void MenuStatesTest::contextMenuAction()
hgs
parents:
diff changeset
   412
{
hgs
parents:
diff changeset
   413
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   414
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   415
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   416
    __UHEAP_MARK;
hgs
parents:
diff changeset
   417
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   418
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   419
    {
hgs
parents:
diff changeset
   420
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   421
98
hgs
parents: 97
diff changeset
   422
        QScopedPointer<HbMainWindow> window(new HbMainWindow);
hgs
parents: 97
diff changeset
   423
        HsScene::setInstance( new HsScene(window.data()) );
90
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   426
        HsMenuModeWrapper menuMode;
98
hgs
parents: 97
diff changeset
   427
        HsMainWindow mainWindow;
90
hgs
parents:
diff changeset
   428
hgs
parents:
diff changeset
   429
        QScopedPointer<HsAllCollectionsState> allCollectionsState (new HsAllCollectionsState(
hgs
parents:
diff changeset
   430
            builder, menuMode, mainWindow, machine.data()));
hgs
parents:
diff changeset
   431
hgs
parents:
diff changeset
   432
hgs
parents:
diff changeset
   433
        // we will start from all apps view
hgs
parents:
diff changeset
   434
        machine->setInitialState(allCollectionsState.data());
hgs
parents:
diff changeset
   435
hgs
parents:
diff changeset
   436
        // create a state which is to be reached when add-to-home-screen
hgs
parents:
diff changeset
   437
        // event is triggered
hgs
parents:
diff changeset
   438
        AddToHomeScreenMockState addToHomeScreenState(machine.data());
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
        // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   441
        // an event with specified operation type
hgs
parents:
diff changeset
   442
        HsMenuEventTransition addToHomeScreenTransition(
hgs
parents:
diff changeset
   443
            HsMenuEvent::AddToHomeScreen, allCollectionsState.data(), &addToHomeScreenState);
hgs
parents:
diff changeset
   444
hgs
parents:
diff changeset
   445
        // prepare the state graph
hgs
parents:
diff changeset
   446
        allCollectionsState->addTransition(&addToHomeScreenTransition);
hgs
parents:
diff changeset
   447
hgs
parents:
diff changeset
   448
        // MockModel object is to provide CaEntry representing widget
hgs
parents:
diff changeset
   449
        // the object will be deleted on destruction of allAppsState
hgs
parents:
diff changeset
   450
        MockModel *allCollectionsMockModel = new MockModel;
hgs
parents:
diff changeset
   451
        allCollectionsState->mModel = allCollectionsMockModel;
hgs
parents:
diff changeset
   452
        allCollectionsState->mMenuView->setModel(allCollectionsMockModel);
hgs
parents:
diff changeset
   453
hgs
parents:
diff changeset
   454
        machine->start();
hgs
parents:
diff changeset
   455
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   456
hgs
parents:
diff changeset
   457
        HbAction *action = new HbAction("test_addtohomescreen");
hgs
parents:
diff changeset
   458
        action->setData(Hs::AddToHomeScreenContextAction);
hgs
parents:
diff changeset
   459
        allCollectionsState->mContextModelIndex = allCollectionsMockModel->fixedIndex();
hgs
parents:
diff changeset
   460
hgs
parents:
diff changeset
   461
        allCollectionsState->contextMenuAction(action);
hgs
parents:
diff changeset
   462
hgs
parents:
diff changeset
   463
        qApp->sendPostedEvents();
hgs
parents:
diff changeset
   464
hgs
parents:
diff changeset
   465
        QVERIFY(addToHomeScreenState.enteredValue());
hgs
parents:
diff changeset
   466
hgs
parents:
diff changeset
   467
        machine->stop();
hgs
parents:
diff changeset
   468
        qApp->removePostedEvents(0);
hgs
parents:
diff changeset
   469
hgs
parents:
diff changeset
   470
        allCollectionsState->stateExited();
hgs
parents:
diff changeset
   471
hgs
parents:
diff changeset
   472
        qApp->processEvents();
hgs
parents:
diff changeset
   473
hgs
parents:
diff changeset
   474
        delete action;
hgs
parents:
diff changeset
   475
    }
hgs
parents:
diff changeset
   476
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   477
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   478
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   479
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   480
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   481
}
hgs
parents:
diff changeset
   482
hgs
parents:
diff changeset
   483
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   484
//
90
hgs
parents:
diff changeset
   485
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   486
//
90
hgs
parents:
diff changeset
   487
void MenuStatesTest::addModeSlots()
hgs
parents:
diff changeset
   488
{
hgs
parents:
diff changeset
   489
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   490
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   491
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   492
    __UHEAP_MARK;
hgs
parents:
diff changeset
   493
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   494
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   495
    {
hgs
parents:
diff changeset
   496
        HsMenuViewBuilder builder;    
hgs
parents:
diff changeset
   497
        QScopedPointer<QStateMachine> machine(new QStateMachine(0));
hgs
parents:
diff changeset
   498
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   499
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   500
        menuMode.setHsMenuMode(Hs::AddHsMenuMode);
hgs
parents:
diff changeset
   501
        QScopedPointer<HsAllCollectionsState> allCollectionsState(
hgs
parents:
diff changeset
   502
                    new HsAllCollectionsState(builder, menuMode, mainWindow, machine.data()));
hgs
parents:
diff changeset
   503
hgs
parents:
diff changeset
   504
        {
hgs
parents:
diff changeset
   505
            // we will start from all apps view
hgs
parents:
diff changeset
   506
            machine->setInitialState(allCollectionsState.data());
hgs
parents:
diff changeset
   507
hgs
parents:
diff changeset
   508
            // create a state which is to be reached when add-to-home-screen
hgs
parents:
diff changeset
   509
            // event is triggered
hgs
parents:
diff changeset
   510
            AddToHomeScreenMockState addToHomeScreenState(machine.data());
hgs
parents:
diff changeset
   511
hgs
parents:
diff changeset
   512
            // create a transition to the new child state which will be triggered by
hgs
parents:
diff changeset
   513
            // an event with specified operation type
hgs
parents:
diff changeset
   514
            HsMenuEventTransition addToHomeScreenTransition(
hgs
parents:
diff changeset
   515
                HsMenuEvent::AddToHomeScreen, allCollectionsState.data(), &addToHomeScreenState);
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
            // prepare the state graph
hgs
parents:
diff changeset
   518
            allCollectionsState->addTransition(&addToHomeScreenTransition);
hgs
parents:
diff changeset
   519
hgs
parents:
diff changeset
   520
            // MockModel object is to provide CaEntry representing widget
hgs
parents:
diff changeset
   521
            // the object will be deleted on destruction of allAppsState
hgs
parents:
diff changeset
   522
            allCollectionsState->scrollToBeginning();
hgs
parents:
diff changeset
   523
            allCollectionsState->stateEntered();
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
            machine->start();
hgs
parents:
diff changeset
   526
            qApp->sendPostedEvents();
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   527
90
hgs
parents:
diff changeset
   528
            allCollectionsState->addActivated(allCollectionsState->mModel->index(0,0));
hgs
parents:
diff changeset
   529
            
hgs
parents:
diff changeset
   530
            qApp->sendPostedEvents();
hgs
parents:
diff changeset
   531
hgs
parents:
diff changeset
   532
            QVERIFY(addToHomeScreenState.enteredValue());
hgs
parents:
diff changeset
   533
            machine->stop();
hgs
parents:
diff changeset
   534
            qApp->removePostedEvents(0);
hgs
parents:
diff changeset
   535
        }
hgs
parents:
diff changeset
   536
    }
hgs
parents:
diff changeset
   537
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   538
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   539
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   540
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   541
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   542
}
hgs
parents:
diff changeset
   543
hgs
parents:
diff changeset
   544
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   545
//
90
hgs
parents:
diff changeset
   546
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   547
//
hgs
parents:
diff changeset
   548
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   549
void MenuStatesTest::openTaskSwitcher()
hgs
parents:
diff changeset
   550
{
hgs
parents:
diff changeset
   551
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   552
    User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
   553
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   554
    __UHEAP_MARK;
hgs
parents:
diff changeset
   555
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   556
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   557
    {
hgs
parents:
diff changeset
   558
        HsMenuViewBuilder builder;
hgs
parents:
diff changeset
   559
        HsMenuModeWrapper menuMode;
hgs
parents:
diff changeset
   560
        HsMainWindowMock mainWindow;
hgs
parents:
diff changeset
   561
        QStateMachine *machine = new QStateMachine(0);
hgs
parents:
diff changeset
   562
        QState *parent = new QState(machine);
hgs
parents:
diff changeset
   563
        menuMode.setHsMenuMode(Hs::AddHsMenuMode);
hgs
parents:
diff changeset
   564
        HsAllCollectionsState *allCollectionsState =
hgs
parents:
diff changeset
   565
            new HsAllCollectionsState(builder, menuMode, mainWindow, parent);
hgs
parents:
diff changeset
   566
hgs
parents:
diff changeset
   567
        QVERIFY(allCollectionsState->openTaskSwitcher());
hgs
parents:
diff changeset
   568
        delete machine;
hgs
parents:
diff changeset
   569
    }
hgs
parents:
diff changeset
   570
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   571
#ifdef UT_MEMORY_CHECK
hgs
parents:
diff changeset
   572
    __UHEAP_MARKEND;
hgs
parents:
diff changeset
   573
#endif//UT_MEMORY_CHECK
hgs
parents:
diff changeset
   574
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   575
}
hgs
parents:
diff changeset
   576
#endif//Q_OS_SYMBIAN
hgs
parents:
diff changeset
   577
hgs
parents:
diff changeset
   578
QTEST_MAIN(MenuStatesTest)
hgs
parents:
diff changeset
   579