diff -r 594d59766373 -r 7d48bed6ce0c telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telutils/dialpad/tsrc/unit/ut_dialpadhasheventfilter/ut_dialpadhasheventfilter.cpp Tue Aug 31 15:45:17 2010 +0300 @@ -0,0 +1,178 @@ +/*! +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#ifdef Q_OS_SYMBIAN +#include +#include +#endif +#include "ut_dialpadhasheventfilter.h" +#include "dialpadtest.h" +#include "dialpadhasheventfilter.h" +#include "dialpad.h" + +const int WAIT_TIME = 300; + +/*void setValidatorReturnValue(QVariant &returnValue) +{ + returnValue.setValue(QRegExp::escape(KValidKeySequence)); +}*/ + +UT_DialpadHashEventFilter::UT_DialpadHashEventFilter() + : + m_dialPad(0), + m_eventFilter(0), + m_lineEditMock(0) +{ + +} + +UT_DialpadHashEventFilter::~UT_DialpadHashEventFilter() +{ + delete m_dialPad; + delete m_eventFilter; + delete m_lineEditMock; +} + +void UT_DialpadHashEventFilter::init() +{ + initialize(); + + m_lineEditMock = new HbLineEdit(); + QT_TRAP_THROWING(SmcDefaultValue::SetL(*m_lineEditMock)) + + XQAiwInterfaceDescriptor descriptor; + QString dummyOperation; + bool isEmbedded = false; + QList interfaceList; + interfaceList.append(descriptor); + /*EXPECT(XQApplicationManager, list).returns(interfaceList); + QPointer aiwRequest(new XQAiwRequest( + descriptor, dummyOperation, isEmbedded)); + EXPECT(XQApplicationManager, create).returns(aiwRequest.data()); + EXPECT(XQAiwRequest, send) + .willOnce(invoke(setValidatorReturnValue)) + .returns(true);*/ + + SmcDefaultValue::SetL(QString()); + HbMainWindow *dummyWindow = NULL; + m_dialPad = new Dialpad(*dummyWindow); + m_eventFilter = new DialpadHashEventFilter(m_dialPad); + + //QVERIFY(aiwRequest.isNull()); + QVERIFY(verify()); +} + +void UT_DialpadHashEventFilter::cleanup() +{ + reset(); + + SmcDefaultValue::Reset(); + SmcDefaultValue::Reset(); + delete m_dialPad; + m_dialPad = NULL; + delete m_eventFilter; + m_eventFilter = NULL; + delete m_lineEditMock; + m_lineEditMock = NULL; +} + +#ifdef Q_OS_SYMBIAN + +/*void setServiceRequestReturnValue(QVariant & returnValue) +{ + returnValue.setValue(true); +}*/ + +void UT_DialpadHashEventFilter::testeventFilter() +{ + // start long press timer + EXPECT(XQAiwRequest, send).times(0); + QKeyEvent keyEvent( + QEvent::KeyPress, + Qt::Key_NumberSign, + Qt::NoModifier); + bool filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent); + QVERIFY(!filtered); + QVERIFY(verify()); + + // stop long press timer + QKeyEvent keyEvent2( + QEvent::KeyRelease, + Qt::Key_NumberSign, + Qt::NoModifier); + + filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent2); + QVERIFY(!filtered); + QVERIFY(verify()); + + // some other buttons pressed and released + EXPECT(XQAiwRequest, send).times(0); + QKeyEvent keyEvent3( + QEvent::KeyPress, + Qt::Key_3, + Qt::NoModifier); + // start long press timer + filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent3); + QVERIFY(!filtered); + QVERIFY(verify()); + + QKeyEvent keyEvent4( + QEvent::FocusIn, + Qt::Key_1, + Qt::NoModifier); + // stop long press timer + filtered = m_eventFilter->eventFilter(m_dialPad, &keyEvent4); + QVERIFY(!filtered); + QVERIFY(verify()); + +} + +void UT_DialpadHashEventFilter::testhandleLongKeyPress() +{ + m_eventFilter->handleLongKeyPress(); + m_eventFilter->mKeyEvent = Qt::Key_NumberSign; + m_eventFilter->handleLongKeyPress(); +} + +void UT_DialpadHashEventFilter::testhandleCallButtonPress() +{ + // inherited method not supported + EXPECT(XQAiwRequest, send).times(0); + bool callButtonPress = m_eventFilter->handleCallButtonPress(); + QVERIFY(!callButtonPress); +} + +void UT_DialpadHashEventFilter::testhandleMailboxOperation() +{ + m_eventFilter->handleMailboxOperation(); + + // another call to test other note + m_eventFilter->handleMailboxOperation(); +} + +#endif + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + UT_DialpadHashEventFilter tc; + return QTest::qExec(&tc, argc, argv); +}