windowing/windowserver/test/tauto/tmultiptrevent.cpp
changeset 194 18f84489a694
parent 110 7f25ef56562d
equal deleted inserted replaced
183:6a1564a2f3e6 194:18f84489a694
     9 // Nokia Corporation - initial contribution.
     9 // Nokia Corporation - initial contribution.
    10 //
    10 //
    11 // Contributors:
    11 // Contributors:
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 // Multi pointer and Z-coordinate test code
    14 // Multipointer and Z-coordinate test code
    15 // 
    15 // 
    16 //
    16 //
    17 
    17 
    18 /**
    18 /**
    19  @file
    19  @file
  1461 /**
  1461 /**
  1462 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0019
  1462 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0019
  1463 @SYMPREQ				PREQ1226
  1463 @SYMPREQ				PREQ1226
  1464 @SYMREQ					REQ9677,REQ9683,
  1464 @SYMREQ					REQ9677,REQ9683,
  1465 @SYMTestPriority		High
  1465 @SYMTestPriority		High
  1466 @SYMTestCaseDesc		Checks Wserv supports Capturing in case of multi pointer events.
  1466 @SYMTestCaseDesc		Checks Wserv supports Capturing in case of multipointer events.
  1467 @SYMTestStatus			Implemented
  1467 @SYMTestStatus			Implemented
  1468 
  1468 
  1469 @SYMTestActions			Create a window with group window as its parent. 
  1469 @SYMTestActions			Create a window with group window as its parent. 
  1470 						Create another window with same parent and partially overlapping the first one. 
  1470 						Create another window with same parent and partially overlapping the first one. 
  1471 						SetPointerCapture for second window with TCaptureEnabled flag. 
  1471 						SetPointerCapture for second window with TCaptureEnabled flag. 
  1480 						capturing even if events were simulated on a window from different group
  1480 						capturing even if events were simulated on a window from different group
  1481 						
  1481 						
  1482 */
  1482 */
  1483 void CTMultiPtrEventTest::CapturingMultiPointerEvents()
  1483 void CTMultiPtrEventTest::CapturingMultiPointerEvents()
  1484 	{
  1484 	{
  1485 	// Test Capturing of multi pointer events
  1485 	// Test Capturing of multipointer events
  1486 	// 1. Test Wserv supports Capturing in case of multi-pointer events
  1486 	// 1. Test Wserv supports Capturing in case of multipointer events
  1487 	// 2. Test pointer events are delivered correctly when Capturing is disabled.
  1487 	// 2. Test pointer events are delivered correctly when Capturing is disabled.
  1488 	TLogMessageText logText;
  1488 	TLogMessageText logText;
  1489 	_LIT(KSet, "CapturingMultiPtrEvents SetOfEvents: %d of 3");
  1489 	_LIT(KSet, "CapturingMultiPtrEvents SetOfEvents: %d of 3");
  1490 	logText.AppendFormat(KSet, iEventSet);
  1490 	logText.AppendFormat(KSet, iEventSet);
  1491 	LOG_MESSAGE(logText);
  1491 	LOG_MESSAGE(logText);
  1511 				SimulatePointerEvent(TRawEvent::EPointer3DOutOfRange, 0, 0, 0, ptrNum);
  1511 				SimulatePointerEvent(TRawEvent::EPointer3DOutOfRange, 0, 0, 0, ptrNum);
  1512 				AddExpectedPointerEvent(TPointerEvent::EOutOfRange, ptrPos, ptrNum);
  1512 				AddExpectedPointerEvent(TPointerEvent::EOutOfRange, ptrPos, ptrNum);
  1513 				}
  1513 				}
  1514 			break;			
  1514 			break;			
  1515 		case 1:
  1515 		case 1:
  1516 			INFO_PRINTF1(_L("Check Wserv supports Capturing in case of multi-pointer events, within window group"));
  1516 			INFO_PRINTF1(_L("Check Wserv supports Capturing in case of multipointer events, within window group"));
  1517 			iMultiPtrEventClient->ChildWin()->BaseWin()->SetPointerCapture(RWindowBase::TCaptureEnabled);
  1517 			iMultiPtrEventClient->ChildWin()->BaseWin()->SetPointerCapture(RWindowBase::TCaptureEnabled);
  1518 			TestCapturingForMultiPointer(EFalse);
  1518 			TestCapturingForMultiPointer(EFalse);
  1519 			break;	
  1519 			break;	
  1520 		case 2:
  1520 		case 2:
  1521 			INFO_PRINTF1(_L("Check Wserv supports Capturing in case of multi-pointer events, from different window groups"));
  1521 			INFO_PRINTF1(_L("Check Wserv supports Capturing in case of multipointer events, from different window groups"));
  1522 			TRAPD(err, CreateGroupWinForCapturingL());	// it cannot leave so trap and fail
  1522 			TRAPD(err, CreateGroupWinForCapturingL());	// it cannot leave so trap and fail
  1523 			if (err != KErrNone)
  1523 			if (err != KErrNone)
  1524 				{
  1524 				{
  1525 				Failed();
  1525 				Failed();
  1526 				}			
  1526 				}			
  2862 /**
  2862 /**
  2863 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0032
  2863 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0032
  2864 @SYMPREQ				PREQ1226
  2864 @SYMPREQ				PREQ1226
  2865 @SYMREQ					REQ9677
  2865 @SYMREQ					REQ9677
  2866 @SYMTestPriority		High
  2866 @SYMTestPriority		High
  2867 @SYMTestCaseDesc		Checks Wserv supports Double click events for multi pointer events.
  2867 @SYMTestCaseDesc		Checks Wserv supports Double click events for multipointer events.
  2868 @SYMTestStatus			Implemented
  2868 @SYMTestStatus			Implemented
  2869 
  2869 
  2870 @SYMTestActions			Simulate double click events from different pointers 			
  2870 @SYMTestActions			Simulate double click events from different pointers 			
  2871 @SYMTestExpectedResults The received events must match the simulated pointer events
  2871 @SYMTestExpectedResults The received events must match the simulated pointer events
  2872 */
  2872 */
  2911 /**
  2911 /**
  2912 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0031
  2912 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0031
  2913 @SYMPREQ				PREQ1226
  2913 @SYMPREQ				PREQ1226
  2914 @SYMREQ					REQ9677
  2914 @SYMREQ					REQ9677
  2915 @SYMTestPriority		High
  2915 @SYMTestPriority		High
  2916 @SYMTestCaseDesc		Checks Wserv supports Virtual keyboard for multi pointer events.
  2916 @SYMTestCaseDesc		Checks Wserv supports Virtual keyboard for multipointer events.
  2917 @SYMTestStatus			Implemented
  2917 @SYMTestStatus			Implemented
  2918 
  2918 
  2919 @SYMTestActions			Create virtual keyboard by AddKeyRect() to a window and simulate pointer events from all pointers			
  2919 @SYMTestActions			Create virtual keyboard by AddKeyRect() to a window and simulate pointer events from all pointers			
  2920 @SYMTestExpectedResults The received events must match the simulated Key events
  2920 @SYMTestExpectedResults The received events must match the simulated Key events
  2921 */
  2921 */
  2970 /**
  2970 /**
  2971 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0021
  2971 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0021
  2972 @SYMPREQ				PREQ1226
  2972 @SYMPREQ				PREQ1226
  2973 @SYMREQ					REQ9677,REQ9683,
  2973 @SYMREQ					REQ9677,REQ9683,
  2974 @SYMTestPriority		High
  2974 @SYMTestPriority		High
  2975 @SYMTestCaseDesc		Checks Wserv supports Grabbing in case of multi pointer events.
  2975 @SYMTestCaseDesc		Checks Wserv supports Grabbing in case of multipointer events.
  2976 @SYMTestStatus			Implemented
  2976 @SYMTestStatus			Implemented
  2977 
  2977 
  2978 @SYMTestActions			Simulate EButton1Down events on iParentWin. Simulate Drag and Button1Up events on iChildWin.
  2978 @SYMTestActions			Simulate EButton1Down events on iParentWin. Simulate Drag and Button1Up events on iChildWin.
  2979  						SetPointerGrab is called on iParentWin for first test and disabled for the second. 
  2979  						SetPointerGrab is called on iParentWin for first test and disabled for the second. 
  2980 @SYMTestExpectedResults The Drag and Button1Up events contain a handle to iParentWin when Grabbing active. 
  2980 @SYMTestExpectedResults The Drag and Button1Up events contain a handle to iParentWin when Grabbing active. 
  2981 						The Drag and Button1Up events contain a handle to iChildWin when Grabbing disabled.
  2981 						The Drag and Button1Up events contain a handle to iChildWin when Grabbing disabled.
  2982 */
  2982 */
  2983 void CTMultiPtrEventTest::GrabbingMultiPointerEvents()
  2983 void CTMultiPtrEventTest::GrabbingMultiPointerEvents()
  2984 	{
  2984 	{
  2985 	// Test Grabbing of multi pointer events
  2985 	// Test Grabbing of multipointer events
  2986 	// 1. Test Wserv supports Grabbing in case of multi-pointer events
  2986 	// 1. Test Wserv supports Grabbing in case of multipointer events
  2987 	// 2. Test pointer events are delivered correctly when Grabbing is disabled.
  2987 	// 2. Test pointer events are delivered correctly when Grabbing is disabled.
  2988 	TLogMessageText logText;
  2988 	TLogMessageText logText;
  2989 	_LIT(KSet, "GrabbingMultiPtrEvents SetOfEvents: %d of 2");
  2989 	_LIT(KSet, "GrabbingMultiPtrEvents SetOfEvents: %d of 2");
  2990 	logText.AppendFormat(KSet, iEventSet);
  2990 	logText.AppendFormat(KSet, iEventSet);
  2991 	LOG_MESSAGE(logText);
  2991 	LOG_MESSAGE(logText);
  3000 	TPoint ptrPos;
  3000 	TPoint ptrPos;
  3001 		
  3001 		
  3002 	switch(iEventSet++)
  3002 	switch(iEventSet++)
  3003 		{
  3003 		{
  3004 		case 0:
  3004 		case 0:
  3005 			INFO_PRINTF1(_L("Check Wserv supports Grabbing in case of multi-pointer events"));
  3005 			INFO_PRINTF1(_L("Check Wserv supports Grabbing in case of multipointer events"));
  3006 			// Check pointer events are delivered to the window where the EButton1Down event occured, 
  3006 			// Check pointer events are delivered to the window where the EButton1Down event occured, 
  3007 			// even if subsequent events are simulated outside this window.
  3007 			// even if subsequent events are simulated outside this window.
  3008 			AddExpectedWsEvent(EEventFocusGained);
  3008 			AddExpectedWsEvent(EEventFocusGained);
  3009 			iMultiPtrEventClient->ParentWin()->BaseWin()->PointerFilter(EPointerFilterDrag, 0);
  3009 			iMultiPtrEventClient->ParentWin()->BaseWin()->PointerFilter(EPointerFilterDrag, 0);
  3010 			iMultiPtrEventClient->ParentWin()->BaseWin()->SetPointerGrab(ETrue);
  3010 			iMultiPtrEventClient->ParentWin()->BaseWin()->SetPointerGrab(ETrue);
  3026 /**
  3026 /**
  3027 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0025
  3027 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0025
  3028 @SYMPREQ				PREQ1226
  3028 @SYMPREQ				PREQ1226
  3029 @SYMREQ					REQ9677,REQ9683,
  3029 @SYMREQ					REQ9677,REQ9683,
  3030 @SYMTestPriority		High
  3030 @SYMTestPriority		High
  3031 @SYMTestCaseDesc		Checks Wserv supports Filtering in case of multi pointer events.
  3031 @SYMTestCaseDesc		Checks Wserv supports Filtering in case of multipointer events.
  3032 @SYMTestStatus			Implemented
  3032 @SYMTestStatus			Implemented
  3033 
  3033 
  3034 @SYMTestActions			Simulate Move and Drag events. Add only Button1Up and Button1Down to TWsEvent buffer.
  3034 @SYMTestActions			Simulate Move and Drag events. Add only Button1Up and Button1Down to TWsEvent buffer.
  3035    						Disable Filtering and repeat test with the addition of Move and Drag events to TWsEvent buffer. 
  3035    						Disable Filtering and repeat test with the addition of Move and Drag events to TWsEvent buffer. 
  3036 @SYMTestExpectedResults The received events must match the expected simulated raw events
  3036 @SYMTestExpectedResults The received events must match the expected simulated raw events
  3037 						The received events must match the simulated raw events
  3037 						The received events must match the simulated raw events
  3038 */
  3038 */
  3039 void CTMultiPtrEventTest::FilteringMultiPointerEvents()
  3039 void CTMultiPtrEventTest::FilteringMultiPointerEvents()
  3040 	{
  3040 	{
  3041 	// Test Filtering of multi pointer events
  3041 	// Test Filtering of multipointer events
  3042 	// 1. Test pointer move and drag events are filtered correctly by Wserv
  3042 	// 1. Test pointer move and drag events are filtered correctly by Wserv
  3043 	// 2. Test pointer events are delivered correctly when Filtered is disabled.
  3043 	// 2. Test pointer events are delivered correctly when Filtered is disabled.
  3044 	TLogMessageText logText;
  3044 	TLogMessageText logText;
  3045 	_LIT(KSet, "FilteringMultiPtrEvents SetOfEvents: %d of 2");
  3045 	_LIT(KSet, "FilteringMultiPtrEvents SetOfEvents: %d of 2");
  3046 	logText.AppendFormat(KSet, iEventSet);
  3046 	logText.AppendFormat(KSet, iEventSet);
  3056 	TPoint ptrPos;
  3056 	TPoint ptrPos;
  3057 		
  3057 		
  3058 	switch(iEventSet++)
  3058 	switch(iEventSet++)
  3059 		{
  3059 		{
  3060 		case 0:
  3060 		case 0:
  3061 			INFO_PRINTF1(_L("Check pointer move and drag events are filtered with multi-pointer events"));
  3061 			INFO_PRINTF1(_L("Check pointer move and drag events are filtered with multipointer events"));
  3062 			// Check pointer move and drag events are filtered by Wserv
  3062 			// Check pointer move and drag events are filtered by Wserv
  3063 			AddExpectedWsEvent(EEventFocusGained);
  3063 			AddExpectedWsEvent(EEventFocusGained);
  3064 			
  3064 			
  3065 			// Ensure default values are set i.e. Drag and Move events are filtered out and not delivered to the client.
  3065 			// Ensure default values are set i.e. Drag and Move events are filtered out and not delivered to the client.
  3066 			iMultiPtrEventClient->ParentWin()->BaseWin()->PointerFilter(EPointerFilterDrag|EPointerFilterMove,
  3066 			iMultiPtrEventClient->ParentWin()->BaseWin()->PointerFilter(EPointerFilterDrag|EPointerFilterMove,
  3067 																		EPointerFilterDrag|EPointerFilterMove);
  3067 																		EPointerFilterDrag|EPointerFilterMove);
  3068 			TestFilteringForMultiPointer(ETrue);
  3068 			TestFilteringForMultiPointer(ETrue);
  3069 			break;	
  3069 			break;	
  3070 		case 1:
  3070 		case 1:
  3071 			INFO_PRINTF1(_L("Check pointer move and drag events are not filtered, with multi-pointer events, when filtering is disabled"));
  3071 			INFO_PRINTF1(_L("Check pointer move and drag events are not filtered, with multipointer events, when filtering is disabled"));
  3072 			// Check move and drag events are not filtered by Wserv when filtering is disabled					
  3072 			// Check move and drag events are not filtered by Wserv when filtering is disabled					
  3073 
  3073 
  3074 			// Enable Drag and Move events
  3074 			// Enable Drag and Move events
  3075 			iMultiPtrEventClient->ParentWin()->BaseWin()->PointerFilter(EPointerFilterDrag|EPointerFilterMove, 0);
  3075 			iMultiPtrEventClient->ParentWin()->BaseWin()->PointerFilter(EPointerFilterDrag|EPointerFilterMove, 0);
  3076 			TestFilteringForMultiPointer(EFalse);
  3076 			TestFilteringForMultiPointer(EFalse);
  3121 /**
  3121 /**
  3122 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0028
  3122 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0028
  3123 @SYMPREQ				PREQ1226
  3123 @SYMPREQ				PREQ1226
  3124 @SYMREQ					REQ9677, REQ9683
  3124 @SYMREQ					REQ9677, REQ9683
  3125 @SYMTestPriority		High 
  3125 @SYMTestPriority		High 
  3126 @SYMTestCaseDesc		To check Wserv sends multi pointer events in Different screen modes
  3126 @SYMTestCaseDesc		To check Wserv sends multipointer events in Different screen modes
  3127 @SYMTestStatus			Implemented
  3127 @SYMTestStatus			Implemented
  3128 
  3128 
  3129 @SYMTestActions			Simulate multi pointer events in Different screenmodes
  3129 @SYMTestActions			Simulate multipointer events in Different screenmodes
  3130 @SYMTestExpectedResults The received events must match the simulated raw events  
  3130 @SYMTestExpectedResults The received events must match the simulated raw events  
  3131 */
  3131 */
  3132 void CTMultiPtrEventTest::MultiPointerEventsInDiffScreenModes()
  3132 void CTMultiPtrEventTest::MultiPointerEventsInDiffScreenModes()
  3133 	{
  3133 	{
  3134 	// Logic inloved, For a particular screen mode check pointer down/up, moves and drags
  3134 	// Logic inloved, For a particular screen mode check pointer down/up, moves and drags
  3135 	// for different pointers and for different co-ordinates.
  3135 	// for different pointers and for different co-ordinates.
  3136 	// For each screen mode check these events on diffferent rotation that screen mode supports
  3136 	// For each screen mode check these events on diffferent rotation that screen mode supports
  3137 	// During the last switch case increment the screenmode
  3137 	// During the last switch case increment the screenmode
  3138 	TLogMessageText logText;
  3138 	TLogMessageText logText;
  3139 	_LIT(KSet, "Multi pointer events in screenmode(%d): %d of 2");
  3139 	_LIT(KSet, "Multipointer events in screenmode(%d): %d of 2");
  3140 	logText.AppendFormat(KSet, iCurrentScreenMode+1, iEventSet);
  3140 	logText.AppendFormat(KSet, iCurrentScreenMode+1, iEventSet);
  3141 	LOG_MESSAGE(logText);
  3141 	LOG_MESSAGE(logText);
  3142 	
  3142 	
  3143 	TInt numScrMode = iMultiPtrEventClient->iScreen->NumScreenModes();
  3143 	TInt numScrMode = iMultiPtrEventClient->iScreen->NumScreenModes();
  3144 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3144 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3506 /**
  3506 /**
  3507 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0027
  3507 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0027
  3508 @SYMPREQ				PREQ1226
  3508 @SYMPREQ				PREQ1226
  3509 @SYMREQ					REQ9677, REQ9683
  3509 @SYMREQ					REQ9677, REQ9683
  3510 @SYMTestPriority		High 
  3510 @SYMTestPriority		High 
  3511 @SYMTestCaseDesc		To check Wserv sends multi pointer events to PointerClickPlugin
  3511 @SYMTestCaseDesc		To check Wserv sends multipointer events to PointerClickPlugin
  3512 @SYMTestStatus			Implemented
  3512 @SYMTestStatus			Implemented
  3513 
  3513 
  3514 @SYMTestActions			Simulate multi pointer events for PointerClickPlugin
  3514 @SYMTestActions			Simulate multipointer events for PointerClickPlugin
  3515 @SYMTestExpectedResults The received events must match the simulated raw events  
  3515 @SYMTestExpectedResults The received events must match the simulated raw events  
  3516 */
  3516 */
  3517 void CTMultiPtrEventTest::MultiPointerEventsForPointerClickL()
  3517 void CTMultiPtrEventTest::MultiPointerEventsForPointerClickL()
  3518 	{
  3518 	{
  3519 	TLogMessageText logText;
  3519 	TLogMessageText logText;
  3520 	_LIT(KSet, "Multi pointer events for PointerClickPlugin: %d of 4");
  3520 	_LIT(KSet, "Multipointer events for PointerClickPlugin: %d of 4");
  3521 	logText.AppendFormat(KSet, iEventSet);
  3521 	logText.AppendFormat(KSet, iEventSet);
  3522 	LOG_MESSAGE(logText);
  3522 	LOG_MESSAGE(logText);
  3523 	
  3523 	
  3524 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3524 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3525 	if (!iEventSet)
  3525 	if (!iEventSet)
  3644 /**
  3644 /**
  3645 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0011
  3645 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0011
  3646 @SYMPREQ				PREQ1226
  3646 @SYMPREQ				PREQ1226
  3647 @SYMREQ					REQ9677,REQ9674,
  3647 @SYMREQ					REQ9677,REQ9674,
  3648 @SYMTestPriority		High 
  3648 @SYMTestPriority		High 
  3649 @SYMTestCaseDesc		To check Wserv sends Multi Pointer events to correct clients
  3649 @SYMTestCaseDesc		To check Wserv sends multipointer events to correct clients
  3650 @SYMTestStatus			Implemented
  3650 @SYMTestStatus			Implemented
  3651 
  3651 
  3652 @SYMTestActions			Simulate multi pointer events on windows from different client.
  3652 @SYMTestActions			Simulate multipointer events on windows from different client.
  3653 @SYMTestExpectedResults The received events must match the simulated raw events 
  3653 @SYMTestExpectedResults The received events must match the simulated raw events 
  3654 */
  3654 */
  3655 void CTMultiPtrEventTest::MultiClientMultiPointerEvents()
  3655 void CTMultiPtrEventTest::MultiClientMultiPointerEvents()
  3656 	{
  3656 	{
  3657 	// Logic for this test code
  3657 	// Logic for this test code
  3659 	// Simulate events for both main client and secondary simulataneously
  3659 	// Simulate events for both main client and secondary simulataneously
  3660 	// Get events from DoRunL() of event buffer class
  3660 	// Get events from DoRunL() of event buffer class
  3661 	// Before running next set of events, get all the events from secondary client
  3661 	// Before running next set of events, get all the events from secondary client
  3662 	// If test fails on any client make sure both active scheduler are stopped
  3662 	// If test fails on any client make sure both active scheduler are stopped
  3663 	TLogMessageText logText;
  3663 	TLogMessageText logText;
  3664 	_LIT(KSet, "Multi pointer events for Multi client: %d of 5");
  3664 	_LIT(KSet, "Multipointer events for Multi client: %d of 5");
  3665 	logText.AppendFormat(KSet, iEventSet);
  3665 	logText.AppendFormat(KSet, iEventSet);
  3666 	LOG_MESSAGE(logText);
  3666 	LOG_MESSAGE(logText);
  3667 	
  3667 	
  3668 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3668 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3669 	iSecMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3669 	iSecMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3935 /**
  3935 /**
  3936 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0013
  3936 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0013
  3937 @SYMPREQ				PREQ1226
  3937 @SYMPREQ				PREQ1226
  3938 @SYMREQ					REQ9677,REQ9683,
  3938 @SYMREQ					REQ9677,REQ9683,
  3939 @SYMTestPriority		High 
  3939 @SYMTestPriority		High 
  3940 @SYMTestCaseDesc		To check Wserv sends Multi Pointer events to Anims
  3940 @SYMTestCaseDesc		To check Wserv sends multipointer events to Anims
  3941 @SYMTestStatus			Implemented
  3941 @SYMTestStatus			Implemented
  3942 
  3942 
  3943 @SYMTestActions			Simulate multi pointer events for anims
  3943 @SYMTestActions			Simulate multipointer events for anims
  3944 @SYMTestExpectedResults The received events must match the simulated raw events 
  3944 @SYMTestExpectedResults The received events must match the simulated raw events 
  3945 */
  3945 */
  3946 void CTMultiPtrEventTest::MultiPointerEventsForAnimsL()
  3946 void CTMultiPtrEventTest::MultiPointerEventsForAnimsL()
  3947 	{
  3947 	{
  3948 	// The logic behind these tests is
  3948 	// The logic behind these tests is
  3949 	// Create an anim, which creates animation at server side(which swicthes raw event handling on)
  3949 	// Create an anim, which creates animation at server side(which swicthes raw event handling on)
  3950 	// Add the required events to the animtaion at server side buffer
  3950 	// Add the required events to the animtaion at server side buffer
  3951 	// Simulate those events and check simulated events are same as required at server side
  3951 	// Simulate those events and check simulated events are same as required at server side
  3952 	// If any test fail, error description is got from server and displayed in the log file
  3952 	// If any test fail, error description is got from server and displayed in the log file
  3953 	TLogMessageText logText;
  3953 	TLogMessageText logText;
  3954 	_LIT(KSet, "Multi pointer events for Anims: %d of 3");
  3954 	_LIT(KSet, "Multipointer events for Anims: %d of 3");
  3955 	logText.AppendFormat(KSet, iEventSet);
  3955 	logText.AppendFormat(KSet, iEventSet);
  3956 	LOG_MESSAGE(logText);
  3956 	LOG_MESSAGE(logText);
  3957 	_LIT(KEventsChecked, "Events checked at server side = %d");
  3957 	_LIT(KEventsChecked, "Events checked at server side = %d");
  3958 	
  3958 	
  3959 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  3959 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  4049 /**
  4049 /**
  4050 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0014
  4050 @SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0014
  4051 @SYMPREQ				PREQ1226
  4051 @SYMPREQ				PREQ1226
  4052 @SYMREQ					REQ9677,REQ9683,
  4052 @SYMREQ					REQ9677,REQ9683,
  4053 @SYMTestPriority		High 
  4053 @SYMTestPriority		High 
  4054 @SYMTestCaseDesc		To check Wserv purges multi pointer events with standard rules
  4054 @SYMTestCaseDesc		To check Wserv purges multipointer events with standard rules
  4055 @SYMTestStatus			Implemented
  4055 @SYMTestStatus			Implemented
  4056 
  4056 
  4057 @SYMTestActions			Simulate raw events to be purged  
  4057 @SYMTestActions			Simulate raw events to be purged  
  4058 @SYMTestExpectedResults The purged events should not be delivered to client 
  4058 @SYMTestExpectedResults The purged events should not be delivered to client 
  4059 */
  4059 */
  4060 void CTMultiPtrEventTest::PurgingMultiPointerEvents()
  4060 void CTMultiPtrEventTest::PurgingMultiPointerEvents()
  4061 	{
  4061 	{
  4062 	// Test purging of multi pointer events
  4062 	// Test purging of multipointer events
  4063 	// 1. Test down/up pairs are purged
  4063 	// 1. Test down/up pairs are purged
  4064 	// 2. Test moves events are purged
  4064 	// 2. Test moves events are purged
  4065 	// 3. Test drag events are purged
  4065 	// 3. Test drag events are purged
  4066 	// 4. Test lone down events are purged
  4066 	// 4. Test lone down events are purged
  4067 	// 5. And finally test lone up events are also purged 
  4067 	// 5. And finally test lone up events are also purged 
  4068 	TLogMessageText logText;
  4068 	TLogMessageText logText;
  4069 	_LIT(KSet, "Purging of multi pointer events: %d of 6");
  4069 	_LIT(KSet, "Purging of multipointer events: %d of 6");
  4070 	logText.AppendFormat(KSet, iEventSet);
  4070 	logText.AppendFormat(KSet, iEventSet);
  4071 	LOG_MESSAGE(logText);
  4071 	LOG_MESSAGE(logText);
  4072 	
  4072 	
  4073 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  4073 	iMultiPtrEventClient->EventBuffer()->SetEventCount(0);
  4074 	TInt xInc = iPhysicalScreenSize.iWidth/KMaxQueueSize;
  4074 	TInt xInc = iPhysicalScreenSize.iWidth/KMaxQueueSize;
  4203 					AddExpectedPointerEvent(TPointerEvent::EButton1Up, ptrPos, 0, 0, 0);
  4203 					AddExpectedPointerEvent(TPointerEvent::EButton1Up, ptrPos, 0, 0, 0);
  4204 					}
  4204 					}
  4205 				}
  4205 				}
  4206 			break;
  4206 			break;
  4207 		case 5:
  4207 		case 5:
  4208 			// Check PurgePointerEvents works with multi pointer events
  4208 			// Check PurgePointerEvents works with multipointer events
  4209 			ptrPos.iX = xInc;
  4209 			ptrPos.iX = xInc;
  4210 			ptrPos.iY = yInc;
  4210 			ptrPos.iY = yInc;
  4211 			for (ptrNum = 0; ptrNum < iMaxDevPointers; ptrNum++)
  4211 			for (ptrNum = 0; ptrNum < iMaxDevPointers; ptrNum++)
  4212 				{
  4212 				{
  4213 				SimulatePointerEvent(TRawEvent::EButton1Up, ptrPos.iX, ptrPos.iY, 0, ptrNum);
  4213 				SimulatePointerEvent(TRawEvent::EButton1Up, ptrPos.iX, ptrPos.iY, 0, ptrNum);
  4253 			/**
  4253 			/**
  4254 			@SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0001
  4254 			@SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0001
  4255 			@SYMPREQ				PREQ1226
  4255 			@SYMPREQ				PREQ1226
  4256 			@SYMREQ					REQ9674,REQ9687,
  4256 			@SYMREQ					REQ9674,REQ9687,
  4257 			@SYMTestPriority		High 
  4257 			@SYMTestPriority		High 
  4258 			@SYMTestCaseDesc		Checks Wserv sends multi touch pointer events received by it
  4258 			@SYMTestCaseDesc		Checks Wserv sends multipointer pointer events received by it
  4259 			@SYMTestStatus			Implemented
  4259 			@SYMTestStatus			Implemented
  4260 
  4260 
  4261 			@SYMTestActions			Simulate raw events from different pointers 
  4261 			@SYMTestActions			Simulate raw events from different pointers 
  4262 			@SYMTestExpectedResults The received events must match the simulated raw events
  4262 			@SYMTestExpectedResults The received events must match the simulated raw events
  4263 			*/
  4263 			*/
  4277 			/**
  4277 			/**
  4278 			@SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0003
  4278 			@SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0003
  4279 			@SYMPREQ				PREQ1226
  4279 			@SYMPREQ				PREQ1226
  4280 			@SYMREQ					REQ9674,REQ9687,
  4280 			@SYMREQ					REQ9674,REQ9687,
  4281 			@SYMTestPriority		High 
  4281 			@SYMTestPriority		High 
  4282 			@SYMTestCaseDesc		To check Wserv sends simultaneous multi touch pointer events 
  4282 			@SYMTestCaseDesc		To check Wserv sends simultaneous multipointer pointer events 
  4283 			@SYMTestStatus			Implemented
  4283 			@SYMTestStatus			Implemented
  4284 
  4284 
  4285 			@SYMTestActions			Simulate simultaneous raw events from different pointers 
  4285 			@SYMTestActions			Simulate simultaneous raw events from different pointers 
  4286 			@SYMTestExpectedResults The received events must match the simulated raw events
  4286 			@SYMTestExpectedResults The received events must match the simulated raw events
  4287 			*/
  4287 			*/
  4309 			/**
  4309 			/**
  4310 			@SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0005
  4310 			@SYMTestCaseID			GRAPHICS-WSERV-ADVANCEDPOINTER-0005
  4311 			@SYMPREQ				PREQ1226
  4311 			@SYMPREQ				PREQ1226
  4312 			@SYMREQ					REQ9676
  4312 			@SYMREQ					REQ9676
  4313 			@SYMTestPriority		High 
  4313 			@SYMTestPriority		High 
  4314 			@SYMTestCaseDesc		To check Wserv sends the multi touch pointer events received 
  4314 			@SYMTestCaseDesc		To check Wserv sends the multipointer pointer events received 
  4315 									by it along with the Pressure or Proximity 
  4315 									by it along with the Pressure or Proximity 
  4316 			@SYMTestStatus			Implemented
  4316 			@SYMTestStatus			Implemented
  4317 
  4317 
  4318 			@SYMTestActions			Simulate raw events with pressure and proximity from different pointers  
  4318 			@SYMTestActions			Simulate raw events with pressure and proximity from different pointers  
  4319 			@SYMTestExpectedResults The received events must match the simulated raw events
  4319 			@SYMTestExpectedResults The received events must match the simulated raw events