telutils/keysequencerecognitionservice/tsrc/ut_keysequencerecognitionprovider/ut_keysequencerecognitionprovider.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
child 21 0a6dd2dc9970
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
     1 /*!
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QtGui>
       
    19 #include <QtTest/QtTest>
       
    20 #include <QTranslator>
       
    21 #include <smcmockclassincludes.h>
       
    22 #include "ut_keysequencerecognitionprovider.h"
       
    23 #include "keysequencerecognitionprovider.h"
       
    24 #include "keysequencehandler.h"
       
    25 #include "qtestmains60.h"
       
    26 
       
    27 void QCoreApplication::installTranslator(QTranslator * messageFile)
       
    28 {
       
    29     SMC_MOCK_METHOD1( void, QTranslator *, messageFile)
       
    30 }
       
    31 
       
    32 
       
    33 UT_KeySequenceRecognitionProvider::UT_KeySequenceRecognitionProvider()
       
    34     :
       
    35     m_provider(0)
       
    36 {
       
    37     
       
    38 }
       
    39 
       
    40 
       
    41 UT_KeySequenceRecognitionProvider::~UT_KeySequenceRecognitionProvider()
       
    42 {
       
    43     delete m_provider;
       
    44 }
       
    45 
       
    46 
       
    47 void UT_KeySequenceRecognitionProvider::init()
       
    48 {
       
    49     initialize();
       
    50     QT_TRAP_THROWING(SmcDefaultValue<QString>::SetL(QString("")))
       
    51     
       
    52     m_provider = new KeySequenceRecognitionProvider();
       
    53 }
       
    54 
       
    55 
       
    56 void UT_KeySequenceRecognitionProvider::cleanup()
       
    57 {
       
    58     reset();
       
    59     SmcDefaultValue<QString>::Reset();
       
    60     
       
    61     delete m_provider;
       
    62     m_provider = 0;
       
    63 }
       
    64 
       
    65 
       
    66 void UT_KeySequenceRecognitionProvider::t_setupLocalization()
       
    67 {
       
    68     // localization setup ok
       
    69     EXPECT(QTranslator, load).returns(true);
       
    70     EXPECT(QCoreApplication, installTranslator).times(1);
       
    71     
       
    72     QScopedPointer<KeySequenceRecognitionProvider> provider1(
       
    73         new KeySequenceRecognitionProvider());
       
    74     
       
    75     QVERIFY(verify());
       
    76     
       
    77     // localization setup fails
       
    78     EXPECT(QTranslator, load).returns(false);
       
    79     EXPECT(QCoreApplication, installTranslator).times(0);
       
    80     
       
    81     QScopedPointer<KeySequenceRecognitionProvider> provider2(
       
    82         new KeySequenceRecognitionProvider());
       
    83     
       
    84     QVERIFY(verify());
       
    85 }
       
    86 
       
    87 
       
    88 void UT_KeySequenceRecognitionProvider::t_keySequenceValidator()
       
    89 {
       
    90     QString KExpectedValidator = "1|2|3";
       
    91     EXPECT(KeySequenceHandler, keySequenceValidator)
       
    92         .returns(QString("1"));
       
    93     EXPECT(KeySequenceHandler, keySequenceValidator)
       
    94         .returns(QString("2"));
       
    95     EXPECT(KeySequenceHandler, keySequenceValidator)
       
    96         .returns(QString("3"));
       
    97     
       
    98     QString actualValidator = m_provider->keySequenceValidator();
       
    99     
       
   100     QCOMPARE(actualValidator, KExpectedValidator);
       
   101     QVERIFY(verify());
       
   102     
       
   103     // second query should not require validator string construction again
       
   104     EXPECT(KeySequenceHandler, keySequenceValidator).times(0);
       
   105     actualValidator = m_provider->keySequenceValidator();
       
   106     QCOMPARE(actualValidator, KExpectedValidator);
       
   107     QVERIFY(verify());
       
   108 }
       
   109 
       
   110 
       
   111 void UT_KeySequenceRecognitionProvider::t_keySequenceValidatorEmptyString()
       
   112 {
       
   113     QString KExpectedValidator = "";
       
   114     EXPECT(KeySequenceHandler, keySequenceValidator)
       
   115         .returns(QString(""));
       
   116     EXPECT(KeySequenceHandler, keySequenceValidator)
       
   117         .returns(QString(""));
       
   118     EXPECT(KeySequenceHandler, keySequenceValidator)
       
   119         .returns(QString(""));
       
   120     
       
   121     QString actualValidator = m_provider->keySequenceValidator();
       
   122     
       
   123     QCOMPARE(actualValidator, KExpectedValidator);
       
   124     QVERIFY(verify());
       
   125 }
       
   126 
       
   127 
       
   128 void UT_KeySequenceRecognitionProvider::t_executeValidKeySequence()
       
   129 {
       
   130     QT_TRAP_THROWING(SmcDefaultValue<bool>::SetL(true))
       
   131     
       
   132     bool handled = m_provider->executeKeySequence("123");
       
   133     
       
   134     SmcDefaultValue<bool>::Reset();
       
   135     QCOMPARE(handled, true);
       
   136     QVERIFY(verify());
       
   137 }
       
   138 
       
   139 
       
   140 void UT_KeySequenceRecognitionProvider::t_executeInvalidKeySequence()
       
   141 {
       
   142     bool handled = m_provider->executeKeySequence("123");
       
   143     
       
   144     QCOMPARE(handled, false);
       
   145 }
       
   146 
       
   147 QTEST_MAIN_S60(UT_KeySequenceRecognitionProvider)