contentmgmt/referencedrmagent/tcaf/source/Consumerstep.h
changeset 15 da2ae96f639b
child 45 030c4fbc13d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contentmgmt/referencedrmagent/tcaf/source/Consumerstep.h	Mon Oct 12 10:17:04 2009 +0300
@@ -0,0 +1,443 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 __CONSUMER_STEP_H__)
+#define __CONSUMER_STEP_H__
+#include <test/testexecutestepbase.h>
+
+#include "cafstep.h"
+
+// Constants used to name test cases 
+_LIT(KCAFSizeStep,"CAFSizeStep");
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+_LIT(KCAFSizeStep64,"CAFSizeStep64");
+_LIT(KCAFSeekReadStep64,"CAFSeekReadStep64");
+#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+_LIT(KCAFSeekReadStep,"CAFSeekReadStep");
+_LIT(KCAFAttributesStep,"CAFAttributesStep");
+_LIT(KCAFStringAttributesStep,"CAFStringAttributesStep");
+_LIT(KCAFMultiThreadCDataStep,"CAFMultiThreadCDataStep");
+_LIT(KCAFMimeTypeCDataStep,"CAFMimeTypeCDataStep");
+_LIT(KCAFShareModeStep,"CAFShareModeStep");
+_LIT(KCAFHandleSizeStep,"CAFHandleSizeStep");
+_LIT(KCAFHandleSeekReadStep,"CAFHandleSeekReadStep");
+_LIT(KCAFHandleMultiThreadCDataStep,"CAFHandleMultiThreadCDataStep");
+_LIT(KCAFDataAttributeStep,"CAFDataAttributeStep");
+_LIT(KCAFDataAttributeSetStep,"CAFDataAttributeSetStep");
+_LIT(KCAFDataStringAttributeStep,"CAFDataStringAttributeStep");
+_LIT(KCAFDataStringAttributeSetStep,"CAFDataStringAttributeSetStep");
+_LIT(KCAFExecuteIntentStep,"CAFExecuteIntentStep");
+_LIT(KCAFDRMFileOpenPerformanceStep, "CAFDRMFileOpenPerformanceStep");
+
+//#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+_LIT(KWmdrmCAFContentStep,"WmdrmCAFContentStep");     
+_LIT(KWmdrmCAFDataStep,"WmdrmCAFDataStep");     
+_LIT(KWmdrmCAFReadStep, "WmdrmCAFReadStep");     
+//#endif //SYMBIAN_SDP-WMDRM 
+
+/* 
+* Used to open one file with RFile and the DRM packaged version of the same file with 
+* CContent::Open() and compare the reported sizes
+* It can be used with two identical, non DRM file to check the operation of F32Agent
+* The ini file used with this test expects only one parameter
+*
+* URI1 - The name of the file used for this test
+* 
+*/
+class CCAFSizeStep : public CCAFStep
+	{
+public:
+	CCAFSizeStep(CCAFServer& aParent);
+	~CCAFSizeStep();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};
+
+
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+/* 
+* 64bit version of CCAFSizeStep 
+* If the agent to be tested implemented 64bit functions, this test step will test 64bit functions
+* under the same scenario as its 32bit counterpart. If 64bit functions are not implemented, this test step
+* can also ensure that fallback to 32bit functions works properly  
+*/
+class CCAFSizeStep64 : public CCAFStep
+	{
+public:
+	CCAFSizeStep64(CCAFServer& aParent);
+	~CCAFSizeStep64();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};
+#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+
+/* 
+* Used to test file Seek and Read operations on DRM protected content.
+* Opens one file with RFile and the DRM packaged version of the same file with 
+* CContent::Open() and does a series of Seek and Read operations.
+* Verifies that the CAF and the agent corresponding to the DRM content implement 
+* all polymorphic versions of Read() and Seek() correctly
+* It can also be used with two identical, non DRM file to check the operation of F32Agent
+* The ini file used with this test expects only one parameter
+*
+* URI1 - The name of the file used for this test
+* 
+*/
+class CCAFSeekReadStep : public CCAFStep
+	{
+public:
+	CCAFSeekReadStep(CCAFServer& aParent);
+	~CCAFSeekReadStep();
+	virtual TVerdict doTestStepL();
+private:
+	void StandardCheckReturnValue(TInt aReturnValue);
+private:
+	CCAFServer& iParent;
+	};
+
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+/* 
+* 64bit version of CAFSeekReadStep
+* If the agent to be tested implemented 64bit functions, this test step will test 64bit functions
+* under the same scenario as its 32bit counterpart. If 64bit functions are not implemented, this test step
+* can also ensure that fallback to 32bit functions works properly 
+* 
+*/
+class CCAFSeekReadStep64 : public CCAFStep
+	{
+public:
+	CCAFSeekReadStep64(CCAFServer& aParent);
+	~CCAFSeekReadStep64();
+	virtual TVerdict doTestStepL();
+private:
+	void StandardCheckReturnValue(TInt aReturnValue);
+private:
+	CCAFServer& iParent;
+	};
+#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+
+/* 
+* Used to test CContent::Attributes()
+* The INI file specifies the file to retrieve the attributes from.
+* @internalComponent
+*/
+class CCAFAttributesStep : public CCAFStep
+	{
+public:
+	CCAFAttributesStep(CCAFServer& aParent);
+	~CCAFAttributesStep();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};
+
+
+/* 
+* Used to test Content::StringAttributes()
+* The INI file specifies the file to retrieve the attributes from.
+* @internalComponent
+*/
+class CCAFStringAttributesStep : public CCAFStep
+	{
+public:
+	CCAFStringAttributesStep(CCAFServer& aParent);
+	~CCAFStringAttributesStep();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};
+
+
+
+/* 
+* Used to test multi-threaded read from CContent
+* @internalComponent
+*/
+class CCAFMultiThreadCDataStep : public CCAFStep
+	{
+public:
+	CCAFMultiThreadCDataStep(CCAFServer& aParent);
+	~CCAFMultiThreadCDataStep();
+	virtual TVerdict doTestStepL();
+	static TInt ReaderThreadEntry(TAny *aPtr);
+private:
+	CCAFServer& iParent;
+	};
+
+
+/* 
+* Used to test finding the mime type from CData
+* @internalComponent
+*/
+class CCAFMimeTypeCDataStep: public CCAFStep
+	{
+public:
+	CCAFMimeTypeCDataStep(CCAFServer& aParent);
+	~CCAFMimeTypeCDataStep();
+	virtual TVerdict doTestStepL();
+	static TInt ReaderThreadEntry(TAny *aPtr);
+private:
+	CCAFServer& iParent;
+	};
+
+/* 
+* Used to test content sharing modes
+* @internalComponent
+*/
+class CCAFShareModeStep: public CCAFStep
+	{
+public:
+	CCAFShareModeStep(CCAFServer& aParent);
+	~CCAFShareModeStep();
+	virtual TVerdict doTestStepL();
+	TVerdict doShareModeStepL();
+private:
+	CCAFServer& iParent;
+	};
+
+
+/* 
+* Used to open one file with RFile and the DRM packaged version of the same file with 
+* CContent::Open() by passing RFile handle and compare the reported sizes
+* It can be used with two identical, non DRM file to check the operation of F32Agent
+* The ini file used with this test expects only one parameter
+*
+* URI1 - The name of the file used for this test
+* 
+*/
+class CCAFHandleSizeStep : public CCAFStep
+	{
+public:
+	CCAFHandleSizeStep(CCAFServer& aParent);
+	~CCAFHandleSizeStep();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};	
+
+/* 
+* Used to test file Seek and Read operations on DRM protected content.
+* Opens one file with RFile and the DRM packaged version of the same file with 
+* CContent::Open() by passing RFile handle and does a series of Seek and Read operations.
+* Verifies that the CAF and the agent corresponding to the DRM content implement 
+* all polymorphic versions of Read() and Seek() correctly
+* It can also be used with two identical, non DRM file to check the operation of F32Agent
+* The ini file used with this test expects only one parameter
+*
+* URI1 - The name of the file used for this test
+*/
+class CCAFHandleSeekReadStep : public CCAFStep
+	{
+public:
+	CCAFHandleSeekReadStep(CCAFServer& aParent);
+	~CCAFHandleSeekReadStep();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};
+
+/* 
+* Used to test multi-threaded read from CContent
+* @internalComponent
+*/
+class CCAFHandleMultiThreadCDataStep : public CCAFStep
+	{
+public:
+	CCAFHandleMultiThreadCDataStep(CCAFServer& aParent);
+	~CCAFHandleMultiThreadCDataStep();
+	virtual TVerdict doTestStepL();
+	static TInt ReaderThreadEntry(TAny *aPtr);
+private:
+	CCAFServer& iParent;
+	};
+	
+/* 
+* Used to test CManager::GetAttribute()
+* The INI file specifies the file to delete and the expected return code.
+* For instance this can be used to try and delete a file that does not exist or a file
+* that is read-only or has rights that don't allow it to be deleted
+* INI file paramerters
+*
+*
+* @internalComponent Exposure internally
+*/
+class CCAFDataAttributeStep : public CCAFStep
+	{
+public:
+	CCAFDataAttributeStep(CCAFServer& aParent);
+	~CCAFDataAttributeStep();
+	virtual TVerdict doTestStepL();
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT
+    TVerdict doWmdrmTestStepL();     
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
+private:
+	CCAFServer& iParent;
+	};
+
+/* 
+* Used to test CManager::GetAttributeSet()
+* The INI file specifies the file to delete and the expected return code.
+* For instance this can be used to try and delete a file that does not exist or a file
+* that is read-only or has rights that don't allow it to be deleted
+* INI file paramerters
+*
+*
+* @internalComponent Exposure internally
+*/
+class CCAFDataAttributeSetStep : public CCAFStep
+	{
+public:
+	CCAFDataAttributeSetStep(CCAFServer& aParent);
+	~CCAFDataAttributeSetStep();
+	virtual TVerdict doTestStepL();
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
+    TVerdict doWmdrmTestStepL();     
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
+private:
+	CCAFServer& iParent;
+	};
+
+/* 
+* Used to test CContent::GetAttribute()
+* The INI file specifies the file to delete and the expected return code.
+* For instance this can be used to try and delete a file that does not exist or a file
+* that is read-only or has rights that don't allow it to be deleted
+* INI file paramerters
+*
+*
+* @internalComponent Exposure internally
+*/
+class CCAFDataStringAttributeStep : public CCAFStep
+	{
+public:
+	CCAFDataStringAttributeStep(CCAFServer& aParent);
+	~CCAFDataStringAttributeStep();
+	virtual TVerdict doTestStepL();
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
+    TVerdict doWmdrmTestStepL();     
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
+private:
+	CCAFServer& iParent;
+	};
+
+/* 
+* Used to test CData::GetStringAttributeSet()
+* The INI file specifies the file to delete and the expected return code.
+* For instance this can be used to try and delete a file that does not exist or a file
+* that is read-only or has rights that don't allow it to be deleted
+* INI file paramerters
+*
+*
+* @internalComponent Exposure internally
+*/
+class CCAFDataStringAttributeSetStep : public CCAFStep
+	{
+public:
+	CCAFDataStringAttributeSetStep(CCAFServer& aParent);
+	~CCAFDataStringAttributeSetStep();
+	virtual TVerdict doTestStepL();
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
+    TVerdict doWmdrmTestStepL();     
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
+private:
+	CCAFServer& iParent;
+	};
+
+class CCAFExecuteIntentStep : public CCAFStep
+	{
+public:
+	CCAFExecuteIntentStep(CCAFServer& aParent);
+	~CCAFExecuteIntentStep();
+	virtual TVerdict doTestStepL();
+private:
+	CCAFServer& iParent;
+	};
+	
+/*
+* Used to test DRM File Open perfomance.
+* The INI file specifies the file to be opened , the iteration count and the maximum time limit for 
+* file open operation(in millisecs).
+* If the obtained time doesn't fall within the provided limit (in the INI parameters) , the test case fails.
+*
+* @internalComponent Exposure internally
+*/
+
+class CCAFDRMFileOpenPerformanceTest : public CCAFStep
+	{
+	public:
+	CCAFDRMFileOpenPerformanceTest(CCAFServer& aParent);
+	~CCAFDRMFileOpenPerformanceTest();
+	virtual TVerdict doTestStepL();
+	
+	private:
+	// Read content from file using CAF
+	void OpenAndReadFileContentL(const TDesC& aFileName);
+	
+	private:
+
+	CCAFServer& iParent;
+	TUint32 iIterationSum;
+	};
+
+#ifdef SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT     
+/* Used to test behaviour of CContent object creation and attribute APIs for WMDRM content.  +-   
+* @internalComponent Exposure internally     
+*/     
+class CWmdrmCAFContentStep : public CCAFStep     
+    {     
+public:     
+    CWmdrmCAFContentStep();     
+    ~CWmdrmCAFContentStep();     
+    virtual TVerdict doTestStepL();     
+    };     
+      
+      
+/* Used to test the behaviour of CData object creation and attribute APIs for WMDRM content.     
+* @internalComponent Exposure internally     
+*/     
+class CWmdrmCAFDataStep : public CCAFStep     
+    {     
+public:     
+    CWmdrmCAFDataStep();     
+    ~CWmdrmCAFDataStep();     
+    virtual TVerdict doTestStepL();     
+    };     
+      
+         
+/* Used to test synchronous and asynchronous behaviour of ReadL() APIs of CData class for WMDRM content.     
+* @internalComponent Exposure internally     
+*/     
+class CWmdrmCAFReadStep : public CCAFStep     
+    {     
+public:     
+    CWmdrmCAFReadStep();     
+    ~CWmdrmCAFReadStep();     
+    virtual TVerdict doTestStepL();     
+      
+private:     
+    TInt TestSynchronousReadL(const TDesC8& aHeaderData, TBool aIntent, TDesC& aInputPacket, TDesC& aExpectedOuput);     
+    TInt TestAsynchronousReadL(const TDesC8& aHeaderData, TBool aIntent, TDesC& aInputPacket, TDesC& aExpectedOuput);     
+    };       
+      
+#endif //SYMBIAN_ENABLE_SDP_WMDRM_SUPPORT 
+
+#endif