windowing/windowserver/tauto/TRegion.cpp
changeset 116 171fae344dd4
parent 103 2717213c588a
equal deleted inserted replaced
103:2717213c588a 116:171fae344dd4
     1 // Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Code for testing CWindowGc::SetCurrentRegion
       
    15 // 
       
    16 //
       
    17 
       
    18 /**
       
    19  @file
       
    20  @test
       
    21  @internalComponent - Internal Symbian test code
       
    22 */
       
    23 
       
    24 #include "TRegion.H"
       
    25 
       
    26 TBool RegionCanFade;
       
    27 TBool RegionCanFadeSet;
       
    28 
       
    29 LOCAL_D TBuf<0x10> text=_L("SOME TEXT");
       
    30 LOCAL_D TPoint textRefPos(210, 80);
       
    31 
       
    32 LOCAL_D TRect regionRectList[]={
       
    33 					TRect(0,0,0,0),	TRect(30,10,70,40),TRect(60,30,80,70),TRect(10,110,70,170),
       
    34 					TRect(190,0,240,60),TRect(62,63,67,115),TRect(0,180,240,200),TRect(40,50,210,130),
       
    35 					TRect(160,130,190,160),TRect(100,140,140,170),TRect(140,170,100,140),TRect(90,120,230,200)};
       
    36 LOCAL_D TRect clippingRectList[]={
       
    37 					TRect(0,0,200,400),	TRect(30,10,500,600),TRect(-60,0,80,70),TRect(20,0,170,500),
       
    38 					TRect(0,0,2000,6000),TRect(-1000,-2000,123,195),TRect(10,10,230,190),TRect(0,0,510,730),
       
    39 					TRect(110,30,190,150),TRect(1,1,500,11170),TRect(0,0,800,940),TRect(-10,-20,240,210)};
       
    40 LOCAL_D TPoint originList[]={
       
    41 					TPoint(0,0),TPoint(10,0),TPoint(0,10),TPoint(-5,-20),
       
    42 					TPoint(1,1),TPoint(0,0),TPoint(0,0),TPoint(100,0),
       
    43 					TPoint(0,111),TPoint(90,40),TPoint(0,0),TPoint(-1,0)};
       
    44 
       
    45 CTRegion::CTRegion(CTestStep* aStep) : CTWsGraphicsBase(aStep)
       
    46 	{
       
    47 	}
       
    48 
       
    49 void CTRegion::ConstructL()
       
    50 	{
       
    51 	iDrawableSize=TestWin->Size();
       
    52 //
       
    53 	User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iFont,TFontSpec(_L("Arial"),200)));
       
    54   	User::LeaveIfError(iPicture.Load(TEST_BITMAP_NAME,0));
       
    55   
       
    56 	iBitmap = new (ELeave) CWsBitmap(TheClient->iWs);
       
    57 	User::LeaveIfError(iBitmap->Create(TSize(iDrawableSize.iWidth+1,iDrawableSize.iHeight),EGray16));
       
    58 	iBitmap->SetSizeInTwips(TheClient->iScreen);
       
    59 	iBitmapDevice=CFbsBitmapDevice::NewL(iBitmap);
       
    60 	User::LeaveIfError(iBitmapDevice->CreateContext(iBitGc));
       
    61 	User::LeaveIfError(iBitmapDevice->GetNearestFontToDesignHeightInTwips((CFont *&)iBitFont,TFontSpec(_L("Arial"),200)));
       
    62 	}
       
    63 
       
    64 CTRegion::~CTRegion()
       
    65 	{
       
    66 	delete iBitGc;
       
    67 	TheClient->iScreen->ReleaseFont(iFont);
       
    68 	if (iBitmapDevice)
       
    69 		iBitmapDevice->ReleaseFont(iBitFont);
       
    70 	delete iBitmapDevice;
       
    71 	DeleteChildWindows();
       
    72 	delete iBitmap;
       
    73 	}
       
    74 
       
    75 void CTRegion::CreateChildWindowsL()
       
    76 	{
       
    77 	TSize screenSize=TheClient->iGroup->Size();
       
    78 	TInt winWidth=(screenSize.iWidth/3)-10;
       
    79 	TInt winHeight=screenSize.iHeight-10;
       
    80 	iBaseChildWin=new(ELeave) CBlankWindow();
       
    81 	iBaseChildWin->SetUpL(BaseWin->Win()->InquireOffset(*TheClient->iGroup->GroupWin())+TPoint(winWidth>>2,winHeight>>2),TSize(winWidth>>2,winHeight>>1),TheClient->iGroup,*TheClient->iGc);
       
    82 	iBaseChildWin->Win()->SetShadowHeight(2);
       
    83 	iTestChildWin=new(ELeave) CBlankWindow();
       
    84 	iTestChildWin->SetUpL(TestWin->Win()->InquireOffset(*TheClient->iGroup->GroupWin())+TPoint(winWidth>>2,winHeight>>2),TSize(winWidth>>2,winHeight>>1),TheClient->iGroup,*TheClient->iGc);
       
    85 	}
       
    86 
       
    87 void CTRegion::DeleteChildWindows()
       
    88 	{
       
    89 	delete iBaseChildWin;
       
    90 	iBaseChildWin=NULL;
       
    91 	delete iTestChildWin;
       
    92 	iTestChildWin=NULL;
       
    93 	}
       
    94 
       
    95 void CTRegion::DrawNonClippedSample1(CBitmapContext &aGc)
       
    96 	{
       
    97 	aGc.SetPenColor(TRgb::Gray4(0));
       
    98 	aGc.SetBrushColor(TRgb::Gray4(2));
       
    99 	aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
       
   100 	aGc.DrawRect(TRect(TPoint(30,100), TPoint(120,200)));
       
   101 	TheClient->iWs.Flush();
       
   102 	}
       
   103 
       
   104 void CTRegion::DrawClippedSample1(CBitmapContext &aGc)
       
   105 	{
       
   106 	aGc.SetPenColor(TRgb::Gray4(0));
       
   107 	aGc.SetBrushColor(TRgb::Gray4(1));
       
   108 	aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
       
   109 	aGc.DrawRect(TRect(TSize(100,200)));
       
   110 
       
   111 //	aGc.BitBlt(TPoint(55,65), iPicture);
       
   112 
       
   113 	aGc.SetPenStyle(CGraphicsContext::ENullPen);
       
   114 	aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
       
   115 	aGc.SetBrushColor(TRgb::Gray4(2));
       
   116 	aGc.DrawEllipse(TRect(TPoint(20,35), TPoint(90,79)));
       
   117 
       
   118 	aGc.SetBrushColor(TRgb::Gray4(0));
       
   119 	aGc.DrawEllipse(TRect(TPoint(110,110), TPoint(175,200)));
       
   120 
       
   121 	aGc.SetBrushColor(TRgb::Gray4(1));
       
   122 	aGc.DrawEllipse(TRect(TPoint(170,30), TPoint(220,150)));
       
   123 
       
   124 	aGc.SetBrushColor(TRgb::Gray4(3));
       
   125 	aGc.DrawEllipse(TRect(TPoint(0,150), TPoint(240,190)));
       
   126 
       
   127 	aGc.SetPenStyle(CGraphicsContext::ESolidPen);
       
   128 	aGc.SetBrushStyle(CGraphicsContext::ENullBrush);
       
   129 
       
   130 	TheClient->iWs.Flush();
       
   131 	}
       
   132 
       
   133 void CTRegion::DrawNonClippedSample2(CBitmapContext &aGc, CFont *aFont)
       
   134 	{
       
   135 	aGc.SetPenColor(TRgb::Gray4(0));
       
   136 	aGc.SetPenColor(TRgb::Gray4(0));
       
   137 	aGc.UseFont(aFont);
       
   138 	TPoint textPos=textRefPos-TPoint(iFont->TextWidthInPixels(text)*3/4, 0);
       
   139 	aGc.DrawText(text, textPos);
       
   140 	aGc.DiscardFont();
       
   141 
       
   142 	TheClient->iWs.Flush();
       
   143 	}
       
   144 
       
   145 void CTRegion::DrawClippedSample2(CBitmapContext &aGc, CFont *aFont)
       
   146 	{
       
   147 	aGc.SetPenColor(TRgb::Gray4(0));
       
   148 	aGc.SetPenColor(TRgb::Gray4(2));
       
   149 	aGc.UseFont(aFont);
       
   150 	TPoint textPos=textRefPos-TPoint(iFont->TextWidthInPixels(text)*3/4, -20);
       
   151 	aGc.DrawText(text, textPos);
       
   152 	aGc.DiscardFont();
       
   153 	aGc.SetBrushColor(TRgb::Gray4(3));
       
   154 	aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
       
   155 	aGc.DrawRect(TRect(TPoint(10,100), TPoint(210,120)));
       
   156 	TheClient->iWs.Flush();
       
   157 	}
       
   158 
       
   159 void CTRegion::DrawClippedSample3(CBitmapContext &aGc)
       
   160 	{
       
   161 	aGc.SetPenColor(TRgb::Gray4(0));
       
   162 	aGc.SetPenColor(TRgb::Gray4(2));
       
   163 	aGc.DrawRect(TRect(TPoint(10,200), TPoint(20,210)));
       
   164 	}
       
   165 
       
   166 void CTRegion::DrawNonClippedSample1(CTWin *aWindow, const TPoint &aOrigin)
       
   167 	{
       
   168 	TheGc->Activate(*aWindow->Win());
       
   169 	TheGc->SetOrigin(aOrigin);
       
   170 	DrawNonClippedSample1(*TheGc);
       
   171 	TheGc->Deactivate();
       
   172 	}
       
   173 
       
   174 void CTRegion::DrawNonClippedSample1(CTWin *aWindow, const TRegion &aRegion, const TPoint &aOrigin)
       
   175 	{
       
   176 	TheGc->Activate(*aWindow->Win());
       
   177 	TheGc->SetOrigin(aOrigin);
       
   178 	TheGc->SetClippingRegion(aRegion);
       
   179 	DrawNonClippedSample1(*TheGc);
       
   180 	TheGc->Deactivate();
       
   181 	}
       
   182 
       
   183 void CTRegion::DrawClippedSample1(TestWindow *aWindow, const TRegion &aRegion, const TRect &aClippingRect, const TPoint &aOrigin)
       
   184 	{
       
   185 	TheGc->Activate(*aWindow->Win());
       
   186 	TheGc->SetOrigin(aOrigin);
       
   187 	TheGc->SetClippingRegion(aRegion);
       
   188 	TheGc->SetClippingRect(aClippingRect);
       
   189 	DrawClippedSample1(*TheGc);
       
   190 	TheGc->Deactivate();
       
   191 	}
       
   192 
       
   193 void CTRegion::DrawNonClippedSample2(CTWin *aWindow, const TPoint &aOrigin)
       
   194 	{
       
   195 	TheGc->Activate(*aWindow->Win());
       
   196 	TheGc->SetOrigin(aOrigin);
       
   197 	DrawNonClippedSample2(*TheGc,iFont);
       
   198 	TheGc->Deactivate();
       
   199 	}
       
   200 
       
   201 void CTRegion::DrawNonClippedSample2(CTWin *aWindow, const TRegion &aRegion, const TPoint &aOrigin)
       
   202 	{
       
   203 	TheGc->Activate(*aWindow->Win());
       
   204 	TheGc->SetOrigin(aOrigin);
       
   205 	TheGc->SetClippingRegion(aRegion);
       
   206 	DrawNonClippedSample2(*TheGc,iFont);
       
   207 	TheGc->Deactivate();
       
   208 	}
       
   209 
       
   210 void CTRegion::DrawClippedSample2(TestWindow *aWindow, const TRegion &aRegion, const TRect &aClippingRect, const TPoint &aOrigin)
       
   211 	{
       
   212 	TheGc->Activate(*aWindow->Win());
       
   213 	TheGc->SetClippingRegion(TRegionFix<1>());
       
   214 	DrawClippedSample3(*TheGc);	// needed to trigger region update in wserv
       
   215 	TheGc->SetOrigin(aOrigin);
       
   216 	TheGc->SetClippingRect(aClippingRect);
       
   217 	TheGc->SetClippingRegion(aRegion);
       
   218 	DrawClippedSample2(*TheGc,iFont);
       
   219 	TheGc->CancelClippingRegion();
       
   220 	TheGc->Deactivate();
       
   221 	}
       
   222 
       
   223 void CTRegion::ClearBitmapAndWindows()
       
   224 	{
       
   225 	TestWin->Win()->Invalidate();
       
   226 	TestWin->Win()->BeginRedraw();
       
   227 	TheGc->Activate(*TestWin->Win());
       
   228 	TheGc->SetBrushColor(TRgb::Gray4(3));
       
   229 	TheGc->Clear();
       
   230 	TheGc->Deactivate();
       
   231 	TestWin->Win()->EndRedraw();
       
   232 //
       
   233 	BaseWin->Win()->Invalidate();
       
   234 	BaseWin->Win()->BeginRedraw();
       
   235 	TheGc->Activate(*BaseWin->Win());
       
   236 	TheGc->SetBrushColor(TRgb::Gray4(3));
       
   237 	TheGc->Clear();
       
   238 	TheGc->Deactivate();
       
   239 	BaseWin->Win()->EndRedraw();
       
   240 //
       
   241 	iBitGc->SetBrushColor(TRgb::Gray4(3));
       
   242 	iBitGc->Clear();
       
   243 	TheClient->iWs.Flush();
       
   244 	}
       
   245 
       
   246 void CTRegion::TestRegionL(const TRegion &aClippingRegion, const TRect &aClippingRect, const TPoint &aOrigin)
       
   247 	{
       
   248 	if (aClippingRegion.CheckError())
       
   249 		User::Leave(KErrGeneral);
       
   250 	ClearBitmapAndWindows();
       
   251 
       
   252 	// draw to iWindow1 (clipping intermittently) and iBitmap (not clipping)
       
   253 	DrawNonClippedSample1(TestWin,aOrigin);
       
   254 	DrawNonClippedSample1(*iBitGc);
       
   255 
       
   256 	DrawNonClippedSample2(TestWin,aOrigin);
       
   257 	DrawNonClippedSample2(*iBitGc, iBitFont);
       
   258 
       
   259 	DrawClippedSample1(TestWin,aClippingRegion,aClippingRect,aOrigin);
       
   260 	DrawClippedSample1(*iBitGc);
       
   261 
       
   262 	DrawClippedSample2(TestWin,aClippingRegion,aClippingRect,aOrigin);
       
   263 	DrawClippedSample2(*iBitGc, iBitFont);
       
   264 
       
   265 	// copy each rectangle of the clipping region from iBitmap to iWindow2
       
   266 	TheGc->Activate(*BaseWin->Win());
       
   267 	for (TUint i=0; i<(TUint)aClippingRegion.Count(); i++)
       
   268 		{
       
   269 		TRect rect=aClippingRegion.RectangleList()[i];
       
   270 		rect.Intersection(aClippingRect);
       
   271 		TheGc->SetOrigin(aOrigin);
       
   272 		TheGc->BitBlt(rect.iTl, iBitmap, rect);
       
   273 		TheClient->Flush();
       
   274 		}
       
   275 	TheGc->Deactivate();
       
   276 
       
   277 	// draw the non-clipped samples to everywhere in iWindow2 *except* the clipping region
       
   278 	RRegion inverseClippingRegion(TRect(-aOrigin,iDrawableSize));
       
   279 	RRegion clip;
       
   280 	clip.Copy(aClippingRegion);
       
   281 	clip.ClipRect(aClippingRect);
       
   282 	inverseClippingRegion.SubRegion(clip);
       
   283 	clip.Close();
       
   284 	DrawNonClippedSample1(BaseWin,inverseClippingRegion,aOrigin);
       
   285 	DrawNonClippedSample2(BaseWin,inverseClippingRegion,aOrigin);
       
   286 	inverseClippingRegion.Close();
       
   287 	CompareWindows(_L("CTRegion::TestRegionL"));
       
   288 	}
       
   289 
       
   290 void CTRegion::CompareRectsL(TPoint aTl1,TPoint aTl2,TSize aSize)
       
   291 	{
       
   292 	_LIT(KError,"Pixels Differ: (%d,%d),(%d,%d)");
       
   293 	CFbsScreenDevice* device;
       
   294 	device=CFbsScreenDevice::NewL(KNullDesC,iBaseChildWin->BaseWin()->DisplayMode());
       
   295 	TPoint br=aTl1+aSize;
       
   296 	TInt startX1=aTl1.iX;
       
   297 	TInt startX2=aTl2.iX;
       
   298 	TSize pixelSize(1,1);
       
   299 	TPoint zero;
       
   300 	while(aTl1.iY<br.iY+1)
       
   301 		{
       
   302 		while (aTl1.iX<br.iX+1)
       
   303 			{
       
   304 			if (!device->RectCompare(TRect(aTl1,pixelSize),*device,TRect(aTl2,pixelSize)))
       
   305 				{
       
   306 				RDebug::Print(KError,aTl1.iX,aTl1.iY,aTl2.iX,aTl2.iY);
       
   307 				iTest->LogColors(*device,zero,aTl1,aTl1);
       
   308 				iTest->LogColors(*device,zero,aTl2,aTl2);
       
   309 				}
       
   310 			++aTl1.iX;
       
   311 			++aTl2.iX;
       
   312 			}
       
   313 		aTl1.iX=startX1;
       
   314 		aTl2.iX=startX2;
       
   315 		++aTl1.iY;
       
   316 		++aTl2.iY;
       
   317 		}
       
   318 	}
       
   319 
       
   320 void CTRegion::ScrollBugL()
       
   321 	{
       
   322 	CBlankWindow* testWin;
       
   323 	RBlankWindow win(TheClient->iWs);
       
   324 	CleanupClosePushL(win);
       
   325 	TSize screenSize=TheClient->iGroup->Size();
       
   326 	testWin=new(ELeave) CBlankWindow(TRgb::Gray4(0));
       
   327 	CleanupStack::PushL(testWin);
       
   328 	//testWin->ConstructL(*TheClient->iGroup);
       
   329 	testWin->SetUpL(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight),TheClient->iGroup,*TheGc);
       
   330 	//testWin->Win()->SetBackgroundColor(TRgb::Gray2(1));
       
   331 	testWin->Win()->EnableRedrawStore(EFalse);
       
   332 	testWin->SetColor(TRgb::Gray4(1));
       
   333 	testWin->RealDraw(ETrue);
       
   334 	win.Construct(*TheClient->iGroup->WinTreeNode(),3456);
       
   335 	win.SetColor(TRgb::Gray4(2));
       
   336 	win.SetExtent(TPoint(screenSize.iWidth/3+30,20),TSize(screenSize.iWidth/3-62,25));
       
   337 	win.Activate();
       
   338 	TheClient->iWs.Flush();
       
   339 	TheClient->WaitForRedrawsToFinish();
       
   340 	win.SetVisible(EFalse);
       
   341 	TheClient->iWs.Flush();
       
   342 	testWin->Win()->BeginRedraw();
       
   343 	testWin->DrawNow();
       
   344 	testWin->SetColor(TRgb::Gray4(2));
       
   345 	testWin->Win()->Scroll(TPoint(0,-50));
       
   346 	testWin->DrawNow();
       
   347 	testWin->Win()->EndRedraw();
       
   348 	TheClient->iWs.Flush();
       
   349 	TBool retVal = TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight/2-30))
       
   350 							,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2-30),TSize(screenSize.iWidth/3,screenSize.iHeight/2-30)));
       
   351 	TEST(retVal);
       
   352 	if (!retVal)
       
   353 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   354 															
       
   355 	retVal = !TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight-60),TSize(10,10))
       
   356 							,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight-50),TSize(10,10)));
       
   357 	TEST(retVal);
       
   358 	if (!retVal)
       
   359 		INFO_PRINTF3(_L("!TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   360 
       
   361 	TheClient->WaitForRedrawsToFinish();
       
   362 	win.SetVisible(ETrue);
       
   363 	win.SetVisible(EFalse);
       
   364 	testWin->Win()->BeginRedraw();
       
   365 	testWin->Win()->Scroll(TPoint(0,-50));
       
   366 	testWin->SetColor(TRgb::Gray4(1));
       
   367 	testWin->DrawNow();
       
   368 	testWin->Win()->EndRedraw();
       
   369 	TheClient->iWs.Flush();	
       
   370 	retVal = TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3+35,0),TSize(screenSize.iWidth/6-35,100))
       
   371 							,TRect(TPoint(screenSize.iWidth/2,0),TSize(screenSize.iWidth/6-35,100)));
       
   372 	TEST(retVal);
       
   373 	if (!retVal)
       
   374 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   375 																			
       
   376 	retVal = !TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3+30,20),TSize(10,10))
       
   377 							,TRect(TPoint(screenSize.iWidth/3+30,50),TSize(10,10)));
       
   378 	TEST(retVal);
       
   379 	if (!retVal)
       
   380 		INFO_PRINTF3(_L("!TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   381 
       
   382 	TheClient->WaitForRedrawsToFinish();
       
   383 	testWin->Win()->BeginRedraw();
       
   384 	testWin->DrawNow();
       
   385 	testWin->Win()->EndRedraw();
       
   386 	CleanupStack::PopAndDestroy(2,&win);
       
   387 	}
       
   388 
       
   389 void CTRegion::ExposeTestL()
       
   390 	{
       
   391 	CBlankWindow* testWin;
       
   392 	TSize screenSize=TheClient->iGroup->Size();
       
   393 	TRect topHalf(0,0,screenSize.iWidth/3,screenSize.iHeight/2);
       
   394 	TRect leftHalf(0,0,screenSize.iWidth/6,screenSize.iHeight);
       
   395 	testWin=new(ELeave) CBlankWindow(TRgb::Gray4(0));
       
   396 	CleanupStack::PushL(testWin);
       
   397 	testWin->SetUpL(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight),TheClient->iGroup,*TheGc);
       
   398 	testWin->Win()->EnableRedrawStore(EFalse);
       
   399 	testWin->SetColor(TRgb::Gray4(2));
       
   400 	testWin->RealDraw(ETrue);
       
   401 	TheClient->iWs.Flush();
       
   402 	TheClient->WaitForRedrawsToFinish();
       
   403 	testWin->Win()->BeginRedraw();
       
   404 	testWin->DrawNow();
       
   405 	testWin->Win()->Invalidate(topHalf);
       
   406 	testWin->SetColor(TRgb::Gray4(1));
       
   407 	testWin->DrawNow();
       
   408 	testWin->Win()->EndRedraw();
       
   409 	TheClient->iWs.Flush();
       
   410 	CheckRectNoMatch(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(10,10),_L("CTRegion::ExposeTestL() A"));
       
   411 
       
   412 	TheClient->WaitForRedrawsToFinish();
       
   413 	CheckRect(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/3,screenSize.iHeight/2),_L("CTRegion::ExposeTestL() B"));
       
   414 
       
   415 	testWin->Win()->Invalidate(topHalf);
       
   416 	testWin->SetColor(TRgb::Gray4(2));
       
   417 	testWin->Win()->BeginRedraw();
       
   418 	testWin->Win()->Invalidate(leftHalf);
       
   419 	testWin->DrawNow();
       
   420 	testWin->Win()->EndRedraw();
       
   421 	TheClient->iWs.Flush();
       
   422 	CheckRect(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/6-10,screenSize.iHeight/2),_L("CTRegion::ExposeTestL() C"));
       
   423 	CheckRectNoMatch(TPoint(screenSize.iWidth/2,0),TPoint(screenSize.iWidth/2,screenSize.iHeight/2),TSize(10,10),_L("CTRegion::ExposeTestL() D"));
       
   424 	CheckRectNoMatch(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/2,0),TSize(10,10),_L("CTRegion::ExposeTestL() E"));
       
   425 	CheckRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TPoint(screenSize.iWidth/2,screenSize.iHeight/2),TSize(((screenSize.iWidth/6-5)/4*4),screenSize.iHeight/2),_L("CTRegion::ExposeTestL() F"));
       
   426 	testWin->Win()->BeginRedraw();
       
   427 	testWin->DrawNow();
       
   428 	testWin->Win()->EndRedraw();
       
   429 	TheClient->iWs.Flush();
       
   430 	
       
   431 	CheckRect(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/6-10,screenSize.iHeight/2),_L("CTRegion::ExposeTestL() G"));
       
   432 	CheckRectNoMatch(TPoint(screenSize.iWidth/2,0),TPoint(screenSize.iWidth/2,screenSize.iHeight/2),TSize(10,10),_L("CTRegion::ExposeTestL() H"));
       
   433 	CheckRect(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/2,0),TSize(((screenSize.iWidth/6-5)/4*4),screenSize.iHeight/2),_L("CTRegion::ExposeTestL() I"));
       
   434 	CheckRectNoMatch(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TPoint(screenSize.iWidth/2,screenSize.iHeight/2),TSize(10,10),_L("CTRegion::ExposeTestL() J"));
       
   435 
       
   436 	CleanupStack::PopAndDestroy(testWin);
       
   437 	}
       
   438 
       
   439 #if defined(__MARM_ARM4__)
       
   440 	#define FADING ETrue
       
   441 #elif defined(__MARM__)
       
   442 	#define FADING EFalse
       
   443 #else
       
   444 	#define FADING ETrue
       
   445 #endif
       
   446 void CTRegion::ExposeTest2L()
       
   447 	{
       
   448 	TBool canFade=FADING;
       
   449 #if defined(__MARM_THUMB__)
       
   450 	if (!RegionCanFadeSet)
       
   451 		return;
       
   452 	canFade=RegionCanFade;
       
   453 #endif
       
   454 	INFO_PRINTF1(_L("AUTO REGN ExpostTest2 "));
       
   455 	CBlankWindow* testWin;
       
   456 	RBlankWindow win(TheClient->iWs);
       
   457 	CleanupClosePushL(win);
       
   458 	TSize screenSize=TheClient->iGroup->Size();
       
   459 	TRect topHalf(0,0,screenSize.iWidth/3,screenSize.iHeight/2);
       
   460 	testWin=new(ELeave) CBlankWindow(TRgb::Gray4(0));
       
   461 	CleanupStack::PushL(testWin);
       
   462 	testWin->SetUpL(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight),TheClient->iGroup,*TheGc);
       
   463 	testWin->Win()->EnableRedrawStore(EFalse);
       
   464 	testWin->Win()->SetRequiredDisplayMode(EGray16);
       
   465 	testWin->SetColor(TRgb::Gray16(12));
       
   466 	testWin->RealDraw(ETrue);
       
   467 	win.Construct(*TheClient->iGroup->WinTreeNode(),3456);
       
   468 	win.SetColor(TRgb::Gray4(2));
       
   469 	win.SetExtent(TPoint(0,-screenSize.iHeight),TSize(screenSize.iWidth/3-2,2*screenSize.iHeight));
       
   470 	win.SetShadowHeight(screenSize.iWidth/9);
       
   471 	win.Activate();
       
   472 	TheClient->iWs.Flush();
       
   473 	TheClient->WaitForRedrawsToFinish();
       
   474 	INFO_PRINTF1(_L(" Constructed Windows"));
       
   475 	testWin->DrawNow();
       
   476 	testWin->Win()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
       
   477 	testWin->DrawNow(topHalf);
       
   478 	TheClient->iWs.Flush();
       
   479 	INFO_PRINTF1(_L(" Drawn TopHalf Faded"));
       
   480 	TBool retVal = TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight/2))
       
   481 						,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/3,screenSize.iHeight/2)));
       
   482 	TEST(retVal);
       
   483 	if (!retVal)
       
   484 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   485 
       
   486 	testWin->DrawNow(topHalf);
       
   487 	TheClient->iWs.Flush();
       
   488 	canFade!=TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(10,10))
       
   489 															,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(10,10)));
       
   490 	TEST(canFade);
       
   491 	if (!canFade)
       
   492 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, canFade);		
       
   493 
       
   494 	testWin->DrawNow();
       
   495 	TheClient->iWs.Flush();
       
   496 	INFO_PRINTF1(_L(" All Faded (Flush)"));
       
   497 	
       
   498 	retVal = TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight/2))
       
   499 						,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/3,screenSize.iHeight/2)));
       
   500 	TEST(retVal);
       
   501 	if (!retVal)
       
   502 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   503 
       
   504 	testWin->Win()->SetFaded(EFalse,RWindowTreeNode::EFadeWindowOnly);
       
   505 	TheClient->iWs.Flush();
       
   506 	TheClient->WaitForRedrawsToFinish();
       
   507 	INFO_PRINTF1(_L(" Redrawn Screen Unfaded"));
       
   508 	testWin->Win()->Invalidate(topHalf);
       
   509 	testWin->Win()->SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly);
       
   510 	testWin->DrawNow();
       
   511 	TheClient->iWs.Flush();
       
   512 	INFO_PRINTF1(_L(" Re Drawn Top Half Faded Again"));
       
   513 	retVal = TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight/2))
       
   514 						,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/3,screenSize.iHeight/2)));
       
   515 	TEST(retVal);
       
   516 	if (!retVal)
       
   517 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   518 
       
   519 	testWin->DrawNow();
       
   520 	TheClient->iWs.Flush();
       
   521 	INFO_PRINTF1(_L(" Re Drawn Top Half Faded Yet Again"));
       
   522 	canFade!=TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(10,10))
       
   523 															,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(10,10)));
       
   524 	TEST(canFade);
       
   525 	if (!canFade)
       
   526 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, canFade);		
       
   527 
       
   528 	testWin->DrawNow();
       
   529 	TheClient->iWs.Flush();
       
   530 	INFO_PRINTF1(_L(" All Faded Again"));
       
   531 	retVal = TheClient->iScreen->RectCompare(TRect(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight/2))
       
   532 						,TRect(TPoint(screenSize.iWidth/3,screenSize.iHeight/2),TSize(screenSize.iWidth/3,screenSize.iHeight/2)));
       
   533 	TEST(retVal);
       
   534 	if (!retVal)
       
   535 		INFO_PRINTF3(_L("TheClient->iScreen->RectCompare() return value  - Expected: %d, Actual: %d"), ETrue, retVal);		
       
   536 
       
   537 	CleanupStack::PopAndDestroy(2,&win);
       
   538 	INFO_PRINTF1(_L(" Killed Windows"));
       
   539 	}
       
   540 
       
   541 void CTRegion::CoverTestL()
       
   542 	{
       
   543 	CBlankWindow* testWin;
       
   544 	RBlankWindow win(TheClient->iWs);
       
   545 	CleanupClosePushL(win);
       
   546 	TSize screenSize=TheClient->iGroup->Size();
       
   547 	testWin=new(ELeave) CBlankWindow(TRgb::Gray4(0));
       
   548 	CleanupStack::PushL(testWin);
       
   549 	testWin->SetUpL(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight),TheClient->iGroup,*TheGc);
       
   550 	testWin->SetColor(TRgb::Gray4(1));
       
   551 	testWin->RealDraw(ETrue);
       
   552 	win.Construct(*TheClient->iGroup->WinTreeNode(),3456);
       
   553 	win.SetColor(TRgb::Gray4(0));
       
   554 	win.SetExtent(TPoint(screenSize.iWidth/3+30,20),TSize(screenSize.iWidth/3-62,25));
       
   555 	win.SetVisible(EFalse);
       
   556 	win.Activate();
       
   557 	TheClient->iWs.Flush();
       
   558 	TheClient->WaitForRedrawsToFinish();
       
   559 	testWin->DrawNow();
       
   560 	testWin->SetColor(TRgb::Gray4(2));
       
   561 	win.SetVisible(ETrue);
       
   562 	testWin->DrawNow();
       
   563 	TheClient->iWs.Flush();
       
   564 	CheckRectNoMatch(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3+30,20),TSize(10,10),_L("TRegion::CoverTestL() A"));
       
   565 
       
   566 	TheClient->WaitForRedrawsToFinish();
       
   567 	CheckRectNoMatch(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3+30,20),TSize(10,10),_L("TRegion::CoverTestL() B"));
       
   568 
       
   569 	win.SetVisible(EFalse);
       
   570 	TheClient->iWs.Flush();
       
   571 	TheClient->WaitForRedrawsToFinish();
       
   572 	testWin->SetColor(TRgb::Gray4(1));
       
   573 	testWin->Win()->Invalidate();
       
   574 	win.SetVisible(ETrue);
       
   575 	testWin->DrawNow();
       
   576 	TheClient->iWs.Flush();
       
   577 	CheckRectNoMatch(TPoint(screenSize.iWidth/3,0),TPoint(screenSize.iWidth/3+30,20),TSize(10,10),_L("TRegion::CoverTestL() C"));
       
   578 
       
   579 	CleanupStack::PopAndDestroy(2,&win);
       
   580 	}
       
   581 
       
   582 void CTRegion::OffsetTestL()
       
   583 	{
       
   584 	CBlankWindow* testWin;
       
   585 	RBlankWindow win(TheClient->iWs);
       
   586 	CleanupClosePushL(win);
       
   587 	TSize screenSize=TheClient->iGroup->Size();
       
   588 	testWin=new(ELeave) CBlankWindow(TRgb::Gray4(0));
       
   589 	CleanupStack::PushL(testWin);
       
   590 	testWin->SetUpL(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight-40),TheClient->iGroup,*TheGc);
       
   591 	testWin->Win()->EnableRedrawStore(EFalse);
       
   592 	testWin->SetColor(TRgb::Gray4(1));
       
   593 	testWin->RealDraw(ETrue);
       
   594 	win.Construct(*testWin->WinTreeNode(),3456);
       
   595 	win.SetColor(TRgb::Gray4(2));
       
   596 	win.SetExtent(TPoint(30,20),TSize(screenSize.iWidth/3-62,25));
       
   597 	win.Activate();
       
   598 	TheClient->iWs.Flush();
       
   599 	TheClient->WaitForRedrawsToFinish();
       
   600 	win.SetVisible(EFalse);
       
   601 	TheClient->iWs.Flush();
       
   602 	testWin->DrawNow();
       
   603 	testWin->SetColor(TRgb::Gray4(2));
       
   604 	testWin->Win()->SetPosition(TPoint(screenSize.iWidth/3+30,35));
       
   605 	testWin->DrawNow();
       
   606 	TheClient->iWs.Flush();
       
   607 	/* Andy - this is verifying that the complete redraw of the window in the second DrawNow only affects part
       
   608 	of the window.  I don't understand it atall.
       
   609 	CheckRectNoMatch(TPoint(screenSize.iWidth/3+60,55),TPoint(screenSize.iWidth/3+70,85),TSize(10,10),_L("CTRegion::OffsetTestL() A"));
       
   610 	*/
       
   611 	TheClient->WaitForRedrawsToFinish();
       
   612 	CheckRect(TPoint(screenSize.iWidth/3+60,55),TPoint(screenSize.iWidth/3+70,85),TSize(screenSize.iWidth/3-62,25),_L("CTRegion::OffsetTestL() A"));
       
   613 
       
   614 	win.SetVisible(ETrue);
       
   615 	win.SetVisible(EFalse);
       
   616 	testWin->Win()->SetPosition(TPoint(screenSize.iWidth/3+5,5));
       
   617 	testWin->SetColor(TRgb::Gray4(1));
       
   618 	testWin->DrawNow();
       
   619 	TheClient->iWs.Flush();
       
   620 	CheckRect(TPoint(screenSize.iWidth/3+60,55),TPoint(screenSize.iWidth/3+55,90),TSize(screenSize.iWidth/3-62,25),_L("CTRegion::OffsetTestL() B"));
       
   621 	/* Andy - this is verifying that the complete redraw of the window during DrawNow only affects part
       
   622 	of the window.  I don't understand it atall.
       
   623 	CheckRectNoMatch(TPoint(screenSize.iWidth/3+30,20),TPoint(screenSize.iWidth/3+50,90),TSize(10,10),_L("CTRegion::OffsetTestL() B"));
       
   624 	*/
       
   625 	CleanupStack::PopAndDestroy(2,&win);
       
   626 	}
       
   627 
       
   628 void CTRegion::ClipTestL()
       
   629 	{
       
   630 	CBlankWindow* testWin;
       
   631 	RBlankWindow win(TheClient->iWs);
       
   632 	CleanupClosePushL(win);
       
   633 	TSize screenSize=TheClient->iGroup->Size();
       
   634 	testWin=new(ELeave) CBlankWindow(TRgb::Gray4(0));
       
   635 	CleanupStack::PushL(testWin);
       
   636 	testWin->SetUpL(TPoint(screenSize.iWidth/3,0),TSize(screenSize.iWidth/3,screenSize.iHeight),TheClient->iGroup,*TheGc);
       
   637 	testWin->Win()->EnableRedrawStore(EFalse);
       
   638 	testWin->SetColor(TRgb::Gray4(1));
       
   639 	testWin->RealDraw(ETrue);
       
   640 	win.Construct(*testWin->WinTreeNode(),3456);
       
   641 	win.SetColor(TRgb::Gray4(2));
       
   642 	win.SetExtent(TPoint(30,20),TSize(screenSize.iWidth/3-62,25));
       
   643 	win.Activate();
       
   644 	TheClient->iWs.Flush();
       
   645 	TheClient->WaitForRedrawsToFinish();
       
   646 	win.SetVisible(EFalse);
       
   647 	TheClient->iWs.Flush();
       
   648 	testWin->DrawNow();
       
   649 	testWin->SetColor(TRgb::Gray4(2));
       
   650 	User::LeaveIfError(testWin->Win()->SetSizeErr(TSize(screenSize.iWidth/6,screenSize.iHeight-2)));
       
   651 	RRegion invalid;
       
   652 	testWin->Win()->GetInvalidRegion(invalid);
       
   653 	testWin->DrawNow();
       
   654 	TheClient->iWs.Flush();
       
   655 	TBool retVal = !invalid.CheckError();
       
   656 	TEST(retVal);
       
   657 	if (!retVal)
       
   658 		INFO_PRINTF3(_L("!invalid.CheckError() return value  - Expected: %d, Actual: %d"), ETrue, retVal);			
       
   659 	
       
   660 	TEST(invalid.BoundingRect().iBr.iX<=screenSize.iWidth/6);
       
   661 	if (invalid.BoundingRect().iBr.iX>screenSize.iWidth/6)
       
   662 		INFO_PRINTF3(_L("invalid.BoundingRect().iBr.iX<=screenSize.iWidth/6  - Expected: %d, Actual: %d"), screenSize.iWidth/6, invalid.BoundingRect().iBr.iX);			
       
   663 	TheClient->iWs.Finish();
       
   664 	TheClient->WaitForRedrawsToFinish();
       
   665 	testWin->Win()->GetInvalidRegion(invalid);
       
   666 	
       
   667 	retVal = invalid.IsEmpty();
       
   668 	TEST(retVal);
       
   669 	if (!retVal)
       
   670 		{
       
   671 		INFO_PRINTF3(_L("!invalid.CheckError() return value  - Expected: %d, Actual: %d"), ETrue, retVal);
       
   672 		}
       
   673 
       
   674 	User::LeaveIfError(testWin->Win()->SetSizeErr(TSize(screenSize.iWidth/3,screenSize.iHeight-4)));
       
   675 	win.SetVisible(ETrue);
       
   676 	win.SetVisible(EFalse);
       
   677 	User::LeaveIfError(testWin->Win()->SetSizeErr(TSize(screenSize.iWidth/6,screenSize.iHeight-6)));
       
   678 	testWin->SetColor(TRgb::Gray4(1));
       
   679 	testWin->DrawNow();
       
   680 	TheClient->iWs.Flush();
       
   681 	//PeterI This is testing an intermediate state i.e. "flicker" and will never pass on mk3
       
   682 /*	CheckRectNoMatch(TPoint(screenSize.iWidth/3+30,20),TPoint(screenSize.iWidth/3+50,90),TSize(10,10),_L("CTRegion::ClipTestL()"));
       
   683 	TEST(retVal);
       
   684 	if (!retVal)
       
   685 		{
       
   686 		INFO_PRINTF3(_L("!CheckRect() return value  - Expected: %d, Actual: %d"), ETrue, retVal);
       
   687 		}
       
   688 		*/
       
   689 	CleanupStack::PopAndDestroy(2,&win);
       
   690 	}
       
   691 
       
   692 void CTRegion::RunTestCaseL(TInt /*aCurTestCase*/)
       
   693 	{
       
   694 	((CTRegionStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
       
   695 	switch(++iTest->iState)
       
   696 		{
       
   697 /**
       
   698 @SYMTestCaseID		GRAPHICS-WSERV-0272
       
   699 
       
   700 @SYMDEF             DEF081259
       
   701 
       
   702 @SYMTestCaseDesc    Test drawing to a region including clipping
       
   703 
       
   704 @SYMTestPriority    High
       
   705 
       
   706 @SYMTestStatus      Implemented
       
   707 
       
   708 @SYMTestActions     Draw to a region that has clipping enabled and the check the
       
   709 					drawing occurs correctly
       
   710 
       
   711 @SYMTestExpectedResults Drawing to the region occurs correctly
       
   712 */
       
   713 		case 1:
       
   714 			{
       
   715 			((CTRegionStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0272"));
       
   716 			iTest->LogSubTest(_L("Main"));
       
   717 			RRegion clippingRegion;
       
   718 			CreateChildWindowsL();
       
   719 			TheClient->iWs.Finish();
       
   720 			TheClient->WaitForRedrawsToFinish();
       
   721 			TSize scrSize(TheClient->iScreen->SizeInPixels());
       
   722 			for(TUint index=0;index<(sizeof(regionRectList)/sizeof(regionRectList[0]));index++)
       
   723 				{
       
   724 				regionRectList[index].SetWidth((regionRectList[index].Width()*scrSize.iWidth)/640);
       
   725 				regionRectList[index].SetHeight((regionRectList[index].Height()*scrSize.iHeight)/240);
       
   726 				clippingRectList[index].SetWidth((clippingRectList[index].Width()*scrSize.iWidth)/640);
       
   727 				clippingRectList[index].SetHeight((clippingRectList[index].Height()*scrSize.iHeight)/240);
       
   728 				originList[index].iX = (originList[index].iX*scrSize.iWidth)/640;
       
   729 				originList[index].iY = (originList[index].iY*scrSize.iHeight)/240;
       
   730 
       
   731 				clippingRegion.AddRect(regionRectList[index]);
       
   732 				TestRegionL(clippingRegion,clippingRectList[index],originList[index]);
       
   733 				}
       
   734 			clippingRegion.Close();
       
   735 			DeleteChildWindows();
       
   736 			}
       
   737 			break;
       
   738 /**
       
   739 @SYMTestCaseID		GRAPHICS-WSERV-0273
       
   740 
       
   741 @SYMDEF             DEF081259
       
   742 
       
   743 @SYMTestCaseDesc    Test drawing to a region including clipping as it is exposed
       
   744 
       
   745 @SYMTestPriority    High
       
   746 
       
   747 @SYMTestStatus      Implemented
       
   748 
       
   749 @SYMTestActions     Draw to a region that has clipping enabled as it is exposed
       
   750 					and the check the drawing occurs correctly
       
   751 
       
   752 @SYMTestExpectedResults Drawing to the region occurs correctly
       
   753 */
       
   754 		case 2:
       
   755 			((CTRegionStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0273"));
       
   756 			//PeterI This appears to be testing "flicker" of a window after an expose
       
   757 			//Mk3 doesn't exhibit this behaviour. Is the flicker expected behaviour?
       
   758 //			iTest->LogSubTest(_L("Expose Test"));
       
   759 //			ExposeTestL();
       
   760 			break;
       
   761 /**
       
   762 @SYMTestCaseID		GRAPHICS-WSERV-0274
       
   763 
       
   764 @SYMDEF             DEF081259
       
   765 
       
   766 @SYMTestCaseDesc    Test drawing to a region including clipping as it is exposed
       
   767 
       
   768 @SYMTestPriority    High
       
   769 
       
   770 @SYMTestStatus      Implemented
       
   771 
       
   772 @SYMTestActions     Draw to a region that has clipping enabled as it is exposed
       
   773 					and the check the drawing occurs correctly
       
   774 
       
   775 @SYMTestExpectedResults Drawing to the region occurs correctly
       
   776 */
       
   777 		case 3:
       
   778 			((CTRegionStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0274"));
       
   779 			iTest->LogSubTest(_L("Expose Test2"));
       
   780 			ExposeTest2L();
       
   781 			break;
       
   782 /**
       
   783 @SYMTestCaseID		GRAPHICS-WSERV-0275
       
   784 
       
   785 @SYMDEF             DEF081259
       
   786 
       
   787 @SYMTestCaseDesc    Test drawing to a region including clipping as it is covered
       
   788 
       
   789 @SYMTestPriority    High
       
   790 
       
   791 @SYMTestStatus      Implemented
       
   792 
       
   793 @SYMTestActions     Draw to a region that has clipping enabled as it is covered
       
   794 					and the check the drawing occurs correctly
       
   795 
       
   796 @SYMTestExpectedResults Drawing to the region occurs correctly
       
   797 */
       
   798 		case 4:
       
   799 			((CTRegionStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0275"));
       
   800 			iTest->LogSubTest(_L("Cover Test"));
       
   801 			CoverTestL();
       
   802 			break;
       
   803 /**
       
   804 @SYMTestCaseID		GRAPHICS-WSERV-0276
       
   805 
       
   806 @SYMDEF             DEF081259
       
   807 
       
   808 @SYMTestCaseDesc    Test drawing to a region including clipping and with an offset
       
   809 
       
   810 @SYMTestPriority    High
       
   811 
       
   812 @SYMTestStatus      Implemented
       
   813 
       
   814 @SYMTestActions     Draw to a region that has clipping enabled and with an offset
       
   815 					and the check the drawing occurs correctly
       
   816 
       
   817 @SYMTestExpectedResults Drawing to the region occurs correctly
       
   818 */
       
   819 		case 5:
       
   820 			((CTRegionStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0276"));
       
   821 			iTest->LogSubTest(_L("Offset Test"));
       
   822 			OffsetTestL();
       
   823 			break;
       
   824 /**
       
   825 @SYMTestCaseID		GRAPHICS-WSERV-0277
       
   826 
       
   827 @SYMDEF             DEF081259
       
   828 
       
   829 @SYMTestCaseDesc    Test drawing to a region including clipping
       
   830 
       
   831 @SYMTestPriority    High
       
   832 
       
   833 @SYMTestStatus      Implemented
       
   834 
       
   835 @SYMTestActions     Draw to a region that has clipping enabled
       
   836 					and the check the drawing occurs correctly
       
   837 
       
   838 @SYMTestExpectedResults Drawing to the region occurs correctly
       
   839 */
       
   840 		case 6:
       
   841 			((CTRegionStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0277"));
       
   842 			iTest->LogSubTest(_L("Clip Test"));
       
   843 			ClipTestL();
       
   844 			break;
       
   845 		default:
       
   846 			((CTRegionStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
       
   847 			((CTRegionStep*)iStep)->CloseTMSGraphicsStep();
       
   848 			TestComplete();
       
   849 		}
       
   850 	((CTRegionStep*)iStep)->RecordTestResultL();
       
   851 	}
       
   852 
       
   853 	
       
   854 __WS_CONSTRUCT_STEP__(Region)