diff -r 2c7f27287390 -r 053c6c7c14f3 idlefw/tsrc/wsplugin/ut_modifierkeytracker/src/ut_modifierkeytracker.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/tsrc/wsplugin/ut_modifierkeytracker/src/ut_modifierkeytracker.cpp Thu Aug 19 10:13:44 2010 +0300 @@ -0,0 +1,342 @@ +/* +* 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 + +// User includes +#include "modifierkeytracker.h" + +#include "ut_modifierkeytracker.h" + + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::NewL() +// +// ----------------------------------------------------------------------------- +// +UT_MofifierKeyTracker* UT_MofifierKeyTracker::NewL() + { + UT_MofifierKeyTracker* self = UT_MofifierKeyTracker::NewLC(); + CleanupStack::Pop(); + + return self; + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::NewLC() +// +// ----------------------------------------------------------------------------- +// +UT_MofifierKeyTracker* UT_MofifierKeyTracker::NewLC() + { + UT_MofifierKeyTracker* self = new( ELeave ) UT_MofifierKeyTracker(); + CleanupStack::PushL( self ); + + self->ConstructL(); + + return self; + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::~UT_MofifierKeyTracker() +// +// ----------------------------------------------------------------------------- +// +UT_MofifierKeyTracker::~UT_MofifierKeyTracker() + { + delete iTModifierKeyTracker; + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::UT_MofifierKeyTracker() +// +// ----------------------------------------------------------------------------- +// +UT_MofifierKeyTracker::UT_MofifierKeyTracker() + { + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::ConstructL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::SetupL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::SetupL() + { + iTModifierKeyTracker = new( ELeave ) AiWsPlugin::TModifierKeyTracker; + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::Teardown() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::Teardown() + { + delete iTModifierKeyTracker; + iTModifierKeyTracker = NULL; + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_ConstructL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_ConstructL() + { + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), 0 ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_NonModiferUpdateL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_NonModiferUpdateL() + { + TRawEvent testEvent; + testEvent.Set( TRawEvent::EKeyDown, EStdKeyDevice0 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), 0 ); + testEvent.Set( TRawEvent::EKeyUp, EStdKeyDevice0 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_TestModifierKeyDownL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_TestModifierKeyDownL( + TInt aScanCode, TUint aExcpectedStatus ) + { + TRawEvent testEvent; + testEvent.Set( TRawEvent::EKeyDown, aScanCode ); + EUNIT_ASSERT( iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), aExcpectedStatus ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_TestModifierKeyUpL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_TestModifierKeyUpL( + TInt aScanCode, TUint aExcpectedStatus ) + { + TRawEvent testEvent; + testEvent.Set( TRawEvent::EKeyUp, aScanCode ); + EUNIT_ASSERT( iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), aExcpectedStatus ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_SingleModiferUpdateL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_SingleModiferUpdateL( + TInt aScanCode, TUint aExcpectedStatus ) + { + T_TModifierKeyTracker_TestModifierKeyDownL( aScanCode, aExcpectedStatus ); + T_TModifierKeyTracker_TestModifierKeyUpL( aScanCode, 0 ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_SingleModiferUpdateL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_SingleModiferUpdateL() + { + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyLeftShift, EModifierLeftShift | EModifierShift ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyRightShift, EModifierRightShift | EModifierShift ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyLeftCtrl, EModifierLeftCtrl | EModifierCtrl ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyRightCtrl, EModifierRightCtrl | EModifierCtrl ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyLeftAlt, EModifierLeftAlt | EModifierAlt ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyRightAlt, EModifierRightAlt | EModifierAlt ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyLeftFunc, EModifierLeftFunc | EModifierFunc ); + + T_TModifierKeyTracker_SingleModiferUpdateL( + EStdKeyRightFunc, EModifierRightFunc | EModifierFunc ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_MultiModiferUpdateL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_MultiModiferUpdateL() + { + TUint expectedStatus = EModifierLeftShift | EModifierShift ; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyLeftShift, expectedStatus ); + expectedStatus |= EModifierRightShift; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyRightShift, expectedStatus ); + + expectedStatus |= EModifierLeftCtrl | EModifierCtrl; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyLeftCtrl, expectedStatus ); + expectedStatus |= EModifierRightCtrl; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyRightCtrl, expectedStatus ); + + expectedStatus |= EModifierLeftAlt | EModifierAlt; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyLeftAlt, expectedStatus ); + expectedStatus |= EModifierRightAlt; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyRightAlt, expectedStatus ); + + expectedStatus |= EModifierLeftFunc | EModifierFunc; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyLeftFunc, expectedStatus ); + expectedStatus |= EModifierRightFunc; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyRightFunc, expectedStatus ); + + expectedStatus &= ~EModifierLeftShift; + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyLeftShift, expectedStatus ); + expectedStatus &= ~(EModifierRightShift | EModifierShift); + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyRightShift, expectedStatus ); + + expectedStatus &= ~EModifierLeftCtrl; + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyLeftCtrl, expectedStatus ); + expectedStatus &= ~(EModifierRightCtrl | EModifierCtrl); + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyRightCtrl, expectedStatus ); + + expectedStatus &= ~EModifierLeftAlt; + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyLeftAlt, expectedStatus ); + expectedStatus &= ~(EModifierRightAlt | EModifierAlt); + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyRightAlt, expectedStatus ); + + expectedStatus &= ~EModifierLeftFunc; + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyLeftFunc, expectedStatus ); + expectedStatus &= ~(EModifierRightFunc | EModifierFunc); + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyRightFunc, expectedStatus ); + + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), 0 ); + } + +// ----------------------------------------------------------------------------- +// UT_MofifierKeyTracker::T_TModifierKeyTracker_MixedModiferNonModiferUpdateL() +// +// ----------------------------------------------------------------------------- +// +void UT_MofifierKeyTracker::T_TModifierKeyTracker_MixedModiferNonModiferUpdateL() + { + TUint expectedStatus = EModifierLeftShift | EModifierShift ; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyLeftShift, expectedStatus ); + + TRawEvent testEvent; + testEvent.Set( TRawEvent::EKeyDown, EStdKeyDevice0 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), expectedStatus ); + testEvent.Set( TRawEvent::EKeyUp, EStdKeyDevice0 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), expectedStatus ); + + expectedStatus |= EModifierLeftCtrl | EModifierCtrl; + T_TModifierKeyTracker_TestModifierKeyDownL( EStdKeyLeftCtrl, expectedStatus ); + + testEvent.Set( TRawEvent::EKeyDown, EStdKeyDevice1 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), expectedStatus ); + testEvent.Set( TRawEvent::EKeyUp, EStdKeyDevice1 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), expectedStatus ); + + expectedStatus &= ~(EModifierLeftShift | EModifierShift); + T_TModifierKeyTracker_TestModifierKeyUpL( EStdKeyLeftShift, expectedStatus ); + + testEvent.Set( TRawEvent::EKeyDown, EStdKeyDevice2 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), expectedStatus ); + testEvent.Set( TRawEvent::EKeyUp, EStdKeyDevice2 ); + EUNIT_ASSERT( !iTModifierKeyTracker->Update( testEvent ) ); + EUNIT_ASSERT_EQUALS( iTModifierKeyTracker->Status( ), expectedStatus ); + } + +// ----------------------------------------------------------------------------- +// Test case table +// +// ----------------------------------------------------------------------------- +// +EUNIT_BEGIN_TEST_TABLE( + UT_MofifierKeyTracker, + "Add test suite description here.", + "UNIT" ) + + EUNIT_TEST( + "Constructor", + "TModifierKeyTracker", + "Constructor", + "FUNCTIONALITY", + SetupL, T_TModifierKeyTracker_ConstructL, Teardown) + + EUNIT_TEST( + "Update - Single active modifier key", + "TModifierKeyTracker", + "Update", + "FUNCTIONALITY", + SetupL, T_TModifierKeyTracker_SingleModiferUpdateL, Teardown) + + EUNIT_TEST( + "Update - Multiple active modifier keys", + "TModifierKeyTracker", + "Update", + "FUNCTIONALITY", + SetupL, T_TModifierKeyTracker_MultiModiferUpdateL, Teardown) + + EUNIT_TEST( + "Update - Mixed modfier and other keys", + "TModifierKeyTracker", + "Update", + "FUNCTIONALITY", + SetupL, T_TModifierKeyTracker_MixedModiferNonModiferUpdateL, Teardown) + +EUNIT_END_TEST_TABLE + +// End of file