diff -r 735348f59235 -r 948c7f65f6d4 imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestStepImageDisplay.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestStepImageDisplay.h Wed Sep 01 12:38:50 2010 +0100 @@ -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 +#include + + +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__ +