telutils/dialpad/tsrc/unit/ut_dialpadmailboxeventfilterbase/ut_dialpadmailboxeventfilterbase.cpp
author hgs
Mon, 04 Oct 2010 15:57:13 +0300
changeset 51 12bc758d6a02
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
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:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <QtGui>
hgs
parents:
diff changeset
    19
#include <QtTest/QtTest>
hgs
parents:
diff changeset
    20
#include <mockservice.h>
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <hbapplication.h>
hgs
parents:
diff changeset
    23
#include <hblineedit.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "dialpadtest.h"
hgs
parents:
diff changeset
    26
#include "dialpad.h"
hgs
parents:
diff changeset
    27
#include "dialpadmailboxeventfilterbase.h"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
// Dummy helper class
hgs
parents:
diff changeset
    31
class DummyFilter : public DialpadMailboxEventFilterBase
hgs
parents:
diff changeset
    32
{
hgs
parents:
diff changeset
    33
    Q_OBJECT
hgs
parents:
diff changeset
    34
    friend class ut_DialpadMailboxEventFilterBase;
hgs
parents:
diff changeset
    35
public:
hgs
parents:
diff changeset
    36
    DummyFilter(Dialpad* dialpad, QObject* parent = 0);
hgs
parents:
diff changeset
    37
    virtual ~DummyFilter(){};
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
public:
hgs
parents:
diff changeset
    40
    bool eventFilter(QObject *, QEvent *){return true;};
hgs
parents:
diff changeset
    41
    bool handleCallButtonPress(){return true;};
hgs
parents:
diff changeset
    42
    void handleMailboxOperation(){};
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
public slots:
hgs
parents:
diff changeset
    45
    void handleLongKeyPress(){};
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
};
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
DummyFilter::DummyFilter(Dialpad *dialpad, QObject *parent)
hgs
parents:
diff changeset
    50
:DialpadMailboxEventFilterBase(dialpad, parent)
hgs
parents:
diff changeset
    51
{
hgs
parents:
diff changeset
    52
}
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
// test class
hgs
parents:
diff changeset
    56
class ut_DialpadMailboxEventFilterBase : public QObject, MockService
hgs
parents:
diff changeset
    57
{
hgs
parents:
diff changeset
    58
    Q_OBJECT
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
public:    
hgs
parents:
diff changeset
    61
    ut_DialpadMailboxEventFilterBase();
hgs
parents:
diff changeset
    62
    virtual ~ut_DialpadMailboxEventFilterBase();
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
private slots:
hgs
parents:
diff changeset
    65
    void init();
hgs
parents:
diff changeset
    66
    void cleanup();
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
    // Mailbox event filter base unit tests
hgs
parents:
diff changeset
    69
    void testCheckIfSendEventAndConsumeEvent();
hgs
parents:
diff changeset
    70
    void testIsLongKeyPressSupported();
hgs
parents:
diff changeset
    71
    void testClearEditor();
hgs
parents:
diff changeset
    72
    void testCreateCall();
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
private:
hgs
parents:
diff changeset
    75
    DummyFilter *mEventFilter;
hgs
parents:
diff changeset
    76
    Dialpad *mDialpad;
hgs
parents:
diff changeset
    77
};
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
hgs
parents:
diff changeset
    80
