logsui/logscntfinder/tsrc/ut_logscntfinder/src/ut_logspredictive12keytranslator.cpp
author hgs
Fri, 03 Sep 2010 14:26:05 +0300
changeset 17 90fe74753f71
parent 4 e52d42f9500c
child 21 2f0af9ba7665
permissions -rw-r--r--
201035

/*
* 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( QLocale::English ) 
    {  
    }
    
    inline QStringList nameTokens( const QString& /*name*/ ) const
            {return QStringList();}
    inline const QChar translateChar( const QChar /*character*/, bool& /*ok*/ ) const
            {return QChar();}
    inline bool encodes( const QString& /*sniplet*/ )
        {return true;}
    inline int mib() const {return 0;}
    

};


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::testSplitPattern()
{
    QString car;
    QString cdr;
    
    mTranslator->splitPattern( QString( "122" ), car, cdr );
    QCOMPARE( car, QString("122" ) );
    QCOMPARE( cdr, QString("" ) );
    
    mTranslator->splitPattern( QString( "01220" ), car, cdr );
    QCOMPARE( car, QString("01220" ) );
    QCOMPARE( cdr, QString("" ) );
    
    mTranslator->splitPattern( QString( "0122020" ), car, cdr );
    QCOMPARE( car, QString("0122" ) );
    QCOMPARE( cdr, QString("20" ) );
    
    mTranslator->splitPattern( QString( "012200020" ), car, cdr );
    QCOMPARE( car, QString("0122" ) );
    QCOMPARE( cdr, QString("20" ) );
    
    mTranslator->splitPattern( QString( "0122050020" ), car, cdr );
    QCOMPARE( car, QString("0122" ) );
    QCOMPARE( cdr, QString("50020" ) );
    
    mTranslator->splitPattern( QString( "00000" ), car, cdr );
    QCOMPARE( car, QString("00000" ) );
    QCOMPARE( cdr, QString("" ) );
    
    mTranslator->splitPattern( QString( "0" ), car, cdr );
    QCOMPARE( car, QString("0" ) );
    QCOMPARE( cdr, QString("" ) );

    mTranslator->splitPattern( QString( "" ), car, cdr );
    QCOMPARE( car, QString("" ) );
    QCOMPARE( cdr, QString("" ) );
    
}

void UT_LogsPredictive12KeyTranslator::testTrimPattern()
{
    QString pattern;
    
    pattern = "1";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "1") );
    
    pattern = "122";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
    
    pattern = "0122";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
    
    pattern = "0122";
    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "0122") );
    
    pattern = "1220";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
    
    pattern = "1220";
    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "122") );
    
    pattern = "01220";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "122") );
    
    pattern = "01220";
    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "0122") );
    
    pattern = "012020";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "1202") );
    
    pattern = "012020";
    QCOMPARE( mTranslator->trimPattern( pattern, true ), QString( "01202") );

    pattern = "000120200";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "1202") );
    
    pattern = "00012000200";
    QCOMPARE( mTranslator->trimPattern( pattern , false), QString( "120002") );
    
    pattern = "0001200024500";
    QCOMPARE( mTranslator->trimPattern( pattern , false), QString( "12000245") );
    
    pattern = "000";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "0") );

    pattern = "0";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "0") );
    
    pattern = "";
    QCOMPARE( mTranslator->trimPattern( pattern, false ), QString( "") );
    
    
}

void UT_LogsPredictive12KeyTranslator::testPatternTokens()
{
    
    QCOMPARE( mTranslator->patternTokens( QString("122" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("122" ) )[0], QString("122" ) );
    QCOMPARE( mTranslator->patternTokens( QString("01220" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("01220" ) )[0], QString("01220" ) );
    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("0010200564760635" ) ).length(), 2 );
    QCOMPARE( mTranslator->patternTokens( QString("0010200564760635" ) )[0], QString("001" ) );
    QCOMPARE( mTranslator->patternTokens( QString("0010200564760635" ) )[1], QString("200564760635" ) );
    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("000" ) );
    QCOMPARE( mTranslator->patternTokens( QString("001" ) ).length(), 1 );
    QCOMPARE( mTranslator->patternTokens( QString("001" ) )[0], QString("001" ) );
    
}

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() );
    
}