--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lafagnosticuifoundation/animation/tef/AnimationTestStep.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,126 @@
+// Copyright (c) 2005-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
+ @internalComponent - Internal Symbian test code
+*/
+
+
+#ifndef __ANIMATIONTESTSTEP_H__
+#define __ANIMATIONTESTSTEP_H__
+
+#include <test/testexecutestepbase.h>
+#include <f32file.h>
+
+#include <w32std.h>
+#include <charconv.h>
+
+#include "ActiveTestStep.h"
+#include "ActiveWait.h"
+#include "TestWindows.h"
+#include "TestEventHandler.h"
+#include "TestRedrawHandler.h"
+
+_LIT(KTestFailed, "Test failed");
+_LIT(KTestFailedF, "Test failed with %d");
+_LIT(KRectsDiffer, "Compared areas differ");
+_LIT(KColorCount, "Wrong number of colors");
+_LIT(KColorCountF, "Color count out by %d");
+
+// Helper functions for error reporting.
+#define ANIM_INFO1(m) { Log(m); INFO_PRINTF1(m); }
+#define ANIM_WARN1(m) { Log(m); WARN_PRINTF1(m); }
+#define ANIM_ERR1(m) { Log(m); ERR_PRINTF1(m); }
+
+#define ANIMTESTERR(x) { if(x < KErrNone) { Log(KTestFailed); ERR_PRINTF2(KTestFailedF, x); SetTestStepResult(EFail); } }
+#define ANIMTESTRECT(r1,r2) { if(!RectCompare(r1,r2)) { Log(KRectsDiffer); ERR_PRINTF1(KRectsDiffer); SetTestStepResult(EFail); } }
+#define ANIMTESTCOLORSL(r,c1,c2) { TInt c = CountColorsL(r,c1,c2); if(c!=0) { Log(KColorCount); ERR_PRINTF2(KColorCountF, c); SetTestStepResult(EFail); } }
+
+//
+// Windows:
+//
+const TInt KMaxLogWinLines = 12;
+
+class CAnimBackdropWindow : public CTestWindow
+ {
+public:
+ CAnimBackdropWindow(RWsSession& aWs, CTestWindowGroup& aGroup, CWindowGc& aGc);
+ };
+
+class CAnimationTestWindow : public CTestWindow
+ {
+public:
+ CAnimationTestWindow(RWsSession& aWs, CTestWindowGroup& aGroup, CWindowGc& aGc, CWsScreenDevice& aScreen);
+ ~CAnimationTestWindow();
+ void DrawL();
+ void AppendText(const TDesC& aText);
+ void Clear();
+ CWsScreenDevice& iScreen;
+ CFbsFont* iFont;
+protected:
+ TInt iNumLines;
+ TInt iFirstLine;
+ TBuf<40> iText[KMaxLogWinLines];
+ };
+
+//
+// The test:
+// This test does not perform any tests on the visual output. It is useful
+// for other issues, but it is also a good base for manual testing.
+//
+class CAnimationTestStep : public CActiveTestStep
+ {
+public:
+ CAnimationTestStep();
+ ~CAnimationTestStep();
+
+ void InitialiseL();
+protected:
+ void Log(const TDesC& aText);
+ void ClearLog();
+ void Wait(TInt aDelay);
+ void WaitForRedrawsToFinish();
+
+ CTestWindowGroup* GroupWin() { return iGroupWin; }
+ CWsScreenDevice* Screen() { return iScreen; }
+ CWindowGc* Gc() { return iGc; }
+ RWsSession& Ws() { return iWs; }
+ RFs& Fs() { return iFs; }
+ TBool RectCompare(const TRect& a, const TRect& b);
+ TInt CountColorsL(const TRect& aRect, TInt aMin, TInt aMax);
+protected:
+ CActiveWait* iWaiter;
+ CAnimationTestWindow* iAnimTestWin;
+ CAnimBackdropWindow* iAnimBackdropWin;
+
+ RWsSession iWs;
+ RFs iFs;
+ CWsScreenDevice* iScreen;
+ CWindowGc* iGc;
+
+ CCnvCharacterSetConverter* iConverter;
+ TInt iConverterState;
+ CTestEventHandler* iEventHandler;
+ CTestRedrawHandler* iRedrawHandler;
+ CTestWindowGroup* iGroupWin;
+ TSize iStepWinSize;
+ TRgb iBackgroundColor1;
+ TRgb iBackgroundColor2;
+ TDisplayMode iDisplayMode;
+ RArray<TUint> iColors;
+ };
+
+#endif //__ANIMATIONTESTSTEP_H__