ut_DialpadMailboxEventFilterBase::ut_DialpadMailboxEventFilterBase()
hgs
parents:
diff changeset
    81
{
hgs
parents:
diff changeset
    82
}
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
ut_DialpadMailboxEventFilterBase::~ut_DialpadMailboxEventFilterBase()
hgs
parents:
diff changeset
    85
{
hgs
parents:
diff changeset
    86
}
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
void ut_DialpadMailboxEventFilterBase::init()
hgs
parents:
diff changeset
    89
{
hgs
parents:
diff changeset
    90
    initialize();
hgs
parents:
diff changeset
    91
    HbMainWindow *window = 0;
hgs
parents:
diff changeset
    92
    mDialpad = new Dialpad(*window);
hgs
parents:
diff changeset
    93
    mEventFilter = new DummyFilter(mDialpad);
hgs
parents:
diff changeset
    94
}
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
void ut_DialpadMailboxEventFilterBase::cleanup()
hgs
parents:
diff changeset
    97
{
hgs
parents:
diff changeset
    98
    delete mEventFilter;
hgs
parents:
diff changeset
    99
    delete mDialpad;
hgs
parents:
diff changeset
   100
    reset();
hgs
parents:
diff changeset
   101
}
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
void ut_DialpadMailboxEventFilterBase::testCheckIfSendEventAndConsumeEvent()
hgs
parents:
diff changeset
   104
{
hgs
parents:
diff changeset
   105
    int key = Qt::Key_Yes;
hgs
parents:
diff changeset
   106
    int type = QEvent::KeyPress;
hgs
parents:
diff changeset
   107
    bool handled = mEventFilter->checkIfSendEventAndConsumeEvent(key, type);
hgs
parents:
diff changeset
   108
    QVERIFY(handled);
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    key = Qt::Key_Enter;
hgs
parents:
diff changeset
   111
    type = QEvent::KeyRelease;
hgs
parents:
diff changeset
   112
    HbLineEdit line;
hgs
parents:
diff changeset
   113
    EXPECT(Dialpad, editor).returns(&line);
hgs
parents:
diff changeset
   114
    EXPECT(HbLineEdit, text).returns(QString("blah"));
hgs
parents:
diff changeset
   115
    handled = mEventFilter->checkIfSendEventAndConsumeEvent(key, type);
hgs
parents:
diff changeset
   116
    QVERIFY(verify() && handled);
hgs
parents:
diff changeset
   117
hgs
parents:
diff changeset
   118
    key = Qt::Key_Enter;
hgs
parents:
diff changeset
   119
    type = QEvent::KeyRelease;
hgs
parents:
diff changeset
   120
    EXPECT(Dialpad, editor).returns(&line);
hgs
parents:
diff changeset
   121
    EXPECT(HbLineEdit, text).returns(QString(""));
hgs
parents:
diff changeset
   122
    handled = mEventFilter->checkIfSendEventAndConsumeEvent(key, type);
hgs
parents:
diff changeset
   123
    QVERIFY(verify() && !handled);
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
    key = Qt::Key_Enter;
hgs
parents:
diff changeset
   126
    type = QEvent::MouseButtonPress;
hgs
parents:
diff changeset
   127
    handled = mEventFilter->checkIfSendEventAndConsumeEvent(key, type);
hgs
parents:
diff changeset
   128
    QVERIFY(!handled);
hgs
parents:
diff changeset
   129
hgs
parents:
diff changeset
   130
    key = Qt::Key_Apostrophe;
hgs
parents:
diff changeset
   131
    handled = mEventFilter->checkIfSendEventAndConsumeEvent(key, type);
hgs
parents:
diff changeset
   132
    QVERIFY(!handled);
hgs
parents:
diff changeset
   133
}
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
void ut_DialpadMailboxEventFilterBase::testIsLongKeyPressSupported()
hgs
parents:
diff changeset
   136
{
hgs
parents:
diff changeset
   137
    int key = Qt::Key_Apostrophe;
hgs
parents:
diff changeset
   138
    bool supported = mEventFilter->isLongKeyPressSupported(key);
hgs
parents:
diff changeset
   139
    QVERIFY(!supported);
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    key = Qt::Key_1;
hgs
parents:
diff changeset
   142
    supported = mEventFilter->isLongKeyPressSupported(key);
hgs
parents:
diff changeset
   143
    QVERIFY(supported);
hgs
parents:
diff changeset
   144
}
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
void ut_DialpadMailboxEventFilterBase::testClearEditor()
hgs
parents:
diff changeset
   147
{
hgs
parents:
diff changeset
   148
    HbLineEdit line;
hgs
parents:
diff changeset
   149
    EXPECT(Dialpad, editor).returns(&line);
hgs
parents:
diff changeset
   150
    EXPECT(HbLineEdit, setText).with(QString(""));
hgs
parents:
diff changeset
   151
    mEventFilter->clearEditor();
hgs
parents:
diff changeset
   152
    QVERIFY(verify());
hgs
parents:
diff changeset
   153
}
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
void ut_DialpadMailboxEventFilterBase::testCreateCall()
hgs
parents:
diff changeset
   156
{
hgs
parents:
diff changeset
   157
    QString number("313");
hgs
parents:
diff changeset
   158
    mEventFilter->createCall(number, true);
hgs
parents:
diff changeset
   159
    mEventFilter->createCall(number, false);
hgs
parents:
diff changeset
   160
}
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
hgs
parents:
diff changeset
   163
DIALPAD_TEST_MAIN(ut_DialpadMailboxEventFilterBase)
hgs
parents:
diff changeset
   164
#include "ut_dialpadmailboxeventfilterbase.moc"
hgs
parents:
diff changeset
   165