diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tauto/tmultiptrevent.h --- a/windowing/windowserver/tauto/tmultiptrevent.h Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,283 +0,0 @@ -// Copyright (c) 2008-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: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#ifndef TMULTIPTREVENT_H_ -#define TMULTIPTREVENT_H_ - -#include -#include -#include "w32std.h" -#include "../tlib/testbase.h" -#include "AUTO.H" -#include "AUTODLL.H" -#include "../TClick/multiptrclick.h" -#include "TGraphicsHarness.h" - -class CTMultiPtrEventTest; -class CTMultiPtrEventClient; - -/* - * CTEvent derived class which acts as eventhandler and eventbuffer - * Stores the events in buffer, which is used for comparing events received from wserv. - */ -class CTMultiPtrEventBuffer : public CTEvent - { - enum {EEventBufferSize=40, EMovePtsBuffer=10}; -public: - CTMultiPtrEventBuffer(RWsSession *aWs, CTMultiPtrEventTest *aTest, CTMultiPtrEventClient* aClient); - void ConstructL(); - void AddExpectedEvent(TWsEvent &aEvent); - void AddExpectedMovePtEvent(TPoint &aMovePt); - TInt EventsRemaining(); - void SetEventCount(TInt aCount) {iEventCount = aCount;} - void SetNestedLoopState(TBool aLoopStart) {iNestedLoopStarted = aLoopStart;} - TBool NestedLoopState() {return iNestedLoopStarted;} - void GetMoveBufferAndCompareL(); -protected: - // Pure virtual from CTEventBase - void doRunL(); -private: - void TestL(TInt aTest); - void TestL(TInt aTest, TInt aVal1, TInt aVal2,const char *oper, const char *aTestStr, - const TWsEvent *aEvent, const TWsEvent *aExpected, const char *aFile, TUint aLine); - void TestL(TInt aTest, TPoint aVal1, TPoint aVal2,const char *oper, const char *aTestStr, - const TWsEvent *aEvent, const TWsEvent *aExpected, const char *aFile, TUint aLine); -private: - CCirBuf iEventBuffer; - CCirBuf iMovePtsBuffer; - CTMultiPtrEventTest* iTest; - TInt iEventCount; - CTMultiPtrEventClient* iClient; - TBool iNestedLoopStarted; - }; - - -/* - * CTClient derived class which gives Wserv client environment - * i,e iWs, iScreen, iGc, iGroup, iEventHandler etc... - * Owns CTMultiPtrEventBuffer and stores in iEventhandler of its base class - * Accepts the event from test class and passes them on to buffer class - */ -class CTMultiPtrEventClient : public CTClient - { -public: - CTMultiPtrEventClient(CTMultiPtrEventTest *aTest, TBool aSecondaryClient = EFalse); - ~CTMultiPtrEventClient(); - void ConstructL(); - - inline CTBlankWindow* ParentWin() { return iParentWin; } - inline CTBlankWindow* ChildWin() { return iChildWin; } - inline CTMultiPtrEventBuffer* EventBuffer() {return static_cast(iEventHandler);} - inline void SetExpectNonAdvancedPointerEvents() {iExpectNonAdvancedPointerEvents=ETrue;}; - inline void ClearExpectNonAdvancedPointerEvents() {iExpectNonAdvancedPointerEvents=EFalse;}; - - TBool IsSecondaryClient() {return iSecondaryClient;} - - void AddExpectedPointerEvent(TPointerEvent::TType aType, TPoint aPos, TUint8 aPointerNumber, TUint aHandle = 0); - void AddExpectedPointerEvent(TPointerEvent::TType aType, TPoint aPos, TInt aZ, TUint aModifier, TUint8 aPointerNumber, TUint aHandle = 0); - void AddExpectedWsEvent(TEventCode aType, TInt aPointerNumber = 0, TUint aHandle = 0); - void AddExpectedMovePoint(TPoint aPos); - void CalculatePtrPosAndSet3Ddata(TWsEvent& aEvent, TPointerEvent::TType aType, TPoint aPos, TUint aModifiers, TInt aZ, TUint8 aPointerNumber, TUint aHandle); - void ConstructGroupBlankWinL(); - void DeleteGroupBlankWin(); - TBool CheckOrdinalPosition(TInt aWinAutoFocus1); - - // Virtual from CTClient - void ConstructEventHandlerL(); - -private: - CTMultiPtrEventTest* iTest; - TSize iParentWinSize; - TPoint iParentWinPos; - TSize iChildWinSize; - TPoint iChildWinPos; - CTBlankWindow* iParentWin; - CTBlankWindow* iChildWin; - - TBool iSecondaryClient; - - // For AutoFocus test - CTWindowGroup* iGroupWinAutoFocus1; - CTWindowGroup* iGroupWinAutoFocus2; - CTBlankWindow* iWinAutoFocus1; - CTBlankWindow* iWinAutoFocus2; - - TSize iWinSizeAutoFocus1; - TPoint iWinPosAutoFocus1; - TSize iWinSizeAutoFocus2; - TPoint iWinPosAutoFocus2; - TBool iExpectNonAdvancedPointerEvents; - }; - -class RMultiPointerAnim : public RTestAnim - { -public: - static RMultiPointerAnim* NewL(RWindowBase* aWin, RAnimDll* aDll); - RMultiPointerAnim(RAnimDll* aDll) :RTestAnim(*aDll) {} - TInt AddExpectedAnimPointerEvent(TRawEvent::TType aType, TPoint aPos, TInt aZ, TUint aModifier, TUint8 aPointerNumber, TBool aEat = ETrue); - }; - -/* - * CTWsGraphicsBase derived class which implements RunTestCaseL pure virtual. - * Runs all the testcases for multi poniter events. - * For each test case it creates CTMultiPtrEventClient object and creates a nested activescheduler - * Calls NextSetOfEventsL() which in turn calls respective tests depending upong the testcase number - * For each test simulates the events and adds the same event to CTMultiPtrEventBuffer - * When all the tests for a particular testcase completes stops activescheduler - * Repeats the same for all testcases - */ -class CTMultiPtrEventTest : public CTWsGraphicsBase - { -public: - CTMultiPtrEventTest(CTestStep* aStep); - ~CTMultiPtrEventTest(); - void ConstructL(); - void NextSetOfEventsL(); - void Failed(); - - // Functions for simulating events, which use UserSvr::AddEvent - void SimulatePointerEvent(TRawEvent::TType aType, TInt aX, TInt aY, TUint8 aPointerNumber); - void SimulatePointerEvent(TRawEvent::TType aType, TInt aX, TInt aY, TInt aZ, TUint8 aPointerNumber); - void SimulatePointerDownUp(TInt aX, TInt aY, TInt aZ, TUint8 aPointerNumber); - - // Functions for adding event, calls the client's AddExpectedPointer - void AddExpectedPointerEvent(TPointerEvent::TType aType, TPoint aPos, TUint8 aPointerNumber, TUint aHandle = 0); - void AddExpectedPointerEvent(TPointerEvent::TType aType, TPoint aPos, TInt aZ, TUint aModifier, TUint8 aPointerNumber, TUint aHandle = 0, TBool aSecondaryClient = EFalse); - void AddExpectedPointerDownUp(TPoint aPos, TInt aZ, TUint8 aPointerNumber); - void AddExpectedWsEvent(TEventCode aType, TBool aSecondaryClient = EFalse, TInt aPointerNumber = 0, TUint aHandle = 0); - void AddExpectedMultiPtrClickEvent(TPointerEvent::TType aType, TPoint aPos, TInt aZ, TUint aModifier, TUint8 aPointerNumber, TUint aHandle = 0); - void AddExpectedMultiPtrClickOtherEvent(TPointerEvent::TType aType, TPoint aPos, TInt aZ, TUint aModifier, TUint8 aPointerNumber, TUint aHandle); - - void AddExpectedKey(TInt aEventCode, TInt aScanCode, TInt aCode/*=0*/, TInt aRepeats/*=0*/, TUint aModifiers/*=0*/); - void AddExpectedKeyDownUp(TInt aScanCode, TInt aCode=0, TInt aRepeats=0, TUint aModifiers=0); - - // Supplementary function for tests - void TestDragForMultiPointer(TPoint aPtrPos, TInt aPrValue, TUint8 aPointerNumber); - void SimulateAndAddLoneUpEvents(TInt aNumSimulation, TInt aNumAddition, TPoint aPos); - void TestAndDisplayAnimError(); - void GetRemainingEventsFromSecondaryClient(); - void TestAndDisplayPtrClickError(); - void CreatePointerClickPluginL(); - void SetAutoFlush(); - void ResetFlushStopAS(); - void TestFilteringForMultiPointer(TBool aFiltering); - void TestGrabbingForMultiPointer(TBool aGrabbing); - void CreateGroupWinL(); - void DeleteGroupWin(); - void CreateGroupWinForCapturingL(); - void DeleteGroupWinForCapturing(); - void CreateAnimDllAndAnimL(); - void DestroyAnimDllAndAnim(); - void TestCloseProximityHighPressureAPIsL(); - void TestCapturingForMultiPointer(TBool aAllGroups); - void SetThresholdValues(TInt aEnterCloseProx, TInt aExitCloseProx, TInt aEnterHighPres, TInt aExitHighPres); - void NegativeTestingOfProximityPressureAPIsL(); - void TestErrorCodeL(TInt aExpErrCode, TInt aActualErrCode); - void SimulateProximityAndPressureEvents(TInt aCloseProxEnterValue, TInt aCloseProxExitValue, TInt aHighPresEnterValue, TInt aHighPresExitValue); - void SetDefaultScreenMode(); - TPoint GetPointerPostionOnRotatedMode(TPoint aPointerPos, CFbsBitGc::TGraphicsOrientation aRotation); - void LogEventsAdded(); - - // All tests - void MultiPointerEvents(); - void PurgingMultiPointerEvents(); - void MultiPointerEventsForAnimsL(); - void MultiClientMultiPointerEvents(); - void MultiPointerEventsForPointerClickL(); - void MultiPointerEventsInDiffScreenModes(); - void FilteringMultiPointerEvents(); - void GrabbingMultiPointerEvents(); - void VirtualKeyBoardForMultiplePointers(); - void DoubleClickForMultiplePointers(); - void MultiPointerOutOfRangeEvents(); - void AutoForeGroundForMultiplePointersL(); - void EmulationRulesForMultiplePointers(); - void CloseProximityAndHighPressureEventsL(); - void OutOfBoundValueTesting(); - void CapturingMultiPointerEvents(); - void NegativeTestsForProximityPressureEventsL(); - void PointerRepeatEventForMultiplePointers(); - void SetExpectNonAdvancedPointerEvents(TBool aSecondaryClient=EFalse); - void ClearExpectNonAdvancedPointerEvents(TBool aSecondaryClient=EFalse); - -protected: - void RunTestCaseL(TInt aCurTestCase); -private: - void RunTestsL(); -private: - TInt iEventSet; // Set of events for one particular test case - TBool iFailed; - TBool iActiveSchedulerStarted; - TBool iTheClientFlush; - TBool iClientFlush; - TBool iSecClientFlush; - TSize iPhysicalScreenSize; - TRect iOrigPtrCursorArea; - - TUint iPointerNumber; - TInt iMaxDevPointers; - TInt iMaxUiPointers; - TInt iMaxPressure; - TInt iPressureStep; - TInt iMaxProximity; - TInt iProximityStep; - - TInt iEnterCloseProximityThreshold; - TInt iExitCloseProximityThreshold; - TInt iEnterHighPressureThreshold; - TInt iExitHighPressureThreshold; - - CTMultiPtrEventClient *iMultiPtrEventClient; - CTMultiPtrEventClient *iSecMultiPtrEventClient; - - RAnimDll* iAnimDll; - RMultiPointerAnim* iAnim; - - RSoundPlugIn iClick; - TBool iPtrPluginLoaded; - RChunk iChunk; - RHeap* iHeap; - TAny* iErrDesc; - - TInt iCurrentScreenMode; - TBool iChangeScreenMode; - - CTWindowGroup* iGroupWinForEmul; - CTBlankWindow* iWinForEmul; - - CTWindowGroup* iGroupWinForCapturing; - CTBlankWindow* iWinForCapturing; - - TInt iYOffset; - }; - -class CTMultiPtrEventTestStep : public CTGraphicsStep - { -public: - CTMultiPtrEventTestStep(); -protected: - //from CTGraphicsStep - virtual CTGraphicsBase* CreateTestL(); - }; - -_LIT(KTMultiPtrEventTestStep, "TMultiPtrEventTest"); - -#endif /*TMULTIPTREVENT_H_*/