baseapitest/basesvs/common/src/FileserverUtil.cpp
changeset 0 a41df078684a
child 15 4122176ea935
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/baseapitest/basesvs/common/src/FileserverUtil.cpp	Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,406 @@
+/*
+* Copyright (c) 2005-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:
+*
+*/
+
+#include "FileserverUtil.h"
+
+/**
+ * @enum Constant Literals used.
+ */
+ 
+/*@{*/
+
+// Parameters
+_LIT( KExpectedName,					"expectedName" );
+_LIT( KExpectedSize,					"expectedSize" );
+_LIT( KExpectedTime,					"expectedTime" );
+_LIT( KExpectedUid1,					"expectedUid1" );
+_LIT( KExpectedUid2,					"expectedUid2" );
+_LIT( KExpectedUid3,					"expectedUid3" );
+_LIT( KVolumeLabel,						"volume_label" );
+_LIT( KVolumeSize,						"volume_size");
+_LIT( KVolumeFreeSpace,					"volume_free_space" );
+_LIT( KVolumeUniqueID,					"volume_unique_id");
+_LIT( KExpectedMostDerivedUid,			"expectedMostDerivedUid" );
+_LIT( KVolumeFileCacheFlags,			"volume_File_Cache_Flags" );
+_LIT( KFileCacheReadEnabled,			"EFileCacheReadEnabled" );
+_LIT( KFileCacheReadOn,					"EFileCacheReadOn");
+_LIT( KFileCacheReadAheadEnabled,		"EFileCacheReadAheadEnabled" );
+_LIT( KFileCacheReadAheadOn,			"EFileCacheReadAheadOn" );
+_LIT( KFileCacheWriteEnabled,			"EFileCacheWriteEnabled" );
+_LIT( KFileCacheWriteOn,				"EFileCacheWriteOn" );
+
+// Attributes
+_LIT(KEntryAttNormalStr, 				"KEntryAttNormal");
+_LIT(KEntryAttReadOnlyStr, 				"KEntryAttReadOnly");
+_LIT(KEntryAttHiddenStr, 				"KEntryAttHidden");
+_LIT(KEntryAttSystemStr, 				"KEntryAttSystem");
+_LIT(KEntryAttVolumeStr,				"KEntryAttVolume");
+_LIT(KEntryAttDirStr, 					"KEntryAttDir");
+_LIT(KEntryAttArchiveStr, 				"KEntryAttArchive");
+_LIT(KEntryAttXIPStr, 					"KEntryAttXIP");
+#if (!defined(__Symbian_OS_v9_1__))
+_LIT(KEntryAttRemoteStr, 				"KEntryAttRemote");
+_LIT(KEntryAttMaskFileSystemSpecificStr,"KEntryAttMaskFileSystemSpecific");
+#endif
+_LIT(KEntryAttMatchMaskStr,				"KEntryAttMatchMask");
+_LIT(KEntryAttMaskSupportedStr,			"KEntryAttMaskSupported");
+_LIT(KEntryAttMatchExclusiveStr,		"KEntryAttMatchExclusive");
+_LIT(KEntryAttMatchExcludeStr,			"KEntryAttMatchExclude");
+_LIT(KEntryAttAllowUidStr,				"KEntryAttAllowUid");
+
+// constants
+const TInt KUid1Index 					= 0;
+const TInt KUid2Index 					= 1;
+const TInt KUid3Index 					= 2;
+
+const TInt KTimeFormatSize 				= 30;
+_LIT( KTimeFormat,						"%D%M%Y%/0%1%/1%2%/2%3%/3 %-B%:0%J%:1%T%:2%S%:3%+B" );
+
+/*@}*/
+
+
+
+TBool FileserverUtil::VerifyTEntryDataFromIniL(CDataWrapper& aDataWrapper, const TDesC& aSection, TEntry& aEntry)
+	{
+	TBool ret = ETrue; 
+
+	aDataWrapper.INFO_PRINTF2(_L("Entry name = %S"), &aEntry.iName );				
+		
+	TPtrC expectedStr;
+	if ( aDataWrapper.GetStringFromConfig(aSection, KExpectedName(), expectedStr) )
+		{
+		if (aEntry.iName.CompareC(expectedStr, 0, NULL) != 0)
+			{
+			aDataWrapper.ERR_PRINTF3(_L("%S != %S"), &aEntry.iName, &expectedStr);
+			ret = EFalse;
+			}
+		else
+			{
+			aDataWrapper.INFO_PRINTF3(_L("%S == %S"), &aEntry.iName, &expectedStr);
+			}
+		}
+			
+	TInt expectedInt = 0;
+	if ( aDataWrapper.GetIntFromConfig(aSection, KExpectedSize(), expectedInt) )
+		{
+		aDataWrapper.INFO_PRINTF2(_L("Entry size = %d"), aEntry.iSize );
+		if (aEntry.iSize != expectedInt)
+			{
+			aDataWrapper.ERR_PRINTF3(_L("Size from ini file not equal with size returned from function (%d != %d)"), expectedInt, aEntry.iSize);
+			ret = EFalse;
+			}
+		}
+	
+	if ( aDataWrapper.GetStringFromConfig(aSection, KExpectedTime(), expectedStr) )
+		{			
+		TBuf<KTimeFormatSize>	dateString;
+		aEntry.iModified.FormatL(dateString, KTimeFormat);
+		aDataWrapper.INFO_PRINTF2(_L("Entry modified %S"), &dateString);
+		
+		TTime	modificationTime;
+		User::LeaveIfError(modificationTime.Set(expectedStr));
+		
+		if (aEntry.iModified != modificationTime)
+			{
+			aDataWrapper.ERR_PRINTF1(_L("Time from ini file not equal with time returned from function."));
+			ret = EFalse;
+			}
+		}
+	
+	if ( aDataWrapper.GetIntFromConfig(aSection, KExpectedUid1(), expectedInt) )
+		{
+		TInt uid1 = aEntry.iType[KUid1Index].iUid;	
+		aDataWrapper.INFO_PRINTF2(_L("Entry UID1 = %d"), uid1 );
+
+		if ( uid1 != expectedInt )
+			{
+			aDataWrapper.ERR_PRINTF3(_L("Entry UID1 %d  !=  ini UID1 %d)"), uid1, expectedInt);
+			ret = EFalse;
+			}
+		}
+		
+	if ( aDataWrapper.GetIntFromConfig(aSection, KExpectedUid2(), expectedInt) )
+		{
+		TInt uid2 = aEntry.iType[KUid2Index].iUid;
+		aDataWrapper.INFO_PRINTF2(_L("Entry UID2 = %d"), uid2 );
+
+		if ( uid2 != expectedInt )
+			{
+			aDataWrapper.ERR_PRINTF3(_L("Entry UID2 %d  !=  ini UID1 %d)"), uid2, expectedInt);
+			ret = EFalse;
+			}
+		}
+		
+	if ( aDataWrapper.GetIntFromConfig(aSection, KExpectedUid3(), expectedInt) )
+		{
+		TInt uid3 = aEntry.iType[KUid3Index].iUid;
+		aDataWrapper.INFO_PRINTF2(_L("Entry UID3 = %d"), uid3 );
+		
+		if ( uid3 != expectedInt )
+			{
+			aDataWrapper.ERR_PRINTF3(_L("Entry UID3 %d  !=  ini UID3 %d)"), uid3, expectedInt);
+			ret = EFalse;
+			}
+		}
+		
+	if ( aDataWrapper.GetIntFromConfig(aSection, KExpectedMostDerivedUid(), expectedInt) )
+		{
+		TInt mostDerivedUid = aEntry.MostDerivedUid().iUid;
+		aDataWrapper.INFO_PRINTF2(_L("MostDerivedUid = %d"), mostDerivedUid);
+
+		if ( mostDerivedUid != expectedInt )
+			{
+			aDataWrapper.ERR_PRINTF3(_L("Entry MostDerivedUid %d  !=  ini MostDerivedUid %d)"), mostDerivedUid, expectedInt);
+			ret = EFalse;
+			}
+		}
+	
+
+	return ret;
+	}
+
+
+
+TBool FileserverUtil::VerifyTVolumeInfoDataFromIniL(CDataWrapper& aDataWrapper, const TDesC& aSection, TVolumeInfo& aVolumeInfo)
+	{
+	TBool ret = ETrue; 
+
+	//Get volume name from config.
+	TPtrC	volumeLabel;
+	if (aDataWrapper.GetStringFromConfig(aSection, KVolumeLabel(), volumeLabel))
+		{
+		//Checking that name of volume is equal to passed through config file.
+		if (aVolumeInfo.iName.CompareC(volumeLabel, 0, NULL) != 0)
+			{
+			aDataWrapper.ERR_PRINTF1(_L("Volume name from ini file not equal with volume name returned from function"));
+			ret = EFalse;
+			}
+		}
+	
+	TInt	tmp;
+	if (aDataWrapper.GetIntFromConfig(aSection, KVolumeSize(), tmp))
+		{
+		TInt64	volumeSize;
+		volumeSize = tmp;
+		//Checking that size of volume is equal to passed through config file.
+		if (volumeSize != aVolumeInfo.iSize)
+			{
+			aDataWrapper.ERR_PRINTF1(_L("Volume size from ini file not equal with volume size returned from function"));
+			ret = EFalse;
+			}
+		}
+
+	if (aDataWrapper.GetIntFromConfig(aSection, KVolumeFreeSpace(), tmp))
+		{
+		TInt64	freeSpace;
+		freeSpace = tmp;
+		//Checking that free space of volume is equal to passed through config file.
+		if (freeSpace != aVolumeInfo.iFree)
+			{
+			aDataWrapper.ERR_PRINTF1(_L("Volume free space amount from ini file not equal with volume free space amount returned from function"));
+			ret = EFalse;
+			}
+		}
+
+	if (aDataWrapper.GetIntFromConfig(aSection, KVolumeUniqueID(), tmp))
+		{
+		if(tmp<0)
+			{
+			aDataWrapper.ERR_PRINTF1(_L("ID in config should be not less than 0 "));
+			ret = EFalse;
+			}
+		else
+			{
+			TUint	volumeUniqueID;
+			volumeUniqueID = (TUint)tmp;
+			//Checking that Unique ID of volume is equal to passed through config file.
+			if (volumeUniqueID != aVolumeInfo.iUniqueID)
+				{
+				aDataWrapper.ERR_PRINTF1(_L("Volume unique ID from ini file not equal with volume unique ID returned from function"));
+				ret = EFalse;
+				}
+			}
+		}
+
+	TPtrC volumeFileCacheFlags;		
+	if (aDataWrapper.GetStringFromConfig(aSection, KVolumeFileCacheFlags(), volumeFileCacheFlags))
+		{
+		TFileCacheFlags tmpFileCacheFlags;
+		if(volumeFileCacheFlags == KFileCacheReadEnabled())
+			{
+			tmpFileCacheFlags = EFileCacheReadEnabled;
+			}
+		else if(volumeFileCacheFlags == KFileCacheReadOn())
+			{
+			tmpFileCacheFlags = EFileCacheReadOn;
+			}
+		else if(volumeFileCacheFlags == KFileCacheReadAheadEnabled())
+			{
+			tmpFileCacheFlags = EFileCacheReadAheadEnabled;
+			}
+		else if(volumeFileCacheFlags == KFileCacheReadAheadOn())
+			{
+			tmpFileCacheFlags = EFileCacheReadAheadOn;
+			}
+		else if(volumeFileCacheFlags == KFileCacheWriteEnabled())
+			{
+			tmpFileCacheFlags = EFileCacheWriteEnabled;
+			}
+		else if(volumeFileCacheFlags == KFileCacheWriteOn())
+			{
+			tmpFileCacheFlags = EFileCacheWriteOn;
+			}
+		else
+			{
+			aDataWrapper.ERR_PRINTF1(_L("Volume file cache flags from ini file not equal with volume file cache flags returned from function"));
+			ret = EFalse;
+			}
+			
+		if(ret && (aVolumeInfo.iFileCacheFlags != tmpFileCacheFlags))
+			{
+			aDataWrapper.ERR_PRINTF1(_L("Volume file cache flags from ini file not equal with volume file cache flags returned from function"));
+			ret = EFalse;
+			}
+		}
+	return ret;
+	}
+	
+	
+	
+TBool FileserverUtil::GetAttMask(CDataWrapper& aDataWrapper, const TDesC& aSection, const TDesC& aParameterName, TUint& aAttMask)
+	{
+	TPtrC	iniAttMaskStr;
+	TBool	ret = aDataWrapper.GetStringFromConfig(aSection, aParameterName, iniAttMaskStr);
+	if ( ret )
+		{
+		if ( !ConvertToAttMask(iniAttMaskStr, aAttMask) )
+			{
+			TInt	intTemp;
+			ret = aDataWrapper.GetIntFromConfig(aSection, aParameterName, intTemp);
+			if ( ret )
+				{
+				aAttMask = intTemp;
+				}
+			}
+		}
+
+	return ret;
+	}
+
+
+
+TBool FileserverUtil::ConvertToAttMask(const TDesC& aAttMaskStr, TUint& aAttMask)
+	{
+	TBool ret = ETrue;
+
+	if (aAttMaskStr == KEntryAttNormalStr)
+		{
+		aAttMask = KEntryAttNormal;
+		}
+	else if (aAttMaskStr == KEntryAttReadOnlyStr)
+		{
+		aAttMask = KEntryAttReadOnly;
+		}
+	else if (aAttMaskStr == KEntryAttHiddenStr)
+		{
+		aAttMask = KEntryAttHidden;
+		}
+	else if (aAttMaskStr == KEntryAttSystemStr)
+		{
+		aAttMask = KEntryAttSystem;
+		}
+	else if (aAttMaskStr == KEntryAttVolumeStr)
+		{
+		aAttMask = KEntryAttVolume;
+		}
+	else if (aAttMaskStr == KEntryAttDirStr)
+		{
+		aAttMask = KEntryAttDir;
+		}
+	else if (aAttMaskStr == KEntryAttArchiveStr)
+		{
+		aAttMask = KEntryAttArchive;
+		}
+	else if (aAttMaskStr == KEntryAttXIPStr)
+		{
+		aAttMask = KEntryAttXIP;
+		}
+#if (!defined(__Symbian_OS_v9_1__))
+	else if (aAttMaskStr == KEntryAttRemoteStr)
+		{
+		aAttMask = KEntryAttRemote;
+		}
+	else if (aAttMaskStr == KEntryAttMaskFileSystemSpecificStr)
+		{
+		aAttMask = KEntryAttMaskFileSystemSpecific;
+		}
+#endif
+	else if (aAttMaskStr == KEntryAttMatchMaskStr)
+		{
+		aAttMask = KEntryAttMatchMask;
+		}
+	else if (aAttMaskStr == KEntryAttMaskSupportedStr)
+		{
+		aAttMask = KEntryAttMaskSupported;
+		}
+	else if (aAttMaskStr == KEntryAttMatchExclusiveStr)
+		{
+		aAttMask = KEntryAttMatchExclusive;
+		}
+	else if (aAttMaskStr == KEntryAttMatchExcludeStr)
+		{
+		aAttMask = KEntryAttMatchExclude;
+		}
+	else if (aAttMaskStr == KEntryAttAllowUidStr)
+		{
+		aAttMask = KEntryAttAllowUid;
+		}
+	else if (aAttMaskStr.Match((_L("*|*"))) != KErrNotFound)
+		{
+		TUint	tmpAttMask;
+
+		TInt	location = aAttMaskStr.Match(_L("*|*"));
+		//Converting Left part of the data
+		TPtrC	left = aAttMaskStr.Left(location);
+		if (ConvertToAttMask(left, tmpAttMask))
+			{
+			aAttMask = tmpAttMask;
+			}
+		else
+			{
+			ret = EFalse;
+			}
+
+		//Converting right data can be with another "|"
+		TPtrC	right = aAttMaskStr.Mid(location + 1);
+		if (ConvertToAttMask(right, tmpAttMask))
+			{
+			aAttMask = aAttMask | tmpAttMask;
+			}
+		else
+			{
+			ret = EFalse;
+			}
+		}
+	else
+		{
+		ret = EFalse;
+		}
+
+	return ret;
+	}
+