diff -r 594d59766373 -r 7d48bed6ce0c telutils/dialpad/tsrc/unit/ut_dialpadmultitaphandler/ut_dialpadmultitaphandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telutils/dialpad/tsrc/unit/ut_dialpadmultitaphandler/ut_dialpadmultitaphandler.cpp Tue Aug 31 15:45:17 2010 +0300 @@ -0,0 +1,135 @@ +/*! +* Copyright (c) 2009 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 +#include + +#include "dialpadmultitaphandler.h" +#include "dialpadtest.h" + + +class ut_DialpadMultitapHandler : public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void cleanupTestCase(); + void cleanup(); + + void testWatchedNotEditor(); + void testNumericKeyPress(); + void testNonNumericKeyPress(); + void testAsterisk(); + void testAsteriskMultitap(); + +private: + QObject* mHandler; + HbLineEdit* mEditor; +}; + +void ut_DialpadMultitapHandler::initTestCase() +{ + mEditor = new HbLineEdit; + mHandler = new DialpadMultitapHandler(*mEditor); +} + +void ut_DialpadMultitapHandler::cleanupTestCase() +{ + delete mHandler; + delete mEditor; +} + +void ut_DialpadMultitapHandler::cleanup() +{ + mEditor->setText(QString()); +} + +void ut_DialpadMultitapHandler::testWatchedNotEditor() +{ + QKeyEvent asteriskPress(QEvent::KeyPress, Qt::Key_Asterisk, Qt::NoModifier); + QKeyEvent asteriskRelease(QEvent::KeyRelease, Qt::Key_Asterisk, Qt::NoModifier); + HbLineEdit edit2; + + QVERIFY(mHandler->eventFilter(&edit2,&asteriskPress)==false); + QVERIFY(mHandler->eventFilter(&edit2,&asteriskRelease)==false); +} + +void ut_DialpadMultitapHandler::testNumericKeyPress() +{ + QKeyEvent key1Press(QEvent::KeyPress, Qt::Key_1, Qt::NoModifier); + QKeyEvent key1Char(QEvent::KeyPress, Qt::Key_1, Qt::NoModifier, "1"); + QKeyEvent key1Release(QEvent::KeyRelease, Qt::Key_1, Qt::NoModifier); + + QVERIFY(mHandler->eventFilter(mEditor,&key1Press)==true); + QVERIFY(mHandler->eventFilter(mEditor,&key1Char)==false); + QVERIFY(mHandler->eventFilter(mEditor,&key1Release)==false); +} + +void ut_DialpadMultitapHandler::testNonNumericKeyPress() +{ + QKeyEvent keyYesPress(QEvent::KeyPress, Qt::Key_Yes, Qt::NoModifier); + QKeyEvent keyYesRelease(QEvent::KeyRelease, Qt::Key_Yes, Qt::NoModifier); + + QVERIFY(mHandler->eventFilter(mEditor,&keyYesPress)==false); + QVERIFY(mHandler->eventFilter(mEditor,&keyYesRelease)==false); + + QKeyEvent keyBackspacePress(QEvent::KeyPress, Qt::Key_Backspace, Qt::NoModifier); + QKeyEvent keyBackspaceRelease(QEvent::KeyRelease, Qt::Key_Backspace, Qt::NoModifier); + + QVERIFY(mHandler->eventFilter(mEditor,&keyBackspacePress)==false); + QVERIFY(mHandler->eventFilter(mEditor,&keyBackspaceRelease)==false); +} + +void ut_DialpadMultitapHandler::testAsterisk() +{ + QKeyEvent asteriskPress(QEvent::KeyPress, Qt::Key_Asterisk, Qt::NoModifier); + QKeyEvent asteriskChar(QEvent::KeyPress, Qt::Key_Asterisk, Qt::NoModifier, "*"); + QKeyEvent asteriskRelease(QEvent::KeyRelease, Qt::Key_Asterisk, Qt::NoModifier); + + QVERIFY(mHandler->eventFilter(mEditor,&asteriskPress)==true); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskChar)==false); + QTest::qWait( 1000 ); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskRelease)==false); +} + +void ut_DialpadMultitapHandler::testAsteriskMultitap() +{ + QKeyEvent asteriskPress(QEvent::KeyPress, Qt::Key_Asterisk, Qt::NoModifier); + QKeyEvent asteriskChar(QEvent::KeyPress, Qt::Key_Asterisk, Qt::NoModifier, "*"); + QKeyEvent asteriskRelease(QEvent::KeyRelease, Qt::Key_Asterisk, Qt::NoModifier); + + QVERIFY(mHandler->eventFilter(mEditor,&asteriskPress)==true); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskChar)==false); + QTest::qWait( 100 ); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskChar)==true); // + + QTest::qWait( 100 ); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskChar)==true); // p + QTest::qWait( 100 ); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskChar)==true); // w + QTest::qWait( 100 ); + QVERIFY(mHandler->eventFilter(mEditor,&asteriskChar)==true); // * + QVERIFY(mHandler->eventFilter(mEditor,&asteriskRelease)==false); +} + +DIALPAD_TEST_MAIN(ut_DialpadMultitapHandler) +#include "ut_dialpadmultitaphandler.moc" +