imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestSuiteImageDisplay.cpp
changeset 0 40261b775718
child 41 f7bf1ed8db72
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagingandcamerafws/imagingunittest/tsu_icl_imgdisp/src/TestSuiteImageDisplay.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,787 @@
+// 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:
+//
+
+// EPOC includes
+#include <e32base.h>
+
+#include <bitdev.h>
+// Test system includes
+#include <testframework.h>
+#include <icl/imagecodecdata.h>
+#include <icl/mngimagedisplay.hrh>
+#include <icl/exifimagedisplay.hrh>
+
+#include "TestStepImageDisplay.h"
+#include "TestSuiteImageDisplay.h"
+#include "TestPlugin/TestImageDisplay.hrh"
+
+#define KDummyImage _S("Dummy.idp")
+#define KJpgImage _S("wolf.jpg")
+#define KMngImage 		_S("simple_b.mng")
+#define KMngEmptyFile 	_S("empty.mng")
+#define KDrmArchive _S("ImgDispl.content")
+
+#define KMimeTypeJpg _S8("image/jpeg")
+#define KMimeTypeMng _S8("image/mng")
+#define KMimeTypeDummy _S8("image/imgdisp")
+#define KMngUnlimUid _S("ImgDisplMngUnlim")
+#define KJpgUnlimUid _S("ImgDisplJpgUnlimited")
+
+#define KImageTypeJPGUidValue 0x101F45D8
+
+// constant table of parameters for tests
+
+const TImageDisplayUnitTestParams KSmokeFileNameTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0011-HP"), 
+		_S("The API smoke test using filename"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+
+const TImageDisplayUnitTestParams KSmokeFileHandleTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0012-HP"), 
+		_S("The API smoke test using filehandle"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileHandle,	// Source is a filehandle
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams KSmokeDataBufTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0013-HP"), 
+		_S("The API smoke test using DataBuffer"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeData,	// Source is a databuf
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams KForceUidTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0020-HP"), 
+		_S("Forcing the Plugin Uid test"), 
+		KJpgImage,		// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,			// Mime type
+		0, 0,			// image type & subtype
+		KTesPluginUidValue,// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams K2FramesTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0021-HP"), 
+		_S("Compare generated frame"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,			// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+//*****************************************************
+// ALLOC tests
+//*****************************************************
+
+const TImageDisplayUnitTestParams KAllocSmokeFileNameTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0101-HP"), 
+		_S("The API smoke test using filename"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::EAlloc			// test type
+	};
+
+
+const TImageDisplayUnitTestParams KAllocSmokeFileHandleTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0102-HP"), 
+		_S("The API smoke test using filehandle"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileHandle,	// Source is a filehandle
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::EAlloc			// test type
+	};
+
+const TImageDisplayUnitTestParams KAllocSmokeDataBufTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0103-HP"), 
+		_S("The API smoke test using DataBuffer"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeData,	// Source is a databuf
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::EAlloc			// test type
+	};
+
+
+const TImageDisplayUnitTestParams KPanicTest_1 =
+	{	
+		_S("MM-ICL-IMGDISP-U-0001-HP"), 
+		_S("The API Panic test 1 (EIllegalCallSequence)"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeData,	// Source is a databuf
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams KPanicTest_2 =
+	{	
+		_S("MM-ICL-IMGDISP-U-0002-HP"), 
+		_S("The API Panic test 2 (EUndefinedSourceType)"), 
+		NULL,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeUndefined,	// Source is undefined
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams KPanicTest_3 =
+	{	
+		_S("MM-ICL-IMGDISP-U-0003-HP"), 
+		_S("The API Panic test 3 (EUndefinedDestSize)"), 
+		KDummyImage,	// source file name
+		-1, -1, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeData,	// Source is a databuf
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams KPanicTest_4 =
+	{	
+		_S("MM-ICL-IMGDISP-U-0004-HP"), 
+		_S("The API Panic test 4 (EImageWrongType)"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeData,	// Source is a databuf
+		KMimeTypeDummy,	// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+const TImageDisplayUnitTestParams KPanicTest_6 =
+	{	
+		_S("MM-ICL-IMGDISP-U-0006-HP"), 
+		_S("The API Panic test 6 (EIllegalImageSubType)"), 
+		KDummyImage,	// source file name
+		100, 100, 		// dest size
+
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,			// Mime type
+		0, 0x10002344,	// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal			// test type
+	};
+
+// DRM negative tests // 
+const TText* const KNoRightsUids[]={_S("ImgDisplNoRights"),NULL};
+const TImageDisplayUnitTestParams KDrmNoRightsTst = 
+	{	
+		_S("MM-ICL-IMGDISP-U-0251-HP"), 
+		_S("Open a protected  image having NO rights test"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,			// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KNoRightsUids,		// Unique Id
+		ContentAccess::EView,		// Intent
+		KErrCANoRights				// expected error
+	};
+	
+const TText* const KUnlimitedUids[]={KMngUnlimUid, KJpgUnlimUid, NULL};
+const TImageDisplayUnitTestParams KDrmNoPermTst =
+	{	
+		_S("MM-ICL-IMGDISP-U-0252-HP"), 
+		_S("Open a protected image with Unknown intent"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,			// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedUids,		// Unique Id
+		ContentAccess::EUnknown,	// Intent
+		KErrCANoPermission				// expected error
+	};
+	
+const TText* const KPlayTwiceUids[]={_S("ImgDisplJpgCnt01"), _S("ImgDisplMngCnt01"), NULL};
+const TImageDisplayUnitTestParams KDrmLimitedCountTst =
+	{	
+		_S("MM-ICL-IMGDISP-U-0253-HP"), 
+		_S("Open a protected image with View intent limited to 1 attempt, decode 2 times"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,			// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KPlayTwiceUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrCANoPermission,				// expected error
+		2						// iPlayLoops
+	};
+	
+const TText* const KUnlimitedJpgUids[]={KJpgUnlimUid, NULL};
+const TImageDisplayUnitTestParams KDrmMimeTypeFileNameTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0201-HP"), 
+		_S("Open a protected image with View specifying MIME type, Fname"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		KMimeTypeJpg,		// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedJpgUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};
+	
+const TImageDisplayUnitTestParams KDrmMimeTypeFileHandleTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0202-HP"), 
+		_S("Open a protected image with View specifying MIME type, Fhandle"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileHandle,	// Source is a filehandle
+		KMimeTypeJpg,		// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedJpgUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};
+	
+const TText* const KUnlimitedMngUids[]={KMngUnlimUid, NULL};
+const TImageDisplayUnitTestParams KDrmPluginUidTypeFileNameTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0203-HP"), 
+		_S("Open a protected image with View specifying plug-in Uid, Fname"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,		// Mime type
+		0, 0,			// image type & subtype
+		KUidImageDisplayMngPluginImplUid,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedMngUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};
+	
+const TImageDisplayUnitTestParams KDrmPluginUidTypeFileHandleTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0204-HP"), 
+		_S("Open a protected image with View specifying plug-in Uid, Fhandle"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileHandle,	// Source is a filehandle
+		NULL,		// Mime type
+		0, 0,			// image type & subtype
+		KUidImageDisplayMngPluginImplUid,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedMngUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};
+	
+const TImageDisplayUnitTestParams KDrmImgTypeUidTypeFileNameTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0205-HP"), 
+		_S("Open a protected image with View specifying image type Uid, Fname"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filename
+		NULL,		// Mime type
+		KImageTypeJPGUidValue, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedJpgUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};
+
+const TImageDisplayUnitTestParams KDrmImgTypeUidTypeFileHandleTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0206-HP"), 
+		_S("Open a protected image with View specifying  image type Uid, Fhandle"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileHandle,	// Source is a filehandle
+		NULL,		// Mime type
+		KImageTypeJPGUidValue, 0,			// image type & subtype
+		0,				// plugin UID
+ 
+		TImageDisplayUnitTestParams::ENormal,			// test type
+		KUnlimitedJpgUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};	
+
+const TImageDisplayUnitTestParams KDrmAllocFileNameTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0111-HP"), 
+		_S("Open a protected image with View, Alloc, Fname"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileName,	// Source is a filehandle
+		NULL,		// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 		TImageDisplayUnitTestParams::EAlloc,			// test type
+		KUnlimitedMngUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};
+	
+const TImageDisplayUnitTestParams KDrmAllocFileHandleTest =
+	{	
+		_S("MM-ICL-IMGDISP-U-0112-HP"), 
+		_S("Open a protected image with View, Alloc, Fhandle"), 
+		KDrmArchive,	// source file name
+		0, 0, 		// dest size
+		-1,	// display mode
+		CImageDisplay::EOptionMainImage,	// image option
+		ETrue,			// maintain aspect ratio
+		TImageDisplayUnitTestParams::ETypeFileHandle,	// Source is a filehandle
+		NULL,		// Mime type
+		0, 0,			// image type & subtype
+		0,				// plugin UID
+ 		TImageDisplayUnitTestParams::EAlloc,			// test type
+		KUnlimitedJpgUids,		// Unique Id
+		ContentAccess::EView,	// Intent
+		KErrNone,				// expected error
+		1						// iPlayLoops
+	};	
+
+const TMimeTypeRecogTestParam KMngRecogTestFileName = 
+	{
+	_S("MM-ICL-IMGDISP-U-0301-HP"), 				// name of the test
+	_S("Open a MNG file and get its MIME type"),	// description
+	TMimeTypeRecogTestParam::EParamIsFileName,		// what next parameter to use
+	NULL,											// databuffer parameter value
+	KMngImage,										// filename parameter value
+	KMimeTypeMng,									// expected MIME type value
+	CApaDataRecognizerType::EPossible				// minimum confidence
+	};
+	
+const TMimeTypeRecogTestParam KMngRecogTestDataBuf = 
+	{
+	_S("MM-ICL-IMGDISP-U-0302-HP"), 				// name of the test
+	_S("Open a MNG file and get its MIME type using its content"),	// description
+	TMimeTypeRecogTestParam::EParamIsDataBuffer,	// what next parameter to use
+	NULL,											// databuffer parameter value
+	KMngImage,										// filename parameter value
+	KMimeTypeMng,									// expected MIME type value
+	CApaDataRecognizerType::EPossible				// minimum confidence
+	};
+	
+const TMimeTypeRecogTestParam KMngRecogTestEmptyFile = 
+	{
+	_S("MM-ICL-IMGDISP-U-0303-HP"), 				// name of the test
+	_S("Open an empty MNG file and get its MIME type"),	// description
+	TMimeTypeRecogTestParam::EParamIsFileName,		// what next parameter to use
+	NULL,											// databuffer parameter value
+	KMngEmptyFile,									// filename parameter value
+	KMimeTypeMng,									// expected MIME type value
+	CApaDataRecognizerType::EPossible				// minimum confidence
+	};
+	
+const TMimeTypeRecogTestParam KMngRecogIncompleteSign = 
+	{
+	_S("MM-ICL-IMGDISP-U-0304-HP"), 				// name of the test
+	_S("Use the MNG incomplete signature and try to get its MIME type"),	// description
+	TMimeTypeRecogTestParam::EParamIsDataBuffer,	// what next parameter to use
+	_S8("\x8aMNG"),									// databuffer parameter value 
+	_S("just_something"),							// filename parameter value
+	_S8(""),											// expected MIME type value
+	CApaDataRecognizerType::ENotRecognized				// minimum confidence
+	};
+
+const TMimeTypeRecogTestParam KDummyRecogTestFileName = 
+	{
+	_S("MM-ICL-IMGDISP-U-0305-HP"), 				// name of the test
+	_S("Open a IDP dummy format file and get its MIME type"),	// description
+	TMimeTypeRecogTestParam::EParamIsFileName,		// what next parameter to use
+	NULL,											// databuffer parameter value
+	KDummyImage,										// filename parameter value
+	KMimeTypeDummy,									// expected MIME type value
+	CApaDataRecognizerType::EPossible				// minimum confidence
+	};
+
+
+/**
+*
+* Create an instance of this test suite.
+*
+* NewTestSuiteImageDisplayL is exported at ordinal 1.
+* This provides the interface to allow the Test Framework
+* to create instances of this test suite.
+*
+* @return	"CTestSuiteImageDisplay*"
+*			The newly created test suite
+*/
+EXPORT_C CTestSuiteImageDisplay* NewTestSuiteImageDisplayL() 
+    { 
+	CTestSuiteImageDisplay* self = new (ELeave) CTestSuiteImageDisplay;
+	CleanupStack::PushL(self);
+	self->ConstructL();
+
+	CleanupStack::Pop();
+	return self;
+    }
+
+/**
+*
+* CTestSuiteImageDisplay destructor
+*
+* 
+*/
+CTestSuiteImageDisplay::~CTestSuiteImageDisplay()
+	{
+	if (iFBSSession)
+		{
+		iFBSSession = EFalse;
+		RFbsSession::Disconnect();
+		}
+	}
+
+/**
+*
+* This test suite version string
+*
+*
+*/
+_LIT(KTxtVersion,"1.0");
+
+/**
+*
+* Get test suite version.
+*
+* @return	"TPtrC"
+*			The version string.
+*
+*
+*/
+TPtrC CTestSuiteImageDisplay::GetVersion( ) const
+	{
+	return KTxtVersion();
+	}
+
+/**
+*
+* Add a test step into the suite.
+*
+* @param	"CTestStepImageTransform* aPtrTestStep"
+*			The test step to be added.
+* 
+*/
+void CTestSuiteImageDisplay::AddTestStepL(CTestStepImageDisplay* aPtrTestStep)
+	{
+    // [ assert pre condition that a valid test ptr has been supplied ]
+	__ASSERT_ALWAYS(aPtrTestStep, Panic(EBadArgument));
+	
+	// [ set back wards reference to test suite ]
+	aPtrTestStep->SetSuite(this); 
+	
+	//[ add the step to the test suite ]
+	CTestSuite::AddTestStepL(aPtrTestStep);
+	}
+
+/**
+*
+* Initialiser for test suite.
+* This creates all the test steps and stores them
+* inside CTestSuiteImageDisplay
+* 
+*/
+void CTestSuiteImageDisplay::InitialiseL( )
+	{
+	User::LeaveIfError( RFbsSession::Connect() );
+	iFBSSession = ETrue;
+	
+	//[ set the default path ]
+	InitSystemPath();
+
+	// store the name of this test suite
+	iSuiteName = _L("ImageDisplay");
+	
+	// Add tests
+
+
+	// smoke test
+	AddTestStepL(new (ELeave) CTestStepImgDisplayGeneric(KSmokeFileNameTest));
+	
+	AddTestStepL(new(ELeave) CTestStepImgDisplayGeneric(KSmokeFileHandleTest));
+	AddTestStepL(new(ELeave) CTestStepImgDisplayGeneric(KSmokeDataBufTest));
+	AddTestStepL(new(ELeave) CTestStepImgDisplayGeneric(KForceUidTest));
+	AddTestStepL(new(ELeave) CTestStepDecode2Frames(K2FramesTest));
+
+// alloc tests // 
+	AddTestStepL(new(ELeave) CTestStepImgDisplayGeneric(KAllocSmokeFileNameTest));
+	AddTestStepL(new(ELeave) CTestStepImgDisplayGeneric(KAllocSmokeFileHandleTest));
+	AddTestStepL(new(ELeave) CTestStepImgDisplayGeneric(KAllocSmokeDataBufTest));
+
+// Panic tests // 
+	AddTestStepL(new(ELeave) CTestStepPanic_1(KPanicTest_1));
+	AddTestStepL(new(ELeave) CTestStepPanic_2(KPanicTest_2));
+	AddTestStepL(new(ELeave) CTestStepPanic_3(KPanicTest_3));
+	AddTestStepL(new(ELeave) CTestStepPanic_4(KPanicTest_4));
+	AddTestStepL(new(ELeave) CTestStepPanic_6(KPanicTest_6));
+	
+// Drm positive tests // 
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmMimeTypeFileNameTest));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmMimeTypeFileHandleTest));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmPluginUidTypeFileNameTest));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmPluginUidTypeFileHandleTest));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmImgTypeUidTypeFileNameTest));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmImgTypeUidTypeFileHandleTest));
+	
+// Drm negative tests // 
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmNoRightsTst));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmNoPermTst));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmLimitedCountTst));
+	
+// Drm alloc tests // 	
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmAllocFileNameTest));
+	AddTestStepL(new(ELeave) CTestStepDrm(KDrmAllocFileHandleTest));
+// Mime type recognition tests // 
+	AddTestStepL(new(ELeave) CTestStepImageDisplayRecog(KMngRecogTestFileName));
+	AddTestStepL(new(ELeave) CTestStepImageDisplayRecog(KMngRecogTestDataBuf));
+	AddTestStepL(new(ELeave) CTestStepImageDisplayRecog(KMngRecogTestEmptyFile));
+	AddTestStepL(new(ELeave) CTestStepImageDisplayRecog(KMngRecogIncompleteSign));
+	AddTestStepL(new(ELeave) CTestStepImageDisplayRecog(KDummyRecogTestFileName));
+	
+// Regression test case for defect: DEF082108: Browsing to www.mobil.se will crash the phone
+	AddTestStepL(new(ELeave) CTestStepImageDisplayMimeCheck());
+	}
+	
+void CTestSuiteImageDisplay::DefaultPath(TFileName& aName)
+	{
+	aName.Copy(iDefaultPath);
+	}
+
+/**
+*
+* InitSystemPath
+* This sets up the default path
+* 
+*/
+void CTestSuiteImageDisplay::InitSystemPath()
+	{
+	_LIT(KTestSourcePathOnE,"e:\\tsu_icl_imgdisp_01\\");
+	_LIT(KTestSourcePathOnD,"d:\\tsu_icl_imgdisp_01\\");
+	_LIT(KTestSourcePathOnC,"c:\\tsu_icl_imgdisp_01\\");
+
+	RFs fs;
+	TInt ret = fs.Connect();
+	__ASSERT_ALWAYS(ret == KErrNone,User::Panic(_L("Sys path not setup"),ret));
+
+	//[ take the first drive where it exists or can be made ]
+	TInt err = fs.MkDir(KTestSourcePathOnC);
+	if (( err == KErrNone ) || (err == KErrAlreadyExists))
+		{
+		iDefaultPath.Copy(KTestSourcePathOnC);
+		}
+	else{
+        TInt err = fs.MkDir(KTestSourcePathOnD);
+        if (( err == KErrNone ) || (err == KErrAlreadyExists))
+			{
+			iDefaultPath.Copy(KTestSourcePathOnD);
+			}
+		else
+			{
+			TInt err = fs.MkDir(KTestSourcePathOnE);
+			if (( err == KErrNone ) || (err == KErrAlreadyExists))
+				{
+				iDefaultPath.Copy(KTestSourcePathOnE);
+				}
+			else
+				{
+				User::Panic(_L("Could not make TestTransform directory"),KErrGeneral);
+				}			
+			}
+		}
+
+
+	__ASSERT_ALWAYS(ret == KErrNone,User::Panic(_L("Sys path not setup"),ret));
+	fs.Close();
+	}