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 <QtGui>
+#include <QtTest/QtTest>
+#include <HbMainWindow>
+#include <HbLineEdit>
+#ifdef Q_OS_SYMBIAN
+#include <xqaiwinterfacedescriptor.h>
+#include <xqaiwrequest.h>
+#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<QString>(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<HbLineEdit&>::SetL(*m_lineEditMock))
+
+ XQAiwInterfaceDescriptor descriptor;
+ QString dummyOperation;
+ bool isEmbedded = false;
+ QList<XQAiwInterfaceDescriptor> interfaceList;
+ interfaceList.append(descriptor);
+ /*EXPECT(XQApplicationManager, list).returns(interfaceList);
+ QPointer<XQAiwRequest> aiwRequest(new XQAiwRequest(
+ descriptor, dummyOperation, isEmbedded));
+ EXPECT(XQApplicationManager, create).returns(aiwRequest.data());
+ EXPECT(XQAiwRequest, send)
+ .willOnce(invoke(setValidatorReturnValue))
+ .returns(true);*/
+
+ SmcDefaultValue<QString>::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<QString>::Reset();
+ SmcDefaultValue<HbLineEdit&>::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<bool>(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);
+}