diff -r 2c7f27287390 -r 053c6c7c14f3 idlefw/tsrc/wsplugin/ut_numerickeyhandler/src/ut_numerickeyhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/tsrc/wsplugin/ut_numerickeyhandler/src/ut_numerickeyhandler.cpp Thu Aug 19 10:13:44 2010 +0300 @@ -0,0 +1,336 @@ +/* +* Copyright (c) 2004 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: +* +*/ + + +// System includes +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +// User includes +#include "numerickeyhandler.h" + +#include +#include "eventhandler.h" + +#include "ut_numerickeyhandler.h" +#include "animgeneralfunctions_stub.h" + +using namespace AiWsPlugin; + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::NewL() +// +// ----------------------------------------------------------------------------- +// + + +// CLASS HEADER + +// EXTERNAL INCLUDES +//#include + + +_LIT( fileName, "C:\\keyhandler.txt"); +// INTERNAL INCLUDES + + + + +// CONSTRUCTION +UT_NumericKeyHandler* UT_NumericKeyHandler::NewL() + { + UT_NumericKeyHandler* self = UT_NumericKeyHandler::NewLC(); + CleanupStack::Pop(); + + return self; + } + +UT_NumericKeyHandler* UT_NumericKeyHandler::NewLC() + { + UT_NumericKeyHandler* self = new( ELeave ) UT_NumericKeyHandler(); + CleanupStack::PushL( self ); + + self->ConstructL(); + + return self; + } + +// Destructor (virtual by CBase) +UT_NumericKeyHandler::~UT_NumericKeyHandler() + { + } + +// Default constructor +UT_NumericKeyHandler::UT_NumericKeyHandler() + { + } + +// Second phase construct +void UT_NumericKeyHandler::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + +// METHODS + +void UT_NumericKeyHandler::EmptySetupL( ) + { + + } + +void UT_NumericKeyHandler::SetupL( ) + { + if ( !iAnimGeneralFunctions ) + { + iAnimGeneralFunctions = CAnimGeneralFunctionsStub::NewL(); + } + + iModifiers = NULL; + MAnimGeneralFunctionsWindowExtension* ext = + static_cast( + iAnimGeneralFunctions->ExtendedInterface + ( MAnimGeneralFunctions::EWindowExtensionInterface ) ); + + iNumericKeyHandler = AiWsPlugin::CNumericKeyHandler::NewLC( 0, ext); + CleanupStack::Pop(); + } + +void UT_NumericKeyHandler::Teardown( ) + { + if( iNumericKeyHandler ) + { + delete iNumericKeyHandler; + iNumericKeyHandler = NULL; + } + if ( iAnimGeneralFunctions ) + { + delete iAnimGeneralFunctions; + iAnimGeneralFunctions = NULL; + } + _LIT( fileName, "C:\\keyhandler.txt"); + RFs fs; + fs.Connect(); + fs.Delete( fileName ); + fs.Close(); + } + +void UT_NumericKeyHandler::TestNumericKeyCreationL( ) + { + EUNIT_ASSERT( iNumericKeyHandler ); + } + +void UT_NumericKeyHandler::TestFocusChangeL( ) + { + // The fuction that this test tests is unnecessary + AiWsPlugin::CEventHandler* handler = iNumericKeyHandler; + handler->FocusChanged( ETrue ); + EUNIT_ASSERT( ETrue ); + } + +void UT_NumericKeyHandler::TestNumericKeyEventL() + { + + TRawEvent event; + event.Set( TRawEvent::EKeyDown, EStdKeyHash ); + + AiWsPlugin::CEventHandler* handler = iNumericKeyHandler; + CleanupStack::PushL( handler ); + + handler->SetUiStateQuery( *this ); + handler->OfferRawEvent(event); + + CleanupStack::Pop( handler ); + + TUid uidi(KNullUid); + TUint uintti(0); + + RProperty::Get(uidi, uintti, iTestValue ); + + //EUNIT_ASSERT_EQUALS( iTestValue, TInt(EPSAiNumberEntry)); + } + + +void UT_NumericKeyHandler::TestNumericKeyEventQwertyModeL() + { + // Write file to enable qwertymode + RFs fs; + RFile file; + TInt err = fs.Connect(); + err = file.Replace( fs, fileName, EFileShareAny); + TBuf8<30> txt; + txt.Num( TInt(1) ); + err = file.Write( 0,txt); + file.Close(); + fs.Close(); + + if ( !iAnimGeneralFunctions ) + { + iAnimGeneralFunctions = CAnimGeneralFunctionsStub::NewL(); + } + + iModifiers = NULL; + MAnimGeneralFunctionsWindowExtension* ext = + static_cast( + iAnimGeneralFunctions->ExtendedInterface + ( MAnimGeneralFunctions::EWindowExtensionInterface ) ); + + iNumericKeyHandler = AiWsPlugin::CNumericKeyHandler::NewLC( 0, ext); + CleanupStack::Pop(); + + TRawEvent event; + event.Set( TRawEvent::EKeyDown, EStdKeyHash ); + + + AiWsPlugin::CEventHandler* handler = iNumericKeyHandler; + handler->SetUiStateQuery( *this ); + handler->OfferRawEvent(event); + TUid uidi(KNullUid); + TUint uintti(0); + RProperty::Get(uidi, uintti, iTestValue ); + + EUNIT_ASSERT_EQUALS( iTestValue, TInt(EPSAiNumberEntry )); + } + +void UT_NumericKeyHandler::TestHandlerFunctions1L() + { + AiWsPlugin::CEventHandler* handler = iNumericKeyHandler; + handler->SetUiStateQuery( *this ); + TRawEvent event; + event.Set( TRawEvent::EKeyDown, EStdKeyHash ); + iNumericKeyHandler->iQwertyMode = ETrue; + iNumericKeyHandler->CheckPostToTarget( event ); + + iNumericKeyHandler->iQwertyMode = EFalse; + iNumericKeyHandler->CheckPostToTarget( event ); + + event.Set( TRawEvent::EKeyDown, '5' ); + iNumericKeyHandler->iQwertyMode = ETrue; + iNumericKeyHandler->CheckPostToTarget( event ); + + event.Set( TRawEvent::EKeyDown, '5' ); + iNumericKeyHandler->iQwertyMode = EFalse; + iNumericKeyHandler->CheckPostToTarget( event ); + } +void UT_NumericKeyHandler::TestHandlerFunctions2L() + { + AiWsPlugin::CEventHandler* handler = iNumericKeyHandler; + handler->SetUiStateQuery( *this ); + iNumericKeyHandler->LoadInputLanguageKeyBindings(0); + iNumericKeyHandler->LoadInputLanguageKeyBindings(1); + iNumericKeyHandler->LoadInputLanguageKeyBindings(2); + iNumericKeyHandler->LoadInputLanguageKeyBindings(3); + iNumericKeyHandler->LoadInputLanguageKeyBindings(4); + iNumericKeyHandler->LoadInputLanguageKeyBindings(5); + iNumericKeyHandler->LoadInputLanguageKeyBindings(6); + } +void UT_NumericKeyHandler::TestHandlerFunctions3L() + { + AiWsPlugin::CEventHandler* handler = iNumericKeyHandler; + handler->SetUiStateQuery( *this ); + iNumericKeyHandler->HandleQwertyModeChanged(iNumericKeyHandler); + iNumericKeyHandler->HandleNotifyGeneric(0); + iNumericKeyHandler->HandleNotifyGeneric(1); + iNumericKeyHandler->HandleNotifyGeneric(KAknFepInputTxtLang); + } + +TUint UT_NumericKeyHandler::Modifiers() const + { + return iModifiers; + } + + +TBool UT_NumericKeyHandler::HasFocus() const + { + return ETrue; + } + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_NumericKeyHandler, + "Add test suite description here.", + "MODULE" ) + +EUNIT_TEST( + "Test creation", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + SetupL, TestNumericKeyCreationL, Teardown) + +EUNIT_TEST( + "Test Numeric event", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + SetupL, TestNumericKeyEventL, Teardown) + +EUNIT_TEST( + "Test Focus Change", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + SetupL, TestFocusChangeL, Teardown) + +EUNIT_TEST( + "Test Functions", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + SetupL, TestHandlerFunctions1L, Teardown) + +EUNIT_TEST( + "Test Functions", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + SetupL, TestHandlerFunctions2L, Teardown) + +EUNIT_TEST( + "Test Functions", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + SetupL, TestHandlerFunctions3L, Teardown) + + +// Enable this test when memory leak in CTpiEngine has bee fixed.(TSW:VRIA-6V7B4W) +/*EUNIT_TEST( + "Qwerty Mode Numeric event", + "CNumericKeyHandler", + "", + "FUNCTIONALITY", + EmptySetupL, TestNumericKeyEventQwertyModeL, Teardown)*/ + +EUNIT_END_TEST_TABLE + +// END OF FILE