windowing/windowserver/tauto/TMULTCON.CPP
changeset 116 171fae344dd4
parent 103 2717213c588a
--- a/windowing/windowserver/tauto/TMULTCON.CPP	Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,478 +0,0 @@
-// Copyright (c) 1996-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:
-// Test multiple connections to the window server
-// 
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#include "TMULTCON.H"
-
-const TInt EMaxSubState=3;
-
-//#define LOGGING on		//Uncomment this line to get extra logging
-
-_LIT(ClickOnMe,"Click on me");
-_LIT(KError,"ERROR");
-
-
-CTMultiCon::CTMultiCon(CTestStep* aStep) : CTWsGraphicsBase(aStep)
-	{
-	}
-
-CTMultiCon::~CTMultiCon()
-	{
-	delete iConn1;
-	delete iConn2;
-	delete iConn3;
-	delete iTimeOut;
-	}
-
-void CTMultiCon::EndAutoForegroundTest()
-	{
-#if defined(LOGGING)
-	_LIT(KLog,"EndAutoForegroundTest  SubState %d");
-	LOG_MESSAGE2(KLog,iSubState);
-#endif
-	iConn1->iGroup->GroupWin()->EnableReceiptOfFocus(EFalse);
-	iConn2->iGroup->GroupWin()->EnableReceiptOfFocus(EFalse);
-	iConn3->iGroup->GroupWin()->EnableReceiptOfFocus(EFalse);
-	CActiveScheduler::Stop();
-	}
-
-void CTMultiCon::ConstructL()
-	{
-	iTimeOut=new(ELeave) CTimeOut();
-	iTimeOut->ConstructL();
-	TheClient->iWs.SetPointerCursorArea(iTest->iNormalPointerCursorArea);
-	iScreenSize=TSize(TheClient->iScreen->SizeInPixels());
-	iConn3=new(ELeave) CMcConnectionDef(this);
-	iConn3->ConstructL();
-	iConn2=new(ELeave) CMcConnection(this);
-	iConn2->ConstructL();
-	iConn1=new(ELeave) CMcConnectionAf(this);
-	iConn1->ConstructL();
-	iTest->SimulateKeyDownUp(EStdKeyLeftCtrl);
-	iTest->SimulateKeyDownUp(EStdKeyRightCtrl);
-	TInt mods=TheClient->iWs.GetModifierState();
-	_LIT(KLog,"Initial Modifiers state 0x%x (ideally should be zero)");
-	LOG_MESSAGE2(KLog,mods);
-	}
-
-TInt CTMultiCon::TimeOut(TAny* aTest)		//static
-	{
-	static_cast<CTMultiCon*>(aTest)->TimeOut();
-	return(KErrNone);
-	}
-
-void CTMultiCon::TimeOut()
-	{
-	TLogMessageText buf;
-	_LIT(KMultiConTimeOut,"TIMEOUT: Multiple Conection Test, %d, %S");
-	buf.AppendFormat(KMultiConTimeOut,iTest->iState,&iTest->iSubTitle);
-	TheClient->LogMessage(buf);
-	++iTimeOutCount;
-	EndAutoForegroundTest();
-	}
-
-
-//
-// CMcConnection //
-//
-
-CMcConnectionBase::CMcConnectionBase(CTMultiCon *aTest) : iTest(aTest)
-	{
-	}
-
-CMcConnectionBase::~CMcConnectionBase()
-	{
-	CTWin::Delete(iWin);
-	delete iGc;
-	}
-
-void CMcConnectionBase::SubStateChanged()
-	{
-	iWin->Invalidate();
-	iWs.Flush();
-	}
-
-void CMcConnectionBase::ConstructL()
-	{
-	CTClient::SetScreenNumber(iTest->ScreenNumber());
-	CTClient::ConstructL();
-	User::LeaveIfError(iScreen->CreateContext(iGc));
-	}
-
-CMcConnection::CMcConnection(CTMultiCon *aTest) : CMcConnectionBase(aTest)
-	{
-	}
-
-void CMcConnection::ConstructL()
-	{
-	CMcConnectionBase::ConstructL();
-	iGroup=new(ELeave) CTWindowGroup(this);
-	iGroup->ConstructL();
-	TSize screenSize=iGroup->Size();
-	TInt winWidth=screenSize.iWidth/3;
-	TInt winHeight=screenSize.iHeight/2-10;
-	iGroup->GroupWin()->AutoForeground(EFalse);
-	CMcWindow *win=new(ELeave) CMcWindow(iTest);
-	win->SetUpL(TPoint(5,5),TSize(winWidth,winHeight),iGroup,*iGc);
-	iWin=win;
-	iWs.Flush();
-	}
-
-CMcConnectionAf::CMcConnectionAf(CTMultiCon *aTest) : CMcConnectionBase(aTest)
-	{
-	}
-
-void CMcConnectionAf::ConstructL()
-	{
-	CMcConnectionBase::ConstructL();
-	iGroup=new(ELeave) CMcWindowGroupAf(this);
-	iGroup->ConstructL();
-	TSize screenSize=iGroup->Size();
-	TInt winWidth=screenSize.iWidth/3;
-	TInt winHeight=screenSize.iHeight/2-10;
-	iGroup->GroupWin()->AutoForeground(ETrue);
-	CMcWindowAf *win=new(ELeave) CMcWindowAf(iTest);
-	win->SetUpL(TPoint(winWidth,5),TSize(winWidth,winHeight),iGroup,*iGc);
-	iWin=win;
-	iWs.Flush();
-	}
-
-void CMcConnectionAf::KeyL(const TKeyEvent &aKey)
-	{
-#if defined(LOGGING)
-	_LIT(KLog1,"KeyL  SS=%d (0)  GpWinOrdPos=%d (0)  Code=%d (32)");
-	_LIT(KLog2," '%c'");
-	TLogMessageText buf;
-	buf.Format(KLog1,iTest->SubState(),iGroup->GroupWin()->OrdinalPosition(),aKey.iCode);
-	if (aKey.iCode>0)
-		buf.AppendFormat(KLog2,aKey.iCode);
-	iTest->LOG_MESSAGE(buf);
-#endif
-	switch(aKey.iCode)
-		{
-		case ' ':
-			if (iTest->SubState()==0)
-				{
-				iTest->TEST(iGroup->GroupWin()->OrdinalPosition()==0);
-				iTest->IncSubState();
-				}
-			break;
-		case EKeyEscape:
-			iTest->EndAutoForegroundTest();
-			break;
-		}
-	}
-
-CMcConnectionDef::CMcConnectionDef(CTMultiCon *aTest) : CMcConnectionBase(aTest)
-	{
-	}
-
-void CMcConnectionDef::ConstructL()
-	{
-	CMcConnectionBase::ConstructL();
-	iGroup=new(ELeave) CTWindowGroup(this);
-	iGroup->ConstructL();
-	iGroup->GroupWin()->EnableReceiptOfFocus(EFalse);
-	TSize screenSize=iGroup->Size();
-	TInt winWidth=screenSize.iWidth/3-10;
-	TInt winHeight=(screenSize.iHeight/2)-10;
-	CMcWindowDef *win=new(ELeave) CMcWindowDef(iTest);
-	win->SetUpL(TPoint(5+winWidth/2,screenSize.iHeight/2),TSize(winWidth,winHeight),iGroup,*iGc);
-	iWin=win;
-	iWs.Flush();
-	}
-
-//
-// CMcWindow, base class //
-//
-
-CMcWindowBase::CMcWindowBase(CTMultiCon *aTest) : CTWin(), iTest(aTest)
-	{
-	}
-
-void CMcWindowBase::SetUpL(TPoint pos,TSize size,CTWinBase *parent, CWindowGc &aGc)
-	{
-	ConstructExtLD(*parent,pos,size);
-	iWin.SetBackgroundColor(iBack);
-	Activate();
-	AssignGC(aGc);
-	}
-
-//
-// CMcWindow, window used to test multiple connections //
-//
-
-CMcWindow::CMcWindow(CTMultiCon *aTest) : CMcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(221);
-	}
-
-void CMcWindow::PointerL(const TPointerEvent &pointer,const TTime &)
-	{
-#if defined(LOGGING)
-	_LIT(KLog,"Pointer  SS=%d (1)  Type=%d (%d)  GpWinOrdPos=%d (1)");
-	iTest->LOG_MESSAGE5(KLog,iTest->SubState(),pointer.iType,TPointerEvent::EButton1Down,Client()->iGroup->GroupWin()->OrdinalPosition());
-#endif
-	if (pointer.iType==TPointerEvent::EButton1Down)
-		{
-		switch(iTest->SubState())
-			{
-			case 1:
-				iTest->TEST(Client()->iGroup->GroupWin()->OrdinalPosition()==1);
-				iTest->IncSubState();
-				break;
-			}
-		}
-	}
-
-void CMcWindow::Draw()
-	{
-	iGc->Clear();
-	TBuf<0x40> buf;
-	switch(iTest->SubState())
-		{
-		case 1:
-			buf.Copy(ClickOnMe);
-			break;
-		case 0:
-		case 2:
-		case 3:
-			buf.Copy(KNullDesC);
-			break;
-		default:
-			buf.Copy(KError);
-		}
-	iGc->DrawText(buf, TPoint(10,20));
-	}
-
-//
-// CMcWindowAf, Auto foreground version of CMcWindow //
-//
-
-CMcWindowAf::CMcWindowAf(CTMultiCon *aTest) : CMcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(150);
-	}
-
-void CMcWindowAf::PointerL(const TPointerEvent &pointer,const TTime &)
-	{
-#if defined(LOGGING)
-	_LIT(KLog,"PointerL  SS=%d (2)  Type=%d (%d)  GpWinOrdPos=%d (0)");
-	iTest->LOG_MESSAGE5(KLog,iTest->SubState(),pointer.iType,TPointerEvent::EButton1Down,Client()->iGroup->GroupWin()->OrdinalPosition());
-#endif
-	if (pointer.iType==TPointerEvent::EButton1Down)
-		{
-		switch(iTest->SubState())
-			{
-			case 2:
-				iTest->TEST(Client()->iGroup->GroupWin()->OrdinalPosition()==0);
-				iTest->IncSubState();
-				break;
-			}
-		}
-	}
-
-void CMcWindowAf::Draw()
-	{
-	_LIT(PressSpace,"Press <Space>");
-	iGc->Clear();
-	TBuf<0x40> buf;
-	switch(iTest->SubState())
-		{
-		case 1:
-		case 3:
-			break;
-		case 0:
-			buf.Copy(PressSpace);
-			break;
-		case 2:
-			buf.Copy(ClickOnMe);
-			break;
-		default:
-			buf.Copy(KError);
-		}
-	iGc->DrawText(buf, TPoint(10,20));
-	}
-
-//
-
-CMcWindowGroupAf::CMcWindowGroupAf(CTClient *aClient) : CTWindowGroup(aClient)
-	{}
-
-void CMcWindowGroupAf::KeyL(const TKeyEvent &aKey, const TTime &)
-	{
-	((CMcConnectionAf *)iClient)->KeyL(aKey);
-	}
-
-//
-// CMcWindowDef, Default auto foreground version of CMcWindow //
-//
-
-CMcWindowDef::CMcWindowDef(CTMultiCon *aTest) : CMcWindowBase(aTest)
-	{
-	iBack=TRgb::Gray256(236);
-	}
-
-void CMcWindowDef::PointerL(const TPointerEvent &pointer,const TTime &)
-	{
-#if defined(LOGGING)
-	_LIT(KLog,"PointerL  SS=%d (3)  Type=%d (%d)  GpWinOrdPos=%d (0)");
-	iTest->LOG_MESSAGE5(KLog,iTest->SubState(),pointer.iType,TPointerEvent::EButton1Down,Client()->iGroup->GroupWin()->OrdinalPosition());
-#endif
-	if (pointer.iType==TPointerEvent::EButton1Down)
-		{
-		switch(iTest->SubState())
-			{
-			case 3:
-				iTest->TEST(Client()->iGroup->GroupWin()->OrdinalPosition()==0);
-				iTest->IncSubState();
-				break;
-			}
-		}
-	}
-
-void CMcWindowDef::Draw()
-	{
-	iGc->Clear();
-	TBuf<0x40> buf;
-	switch(iTest->SubState())
-		{
-		case 0:
-		case 1:
-		case 2:
-			break;
-		case 3:
-			buf.Copy(ClickOnMe);
-			break;
-		default:
-			buf.Copy(KError);
-		}
-	iGc->DrawText(buf, TPoint(10,20));
-	}
-
-//
-
-TInt CTMultiCon::SubState() const
-	{
-	return(iSubState);
-	}
-
-void CTMultiCon::IncSubState()
-	{
-	if (iSubState==EMaxSubState)
-		EndAutoForegroundTest();
-	else
-		{
-		iSubState++;
-	#if defined(LOGGING)
-		_LIT(KLog,"New SubState %d");
-		LOG_MESSAGE2(KLog,iSubState);
-	#endif
-		iConn1->SubStateChanged();
-		iConn2->SubStateChanged();
-		iConn3->SubStateChanged();
-		TheClient->WaitForRedrawsToFinish();
-		SendEvents();
-		}
-	}
-
-void CTMultiCon::SendEvents()
-	{
-#if defined(LOGGING)
-	_LIT(KLog,"Sending event for substate %d");
-	LOG_MESSAGE2(KLog,iSubState);
-#endif
-
-	switch (iSubState)
-		{
-	case 0:
-		iTest->SimulateKeyDownUp(EStdKeySpace);
-		break;
-	case 1:
-		iTest->SimulatePointerDownUp(iScreenSize.iWidth/6+5,iScreenSize.iHeight/4);
-		break;
-	case 2:
-		iTest->SimulatePointerDownUp(iScreenSize.iWidth/2,iScreenSize.iHeight/4);
-		break;
-	case 3:
-		iTest->SimulatePointerDownUp(iScreenSize.iWidth/3,3*iScreenSize.iHeight/4-5);
-		break;
-	default:
-		TEST(EFalse);
-		}
-	TheClient->iWs.Flush();
-	}
-
-void CTMultiCon::RunTestCaseL(TInt /*aCurTestCase*/)
-	{
-	_LIT(KTestMultiCon1,"MultiCon 1");
-	_LIT(KTimeOut,"Test Timed Out after %dsecs.  SubState=%d");
-	((CTMultiConStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
-	
-	if (!TestBase()->ConfigurationSupportsPointerEventTesting())
-	    {
-	    INFO_PRINTF1(_L("Test skipped because config does not support pointer event testing"));
-	    TestComplete();
-	    return;
-	    }
-    
-	switch(++iTest->iState)
-		{
-/**
-
-  @SYMTestCaseID GRAPHICS-WSERV-0289
-  
-  @SYMDEF             DEF081259
- 
-  @SYMTestCaseDesc Test multiple connections to the window server
-    
-  @SYMTestPriority High
- 
-  @SYMTestStatus Implemented
- 
-  @SYMTestActions Make mutiple connections to the window server and check
-  				  that the connections are made corectly
-  
-  @SYMTestExpectedResults The connections are made correctly
- 
-*/		
-		case 1:
-			((CTMultiConStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0289"));
-			iTest->LogSubTest(KTestMultiCon1);
-			iTimeOut->Start(KTimeOutAfter,TCallBack(CTMultiCon::TimeOut,this));
-			SendEvents();
-			CActiveScheduler::Start();
-			iTimeOut->Cancel();
-			TEST(iTimeOutCount==0);
-			if (iTimeOutCount!=0)
-				LOG_MESSAGE3(KTimeOut,KTimeOutAfter/1000000,iSubState);
-			break;
-		default:
-			((CTMultiConStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
-			((CTMultiConStep*)iStep)->CloseTMSGraphicsStep();
-			TestComplete();
-			break;
-		}
-	((CTMultiConStep*)iStep)->RecordTestResultL();
-	}
-
-__WS_CONSTRUCT_STEP__(MultiCon)