diff -r bf7481649c98 -r 7f25ef56562d windowing/windowserver/test/tauto/TGDI.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/test/tauto/TGDI.H Wed Jun 23 19:41:15 2010 +0300 @@ -0,0 +1,355 @@ +// 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: +// + +/** + @file + @test + @internalComponent - Internal Symbian test code +*/ + +#ifndef __TGDI_H__ +#define __TGDI_H__ + +#include +#include +#include "../tlib/testbase.h" +#include +#include "AUTO.H" +#include "TGraphicsHarness.h" + +class CGdiTestLowLevel; + +CGdiTestLowLevel *SetOriginTest(); +CGdiTestLowLevel *PolyLineTest(); +CGdiTestLowLevel *PolygonTest(); +CGdiTestLowLevel *BlitMaskedTest(); +CGdiTestLowLevel *DrawArcTest(); +CGdiTestLowLevel *DrawPieTest(); +CGdiTestLowLevel *DrawRoundRectTest(); +CGdiTestLowLevel *BoxTextTest(); +CGdiTestLowLevel *VertTextTest(); +CGdiTestLowLevel *JustifiedTextTest(); +CGdiTestLowLevel *VertBoxTextTest(); +CGdiTestLowLevel *WideLineTest(); +CGdiTestLowLevel *DrawTextTest(); +CGdiTestLowLevel *DrawRectTest(); + +class CTGdi; +class CGdiTestLowLevel : public CBase +// +// BaseTest uses code that is assumed to be good to draw to one window +// TheTest uses the code beng tested to draw a matching pattern +// + { +public: + void AssignGdi(CWindowGc *aGc); + void SetGdiTest(CTGdi *aGdiTest); + virtual void PreTestSetupL(const TRect &aRect, TInt aCount); + virtual void BaseTest(const TRect &aRect, TInt aCount)=0; + virtual void TheTest(const TRect &aRect, TInt aCount)=0; + virtual void ConstructL(TInt aNumOfRects); + virtual TInt Count(TBool aMainTests)=0; +protected: + CWindowGc *iGdi; + CTGdi *iGdiTest; + }; + +class CGdiRect : public CGdiTestLowLevel + { +public: + void PreTestSetupL(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +protected: + TRgb iBrushCol; + TRgb iPenCol; + }; + + +class CGdiDrawRect : public CGdiRect + { +public: + TInt Count(TBool aMainTests); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + }; + +class CGdiDrawRoundRect : public CGdiRect + { +public: + TInt Count(TBool aMainTests); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + }; + +class CGdiDrawACP : public CGdiTestLowLevel + { +public: + void PreTestSetupL(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +protected: + TRgb iBrushCol; + TRgb iPenCol; + }; + +class CGdiDrawArc : public CGdiDrawACP + { +public: + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + }; + +class CGdiDrawPie : public CGdiDrawACP + { +public: + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + }; + +class CGdiPolyLine : public CGdiTestLowLevel + { +public: + CGdiPolyLine(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); +private: + CArrayFixSeg iPnts; + }; + +class CGdiPolygon : public CGdiTestLowLevel + { +private: + enum {KMaxPolygonPoints=100}; + enum {KPolygonStep=4}; +public: + CGdiPolygon(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); +private: + CArrayFixSeg iPnts; + }; + +class CGdiWideLine : public CGdiTestLowLevel + { +private: + enum TMaxWidths { + EMainNumWidths=16, + EMinorNumWidths=4}; +public: + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + TInt iWidth; + }; + +class CGdiSetOrigin : public CGdiTestLowLevel + { +public: + ~CGdiSetOrigin(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void DrawIt(const TPoint &aOffset); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + CFbsFont *iFont; + CArrayFixFlat *iPolylineArray; + CArrayFixFlat *iPolygonArray; + }; + +class CGdiDrawText : public CGdiTestLowLevel + { +public: + ~CGdiDrawText(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + TInt iWidth; + CFbsFont *iFont; + TBuf<0x400> iBigBuffer; + }; + +class CGdiDrawVertText : public CGdiTestLowLevel + { +public: + ~CGdiDrawVertText(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + TInt iWidth; + CFbsFont *iFont; + TBuf<0x400> iBigBuffer; + }; + +//class CGdiDrawJustifiedText : public CGdiTestLowLevel +//DEF107985 The test for JustifiedText has been removed as it was a bad/useless test + +class CGdiBoxText : public CGdiTestLowLevel + { +public: + ~CGdiBoxText(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + TInt iWidth; + TInt iBbLen; + CFbsFont *iFont; + TBuf<0x400> iBigBuffer; + }; + +class CGdiVertBoxText : public CGdiTestLowLevel + { +public: + ~CGdiVertBoxText(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + TInt iWidth; + TInt iBbLen; + CFbsFont *iFont; + TBuf<0x400> iBigBuffer; + }; +/* +class CGdiDottedLine : public CGdiTestLowLevel + { + enum TMaxPatterns { + EMainMaxPatterns=5, + EMinorMaxPatterns=3}; +public: + void SetGridRegion(TRegion &grid,const TRect &aRect); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + TUint iPattern; + TInt iPattLen; + static TUint iPatterns[EMainMaxPatterns]; + static TInt iPattLens[EMainMaxPatterns]; + }; +TUint CGdiDottedLine::iPatterns[]={ + 0x55FF0033, + 0xFF00, + 0x1, + 0xFFFF, + 0xF0F0F0}; +TInt CGdiDottedLine::iPattLens[]={ + 32, + 16, + 2, + 32, + 24}; +*/ +class CTestWindow : public CBlankWindow + { +public: + CTestWindow(TRgb aCol); + ~CTestWindow(); + void ConstructL(TPoint aPos,TSize aSize,CTWinBase* aParent, CWindowGc& aGc ); + }; + +class CGdiBlitMasked: public CGdiTestLowLevel + { + enum TNumMasks {ENumMasks=2}; +public: + ~CGdiBlitMasked(); + void PreTestSetupL(const TRect &aRect, TInt aCount); + void BaseTest(const TRect &aRect, TInt aCount); + void TheTest(const TRect &aRect, TInt aCount); + void ConstructL(TInt aNumOfRects); + TInt Count(TBool aMainTests); +private: + void doCreateTestBitmapL(CFbsBitmap *aBitmap, CFbsBitGc *&aGc, CFbsBitmapDevice *&aDevice, const TSize &aSize); + void createTestBitmapL(CFbsBitmap *&aBitmap, const TSize &aSize); +private: + CFbsBitmap *iMask[ENumMasks]; + CFbsBitmap *iBitmap; +// + CFbsBitmap *iScratch; + CFbsBitmapDevice *iScratchDevice; + CFbsBitGc *iScratchGc; +// + CFbsBitmap *iScratchMask; + CFbsBitmapDevice *iScratchMaskDevice; + CFbsBitGc *iScratchMaskGc; +// + TBool iInvertMask; + CFbsBitmap *iCurrMask; + CGraphicsContext::TDrawMode iDrawMode; + }; + +class CTGdi : public CTWsGraphicsBase + { +public: + CTGdi(CTestStep* aStep); + void ConstructL(); + TSize WinSize(); + void GdiTestL(CGdiTestLowLevel *aTest); + void TestDefetct_DEF045746L(); + void DrawTextOnWindow(const TDesC& aText,CTWin* aWin); +protected: +//from CTGraphicsStep + virtual void RunTestCaseL(TInt aCurTestCase); +private: + void DoGdiTestL(const TRect &aRect, TInt aNum); + void NonDrawing(); +private: + TSize iWinSize; + TInt iSubState; + CGdiTestLowLevel *iGdiTest; + CTestWindow* iWin; + CFont* iFont; + TInt iTextOffsetX; + TInt iTextOffsetY; + TBool iTestPassing; + }; + +class CTGdiStep : public CTGraphicsStep + { +public: + CTGdiStep(); +protected: + //from CTGraphicsStep + virtual CTGraphicsBase* CreateTestL(); + }; + +_LIT(KTGdiStep,"TGdi"); + + +#endif