diff -r 000000000000 -r bde4ae8d615e os/security/contentmgmt/referencedrmagent/tcaf/source/Consumerstep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/security/contentmgmt/referencedrmagent/tcaf/source/Consumerstep.h Fri Jun 15 03:10:57 2012 +0200 @@ -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 + +#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