homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/t_hsmenustates.cpp
author hgs
Wed, 06 Oct 2010 16:06:24 +0300
changeset 97 66b5fe3c07fd
parent 90 3ac3aaebaee5
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) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  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 <QStateMachine>
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <HbDialog>
hgs
parents:
diff changeset
    21
#include <HbMainWindow>
hgs
parents:
diff changeset
    22
#include <hbmainwindow.h>
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include "t_hsmenuworkerstateplugin.h"
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
#include "hsaddtohomescreenstate.h"
hgs
parents:
diff changeset
    27
#include "hsshortcutservice.h"
hgs
parents:
diff changeset
    28
#include "hsdialogcontroller.h"
hgs
parents:
diff changeset
    29
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    30
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    31
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    32
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    33
//
90
hgs
parents:
diff changeset
    34
void MenuStatesTest::initTestCase()
hgs
parents:
diff changeset
    35
{
hgs
parents:
diff changeset
    36
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    37
    startThread();
hgs
parents:
diff changeset
    38
    QDir::setCurrent("C:/");
hgs
parents:
diff changeset
    39
#endif //Q_OS_SYMBIAN
hgs
parents:
diff changeset
    40
    mStateMachine = new QStateMachine;
hgs
parents:
diff changeset
    41
    mShortcutService = QSharedPointer<HsShortcutService>
hgs
parents:
diff changeset
    42
                       (HsShortcutService::instance(mStateMachine/*,0*/));
hgs
parents:
diff changeset
    43
    mWindow = new HbMainWindow();
hgs
parents:
diff changeset
    44
}
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    45
90
hgs
parents:
diff changeset
    46
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    47
//
90
hgs
parents:
diff changeset
    48
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    49
//
hgs
parents:
diff changeset
    50
void MenuStatesTest::cleanupTestCase()
hgs
parents:
diff changeset
    51
{
hgs
parents:
diff changeset
    52
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    53
    stopThread();
hgs
parents:
diff changeset
    54
#endif //Q_OS_SYMBIAN
hgs
parents:
diff changeset
    55
    delete mStateMachine;
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    56
    //QWARN ( "Due to bug in hb wk36 we are we have to avoid deleting "
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    57
    //        "HbMainWindow, remove comment when fixed" )    
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    58
/*    delete mWindow;
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    59
    mWindow = NULL;*/
90
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::cleanup()
hgs
parents:
diff changeset
    67
{
hgs
parents:
diff changeset
    68
    qApp->processEvents();
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    72
//
90
hgs
parents:
diff changeset
    73
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    74
//
90
hgs
parents:
diff changeset
    75
int threadFunction(void *params)
hgs
parents:
diff changeset
    76
{
hgs
parents:
diff changeset
    77
    Q_UNUSED(params);
hgs
parents:
diff changeset
    78
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    79
    while (ETrue) {
hgs
parents:
diff changeset
    80
        User::ResetInactivityTime();//it should help for Viewserver11 panic
hgs
parents:
diff changeset
    81
        User::After(5000000);
hgs
parents:
diff changeset
    82
    }
hgs
parents:
diff changeset
    83
#endif //Q_OS_SYMBIAN
hgs
parents:
diff changeset
    84
    return 0;
hgs
parents:
diff changeset
    85
}
hgs
parents:
diff changeset
    86
hgs
parents:
diff changeset
    87
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
    88
//
90
hgs
parents:
diff changeset
    89
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    90
//
hgs
parents:
diff changeset
    91
void MenuStatesTest::startThread()
hgs
parents:
diff changeset
    92
{
hgs
parents:
diff changeset
    93
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
    94
    User::LeaveIfError(iThread.Create(
hgs
parents:
diff changeset
    95
                           _L("thread_kill_viewsrv11"),
hgs
parents:
diff changeset
    96
                           threadFunction,
hgs
parents:
diff changeset
    97
                           16384,
hgs
parents:
diff changeset
    98
                           4000,
hgs
parents:
diff changeset
    99
                           4000,
hgs
parents:
diff changeset
   100
                           NULL));
hgs
parents:
diff changeset
   101
    iThread.Resume();
hgs
parents:
diff changeset
   102
#endif //Q_OS_SYMBIAN
hgs
parents:
diff changeset
   103
}
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   104
90
hgs
parents:
diff changeset
   105
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   106
//
90
hgs
parents:
diff changeset
   107
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   108
//
hgs
parents:
diff changeset
   109
void MenuStatesTest::stopThread()
hgs
parents:
diff changeset
   110
{
hgs
parents:
diff changeset
   111
#ifdef Q_OS_SYMBIAN
hgs
parents:
diff changeset
   112
    iThread.Close();
hgs
parents:
diff changeset
   113
    QTest::qWait(3000);
hgs
parents:
diff changeset
   114
#endif //Q_OS_SYMBIAN
hgs
parents:
diff changeset
   115
}
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   118
//
90
hgs
parents:
diff changeset
   119
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   120
//
hgs
parents:
diff changeset
   121
void MenuStatesTest::testSlot(HbAction* finished)
hgs
parents:
diff changeset
   122
{
hgs
parents:
diff changeset
   123
    Q_UNUSED(finished)
hgs
parents:
diff changeset
   124
    mFinishedEmited = true;
hgs
parents:
diff changeset
   125
}
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
// ---------------------------------------------------------------------------
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   128
//
90
hgs
parents:
diff changeset
   129
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   130
//
hgs
parents:
diff changeset
   131
int MenuStatesTest::testExitSlot()
hgs
parents:
diff changeset
   132
{
hgs
parents:
diff changeset
   133
    mFinishedEmited = true;
hgs
parents:
diff changeset
   134
    return 0;
hgs
parents:
diff changeset
   135
}
hgs
parents:
diff changeset
   136
97
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   137
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   138
//
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   139
// ---------------------------------------------------------------------------
66b5fe3c07fd 201039_01
hgs
parents: 90
diff changeset
   140
//
90
hgs
parents:
diff changeset
   141
void MenuStatesTest::checkDialogController()
hgs
parents:
diff changeset
   142
{
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
    QGraphicsScene *scene = mWindow->scene();
hgs
parents:
diff changeset
   145
    QGraphicsItem *focusItem = scene->focusItem();
hgs
parents:
diff changeset
   146
    QPointer<HbDialog> dialog =
hgs
parents:
diff changeset
   147
        qobject_cast<HbDialog*>(focusItem->toGraphicsObject());
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
    QVERIFY(!dialog.isNull());
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
    QPointer<HsDialogController> controller(NULL);
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
    foreach (QObject* obj, dialog->children())
hgs
parents:
diff changeset
   154
    {
hgs
parents:
diff changeset
   155
        controller = qobject_cast<HsDialogController*>(obj);
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
        if (!controller.isNull())
hgs
parents:
diff changeset
   158
        {
hgs
parents:
diff changeset
   159
            break;
hgs
parents:
diff changeset
   160
        }
hgs
parents:
diff changeset
   161
    }
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
    QVERIFY(!controller.isNull());
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    QSignalSpy spy(controller.data(), SIGNAL(dialogCompleted()));
hgs
parents:
diff changeset
   166
    controller->dismissDialog();
hgs
parents:
diff changeset
   167
hgs
parents:
diff changeset
   168
    QTest::qWait(1000);
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
    QVERIFY(dialog.isNull());
hgs
parents:
diff changeset
   171
    QVERIFY(controller.isNull());
hgs
parents:
diff changeset
   172
    QCOMPARE(spy.count(), 1);
hgs
parents:
diff changeset
   173
}
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
QTEST_MAIN(MenuStatesTest)