imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestStepImageDisplay.h
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestStepImageDisplay.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,284 @@
+// Copyright (c) 2004-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:
+//
+
+#if (!defined __TESTSTEPIMAGEDISPLAY_H__)
+#define __TESTSTEPIMAGEDISPLAY_H__
+
+#include <imagedisplay.h>
+#include <apgcli.h>
+
+
+class TImageDisplayUnitTestParams
+	{
+public:	
+	enum TDataType 
+		{
+		ETypeUndefined	=-1, 
+		ETypeFileName	= 0, 
+		ETypeData, 
+		ETypeFileHandle
+		};
+	enum TImageTestType 
+		{
+		ENormal,
+		EAlloc
+		};
+	enum
+		{
+		KNoIntent=-1,
+		};
+	
+public:
+	const TText*  iTestName;		// name of the test
+	const TText*  iTestDescription;	// description
+	const TText*  iInputFilename;	// source filename
+	TInt iDestWidth;				// dest width
+	TInt iDestHeight;				// dest height
+
+	TInt		 iDisplayMode;		// display mode
+	TInt		 iImageOptions;		// image options 
+	
+	TBool iMaintainAspectRatio;		// maintain aspect ratio
+	TDataType iSourceType;			// Source is a filename
+	const TText8* iMimeType;		// Mime type
+	TInt32 iImageType;				// image type
+	TInt32 iImageSubType;			// image subtype
+	TInt32 iPluginUid;				// plugin UID
+	TImageTestType iTestType;		// test type
+	const TText* const* iUniqueId;		// DRM content Unique ID
+	ContentAccess::TIntent iIntent;  // DRM intent
+	TInt	iExpectedError;			// expected error Code
+	TInt    iPlayLoops;				// number of "play" attempts
+	};
+
+class TMimeTypeRecogTestParam
+	{
+public:
+	enum TParamType
+		{
+		EParamIsFileName,	
+		EParamIsDataBuffer
+		};
+public:		
+	const TText*  	iTestName;			// name of the test
+	const TText*  	iTestDescription;	// description
+	TParamType		iParamType;			// what next parameter to use
+	const TText8*  	iDataBufferParam;	// databuffer parameter value
+	const TText*  	iFileNameParam;		// filename parameter value
+	const TText8*	iExpectedMimeType;  // expected MIME type value
+	CApaDataRecognizerType::TRecognitionConfidence iMinConfidence; // minimum confidence
+	};
+
+class CImageDisplay;
+class CTestSuite;
+class CTestSuiteImageDisplay;
+
+/**
+ *
+ * CTestStepImageDisplay, which is the base class for all 
+ * the ImageTransform suite test steps, providing common functionality.
+ *
+ * @lib "TSU_ICL_ImageTransform.lib"
+ *
+ */
+class CImageDisplay;
+class CTestStepImageDisplay : public CTestStep, public MIclImageDisplayObserver
+	{
+public:
+	CTestStepImageDisplay();
+	~CTestStepImageDisplay();
+	
+	virtual TVerdict DoTestStepPreambleL();
+	virtual TVerdict DoTestStepPostambleL();
+	
+	void SetSuite(CTestSuiteImageDisplay* aPtr );
+ 	CTestSuiteImageDisplay* Suite();
+
+protected:
+	virtual void Cleanup(){};
+    void SetSourceFilename(const TDesC& aPathNameAndExtn);
+    void SetDestFilenameL(const TDesC& aPathNameAndExtn);
+    void SetRefFilenameL(const TDesC& aPathNameAndExtn);
+	void DeleteDestFilenameL();
+	TVerdict CompareBitmapWithFileL(const CFbsBitmap& aBitmap,const TDesC& aFile) const;
+	TVerdict CompareFilesL(const TDesC& aFile1,const TDesC& aFile2);
+
+	TFileName& SourceFilename();
+	TFileName& DestFilename();
+	TFileName& RefFilename();
+	void DefaultPath(TFileName& aName);
+
+protected:
+	RFs iFs;
+	CImageDisplay*				iImageDisplay;
+
+private:
+  	 CTestSuiteImageDisplay*	iImageDisplaySuite;
+	 
+	 TFileName iSourceFilename;
+	 TFileName iDestFilename;
+	 TFileName iRefFilename;
+	 CActiveScheduler* iScheduler;
+	};
+
+
+/**
+ *
+ * The following classes provide test steps to Transform an image
+ * See TestStepImageTransform.cpp or the test specification 
+ * for details of individual test cases.
+ *
+ */
+
+/**
+ * CTestStepImgDisplayGeneric
+ */
+class CTestStepImgDisplayGeneric : public CTestStepImageDisplay
+	{
+public:
+
+	CTestStepImgDisplayGeneric(const TImageDisplayUnitTestParams& aTestParams);
+	~CTestStepImgDisplayGeneric();
+	// from CTestStep
+	virtual TVerdict DoTestStepL();
+
+protected:
+//
+	virtual void MiidoImageReady(const CFbsBitmap* aBitmap, TUint aStatus, const TRect& aUpdatedArea, TInt aError);
+	virtual TBool ConsumeFrame(const CFbsBitmap* aBitmap);
+//
+	void SetImageSourceL();
+	void SetFilenamesL(const TDesC& aSourceFilename);
+	void SetupPluginL();
+	virtual TVerdict TestL();
+	virtual void Cleanup();
+
+private:
+	TVerdict DoTestStepFbsL();
+
+protected:
+	// pointer to current test data
+	const TImageDisplayUnitTestParams* iTestParams;
+
+	// pointer to previous test data (for API re-use tests)
+	const TImageDisplayUnitTestParams* iTestParamsPrev;
+
+	HBufC8* iSourceBuf;
+	TInt iLastError;
+	TInt iFrameNumber;
+	RFile iFileHandle;
+	TBool iFbsConnection;
+	TUint iLatestPlugintStatus;
+	const TText* const* iCurrentUId;
+	};
+
+class CTestStepDecode2Frames : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepDecode2Frames(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+protected:
+	virtual TBool ConsumeFrame(const CFbsBitmap* aBitmap);
+private:
+	virtual TVerdict TestL();
+};
+
+class CTestStepPanic_1 : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepPanic_1(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+private:
+	virtual TVerdict TestL();
+};
+
+class CTestStepPanic_2 : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepPanic_2(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+private:
+	virtual TVerdict TestL();
+};
+
+class CTestStepPanic_3 : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepPanic_3(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+private:
+	virtual TVerdict TestL();
+};
+
+class CTestStepPanic_4 : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepPanic_4(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+private:
+	virtual TVerdict TestL();
+};
+
+class CTestStepPanic_6 : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepPanic_6(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+private:
+	virtual TVerdict TestL();
+};
+
+// DRM tests //
+class CTestStepDrm : public CTestStepImgDisplayGeneric {
+public:
+	CTestStepDrm(const TImageDisplayUnitTestParams& aTestParams):CTestStepImgDisplayGeneric(aTestParams)
+		{
+		}
+protected:
+	virtual TBool ConsumeFrame(const CFbsBitmap* aBitmap);
+private:
+	virtual TVerdict TestL();
+};
+
+// MNG Mime Type recognition tests //
+class CTestStepImageDisplayRecog : public CTestStepImageDisplay
+	{
+public:
+	CTestStepImageDisplayRecog(const TMimeTypeRecogTestParam& aTestParam);
+	virtual TVerdict DoTestStepL();
+protected:
+	virtual TVerdict DoTestStepPreambleL();
+	virtual TVerdict DoTestStepPostambleL();
+	virtual void MiidoImageReady(const CFbsBitmap* aBitmap, TUint aStatus, const TRect& aUpdatedArea, TInt aError);
+	const TMimeTypeRecogTestParam& iTestParam;
+	RApaLsSession iApaLsSession;
+	};
+
+//
+// Regression test case for defect: DEF082108: Browsing to www.mobil.se will crash the phone 
+class CTestStepImageDisplayMimeCheck : public CTestStepImageDisplay
+	{
+public:
+	CTestStepImageDisplayMimeCheck();
+	virtual TVerdict DoTestStepL();
+protected:
+	virtual TVerdict DoTestStepPreambleL();
+	virtual TVerdict DoTestStepPostambleL();
+	virtual void MiidoImageReady(const CFbsBitmap* aBitmap, TUint aStatus, const TRect& aUpdatedArea, TInt aError);
+	RApaLsSession iApaLsSession;
+	};
+
+#endif // __TESTSTEPIMAGEDISPLAY_H__
+