videofeeds/server/tsrc/IptvTestUtility/inc/CIptvTestUtilities.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/server/tsrc/IptvTestUtility/inc/CIptvTestUtilities.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,448 @@
+/*
+* Copyright (c) 2002-2004 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:   Object to offer some common utility functions to Iptv engine testing*
+*/
+
+
+#ifndef CIPTVTESTUTILITIES_H
+#define CIPTVTESTUTILITIES_H
+
+//  INCLUDES
+#include "CIptvIapList.h"
+#include "MTestUtilConnectionObserver.h"
+#include "VCXTestConstants.h"
+#include "VCXTestCommon.h"
+
+#include "CIptvService.h"
+#include "CIptvTestVerifyData.h"
+#include "CIptvTestVideoCreator.h"
+#include "CIptvServiceManagementClient.h"
+
+// MACROS
+// FORWARD DECLARATIONS
+//class CIptvService;
+class CIptvTestSMApiUtil;
+class CIptvTestMVApiUtil;
+class CIptvTestVCApiUtil;
+class CIptvMyVideosGlobalFileId;
+class CIptvIapList;
+class CIptvTestVodContentAllDetails;
+class CIptvVodContentContentFullDetails;
+class CIptvVodContentContentBriefDetails;
+class CIptvVodContentCategoryBriefDetails;
+class CIptvMyVideosVideoFullDetails;
+class CIptvMediaContent;
+
+// DATA TYPES
+
+class CIptvServiceInfo : public CBase
+	{
+	public:
+
+        /**
+        * Two-phased constructor.
+        */
+		IMPORT_C static CIptvServiceInfo* NewL();
+		IMPORT_C static CIptvServiceInfo* NewL(CIptvServiceInfo& aServiceInfo);
+
+        /**
+        * Destructor
+        */
+		virtual ~CIptvServiceInfo();
+
+
+	private:
+
+        /**
+        * C++ default constructor.
+        */
+        CIptvServiceInfo();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL(CIptvServiceInfo* aServiceInfo);
+
+	public:
+
+		TUint iId;
+		TBuf16<255> iName;
+		TBuf16<255> iAddress;
+		TBuf16<255> iIconPath;
+		TUid iEpgPluginUid;
+		TUid iVodPluginUid;
+		TUid iIptvPluginUid;
+		CIptvService::TServiceType iServiceType;
+		CIptvIapList* iIapList;
+		TBuf16<255> iUserName;
+		TBuf16<255> iPassWord;
+		TBuf16<255> iDesc;
+		TBool iSelectedFlag;
+	    TBool iReadOnlyFlag;
+	    TBool iMainServiceFlag;
+	    TBool iConnectionApprovedFlag;
+	    TInt32 iApplicationUid;
+	    TInt32 iDisplayOrder;
+	    TBuf16<255> iProviderId;
+	    TBuf16<255> iAccountManagementUrl;
+	};
+
+// FUNCTION PROTOTYPES
+
+// CLASS DECLARATION
+
+/**
+*  Class for helper functions that have depencies to Video Center.
+*  Add functions without depencies to VCXTestCommon.
+*
+*  @since
+*/
+class CIptvTestUtilities : public CBase, public MTestUtilConnectionObserver
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CIptvTestUtilities* NewL();
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CIptvTestUtilities();
+
+    public: // New functions
+
+        /**
+        * Prints service information to debug output
+        * @since
+        * @param
+        */
+        IMPORT_C void PrintIptvService(CIptvService *aIptvService);
+
+        /**
+        * Writes service information into verify stream.
+        * @since
+        * @param
+        */
+        IMPORT_C void WriteVerifyIptvService(TDes& aCaseId, CIptvService *aIptvService);
+
+        /**
+        * Creates instance of service class.
+        * @since
+        * @param
+        */
+        IMPORT_C CIptvService* CreateIptvServiceInstanceL( CIptvServiceInfo& aService );
+
+        /**
+        * Compares two services.
+        * @since
+        * @param
+        */
+        IMPORT_C TBool VerifyServices(CIptvService& aS1, CIptvService& aS2);
+
+        /**
+        * Gets VOD content IDs for a service.
+        * @since
+        * @param
+        */
+        IMPORT_C TBool GetContentIdsL(TIptvServiceId aServiceId, TUint32 aIapId, RArray<TIptvContentId>& aContentIdArray, TUint32 aMaxSize, TUint32 aMaxPlaytime);
+
+        /**
+        * Gets size of a file.
+        * @since
+        * @param
+        */
+        IMPORT_C TBool GetFileSize(TDesC& aFullPath, TUint32& aFileSize);
+
+        /**
+        * Gets service from service DB.
+        * @since
+        * @param
+        */
+        IMPORT_C CIptvService* GetServiceFromDb(TInt aId);
+
+        /**
+        * Searches AP by name.
+        * First searches if there's IAP matchin for the name. After that following rules are used:
+        * If name is Internet tries to find first GPRS AP, Internet2 second GPRS AP
+        * If name is Wlan tries to find first WLAN AP, Wlan2 second WLAN AP
+        * If AP is not found returns on of the known APs, if one is found.
+        */
+        IMPORT_C TBool GetIapIdL(const TDesC& aIapName, TUint32& aIapId);
+
+        /**
+        * Searches AP by name.
+        */
+		IMPORT_C TBool GetIapIdByNameL(const TDesC& aIapName, TUint32& aIapId);
+
+        /**
+        * Searches for AP as defined in TIptvTestIapType. In emulator always returns "Ethernet with Daemon Dynamic IP"
+        * @since
+        * @param aType AP type which is wanted
+        * @param aIapId id of found AP is written here
+        * @param aOrderNumber return nTh AP of the specified type
+        * @return KErrNotFound if no AP with the type is found, KErrNone if no errors,
+        */
+		IMPORT_C TInt GetIapIdByTypeL(CVCXTestCommon::TIptvTestIapType aType, TUint32& aIapId, TInt aOrderNumber);
+
+        /**
+        * Returns a name of AP
+        */
+        IMPORT_C TBool GetIapNameById(TDes& aIapName, TUint32 aIapId);
+
+        /**
+        * Prints APs in COMMDB into debug output.
+        */
+        IMPORT_C void PrintIaps();
+
+        /**
+        * Returns used AP for a service.
+        */
+        IMPORT_C TBool GetUsedIap(TUint32 aServiceId, TUint32& aIapId,TDes& aIapName);
+
+        /**
+        * Sets used AP for a service.
+        * @return KErrNone if succeed, otherwise an error code
+        */
+	    IMPORT_C TInt SetUsedIap(TUint32 aServiceId, TUint32 aIapId);
+
+    	/**
+        * Gets the services from the services DB
+        * @param aServicesArray array where services will be added
+        * @param aFlagsFilter only services with these flags will be added, use 0 to skip flags test
+        * @param aOrder CIptvServiceManagementClient::TOrder enumeration to sort the services array or -1 to use no sort
+        */
+		IMPORT_C TBool GetServicesFromDbL(RPointerArray<CIptvService>& aServicesArray, TUint32 aFlags, CIptvServiceManagementClient::TOrder aOrder);
+
+        /**
+        * Gets the services from the services DB
+        * @param aServicesArray array where services will be added
+        */
+        IMPORT_C TBool GetServicesFromDbL(RPointerArray<CIptvService>& aServicesArray);
+
+        /**
+        * Gets ID of service by name.
+        * @since
+        * @param
+        */
+		IMPORT_C TInt GetServiceIdByNameL(TDesC& aServiceName, TInt& aId);
+
+        /**
+        * Gets video info.
+        * @since
+        * @param
+        */
+        TBool GetVideoInfo(CIptvMyVideosGlobalFileId& aFileId,
+                            TUint32& aServiceId,
+                            TDes& aName,
+                            TDes& aFileName);
+
+  		/**
+        * Initializes the verify file, deletes if the file exists
+        * @since
+        * @param aVerifyId An id to identify the file where verify data is written
+        * @return Error code, KErrNone if no errors,
+        */
+		IMPORT_C TInt CreateVerifyData(TDesC& aVerifyId, TBool aAppend);
+
+		/**
+        * Writes verify data to a file
+        * @since
+        * @param aVerifyId An id to identify the file where verify data is written
+        * @param aVerifyData Data to write into the file
+        * @return Error code, KErrNone if no errors,
+        */
+		IMPORT_C TInt WriteVerifyData(TDesC& aVerifyId, TDesC& aVerifyData);
+
+		/**
+        * Writes verify data to a file
+        * @since
+        * @param aVerifyId An id to identify the file where verify data is written
+        * @param aVerifyData Data to write into the file
+        * @return Error code, KErrNone if no errors,
+        */
+		IMPORT_C TInt WriteVerifyData(TDesC& aVerifyId, TRefByValue<const TDesC> aFmt, ... );
+
+		/**
+        *
+        * @since
+        * @param aVerifyId An id to identify the files which are compared
+        * @param aVerifyResult Result is written here
+        * @return Error code, KErrNone if no errors,
+        */
+		IMPORT_C TInt VerifyData(TDesC& aVerifyId, CIptvTestVerifyData::TVerifyResult& aVerifyResult);
+
+        /**
+        * Enables timestamp writing into the verify file.
+        * @since
+        * @param aUseTimestamps
+        */
+        IMPORT_C void EnableVerifyTimestamps( TBool aUseTimestamps );
+
+        /**
+        * Gets content access list
+        * @since
+        * @param
+        */
+		IMPORT_C TInt GetContentAccessListL(TUint32 aServiceId, TUint32 aContentId, RPointerArray<CIptvMediaContent>& aCAList);
+
+        /**
+        * Gets content details
+        * @since
+        * @param
+        */
+		IMPORT_C TInt GetVodContentContentDetailsL(TUint32 aServiceId, TUint32 aContentId, CIptvVodContentContentFullDetails& aContentDetails);
+
+        /**
+        * Gets ECG category list for a service.
+        */
+        IMPORT_C void GetVodEcgCategoryListL(TUint32 aServiceID, TUint32 aParentCategoryId, RPointerArray<CIptvVodContentCategoryBriefDetails>& aCategoryList);
+
+        /**
+        * Gets ecg list for a service.
+        */
+        IMPORT_C void GetVodEcgListL(TUint32 aServiceId, TUint32 aCategoryId, RPointerArray<CIptvVodContentContentBriefDetails>& aEcgList);
+
+        /**
+        * Gets all content details
+        * @since
+        * @param
+        */
+		IMPORT_C void GetVodContentAllDetailsListL( TUint32 aServiceId, RPointerArray<CIptvTestVodContentAllDetails>& aDetailsList );
+
+        /**
+        * Gets details for a video
+        * @since
+        * @param
+        */
+		IMPORT_C TInt GetMyVideosVideoDetailsL(CIptvMyVideosGlobalFileId& aFileId, CIptvMyVideosVideoFullDetails& aVideoDetails);
+
+        /**
+        * Converts string to integer.
+		* @param aInt parsed int is stored here
+        * @param aString string containing the number
+        * @return KErrNone if succeed, otherwise an error code
+        */
+		IMPORT_C static TInt ParseIntFromString(TInt& aInt, TDesC& aString);
+
+        /**
+        * Creates bad iap for testing purposes
+        * @param aName name of the iap to be created
+        */
+		IMPORT_C TUint32 CreateBadIapL(TDesC& aName);
+
+        /**
+        * TInt ReallycleanL();
+        * @param  -
+        * @return error
+        */
+		IMPORT_C TInt ReallycleanL();
+
+       /**
+        * TInt DeleteVideoL();
+        * @param  -
+        * @return error
+        */
+		IMPORT_C TInt DeleteVideoL(CIptvMyVideosGlobalFileId& aFileId);
+
+		/**
+        * static TInt AdvanceSystemTime1Second();
+        * @return KErrNone if succeed, otherwise an error code
+        */
+		IMPORT_C static TInt AdvanceSystemTime1Second();
+
+        /**
+        * static TInt SetSystemTime();
+        * @return KErrNone if succeed, otherwise an error code
+        */
+		IMPORT_C static TInt SetSystemTime(TTime aTime);
+
+        /**
+        * static TInt SetTimeZone();
+        * @return KErrNone if succeed, otherwise an error code
+        */
+		IMPORT_C static TInt SetTimeZone(TDesC& aTimeZone);
+
+        /**
+        * static TInt RefreshService(TUint32 aServiceId);
+        * @return KErrNone if succeed, otherwise an error code
+        */
+	    IMPORT_C TInt RefreshService(TUint32 aServiceId, TTime aLastDownloadTime);
+
+	    /*
+	     * Creates a video file to the system.
+	     */
+	    IMPORT_C void CreateVideoFileL( CIptvTestVideoCreator::TIptvTestVideoType aVideoType, TDesC& aFileName, TInt aSize );
+
+        /*
+         * Creates video files to the system.
+         */
+        IMPORT_C void CreateVideoFilesL( CIptvTestVideoCreator::TIptvTestVideoType aVideoType, TDesC& aFileName, TInt aCount, RPointerArray<HBufC>& aFileArray );
+
+	    /*
+	     * Sets free space for a drive.
+	     */
+	    IMPORT_C void SetDriveFreeSpaceL( TInt aDriveNumber, TUint aDesiredFreeSpace );
+
+        /**
+         * Deletes files created by SetDriveFreeSpaceL. Should be called by any test module which
+         * has reserved disk space.
+         */
+        IMPORT_C void DeleteDummyFilesL( TInt aDriveNumber );
+
+        /*
+         * Returns KErrNone if file is not in use.
+         */
+        IMPORT_C TInt EnsureFileIsNotInUse( const TPtrC& aFileName );
+
+	    /*
+	     * CalculateSpaceToReserveL
+	     */
+	    void CalculateSpaceToReserveL( RFs &aFs, TInt aDriveNumber, TInt aDesiredSpace, TInt64& aSpaceToReserve, TInt64& aDriveFreeSpace, TInt64& aUsableSpace );
+
+    public: // From base classes
+
+        void ConnectionCreated() {};
+        void ConnectionClosed() {};
+        void ConnectionFailed() {};
+        void ConnectionAlreadyExists() {};
+        void ConnectionTimeout() {};
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CIptvTestUtilities();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private:    // Data
+	    CIptvTestSMApiUtil*    iIptvTestSMApiUtil;
+	    CIptvTestMVApiUtil*    iIptvTestMVApiUtil;
+	    CIptvTestVCApiUtil*    iIptvTestVCApiUtil;
+	    CIptvTestVerifyData*   iIptvVerifyData;
+        CIptvTestVideoCreator* iVideoCreator;
+        RFs iFs;
+        CVCXTestCommon* iVcxCommon;
+    };
+
+
+#endif      // CIPTVTESTUTILITIES_H
+
+// End of File