--- a/satui/satapp/tsrc/ut_satapp/src/ut_satappinputprovider.cpp Tue Aug 31 15:45:17 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,411 +0,0 @@
-/*
-* 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: Unit test for satappmainhandler
-*
-*/
-
-#include <QTimer>
-#include <QAction>
-
-#include <hbinputdialog.h>
-#include <hbmessagebox.h>
-
-#include "ut_satappinputprovider.h"
-#include "satappinputprovider.h"
-#include "satappaction.h"
-
-
-// --------------------------------------------------------
-// The unit tests begin here
-// --------------------------------------------------------
-
-Ut_SatAppInputProvider::Ut_SatAppInputProvider(
- QObject *parent)
- :QObject(parent)
-{
-}
-
-void Ut_SatAppInputProvider::testResetState()
-{
- InputProviderTest test;
- test.mInput->resetState();
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndOk_data()
-{
- QTest::addColumn<QString>("text");
- QTest::addColumn<int>("charset");
- QTest::addColumn<int>("inkey");
-
- QTest::newRow("t01") << "title" << (int)ESatDigitOnly << 0;
- QTest::newRow("t02") << "title" << (int)ESatCharSmsDefaultAlphabet << 0;
- QTest::newRow("t03") << "title" << (int)ESatCharUcs2Alphabet << 0;
- QTest::newRow("t04") << "title" << (int)ESatYesNo << 0;
- QTest::newRow("t05") << "long title that does not fix to screen" << (int)ESatDigitOnly << 0;
- QTest::newRow("t06") << "long title that does not fix to screen" << (int)ESatCharSmsDefaultAlphabet << 0;
- QTest::newRow("t07") << "long title that does not fix to screen" << (int)ESatCharUcs2Alphabet << 0;
- QTest::newRow("t08") << "long title that does not fix to screen" << (int)ESatYesNo << 0;
- QTest::newRow("t09") << "" << (int)ESatDigitOnly << 1;
- QTest::newRow("t10") << "" << (int)ESatCharSmsDefaultAlphabet << 47;
- QTest::newRow("t11") << "" << (int)ESatCharUcs2Alphabet << 58;
- QTest::newRow("t12") << "" << (int)ESatYesNo << 0;
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndOk()
-{
- QFETCH(QString, text);
- QFETCH(int, charset);
- QFETCH(int, inkey);
- bool selfExp = false;
-
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,text);
- a.set(KeyCharacterSet,charset);
- a.set(KeyInKey,inkey);
- a.set(KeyImmediate,false);
- a.set(KeyDuration,10000);
-
- InputProviderTest test;
- test.mInput->getInkey(a);
- // simulate press OK
- if( (charset!=ESatYesNo) || (text.length()>0)){
- test.simulateFirstActionClicked();
- }
-
- if (charset==ESatYesNo) {
- if( text.length()>0 ){
- QCOMPARE(a.response(),ESatSuccess);
- QCOMPARE(a.value(KeyInKey).toInt(),1);
- }
- else {
- QCOMPARE(a.response(),ESatFailure);
- }
-
- }
- else {
- QCOMPARE(a.response(),ESatSuccess);
- }
-
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndCancel_data()
-{
- // uses same test materil as testGetInkeyAndOk()
- testGetInkeyAndOk_data();
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndCancel()
-{
- QFETCH(QString, text);
- QFETCH(int, charset);
- QFETCH(int, inkey);
- bool selfExp = false;
-
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,text);
- a.set(KeyCharacterSet,charset);
- a.set(KeyInKey,inkey);
- a.set(KeyImmediate,false);
- a.set(KeyDuration,10000);
-
- InputProviderTest test;
- test.mInput->getInkey(a);
- // simulate press CANCEL
- if((charset!=ESatYesNo) || (text.length()>0)) {
- test.simulateSecondActionClicked();
- }
-
- if (charset==ESatYesNo) {
- if( text.length()>0 ){
- QCOMPARE(a.response(),ESatSuccess);
- QCOMPARE(a.value(KeyInKey).toInt(),0);
- }
- else {
- QCOMPARE(a.response(),ESatFailure);
- } }
- else {
- QCOMPARE(a.response(),ESatBackwardModeRequestedByUser);
- }
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndTimeout()
-{
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatCharSmsDefaultAlphabet);
- a.set(KeyInKey,64);
- a.set(KeyImmediate,false);
- a.set(KeyDuration,1000);
-
- InputProviderTest test;
- test.mInput->getInkey(a);
- a.waitUntilCompleted();
-
- QCOMPARE(a.response(),ESatNoResponseFromUser);
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndReset()
-{
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatCharSmsDefaultAlphabet);
- a.set(KeyInKey,64);
- a.set(KeyImmediate,false);
- a.set(KeyDuration,10000);
- a.setResponse(ESatFailure);
-
- InputProviderTest test;
- test.mInput->getInkey(a);
- test.mInput->resetState();
-
- QCOMPARE(a.response(),ESatNoResponseFromUser);
-}
-
-void Ut_SatAppInputProvider::testGetInkeyAndDelete()
-{
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatCharSmsDefaultAlphabet);
- a.set(KeyInKey,64);
- a.set(KeyImmediate,false);
- a.set(KeyDuration,10000);
- a.setResponse(ESatFailure);
-
- {
- InputProviderTest test;
- test.mInput->getInkey(a);
- }
- // at this point everything should be cleaned up safely, and action
- // should be completed later when application exit or timeout
-
- QCOMPARE(a.response(),ESatFailure);
-}
-
-void Ut_SatAppInputProvider::testGetInkeyImmediateAndOk()
-{
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatDigitOnly);
- a.set(KeyInKey,64);
- a.set(KeyImmediate,true);
- a.set(KeyDuration,10000);
- a.setResponse(ESatFailure);
-
- InputProviderTest test;
- test.mInput->getInkey(a);
- test.simulateImmediateKeypress("0");
-
- QCOMPARE(a.response(),ESatSuccess);
- QCOMPARE(a.value(KeyInKey).toInt(),0x30);
-}
-
-void Ut_SatAppInputProvider::testGetInkeyImmediateAndCancel()
-{
- SatAppAction a(ESatGetInkeyAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatDigitOnly);
- a.set(KeyInKey,64);
- a.set(KeyImmediate,true);
- a.set(KeyDuration,10000);
- a.setResponse(ESatFailure);
-
- InputProviderTest test;
- test.mInput->getInkey(a);
- test.simulateFirstActionClicked(); // cancel
-
- QCOMPARE(a.response(),ESatBackwardModeRequestedByUser);
-}
-
-void Ut_SatAppInputProvider::testGetInputAndOk_data()
-{
- QTest::addColumn<QString>("text");
- QTest::addColumn<int>("charset");
- QTest::addColumn<QString>("input");
- QTest::addColumn<int>("min");
- QTest::addColumn<int>("max");
- QTest::addColumn<bool>("hide");
-
- QTest::newRow("t01") << "title" << (int)ESatDigitOnly << "" << 1 << 5 << false;
- QTest::newRow("t02") << "title" << (int)ESatCharSmsDefaultAlphabet << "" << 1 << 5 << false;
- QTest::newRow("t03") << "title" << (int)ESatCharUcs2Alphabet << "" << 1 << 5 << false;
- QTest::newRow("t04") << "very long title that does not fit into screen" << (int)ESatDigitOnly << "" << 1 << 5 << false;
- QTest::newRow("t05") << "very long title that does not fit into screen" << (int)ESatCharSmsDefaultAlphabet << "" << 2 << 8 << false;
- QTest::newRow("t06") << "very long title that does not fit into screen" << (int)ESatCharUcs2Alphabet << "" << 2 << 8 << false;
- QTest::newRow("t07") << "title" << (int)ESatDigitOnly << "12345" << 1 << 5 << false;
- QTest::newRow("t08") << "title" << (int)ESatCharSmsDefaultAlphabet << "12345" << 1 << 5 << false;
- QTest::newRow("t09") << "title" << (int)ESatCharUcs2Alphabet << "12345" << 1 << 5 << false;
- QTest::newRow("t10") << "title" << (int)ESatDigitOnly << "12345" << 1 << 5 << true;
- QTest::newRow("t11") << "title" << (int)ESatCharSmsDefaultAlphabet << "12345" << 1 << 5 << true;
- QTest::newRow("t12") << "title" << (int)ESatCharUcs2Alphabet << "12345" << 1 << 5 << true;
- QTest::newRow("t13") << "" << (int)ESatDigitOnly << "" << 1 << 5 << false;
- QTest::newRow("t14") << "" << (int)ESatCharSmsDefaultAlphabet << "" << 1 << 5 << false;
- QTest::newRow("t15") << "" << (int)ESatCharUcs2Alphabet << "" << 1 << 5 << false;
- QTest::newRow("t16") << "" << (int)ESatDigitOnly << "123456789123456789" << 1 << 5 << false;
- QTest::newRow("t17") << "" << (int)ESatCharSmsDefaultAlphabet << "123456789123456789" << 1 << 5 << false;
- QTest::newRow("t18") << "" << (int)ESatCharUcs2Alphabet << "123456789123456789" << 1 << 5 << false;
-
-}
-
-void Ut_SatAppInputProvider::testGetInputAndOk()
-{
- QFETCH(QString, text);
- QFETCH(int, charset);
- QFETCH(QString, input);
- QFETCH(int, min);
- QFETCH(int, max);
- QFETCH(bool, hide);
-
- SatAppAction a(ESatGetInputAction);
- a.set(KeyText,text);
- a.set(KeyCharacterSet,charset);
- a.set(KeyInputString,input);
- a.set(KeyMinLength,min);
- a.set(KeyMaxLength,max);
- a.set(KeyHideInput,hide);
- a.set(KeyDuration,10000);
-
- InputProviderTest test;
- test.mInput->getInput(a);
- test.simulateFirstActionClicked();
-
- QCOMPARE(a.response(),ESatSuccess);
-}
-
-void Ut_SatAppInputProvider::testGetInputAndCancel_data()
-{
- // uses same test data as testGetInputAndOk
- testGetInputAndOk_data();
-}
-
-void Ut_SatAppInputProvider::testGetInputAndCancel()
-{
- QFETCH(QString, text);
- QFETCH(int, charset);
- QFETCH(QString, input);
- QFETCH(int, min);
- QFETCH(int, max);
- QFETCH(bool, hide);
-
- SatAppAction a(ESatGetInputAction);
- a.set(KeyText,text);
- a.set(KeyCharacterSet,charset);
- a.set(KeyInputString,input);
- a.set(KeyMinLength,min);
- a.set(KeyMaxLength,max);
- a.set(KeyHideInput,hide);
- a.set(KeyDuration,10000);
-
- InputProviderTest test;
- test.mInput->getInput(a);
- test.simulateSecondActionClicked();
-
- QCOMPARE(a.response(),ESatBackwardModeRequestedByUser);
-}
-
-void Ut_SatAppInputProvider::testGetInputAndTimeout()
-{
- SatAppAction a(ESatGetInputAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatCharSmsDefaultAlphabet);
- a.set(KeyInputString,"12345");
- a.set(KeyMinLength,1);
- a.set(KeyMaxLength,10);
- a.set(KeyHideInput,false);
- a.set(KeyDuration,1000);
-
- InputProviderTest test;
- test.mInput->getInput(a);
- a.waitUntilCompleted();
-
- QCOMPARE(a.response(),ESatNoResponseFromUser);
-}
-
-void Ut_SatAppInputProvider::testGetInputAndReset()
-{
- SatAppAction a(ESatGetInputAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatCharSmsDefaultAlphabet);
- a.set(KeyInputString,"12345");
- a.set(KeyMinLength,1);
- a.set(KeyMaxLength,10);
- a.set(KeyHideInput,false);
- a.set(KeyDuration,10000);
-
- InputProviderTest test;
- test.mInput->getInput(a);
- test.mInput->resetState();
-
- QCOMPARE(a.response(),ESatNoResponseFromUser);
-}
-
-void Ut_SatAppInputProvider::testGetInputAndDelete()
-{
- SatAppAction a(ESatGetInputAction);
- a.set(KeyText,"hello");
- a.set(KeyCharacterSet,ESatCharSmsDefaultAlphabet);
- a.set(KeyInputString,"12345");
- a.set(KeyMinLength,1);
- a.set(KeyMaxLength,10);
- a.set(KeyHideInput,false);
- a.set(KeyDuration,10000);
- a.setResponse(ESatFailure);
-
- {
- InputProviderTest test;
- test.mInput->getInput(a);
- }
- // at this point input dialog out of scope and destroyed.
- // pending action should have been completed later when application exit or timeout
-
- QCOMPARE(a.response(),ESatFailure);
-}
-
-
-// ---------------------------------------------------------------
-// internal helper class
-// ---------------------------------------------------------------
-
-InputProviderTest::InputProviderTest()
-{
- mInput = new SatAppInputProvider(this);
-}
-
-InputProviderTest::~InputProviderTest()
-{
- cleanup();
-}
-
-void InputProviderTest::simulateFirstActionClicked()
-{
- mInput->mCurrentDialog->actions().at(0)->trigger();
-}
-
-void InputProviderTest::simulateSecondActionClicked()
-{
- mInput->mCurrentDialog->actions().at(1)->trigger();
-}
-
-void InputProviderTest::simulateImmediateKeypress(QString s)
-{
- mInput->transmitInkeyImmediately(s);
-}
-
-void InputProviderTest::cleanup()
-{
- delete mInput;
- mInput = 0;
-}
-
-
-// End of file