diff -r 000000000000 -r 96612d01cf9f videofeeds/server/tsrc/IptvTestUtility/inc/CIptvTestUtilities.h --- /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& 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& 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& 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 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& 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& aCategoryList); + + /** + * Gets ecg list for a service. + */ + IMPORT_C void GetVodEcgListL(TUint32 aServiceId, TUint32 aCategoryId, RPointerArray& aEcgList); + + /** + * Gets all content details + * @since + * @param + */ + IMPORT_C void GetVodContentAllDetailsListL( TUint32 aServiceId, RPointerArray& 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& 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