logsui/logscntfinder/tsrc/ut_logscntfinder/src/ut_logspredictive12keytranslator.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:52:41 +0300
changeset 2 7119b73b84d6
child 4 e52d42f9500c
permissions -rw-r--r--
Revision: 201017 Kit: 201019

/*
* 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 "ut_logspredictive12keytranslator.h"
#include "logspredictive12keytranslator.h"

#include <hbinputsettingproxy.h>
#include <hbinputkeymapfactory.h>

#include <QtTest/QtTest>
#include <QSignalSpy>

class LogsPredictive12KeyTranslator_mock : public LogsPredictive12KeyTranslator
{
public:
    
    inline LogsPredictive12KeyTranslator_mock() 
        :LogsPredictive12KeyTranslator() 
    {  mKeyMap = 
       HbKeymapFactory::instance()->keymap( QLocale::English, 
                                            QLocale::AnyCountry );
    }
    
    inline QStringList nameTokens( const QString& /*name*/ ) const
            {return QStringList();}

};


void UT_LogsPredictive12KeyTranslator::initTestCase()
{
    mOrigLang = HbInputSettingProxy::instance()->globalInputLanguage();
    
}

void UT_LogsPredictive12KeyTranslator::cleanupTestCase()
{
    HbInputSettingProxy::instance()->setGlobalInputLanguage( mOrigLang );
    
}


void UT_LogsPredictive12KeyTranslator::init()
{
    mTranslator = new LogsPredictive12KeyTranslator_mock();
}

void UT_LogsPredictive12KeyTranslator::cleanup()
{
    delete mTranslator;
    mTranslator = 0;
    HbInputSettingProxy::instance()->setGlobalInputLanguage( mOrigLang );
    
}

void UT_LogsPredictive12KeyTranslator::testConstructor()
{
    QVERIFY( mTranslator );
    QVERIFY( mTranslator->mKeyMap );
}

void UT_LogsPredictive12KeyTranslator::testPatternTokens()
{
    QCOMPARE( mTranslator->patternTokens( QString("122" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("122" ) )[0], QString("122" ) );
    QCOMPARE( mTranslator->patternTokens( QString("102" ) ).length(), 2 );
    QCOMPARE( mTranslator->patternTokens( QString("102" ) )[0], QString("1" ) );
    QCOMPARE( mTranslator->patternTokens( QString("102" ) )[1], QString("2" ) );
    QCOMPARE( mTranslator->patternTokens( QString("0010200" ) ).length(), 2 );
    QCOMPARE( mTranslator->patternTokens( QString("0010200" ) )[0], QString("001" ) );
    QCOMPARE( mTranslator->patternTokens( QString("0010200" ) )[1], QString("200" ) );
    QCOMPARE( mTranslator->patternTokens( QString("0" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("0" ) )[0], QString("0" ) );
    QCOMPARE( mTranslator->patternTokens( QString("000" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("000" ) )[0], QString("0" ) );
    QCOMPARE( mTranslator->patternTokens( QString("001" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("001" ) )[0], QString("1" ) );
    
}

void UT_LogsPredictive12KeyTranslator::testHasPatternSeparators()
{
    QVERIFY( !mTranslator->hasPatternSeparators( QString("122" ) ) );
    QVERIFY( mTranslator->hasPatternSeparators( QString("1022" ) ) );
    QCOMPARE( mTranslator->hasPatternSeparators( QString("0010200" ) ), 5 );
    QCOMPARE( mTranslator->hasPatternSeparators( QString("0000" ) ), 4 );
    QCOMPARE( mTranslator->hasPatternSeparators( QString("345345" ) ), 0 );
    
}

void UT_LogsPredictive12KeyTranslator::testTranslateChar()
{
    //latin
    QCOMPARE( mTranslator->translateChar( QChar('0') ), QChar('0') );
    QCOMPARE( mTranslator->translateChar( QChar(0x4E0F) ), QChar() );
    
}