--- a/windowing/windowserver/tauto/TGDI.CPP Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1289 +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:
-// GDI.CPP
-// Test GDI functions
-//
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#include "TGDI.H"
-
-#define TAUTO_BITMAP_NAME _L("Z:\\WSTEST\\TAUTO.MBM")
-
-//#define LOGGING on //Uncomment this line to get extra test logging - useful if debugging a failure of one of the tests
-
-typedef CGdiTestLowLevel *(*GdiTestFunc)();
-
-_LIT(KMonospaceTestFontTypefaceName,"Arial");
-const TInt KMaxFontSize = 200;
-
-static inline TBool IsLengthEqual(TInt aLLen, TInt aRLen, TInt aBbLen)
- {
-// The bounding box of a 'w' is one pixel wider than it should be. W overlaps in to the bounding box of 'x' as the two
-// are stuck together. So add a tolerance of -1.
- return (((aLLen+aRLen)==aBbLen) || ((aLLen+aRLen-1)==aBbLen));
- }
-
-struct GdiTest
- {
- GdiTestFunc func;
- const TText *txt;
- };
-
-GdiTest GdiTestFuncs[]={
- {BoxTextTest,_S("BoxText")},
- {VertTextTest,_S("VertText")},
- /*{JustifiedTextTest,_S("JustifiedText")},*/ // DEF107985 The test for JustifiedText has been removed as it was a bad/useless test
- {VertBoxTextTest,_S("VertBoxText")},
- {SetOriginTest,_S("SetOrigin")},
- {PolyLineTest,_S("PolyLine")},
- {PolygonTest,_S("Polygon")},
- {DrawArcTest,_S("DrawArc")},
- {DrawPieTest,_S("DrawPie")},
- {DrawRoundRectTest,_S("DrawRoundRect")},
- {WideLineTest,_S("WideLine")},
- {DrawTextTest,_S("DrawText")},
- {DrawRectTest,_S("DrawRect")},
- };
-
-CTestWindow::CTestWindow(TRgb aCol) : CBlankWindow(aCol)
- {
- }
-
-CTestWindow::~CTestWindow()
- {
- }
-
-void CTestWindow::ConstructL(TPoint aPos,TSize aSize,CTWinBase* aParent, CWindowGc& aGc)
- {
- iWin=RWindow(TheClient->iWs);
- User::LeaveIfError(iWin.Construct(*(aParent->WinTreeNode()),ENullWsHandle));
- SetExt(aPos,aSize);
- Activate();
- AssignGC(aGc);
- }
-
-void CGdiTestLowLevel::SetGdiTest(CTGdi *aGdiTest)
- {
- iGdiTest=aGdiTest;
- }
-
-void CGdiTestLowLevel::AssignGdi(CWindowGc *aGc)
- {
- iGdi=aGc;
- }
-
-void CGdiTestLowLevel::ConstructL(TInt)
- {
- }
-
-void CGdiTestLowLevel::PreTestSetupL(const TRect &,TInt)
- {
- }
-
-//=======================================//
-// Individual GDI low level test classes //
-//=======================================//
-
-
-void CGdiRect::ConstructL(TInt)
- {
- }
-
-void CGdiRect::PreTestSetupL(const TRect &, TInt aCount)
- {
- iBrushCol=TRgb::Gray256(aCount&0x1 ? 0xFF : 0x60);
- iPenCol=TRgb::Gray256(aCount&0x1 ? 0xA0 : 0x0);
- }
-
-TInt CGdiRect::Count(TBool )
- {
- return(1);
- }
-
-void CGdiDrawRect::BaseTest(const TRect &aRect, TInt aCount)
- {
- TheTest(aRect,aCount);
- }
-
-void CGdiDrawRect::TheTest(const TRect &aRect, TInt)
- {
- iGdi->SetBrushColor(iBrushCol);
- iGdi->SetPenColor(iPenCol);
- iGdi->DrawRect(aRect);
- }
-
-TInt CGdiDrawRect::Count(TBool aMode)
- {
- return(aMode ? 4:1);
- }
-
-TInt CGdiDrawRoundRect::Count(TBool aMode)
- {
- return(aMode ? 4:1);
- }
-
-void CGdiDrawRoundRect::BaseTest(const TRect &aRect, TInt aCount)
- {
- TheTest(aRect,aCount);
- }
-
-void CGdiDrawRoundRect::TheTest(const TRect &aRect, TInt aCount)
- {
- iGdi->SetBrushColor(iBrushCol);
- iGdi->SetPenColor(iPenCol);
- TSize size((aRect.iBr.iX-aRect.iTl.iX)/4,(aRect.iBr.iY-aRect.iTl.iY)/4);
- switch(aCount)
- {
- case 0:
- size.SetSize((aRect.iBr.iX-aRect.iTl.iX)/4,(aRect.iBr.iY-aRect.iTl.iY)/4);
- break;
- case 1:
- size.SetSize(0,0);
- break;
- case 2:
- size.SetSize((aRect.iBr.iX-aRect.iTl.iX)/2,(aRect.iBr.iY-aRect.iTl.iY)/2);
- break;
- case 3:
- size.SetSize((aRect.iBr.iX-aRect.iTl.iX),(aRect.iBr.iY-aRect.iTl.iY));
- break;
- }
- iGdi->DrawRoundRect(aRect,size);
- }
-
-TInt CGdiDrawACP::Count(TBool )
- {
- return(1);
- }
-
-void CGdiDrawACP::ConstructL(TInt)
- {
- }
-
-void CGdiDrawACP::PreTestSetupL(const TRect &, TInt )
- {
- iBrushCol=TRgb::Gray256(0xff);
- iPenCol=TRgb(0,0,0);
- }
-
-void CGdiDrawArc::BaseTest(const TRect &aRect, TInt aCount)
- {
- TheTest(aRect,aCount);
- }
-
-void CGdiDrawArc::TheTest(const TRect &aRect, TInt)
- {
- iGdi->SetBrushColor(iBrushCol);
- iGdi->SetPenColor(iPenCol);
- TPoint start(aRect.iTl.iX/2+aRect.iBr.iX,aRect.iTl.iY/2+aRect.iBr.iY);
- iGdi->DrawArc(aRect,start,TPoint(0,0));
- }
-
-void CGdiDrawPie::BaseTest(const TRect &aRect, TInt aCount)
- {
- TheTest(aRect,aCount);
- }
-
-void CGdiDrawPie::TheTest(const TRect &aRect, TInt)
- {
- iGdi->SetBrushColor(iBrushCol);
- iGdi->SetPenColor(iPenCol);
- TPoint start(aRect.iTl.iX/2+aRect.iBr.iX,aRect.iTl.iY/2+aRect.iBr.iY);
- iGdi->DrawPie(aRect,start,TPoint(0,0));
- }
-
-//
-// Polyline tests
-//
-
-CGdiPolyLine::CGdiPolyLine() : iPnts(5)
- {}
-
-void CGdiPolyLine::PreTestSetupL(const TRect &aRect, TInt aCount)
- {
- iPnts.Reset();
- TInt wid=aRect.Width();
- TInt hgt=aRect.Height();
- if (aCount==0)
- {
- TInt pos;
- for(pos=0;pos<wid;pos+=10)
- {
- iPnts.AppendL(TPoint(aRect.iTl.iX+pos,aRect.iTl.iY));
- iPnts.AppendL(TPoint(aRect.iTl.iX+pos+5,aRect.iBr.iY));
- }
- for(pos=0;pos<hgt;pos+=10)
- {
- iPnts.AppendL(TPoint(aRect.iTl.iX,aRect.iTl.iY+pos));
- iPnts.AppendL(TPoint(aRect.iBr.iX,aRect.iTl.iY+pos+5));
- }
- }
- else
- {
- TInt hgt=aRect.Height();
- iPnts.AppendL(TPoint(aRect.iTl.iX,aRect.iTl.iY));
- iPnts.AppendL(TPoint(aRect.iBr.iX,aRect.iTl.iY+hgt/2));
- iPnts.AppendL(TPoint(aRect.iTl.iX,aRect.iBr.iY));
- iPnts.AppendL(TPoint(aRect.iBr.iX,aRect.iBr.iY));
- iPnts.AppendL(TPoint(aRect.iTl.iX,aRect.iTl.iY+hgt/2));
- iPnts.AppendL(TPoint(aRect.iBr.iX,aRect.iTl.iY));
- iPnts.AppendL(TPoint(aRect.iTl.iX,aRect.iTl.iY));
- }
- }
-
-void CGdiPolyLine::ConstructL(TInt )
- {
- }
-
-TInt CGdiPolyLine::Count(TBool aMainTests)
- {
- return(aMainTests ? 2 : 1);
- }
-
-void CGdiPolyLine::BaseTest(const TRect &, TInt )
- {
- TPoint prev;
- TInt index;
- for(index=0;index<iPnts.Count();index++)
- {
- if (index>0)
- iGdi->DrawLine(prev,iPnts[index]);
- prev=iPnts[index];
- }
- if (index>0)
- iGdi->Plot(iPnts[index-1]);
- }
-
-void CGdiPolyLine::TheTest(const TRect &, TInt )
- {
- iGdi->DrawPolyLine(&iPnts);
- }
-
-//
-// Polygon tests //
-//
-
-CGdiPolygon::CGdiPolygon() : iPnts(5)
- {}
-
-void CGdiPolygon::PreTestSetupL(const TRect &aRect, TInt )
- {
- iPnts.Reset();
- TPoint pnt;
- TInt maxPoints=Min((TInt)KMaxPolygonPoints,Min(aRect.Width(),aRect.Height())/KPolygonStep);
- TInt numPoints=0;
- if (maxPoints>0)
- {
- iPnts.AppendL(aRect.iTl);
- while(numPoints<maxPoints)
- {
- if (numPoints&1)
- pnt.SetXY(aRect.iTl.iX+(numPoints+1)*KPolygonStep,aRect.iTl.iY+numPoints*KPolygonStep);
- else
- pnt.SetXY(aRect.iTl.iX+numPoints*KPolygonStep,aRect.iTl.iY+(numPoints+1)*KPolygonStep);
- iPnts.AppendL(pnt);
- numPoints++;
- }
- pnt.SetXY(aRect.iTl.iX+numPoints*KPolygonStep,aRect.iTl.iY+numPoints*KPolygonStep);
- iPnts.AppendL(pnt);
- while(numPoints>0)
- {
- numPoints--;
- if (numPoints&1)
- pnt.SetXY(aRect.iTl.iX+numPoints*KPolygonStep,aRect.iTl.iY+(numPoints+1)*KPolygonStep);
- else
- pnt.SetXY(aRect.iTl.iX+(numPoints+1)*KPolygonStep,aRect.iTl.iY+numPoints*KPolygonStep);
- iPnts.AppendL(pnt);
- }
- }
- }
-
-void CGdiPolygon::ConstructL(TInt )
- {
- }
-
-TInt CGdiPolygon::Count(TBool aMainTests)
- {
- return(aMainTests ? 2 : 1);
- }
-
-void CGdiPolygon::BaseTest(const TRect &aRect, TInt )
- {
- iGdi->SetPenColor(TRgb::Gray4(2));
- iGdi->SetBrushColor(TRgb::Gray4(1));
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
- TInt maxPoints=Min((TInt)KMaxPolygonPoints,Min(aRect.Width(),aRect.Height())/KPolygonStep);
- for(TInt numPoints=0;numPoints<maxPoints;numPoints++)
- iGdi->DrawRect(TRect(aRect.iTl.iX+numPoints*KPolygonStep + 1,aRect.iTl.iY+numPoints*KPolygonStep + 1,
- aRect.iTl.iX+(numPoints+1)*KPolygonStep ,aRect.iTl.iY+(numPoints+1)*KPolygonStep));
- }
-
-void CGdiPolygon::TheTest(const TRect &, TInt )
-//This is the only one that can leave so it's not worth adding an 'L'
- {
- iGdi->SetPenColor(TRgb::Gray4(2));
- iGdi->SetBrushColor(TRgb::Gray4(1));
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
- User::LeaveIfError(iGdi->DrawPolygon(&iPnts,CGraphicsContext::EAlternate));
- }
-
-//
-
-TInt CGdiWideLine::Count(TBool aMainTests)
- {
- return(aMainTests ? EMainNumWidths : EMinorNumWidths);
- }
-
-void CGdiWideLine::ConstructL(TInt)
- {
- }
-
-void CGdiWideLine::PreTestSetupL(const TRect &, TInt aCount)
- {
- TInt widths[]={1,4,50,-2,
- 48,12345,0,3,
- 48,123,0,3,
- 4,111,555,1000,
- 10,-1,-10,-100};
- iWidth=widths[aCount];
- }
-
-void CGdiWideLine::BaseTest(const TRect &aRect, TInt)
- {
- iGdi->SetPenSize(TSize(iWidth,iWidth));
- iGdi->DrawLine(aRect.iTl,aRect.iBr);
- iGdi->MoveTo(aRect.iTl+TPoint(0,10));
- iGdi->DrawLineBy(aRect.iBr-aRect.iTl);
- iGdi->MoveBy(aRect.iTl-aRect.iBr+TPoint(0,10));
- iGdi->DrawLineTo(aRect.iBr+TPoint(0,20));
- }
-
-void CGdiWideLine::TheTest(const TRect &aRect, TInt)
- {
- iGdi->SetPenSize(TSize(iWidth,iWidth));
- iGdi->MoveTo(aRect.iTl);
- iGdi->DrawLineBy(aRect.iBr-aRect.iTl);
- iGdi->MoveBy(aRect.iTl-aRect.iBr+TPoint(0,10));
- iGdi->DrawLineTo(aRect.iBr+TPoint(0,10));
- iGdi->DrawLine(aRect.iTl+TPoint(0,20),aRect.iBr+TPoint(0,20));
- }
-
-//
-// Set Origin //
-//
-
-CGdiSetOrigin::~CGdiSetOrigin()
- {
- delete iPolylineArray;
- delete iPolygonArray;
- TheClient->iScreen->ReleaseFont(iFont);
- }
-
-TInt CGdiSetOrigin::Count(TBool )
- {
- return(1);
- }
-
-void CGdiSetOrigin::ConstructL(TInt)
- {
- iPolylineArray=new(ELeave) CArrayFixFlat<TPoint>(3);
- iPolylineArray->AppendL(TPoint(40,1));
- iPolylineArray->AppendL(TPoint(50,11));
- iPolylineArray->AppendL(TPoint(40,21));
- iPolygonArray=new(ELeave) CArrayFixFlat<TPoint>(3);
- iPolygonArray->AppendL(TPoint(40,30));
- iPolygonArray->AppendL(TPoint(50,40));
- iPolygonArray->AppendL(TPoint(40,45));
- TFontSpec fspec(KMonospaceTestFontTypefaceName,KMaxFontSize);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iFont,fspec));
- }
-
-void CGdiSetOrigin::PreTestSetupL(const TRect &, TInt )
- {
- }
-
-void CGdiSetOrigin::DrawIt(const TPoint &aOffset)
- {
- iGdi->DrawLine(TPoint(10,10)+aOffset,TPoint(20,30)+aOffset);
- iGdi->DrawLineBy(TPoint(-10,5));
- iGdi->DrawLineTo(TPoint(20,5)+aOffset);
- iGdi->MoveTo(TPoint(20,10)+aOffset);
- iGdi->DrawLineTo(TPoint(30,15)+aOffset);
- iGdi->MoveBy(TPoint(-10,2));
- iGdi->DrawLineBy(TPoint(10,0));
- iGdi->UseFont(iFont);
- iGdi->DrawText(_L("Set Origin Test"),TPoint(40,20)+aOffset);
- iGdi->DiscardFont();
- iGdi->DrawRect(TRect(TPoint(10,45)+aOffset,TPoint(20,55)+aOffset));
- iGdi->DrawRoundRect(TRect(TPoint(21,45)+aOffset,TPoint(30,55)+aOffset),TSize(3,2));
- iGdi->DrawEllipse(TRect(TPoint(31,45)+aOffset,TPoint(40,55)+aOffset));
- TInt index;
- for(index=0;index<iPolylineArray->Count();index++)
- (*iPolylineArray)[index]+=aOffset;
- iGdi->DrawPolyLine(iPolylineArray);
- for(index=0;index<iPolylineArray->Count();index++)
- (*iPolylineArray)[index]-=aOffset;
- for(index=0;index<iPolygonArray->Count();index++)
- (*iPolygonArray)[index]+=aOffset;
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
- User::LeaveIfError(iGdi->DrawPolygon(iPolygonArray,CGraphicsContext::EAlternate)); //Doesn't cause any harm if it leaves
- for(index=0;index<iPolygonArray->Count();index++)
- (*iPolygonArray)[index]-=aOffset;
- }
-
-void CGdiSetOrigin::BaseTest(const TRect &aRect, TInt)
- {
- DrawIt(aRect.iTl);
- }
-
-void CGdiSetOrigin::TheTest(const TRect &aRect, TInt)
- {
- iGdi->SetOrigin(aRect.iTl);
- DrawIt(TPoint(0,0));
- }
-
-//
-// Draw text //
-//
-
-CGdiDrawText::~CGdiDrawText()
- {
- TheClient->iScreen->ReleaseFont(iFont);
- }
-
-TInt CGdiDrawText::Count(TBool )
- {
- return(1);
- }
-
-void CGdiDrawText::ConstructL(TInt)
- {
- TFontSpec fspec(KMonospaceTestFontTypefaceName,KMaxFontSize);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iFont,fspec));
- TInt index;
- for(index=0;index<iBigBuffer.MaxLength();index++)
- iBigBuffer.Append(TChar((index%26)+'a'));
- const TInt characters=iBigBuffer.Length();
- TInt bbLen=iFont->TextWidthInPixels(iBigBuffer);
- for(index=0;index<iBigBuffer.MaxLength();index+=33)
- {
- TInt lLen=iFont->TextWidthInPixels(iBigBuffer.Left(index));
- TInt rLen=iFont->TextWidthInPixels(iBigBuffer.Right(characters-index));
- TBool result = IsLengthEqual(lLen,rLen,bbLen);
- iGdiTest->TEST(result);
- if (!result)
- {
- _LIT(KLog,"Font width metrics error, Width(%dchars)=%d, Width(%dchars)=%d, Width(%dchars)=%d");
- iGdiTest->LOG_MESSAGE7(KLog,index,lLen,characters-index,rLen,characters,bbLen);
- }
- }
- }
-
-void CGdiDrawText::PreTestSetupL(const TRect&,TInt)
- {}
-
-void CGdiDrawText::BaseTest(const TRect& aRect,TInt)
- {
- TInt bbLen=iFont->TextWidthInPixels(iBigBuffer);
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
-//
- iGdi->DrawText(_L("Hello"), TPoint(aRect.iTl.iX, aRect.iTl.iY+fAscent));
- TInt missingChars=iFont->TextCount(iBigBuffer,bbLen-aRect.iBr.iX)-1; // -1 so one off screen char is drawn to handle overhang
- if (missingChars>=0)
- {
- TPtrC bbb=iBigBuffer.Right(iBigBuffer.Length()-missingChars);
- TInt lLen=iFont->TextWidthInPixels(iBigBuffer.Left(missingChars));
- TInt rLen=iFont->TextWidthInPixels(bbb);
- TBool result = IsLengthEqual(lLen,rLen,bbLen);
- iGdiTest->TEST(result);
- if (!result)
- {
- _LIT(KLog,"Font width metrics error, missingChars=%d %d+%d=%d");
- iGdiTest->LOG_MESSAGE5(KLog,missingChars,lLen,rLen,bbLen);
- }
- iGdi->DrawText(bbb,TPoint(aRect.iBr.iX-rLen,aRect.iTl.iY+fAscent+fHeight));
- }
- iGdi->DiscardFont();
- }
-
-void CGdiDrawText::TheTest(const TRect& aRect,TInt)
- {
- TInt bbLen=iFont->TextWidthInPixels(iBigBuffer);
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
-//
- iGdi->DrawText(_L("Hello"), TPoint(aRect.iTl.iX, aRect.iTl.iY+fAscent));
- iGdi->DrawText(iBigBuffer,TPoint(aRect.iBr.iX-bbLen,aRect.iTl.iY+fAscent+fHeight));
- iGdi->DiscardFont();
- }
-
-//
-// Draw vertical text //
-//
-
-CGdiDrawVertText::~CGdiDrawVertText()
- {
- TheClient->iScreen->ReleaseFont(iFont);
- }
-
-TInt CGdiDrawVertText::Count(TBool )
- {
- return(1);
- }
-
-void CGdiDrawVertText::ConstructL(TInt)
- {
- TFontSpec fspec(KMonospaceTestFontTypefaceName,KMaxFontSize);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iFont,fspec));
- TInt index;
- for(index=0;index<iBigBuffer.MaxLength();index++)
- iBigBuffer.Append(TChar((index%26)+'a'));
-//
- TInt bbLen=iFont->TextWidthInPixels(iBigBuffer);
- for(index=0;index<iBigBuffer.MaxLength();index+=33)
- {
- TInt lLen=iFont->TextWidthInPixels(iBigBuffer.Left(index));
- TInt rLen=iFont->TextWidthInPixels(iBigBuffer.Right(iBigBuffer.Length()-index));
- TBool result = IsLengthEqual(lLen,rLen,bbLen);
- iGdiTest->TEST(result);
- if (!result)
- iGdiTest->INFO_PRINTF3(_L("iFont->TextWidthInPixels(iBigBuffer) return value - Expected: %d, Actual: %d"), lLen+rLen, bbLen);
- }
- }
-
-void CGdiDrawVertText::PreTestSetupL(const TRect &, TInt )
- {
- }
-
-void CGdiDrawVertText::BaseTest(const TRect &aRect, TInt)
- {
- TInt bbLen=iFont->TextWidthInPixels(iBigBuffer);
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
-//
- TInt tlen=iFont->TextWidthInPixels(_L("Hello"));
- iGdi->DrawTextVertical(_L("Hello"), TPoint(aRect.iTl.iX+fAscent, aRect.iTl.iY+tlen), ETrue);
- iGdi->DrawTextVertical(_L("Hello"), TPoint(aRect.iBr.iX-fAscent, aRect.iTl.iY), EFalse);
- TInt missingChars=iFont->TextCount(iBigBuffer,bbLen-aRect.iBr.iY)-1; // -1 so one off screen char is drawn to handle overhang
- if (missingChars>=0)
- {
- TPtrC bbb=iBigBuffer.Right(iBigBuffer.Length()-missingChars);
- TInt lLen=iFont->TextWidthInPixels(iBigBuffer.Left(missingChars));
- TInt rLen=iFont->TextWidthInPixels(bbb);
- TBool result = IsLengthEqual(lLen,rLen,bbLen);
- iGdiTest->TEST(result);
- if (!result)
- iGdiTest->INFO_PRINTF3(_L("iFont->TextWidthInPixels(iBigBuffer) return value - Expected: %d, Actual: %d"), lLen+rLen, bbLen);
-
- iGdi->DrawTextVertical(bbb,TPoint(aRect.iTl.iX+fHeight-fAscent+fHeight,aRect.iBr.iY-rLen),EFalse);
- }
- iGdi->DiscardFont();
- }
-
-void CGdiDrawVertText::TheTest(const TRect &aRect, TInt)
- {
- TInt bbLen=iFont->TextWidthInPixels(iBigBuffer);
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
-//
- TInt tlen=iFont->TextWidthInPixels(_L("Hello"));
- iGdi->DrawTextVertical(_L("Hello"), TPoint(aRect.iTl.iX+fAscent, aRect.iTl.iY+tlen), ETrue);
- iGdi->DrawTextVertical(_L("Hello"), TPoint(aRect.iBr.iX-fAscent, aRect.iTl.iY), EFalse);
- iGdi->DrawTextVertical(iBigBuffer,TPoint(aRect.iTl.iX+fHeight-fAscent+fHeight,aRect.iBr.iY-bbLen),EFalse);
- iGdi->DiscardFont();
- }
-
-//
-// Draw Justified text //
-//
-
-// DEF107985 The test for JustifiedText has been removed as it was a bad/useless test. The original test was
-// broken after it was migrated to TEF TGdi test. It was not worth fixing as the purpose of test was not clear,
-// and fixing it basically required rewriting the whole test.
-//
-
-
-//
-// Box text //
-//
-
-CGdiBoxText::~CGdiBoxText()
- {
- TheClient->iScreen->ReleaseFont(iFont);
- }
-
-TInt CGdiBoxText::Count(TBool )
- {
- return(1);
- }
-
-void CGdiBoxText::ConstructL(TInt)
- {
- TFontSpec fspec(KMonospaceTestFontTypefaceName,KMaxFontSize);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iFont,fspec));
- for(TInt index=0;index<iBigBuffer.MaxLength();index++)
- iBigBuffer.Append(TChar((index%26)+'a'));
- iBbLen=iFont->TextWidthInPixels(iBigBuffer);
- }
-
-void CGdiBoxText::PreTestSetupL(const TRect &, TInt )
- {
- }
-
-void CGdiBoxText::BaseTest(const TRect &aRect, TInt)
- {
- TInt rWid=aRect.iBr.iX-aRect.iTl.iX;
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
-//
- TRect rect(aRect);
- rect.iBr.iY=rect.iTl.iY+fHeight;
-//
- TInt missingChars=iFont->TextCount(iBigBuffer,iBbLen-rWid);
- TPtrC bbb=iBigBuffer.Right(iBigBuffer.Length()-missingChars);
- TInt lLen=iFont->TextWidthInPixels(iBigBuffer.Left(missingChars));
- TInt rLen=iFont->TextWidthInPixels(bbb);
- TBool result = IsLengthEqual(lLen,rLen,iBbLen);
- iGdiTest->TEST(result);
- if (!result)
- iGdiTest->INFO_PRINTF3(_L("(lLen+rLen)==iBbLen return value - Expected: %d, Actual: %d"), lLen+rLen, iBbLen);
-
- iGdi->DrawText(bbb, rect, fAscent,CGraphicsContext::ELeft, rWid-rLen);
-//
- rect.Move(TPoint(0,fHeight));
- iGdi->DrawText(iBigBuffer, rect, fAscent,CGraphicsContext::ELeft, 0);
-//
- TBuf<10> buf2(_L("1234567890"));
- rect.Move(TPoint(0,fHeight));
- iGdi->DrawText(buf2,rect,fAscent,CGraphicsContext::ERight,rect.Width()-iFont->TextWidthInPixels(buf2));
- }
-
-void CGdiBoxText::TheTest(const TRect &aRect, TInt)
- {
- TInt rWid=aRect.iBr.iX-aRect.iTl.iX;
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
- TRect rect(aRect);
- rect.iBr.iY=rect.iTl.iY+fHeight;
-//
- iGdi->DrawText(iBigBuffer, rect, fAscent, CGraphicsContext::ELeft, rWid-iBbLen);
-//
- rect.Move(TPoint(0,fHeight));
- iGdi->Clear(rect);
- iGdi->SetClippingRegion(TRegionFix<1>(rect));
- iGdi->DrawText(iBigBuffer, rect.iTl+TPoint(0,fAscent));
- TBuf<10> buf2(_L("1234567890"));
- rect.Move(TPoint(0,fHeight));
- iGdi->CancelClippingRegion();
- iGdi->DrawText(buf2,rect,fAscent);
- }
-
-//
-// Vert Box text //
-//
-
-CGdiVertBoxText::~CGdiVertBoxText()
- {
- TheClient->iScreen->ReleaseFont(iFont);
- }
-
-TInt CGdiVertBoxText::Count(TBool )
- {
- return(1);
- }
-
-void CGdiVertBoxText::ConstructL(TInt)
- {
- TFontSpec fspec(KMonospaceTestFontTypefaceName,KMaxFontSize);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)iFont,fspec));
- for(TInt index=0;index<iBigBuffer.MaxLength();index++)
- iBigBuffer.Append(TChar((index%26)+'a'));
- iBbLen=iFont->TextWidthInPixels(iBigBuffer);
- }
-
-void CGdiVertBoxText::PreTestSetupL(const TRect &, TInt )
- {
- }
-
-void CGdiVertBoxText::BaseTest(const TRect &aRect, TInt)
- {
- TInt rWid=aRect.iBr.iY-aRect.iTl.iY;
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
-//
- TRect rect(aRect);
- rect.iBr.iX=rect.iTl.iX+fHeight;
-//
- TInt missingChars=iFont->TextCount(iBigBuffer,iBbLen-rWid);
- TPtrC bbb=iBigBuffer.Right(iBigBuffer.Length()-missingChars+1);
- TInt lLen=iFont->TextWidthInPixels(iBigBuffer.Left(missingChars-1));
- TInt rLen=iFont->TextWidthInPixels(bbb);
- TBool result = IsLengthEqual(lLen,rLen,iBbLen);
- iGdiTest->TEST(result);
- if (!result)
- iGdiTest->INFO_PRINTF3(_L("(lLen+rLen)==iBbLen return value - Expected: %d, Actual: %d"), lLen+rLen, iBbLen);
-
- iGdi->DrawTextVertical(bbb, rect, fAscent, ETrue,CGraphicsContext::ELeft, rWid-rLen);
-//
- rect.iTl.iX=rect.iBr.iX;
- rect.iBr.iX=rect.iTl.iX+fHeight;
- iGdi->DrawTextVertical(iBigBuffer, rect, fAscent, ETrue,CGraphicsContext::ELeft, 0);
- }
-
-void CGdiVertBoxText::TheTest(const TRect &aRect, TInt)
- {
- TInt rWid=aRect.iBr.iY-aRect.iTl.iY;
- TInt fAscent=iFont->AscentInPixels();
- TInt fHeight=iFont->HeightInPixels();
- iGdi->UseFont(iFont);
- iGdi->SetBrushStyle(CGraphicsContext::ESolidBrush);
- TRect rect(aRect);
- rect.iBr.iX=rect.iTl.iX+fHeight;
-//
- iGdi->DrawTextVertical(iBigBuffer, rect, fAscent, ETrue, CGraphicsContext::ELeft, rWid-iBbLen);
-//
- rect.iTl.iX=rect.iBr.iX;
- rect.iBr.iX=rect.iTl.iX+fHeight;
- iGdi->Clear(rect);
- iGdi->SetClippingRegion(TRegionFix<1>(rect));
- iGdi->DrawTextVertical(iBigBuffer, TPoint(rect.iTl.iX+fAscent,rect.iBr.iY), ETrue);
- }
-
-
-//
-//
-CGdiBlitMasked::~CGdiBlitMasked()
- {
- for(TInt index=0;index<ENumMasks;index++)
- delete iMask[index];
- delete iBitmap;
- delete iScratch;
- delete iScratchDevice;
- delete iScratchGc;
- delete iScratchMask;
- delete iScratchMaskDevice;
- delete iScratchMaskGc;
- }
-
-TInt CGdiBlitMasked::Count(TBool aMainTests)
- {
- return(aMainTests ? ENumMasks*2 : ENumMasks*2);
- }
-
-void CGdiBlitMasked::doCreateTestBitmapL(CFbsBitmap *aBitmap, CFbsBitGc *&aGc, CFbsBitmapDevice *&aDevice, const TSize &aSize)
- {
- User::LeaveIfNull(aDevice=CFbsBitmapDevice::NewL(aBitmap));
- User::LeaveIfError(aDevice->CreateContext(aGc));
-//
- aGc->SetBrushColor(TRgb(128,128,128));
- aGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
- aGc->SetPenStyle(CGraphicsContext::ENullPen);
- aGc->DrawRect(TRect(aBitmap->SizeInPixels()));
- aGc->SetPenStyle(CGraphicsContext::ESolidPen);
- for(TInt index=(-aSize.iHeight);index<aSize.iWidth;index+=5)
- {
- aGc->DrawLine(TPoint(index,0),TPoint(index+aSize.iHeight,aSize.iHeight));
- aGc->DrawLine(TPoint(index,aSize.iHeight),TPoint(index+aSize.iHeight,0));
- }
- }
-
-void CGdiBlitMasked::createTestBitmapL(CFbsBitmap *&aBitmap, const TSize &aSize)
- {
- CFbsBitGc *gc=NULL;
- CFbsBitmapDevice *device=NULL;
- aBitmap=new(ELeave) CFbsBitmap();
- User::LeaveIfError(aBitmap->Create(aSize,EGray16));
- TRAPD(err,doCreateTestBitmapL(aBitmap, gc, device, aSize));
- delete gc;
- delete device;
- User::LeaveIfError(err);
- }
-
-void CGdiBlitMasked::ConstructL(TInt)
- {
- TSize max(0,0);
- for(TInt index=0;index<ENumMasks;index++)
- {
- iMask[index]=new(ELeave) CFbsBitmap();
- User::LeaveIfError(iMask[index]->Load(TAUTO_BITMAP_NAME,2+index));
- TSize size=iMask[index]->SizeInPixels();
- if (max.iWidth<size.iWidth)
- max.iWidth=size.iWidth;
- if (max.iHeight<size.iHeight)
- max.iHeight=size.iHeight;
- }
- iScratch=new(ELeave) CFbsBitmap();
- User::LeaveIfError(iScratch->Create(max,EGray16));
- iScratchDevice=CFbsBitmapDevice::NewL(iScratch);
- User::LeaveIfError(iScratchDevice->CreateContext(iScratchGc));
-
- iScratchMask=new(ELeave) CFbsBitmap();
- User::LeaveIfError(iScratchMask->Create(max,EGray16));
- iScratchMaskDevice=CFbsBitmapDevice::NewL(iScratchMask);
- User::LeaveIfError(iScratchMaskDevice->CreateContext(iScratchMaskGc));
-//
- createTestBitmapL(iBitmap, max);
- }
-
-void CGdiBlitMasked::PreTestSetupL(const TRect &, TInt aCount)
- {
- iInvertMask=aCount&0x1;
- aCount>>=1;
- iCurrMask= iMask[aCount%ENumMasks];
- iDrawMode=CGraphicsContext::EDrawModePEN;
- }
-
-void CGdiBlitMasked::BaseTest(const TRect &aRect, TInt)
- {
-// needs re-writing to emulate tiling of the source rect
- if (!aRect.Intersects(TRect(BaseWin->Size())))
- return;
- TSize size(aRect.Size());
- TSize bitSize=iBitmap->SizeInPixels();
- if (size.iWidth>bitSize.iWidth)
- size.iWidth=bitSize.iWidth;
- if (size.iHeight>bitSize.iHeight)
- size.iHeight=bitSize.iHeight;
-//
-// Set up the scratch mask as a black and white bitmap containing the mask to blit
-// The mask pattern is replicated all over the scratchmask bitmap
-//
- iScratchMaskGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
- iScratchMaskGc->SetPenStyle(CGraphicsContext::ENullPen);
- iScratchMaskGc->SetBrushColor(TRgb(0,0,0));
- iScratchMaskGc->DrawRect(TRect(iScratchMask->SizeInPixels()));
- iScratchMaskGc->SetPenColor(TRgb(255,255,255));
- iScratchMaskGc->SetPenStyle(CGraphicsContext::ESolidPen);
- TSize maskSize(iCurrMask->SizeInPixels());
- TPoint pos;
- TRgb *rgbBuf=(TRgb *)User::AllocL(maskSize.iWidth*sizeof(TRgb)); //Doesn't do any harm if it leaves
- for(pos.iY=0;pos.iY<maskSize.iHeight;pos.iY++)
- {
- TPtr8 ptr((TUint8 *)rgbBuf,maskSize.iWidth*sizeof(TRgb));
- iCurrMask->GetScanLine(ptr, pos, maskSize.iWidth, ERgb);
- for(TInt index=0;index<maskSize.iWidth;index++)
- {
- iScratchMaskGc->SetPenColor(rgbBuf[index]);
-// if ((isLow && !iLowCutOff) || (!isLow && iLowCutOff))
- iScratchMaskGc->Plot(TPoint(index,pos.iY));
- }
- }
- User::Free(rgbBuf);
-
- for(pos.iY=0;pos.iY<size.iHeight;pos.iY+=maskSize.iHeight)
- for(pos.iX=0;pos.iX<size.iWidth;pos.iX+=maskSize.iWidth)
- iScratchMaskGc->CopyRect(pos, TRect(maskSize));
-//
-// Blit this to the screen in ANDNOT mode to clear all the pixels we want the mask blit to draw to
-//
- iGdi->SetDrawMode(CGraphicsContext::EDrawModeANDNOT);
- iGdi->BitBlt(aRect.iTl, iScratchMask, TRect(size));
-//
-// Copy the test bitmap to the scratch bitmap then use the scratch mask to clear all the bits
-// that should masked out of the draw to the screen
-//
- iScratchGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
- iScratchGc->BitBlt(TPoint(0,0), iBitmap);
- iScratchGc->SetDrawMode(CGraphicsContext::EDrawModeAND);
- iScratchGc->BitBlt(TPoint(0,0), iScratchMask);
-//
-// Now copy the scratch bitmap to the screen in OR mode to get the final result
-//
- iGdi->SetDrawMode(CGraphicsContext::EDrawModeOR);
- iGdi->BitBlt(aRect.iTl, iScratch, TRect(size));
- }
-
-void CGdiBlitMasked::TheTest(const TRect &aRect, TInt)
- {
- iGdi->BitBltMasked(aRect.iTl,iBitmap,TRect((aRect.iBr-aRect.iTl).AsSize()),
- iCurrMask,iInvertMask);
- }
-//
-//
-
-CTGdi::CTGdi(CTestStep* aStep) : CTWsGraphicsBase(aStep), iGdiTest (NULL), iTextOffsetX(10),iTextOffsetY(10)
- {
- }
-
-void CTGdi::ConstructL()
- {
- iWinSize=TestWin->Size();
- }
-
-TSize CTGdi::WinSize()
- {
- return(iWinSize);
- }
-
-void CTGdi::DoGdiTestL(const TRect &aRect, TInt aNum)
- {
-//
- iGdiTest->PreTestSetupL(aRect,aNum);
-//
- BaseWin->Win()->Invalidate();
- BaseWin->Win()->BeginRedraw();
- TheGc->Activate(*BaseWin->Win());
- iTest->DrawTestBackground(EFalse,BaseWin->Size());
- iGdiTest->BaseTest(aRect,aNum);
- TheGc->Deactivate();
- BaseWin->Win()->EndRedraw();
-//
- TestWin->Win()->Invalidate();
- TestWin->Win()->BeginRedraw();
- TheGc->Activate(*TestWin->Win());
- iTest->DrawTestBackground(EFalse,TestWin->Size());
- iGdiTest->TheTest(aRect,aNum);
- TheGc->Deactivate();
- TestWin->Win()->EndRedraw();
-//
- TheClient->iWs.Flush();
- TheClient->WaitForRedrawsToFinish();
- TheClient->iWs.Finish();
-//
- _LIT(KLog,"GDI Substate=%d test=%d rect=(%d,%d,%d,%d) ");
- TBuf<64> buf;
- buf.Format(KLog,iSubState,aNum,aRect.iTl.iX,aRect.iTl.iY,aRect.iBr.iX,aRect.iBr.iY);
- iTestPassing=CompareWindows(buf);
- }
-
-void CTGdi::GdiTestL(CGdiTestLowLevel *aTest)
- {
- TTestRects::ResetSeed();
- iTestPassing=ETrue;
- iGdiTest=aTest;
- iGdiTest->SetGdiTest(this);
- iGdiTest->AssignGdi(TheGc);
- iGdiTest->ConstructL(iTest->iTestRects.Count1());
- TInt index;
- TInt index2;
- for(index=0; iTestPassing && index<iTest->iTestRects.Count2(); ++index)
- {
- TInt max=iGdiTest->Count(index<iTest->iTestRects.Count1());
- TRect rect=iTest->iTestRects[index];
- #if defined(LOGGING)
- _LIT(KLog1,"Testing rectangle %d (%d,%d,%d,%d) 1st pass");
- LOG_MESSAGE6(KLog1,index,rect.iTl.iX,rect.iTl.iY,rect.iBr.iX,rect.iBr.iY);
- #endif
- for(index2=0; iTestPassing && index2<max; ++index2)
- DoGdiTestL(rect,index2);
- if (!iTestPassing)
- {
- _LIT(KLog,"Test fail on rectangle %d at iteration %d");
- LOG_MESSAGE3(KLog,index,index2);
- }
- }
- for(; iTestPassing && index<iTest->iTestRects.Count3(); index++)
- {
- TRect rect=iTest->iTestRects[index];
- #if defined(LOGGING)
- _LIT(KLog2,"Testing rectangle %d (%d,%d,%d,%d) 2nd pass");
- LOG_MESSAGE6(KLog2,index,rect.iTl.iX,rect.iTl.iY,rect.iBr.iX,rect.iBr.iY);
- #endif
- DoGdiTestL(rect,0);
- }
- delete iGdiTest;
- iGdiTest=NULL;
- }
-
-void CTGdi::NonDrawing()
-//
-// Test all non-drawing GDI functions
-//
- {
- TDisplayMode mode=TheClient->iScreen->DisplayMode();
- TEST((mode!=ERgb) && (mode!=ENone));
-
- RWsSession session;
- TInt res = session.Connect();
- TEST(res == KErrNone);
-
- CArrayFixFlat<TInt>* modeList= new CArrayFixFlat<TInt> (15);
- if(!modeList)
- return;
-
-#if defined(SYMBIAN_GRAPHICS_GCE)
- res = session.GetColorModeList(iTest->iScreenNumber, modeList);
-#else
- res = session.GetColorModeList(modeList);
-#endif //SYMBIAN_GRAPHICS_GCE
- session.Close();
- TEST(res == KErrNone);
- if(res != KErrNone)
- {
- modeList->Reset();
- delete modeList;
- return;
- }
-
- TBool found = EFalse;
- for(TInt ii = 0; ii < modeList->Count() && !found; ii++)
- {
- TDisplayMode mode1 = (TDisplayMode) ((*modeList)[ii]);
- if(mode == mode1)
- {
- found = ETrue;
- }
- }
- modeList->Reset();
- delete modeList;
-
- TEST(found);
- }
-
-//
-// Auxiliary Fn for Test Case ID CTGdi_TestDefetct_DEF045746
-// This method draws the text represented by aText parameter on the window
-// passed to it.
-//
-void CTGdi::DrawTextOnWindow(const TDesC& aText,CTWin* aWin)
- {
- aWin->Win()->BeginRedraw();
- TheGc->Activate(*aWin->Win());
- TheGc->Device()->GetNearestFontToDesignHeightInTwips(iFont,TFontSpec(_L("Arial"),250));
- TheGc->UseFont(iFont);
- TheGc->Clear();
- TheGc->DrawRect(TRect(aWin->Win()->Size()));
- TheGc->DrawText(aText,TPoint(iTextOffsetX,iTextOffsetY));
- TheGc->Device()->ReleaseFont(iFont);
- TheGc->Deactivate();
- aWin->Win()->EndRedraw();
- }
-
-
-void CTGdi::TestDefetct_DEF045746L()
- {
- _LIT(KString,"This is a test window for the defect fix DEF045746 \
- propagated from Opera browser. Most window graphics context drawing\
- functions map to equivalent CFbsBitGc functions they are implemented\
- on the screen with any co-ordinates being relative to the top left\
- corner of the window. However extra clipping is applied. The drawing\
- will always be clipped to the visible part of the window, in addition\
- it will be clipped to the non-invalid part if you are not doing a\
- redraw and to the region being validated if you are doing a redraw.");
-
- TPtrC TestText(KString().Ptr(),100);
- TPtrC LargeText(KString().Ptr());
- TPtrC ShortText(KString().Ptr(),200);
-
- TSize scrSize=TheClient->iScreen->SizeInPixels();
- TSize winSize;
- const TInt windowGap=5;
- winSize.SetSize(scrSize.iWidth -2* windowGap,scrSize.iHeight/2 - windowGap);
-
- iWin=new(ELeave) CTestWindow(TRgb(0,0,0));
- iWin->ConstructL(TPoint(5,5),TSize(winSize),TheClient->iGroup,*TheClient->iGc);
- CTestWindow* expectWin= new(ELeave) CTestWindow(TRgb(0,0,0));
- expectWin->ConstructL(TPoint(5,scrSize.iHeight/2 + windowGap),TSize(winSize),TheClient->iGroup,*TheClient->iGc);
- DrawTextOnWindow(ShortText,iWin);
- DrawTextOnWindow(TestText,expectWin);
- TInt fHeight=iFont->HeightInPixels();//Used to compare only pixels where text is drawn
- TRect iRect=winSize;
- iRect.iTl.iX=iTextOffsetX;
- iRect.iTl.iY=iTextOffsetY;
- iRect.iBr.iY=iTextOffsetY+fHeight;
- CheckRect(iWin,expectWin,iRect,_L("TestDefetct_DEF045746L A"));
- iWin->Invalidate();
- DrawTextOnWindow(LargeText,iWin);
- CheckRect(iWin,expectWin,iRect,_L("TestDefetct_DEF045746L B"));
- delete iWin;
- iWin=NULL;
- delete expectWin;
- expectWin=NULL;
- }
-
-void CTGdi::RunTestCaseL(TInt /*aCurTestCase*/)
- {
- //_LIT(KTest1,"NonDrawing"); this test is not running
- _LIT(KTest2,"DEF045746");
- _LIT(KTest3,"Drawing Tests");
- ((CTGdiStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
- static TTime startTime;
- switch(++iTest->iState)
- {
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0262
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test all non-drawing GDI functions
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Check all non-drawing GDI functions operate correctly
-
-@SYMTestExpectedResults Non-drawing GDI functions operate correctly
-*/
- case 1:
- // start time log
- startTime.HomeTime();
- ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0262"));
- //iTest->LogSubTest(KTest1);
- //PeterI this tests whether the display mode is EGray4 or EGray16.
- //The actual display mode is EColor16MU so this test will always fail
- //NonDrawingL();
- break;
-/**
- * @SYMTestCaseID GRAPHICS-WSERV-0263
- *
- * @SYMPREQ DEF045746
- *
- * @SYMTestCaseDesc Test defect fix for DEF045746
- *
- * @SYMTestPriority High
- *
- * @SYMTestStatus Implemented
- *
- * @SYMTestActions The method tests CWindowGc::DrawText().The test is carried
- * out by writing small & very large strings to the window graphic context.
- *
- * @SYMTestExpectedResults The window with large / small strings written is
- * compared with an expected result window. In both the cases strings should
- * be displayed.
- *
- */
- case 2:
- ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0263"));
- iTest->LogSubTest(KTest2);
- TestDefetct_DEF045746L();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0264
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test all drawing GDI functions
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Check all drawing GDI functions operate correctly
-
-@SYMTestExpectedResults Drawing GDI functions operate correctly
-*/
- case 3:
- {
- ((CTGdiStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0264"));
- iTest->LogSubTest(KTest3);
- iSubState = 0;
- TheClient->WaitForRedrawsToFinish(); //Just in case the two test windows have any invalid areas
- TInt numTests = sizeof(GdiTestFuncs) / sizeof(GdiTestFuncs[0]);
- while (iSubState < numTests)
- {
- LOG_MESSAGE(TPtrC(GdiTestFuncs[iSubState].txt));
- GdiTestL((*GdiTestFuncs[iSubState].func)());
- iSubState++;
- }
- }
- break;
- default:
- ((CTGdiStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
- ((CTGdiStep*)iStep)->CloseTMSGraphicsStep();
- TestComplete();
- // log time and print duration
- TTime endTime;
- endTime.HomeTime();
- TInt64 duration = endTime.MicroSecondsFrom(startTime).Int64();
- float time = (float) I64LOW(duration) / 1000.0f;
- _LIT(KDuration,"Total test duration is %f millisec");
- RDebug::Print(KDuration, time);
- break;
- }
- ((CTGdiStep*)iStep)->RecordTestResultL();
- }
-
-CGdiTestLowLevel *SetOriginTest()
- {
- return(new(ELeave) CGdiSetOrigin());
- }
-
-CGdiTestLowLevel *PolyLineTest()
- {
- return(new(ELeave) CGdiPolyLine());
- }
-
-CGdiTestLowLevel *PolygonTest()
- {
- return(new(ELeave) CGdiPolygon());
- }
-
-CGdiTestLowLevel *BlitMaskedTest()
- {
- return(new(ELeave) CGdiBlitMasked());
- }
-
-CGdiTestLowLevel *DrawArcTest()
- {
- return(new(ELeave) CGdiDrawArc());
- }
-
-CGdiTestLowLevel *DrawPieTest()
- {
- return(new(ELeave) CGdiDrawPie());
- }
-
-CGdiTestLowLevel *DrawRoundRectTest()
- {
- return(new(ELeave) CGdiDrawRoundRect());
- }
-
-CGdiTestLowLevel *BoxTextTest()
- {
- return(new(ELeave) CGdiBoxText());
- }
-
-CGdiTestLowLevel *VertTextTest()
- {
- return(new(ELeave) CGdiDrawVertText());
- }
-
-CGdiTestLowLevel *VertBoxTextTest()
- {
- return(new(ELeave) CGdiVertBoxText());
- }
-
-CGdiTestLowLevel *WideLineTest()
- {
- return(new(ELeave) CGdiWideLine());
- }
-
-CGdiTestLowLevel *DrawTextTest()
- {
- return(new(ELeave) CGdiDrawText());
- }
-
-CGdiTestLowLevel *DrawRectTest()
- {
- return(new(ELeave) CGdiDrawRect());
- }
-
-__WS_CONSTRUCT_STEP__(Gdi)