cryptomgmtlibs/securityutils/test/trecog/trecogstep.cpp
changeset 8 35751d3474b7
parent 0 2c201484c85f
--- a/cryptomgmtlibs/securityutils/test/trecog/trecogstep.cpp	Tue Jul 21 01:04:32 2009 +0100
+++ b/cryptomgmtlibs/securityutils/test/trecog/trecogstep.cpp	Thu Sep 10 14:01:51 2009 +0300
@@ -1,330 +1,328 @@
-/*
-* 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: 
-*
-*/
-
-
-
-
-/**
- @file
- @internalComponent - Internal Symbian test code 
-*/
-
-
-#include "trecogstep.h"
-
-// Literals & Constants
-_LIT(KCompleted, "Completed.");
-_LIT(KMethodName, "byName");
-_LIT(KMethodHandle, "byHandle");
-_LIT(KMethodBuffer, "byBuffer");
-_LIT8(KEmptyBuffer8,"");
-
-
-class RDeletefile
-	{
-public:
-	RDeletefile(RFs &aFs, TDesC &aFileName)
-		: iFs(aFs),
-		  iFileName(aFileName)
-		{
-		}
-	void Close()
-		{
-		(void) iFs.Delete(iFileName);
-		}
-	
-private:
-	RFs &iFs;
-	TDesC &iFileName;
-	};
-
-void CRecogStep::TestRecognizeDataL()
-	{
-	TDataRecognitionResult recogResult;
-	
-	TPtrC tmp;
-	GetStringFromConfig(ConfigSection(), _L("fileName"), tmp);
-	iFileName = tmp;
-	
-
-	TPtrC expectedDataType16;
-	GetStringFromConfig(ConfigSection(), _L("expectedDataType"), expectedDataType16);
-	HBufC8 *expectedDataBuf8 = ConvertDes16toHBufC8LC(expectedDataType16);
-
-	TInt expectedConfidence;
-	GetIntFromConfig(ConfigSection(), _L("expectedConfidence"), expectedConfidence);
-	
-	TInt maxDataBufSize;
-	if (GetIntFromConfig(ConfigSection(), _L("maxDataBufSize"), maxDataBufSize))
-		{
-		iLs.SetMaxDataBufSize(maxDataBufSize);
-		}
-		
-	TPtrC method;
-	GetStringFromConfig(ConfigSection(), _L("method"), method);
-		
-	TBool checkSpecific = EFalse;
-	TBool matchedSpecificMimeType = EFalse;
-	TPtrC specificMimeType;
-	if (method == KMethodHandle)
-		{		
-		checkSpecific = GetStringFromConfig(ConfigSection(), _L("checkSpecificMimeType"), specificMimeType);
-		}
-
-	TInt usePrivateFile = 0;
-	GetIntFromConfig(ConfigSection(), _L("usePrivateFile"), usePrivateFile);
-	
-	RDeletefile deletefile(iTheFs, iFileName);
-	if(!usePrivateFile)
-		{
-		// Tweak file modification time to defeat the apparch recognizer result cache....
-		TTime time;
-		User::LeaveIfError(iTheFs.Modified(iFileName, time));
-		time += TTimeIntervalSeconds(1);
-		User::LeaveIfError(iTheFs.SetModified(iFileName, time));
-		}
-	else
-		{
-		// Copy file to private dir, this will make it inaccesible to the recognizer code (except via handle).
-		ConvertFileToPrivateL();	
-		CleanupClosePushL(deletefile);
-		}
-	
-	
-	if (method == KMethodName)
-		{
-		INFO_PRINTF2(_L("Test Recognizing %S by File Name"), &iFileName);
-	    User::LeaveIfError(iLs.RecognizeData(iFileName, KEmptyBuffer8, recogResult));
-		}
-	else if((method == KMethodHandle) || (method == KMethodBuffer))
-		{
-		RFile fileToRead;	
-		User::LeaveIfError(fileToRead.Open(iTheFs, iFileName, EFileShareReadersOrWriters | EFileRead | EFileStream));
-		CleanupClosePushL(fileToRead);
-		if(method == KMethodHandle)
-			{
-			if (checkSpecific)
-				{
-				HBufC8* specificMimeType8 = ConvertDes16toHBufC8LC(specificMimeType);
-				TDataType mime(*specificMimeType8);																					
-				INFO_PRINTF2(_L("Test matching specific mime-type %S by Handle"), &iFileName);		
-				User::LeaveIfError(iLs.RecognizeSpecificData(fileToRead, mime, matchedSpecificMimeType));
-				CleanupStack::PopAndDestroy(specificMimeType8);
-				}
-			else 
-				{
-				INFO_PRINTF2(_L("Test Recognizing %S by Handle"), &iFileName);		
-			    User::LeaveIfError(iLs.RecognizeData(fileToRead, recogResult));				
-				}
-			}
-		else
-			{
-			INFO_PRINTF2(_L("Test Recognizing %S by Buffer"), &iFileName);		
-			TInt size;
-			User::LeaveIfError(fileToRead.Size(size));
-
-			TInt maxBufferSize;
-			if(GetIntFromConfig(ConfigSection(), _L("maxBufferSize"), maxBufferSize))
-				{
-				if(size > maxBufferSize)
-					{
-					size = maxBufferSize;
-					}
-				}
-
-			HBufC8* memForFile = HBufC8::NewLC(size);
-			TPtr8 fileContent(memForFile->Des());		
-			User::LeaveIfError(fileToRead.Read(fileContent, size));
-			User::LeaveIfError(iLs.RecognizeData(iFileName, fileContent, recogResult));
-			CleanupStack::PopAndDestroy(); //memForFile,
-			}
-		CleanupStack::PopAndDestroy(&fileToRead);
-		}
-	else
-		{
-		ERR_PRINTF1(_L("method not set correctly"));		
-		User::Leave(KErrArgument);
-		}
-	
-	
-	if (checkSpecific)
-		{
-		if (matchedSpecificMimeType)
-			{
-			INFO_PRINTF2(_L("Specific type '%S' matched\n"), &specificMimeType);
-			SetTestStepResult(EPass);			
-			}
-		else 
-			{
-			INFO_PRINTF2(_L("Specific type '%S' not matched\n"), &specificMimeType);
-			SetTestStepResult(EFail);			
-			}
-		}
-    else 
-    	{
-    	TPtrC result16 = recogResult.iDataType.Des();
-    	if (// Expected failure
-		((expectedConfidence == CApaDataRecognizerType::ENotRecognized) && 
-		 (recogResult.iDataType != expectedDataBuf8->Des())) ||
-		// Expected success
-		((recogResult.iConfidence == expectedConfidence) && 
-		 (recogResult.iDataType == expectedDataBuf8->Des())))
-		    {
-			INFO_PRINTF3(_L("PASSED - type '%S' confidence=%d\n"), 
-						 &result16,
-						 recogResult.iConfidence);		
-		    SetTestStepResult(EPass);	
-		    }
-		else
-			{
-			ERR_PRINTF5(_L("FAILED - expected '%S', got type '%S' - expected confidence=%d got confidence %d\n"), 
-						&expectedDataType16,
-						&result16,
-						expectedConfidence,
-						recogResult.iConfidence);		
-			SetTestStepResult(EFail);		
-			}
-    	}
-	
-	if(usePrivateFile)
-		{
-		CleanupStack::PopAndDestroy(&deletefile);
-		}
-	
-	CleanupStack::PopAndDestroy(expectedDataBuf8);
-	INFO_PRINTF1(KCompleted);
-   	}
-
-HBufC8* CRecogStep::ConvertDes16toHBufC8LC(TDesC& source)
-	{
-	HBufC8 *buf = HBufC8::NewL(source.Length());
-	CleanupStack::PushL(buf);
-	TPtr8 ptr=buf->Des();
-
-	CCnvCharacterSetConverter *converter = CCnvCharacterSetConverter::NewLC();
-	converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, iTheFs);
-	converter->ConvertFromUnicode(ptr, source);
-	CleanupStack::PopAndDestroy(converter);
-	return buf;
-	}
-
-
-
-void CRecogStep::RunTestCasesL()
-	{
-	__UHEAP_MARK;
-	TRAPD(r,TestRecognizeDataL());
-	TEST(r==KErrNone);
-	__UHEAP_MARKEND;
-	}
-
-
-/**
-   Destructor
- */
-CRecogStep::~CRecogStep()
-	{
-	iTheFs.Close();
-	iLs.Close();
-	}
-
-/**
-   Constructor
- */
-CRecogStep::CRecogStep()
-	{
-
-	TInt ret=iTheFs.Connect();
-	TEST(ret==KErrNone);
-	iTheFs.ShareProtected();
-
-	ret = iLs.Connect();
-	TEST(ret==KErrNone);
-
-	
-	// Call base class method to set up the human readable name for logging
-	SetTestStepName(KRecogStep);
-	}
-
-/**
-   @return - TVerdict code
-   Override of base class virtual
- */
-TVerdict CRecogStep::doTestStepPreambleL()
-	{
-	SetTestStepResult(EPass);
-	return TestStepResult();
-	}
-
-/**
-   @return - TVerdict code
-   Override of base class virtual
- */
-TVerdict CRecogStep::doTestStepPostambleL()
-	{
-	return TestStepResult();
-	}
-
-
-TVerdict CRecogStep::doTestStepL()
-	{
-	TRAPD(ret,RunTestCasesL())
-	TEST(ret==KErrNone);
-	return TestStepResult();
-	}
-
-void CRecogStep::ConvertFileToPrivateL()
-	{
-	// Read source file
-	RFile fromFile;	
-	User::LeaveIfError(fromFile.Open(iTheFs, iFileName, EFileShareReadersOrWriters | EFileRead | EFileStream));
-	CleanupClosePushL(fromFile);
-	TInt size;
-	User::LeaveIfError(fromFile.Size(size));
-	HBufC8* memForFileContents = HBufC8::NewLC(size);
-	TPtr8 fileContents(memForFileContents->Des());		
-	User::LeaveIfError(fromFile.Read(fileContents, size));
-	
-	// Create destination path
-	TDriveUnit sysDrive = RFs::GetSystemDrive();
-	(void)iTheFs.CreatePrivatePath(static_cast<TInt> (sysDrive));
-	TFileName newFileName;
-	User::LeaveIfError(iTheFs.PrivatePath(newFileName));
-	newFileName.Insert(0, sysDrive.Name());
-	TParsePtr parseFrom(iFileName);
-	newFileName.Append(parseFrom.NameAndExt());
-
-	// Make sure destination does not already exist.
-	(void) iTheFs.Delete(newFileName);
-
-	// Copy file to private location
-	RFile toFile;
-	User::LeaveIfError(toFile.Create(iTheFs, newFileName, EFileShareExclusive | EFileWrite | EFileStream));
-	CleanupClosePushL(toFile);
-
-	User::LeaveIfError(toFile.Write(fileContents));
-
-	// Update iFileName
-	iFileName = newFileName;
-	
-	// Cleanup
-	CleanupStack::PopAndDestroy(&toFile);
-	CleanupStack::PopAndDestroy(memForFileContents);
-	CleanupStack::PopAndDestroy(&fromFile);
-	}
-
-// End of file
+/*
+* 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: 
+*
+*/
+
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+
+#include "trecogstep.h"
+
+// Literals & Constants
+_LIT(KCompleted, "Completed.");
+_LIT(KMethodName, "byName");
+_LIT(KMethodHandle, "byHandle");
+_LIT(KMethodBuffer, "byBuffer");
+_LIT8(KEmptyBuffer8,"");
+
+
+class RDeletefile
+	{
+public:
+	RDeletefile(RFs &aFs, TDesC &aFileName)
+		: iFs(aFs),
+		  iFileName(aFileName)
+		{
+		}
+	void Close()
+		{
+		(void) iFs.Delete(iFileName);
+		}
+	
+private:
+	RFs &iFs;
+	TDesC &iFileName;
+	};
+
+void CRecogStep::TestRecognizeDataL()
+	{
+	TDataRecognitionResult recogResult;
+	
+	TPtrC tmp;
+	GetStringFromConfig(ConfigSection(), _L("fileName"), tmp);
+	iFileName = tmp;
+	
+
+	TPtrC expectedDataType16;
+	GetStringFromConfig(ConfigSection(), _L("expectedDataType"), expectedDataType16);
+	HBufC8 *expectedDataBuf8 = ConvertDes16toHBufC8LC(expectedDataType16);
+
+	TInt expectedConfidence;
+	GetIntFromConfig(ConfigSection(), _L("expectedConfidence"), expectedConfidence);
+	
+	TInt maxDataBufSize;
+	if (GetIntFromConfig(ConfigSection(), _L("maxDataBufSize"), maxDataBufSize))
+		{
+		iLs.SetMaxDataBufSize(maxDataBufSize);
+		}
+		
+	TPtrC method;
+	GetStringFromConfig(ConfigSection(), _L("method"), method);
+		
+	TBool checkSpecific = EFalse;
+	TBool matchedSpecificMimeType = EFalse;
+	TPtrC specificMimeType;
+	if (method == KMethodHandle)
+		{		
+		checkSpecific = GetStringFromConfig(ConfigSection(), _L("checkSpecificMimeType"), specificMimeType);
+		}
+
+	TInt usePrivateFile = 0;
+	GetIntFromConfig(ConfigSection(), _L("usePrivateFile"), usePrivateFile);
+	
+	RDeletefile deletefile(iTheFs, iFileName);
+	if(!usePrivateFile)
+		{
+		// Tweak file modification time to defeat the apparch recognizer result cache....
+		TTime time;
+		User::LeaveIfError(iTheFs.Modified(iFileName, time));
+		time += TTimeIntervalSeconds(1);
+		User::LeaveIfError(iTheFs.SetModified(iFileName, time));
+		}
+	else
+		{
+		// Copy file to private dir, this will make it inaccesible to the recognizer code (except via handle).
+		ConvertFileToPrivateL();	
+		CleanupClosePushL(deletefile);
+		}
+	
+	
+	if (method == KMethodName)
+		{
+		INFO_PRINTF2(_L("Test Recognizing %S by File Name"), &iFileName);
+	    User::LeaveIfError(iLs.RecognizeData(iFileName, KEmptyBuffer8, recogResult));
+		}
+	else if((method == KMethodHandle) || (method == KMethodBuffer))
+		{
+		RFile fileToRead;	
+		User::LeaveIfError(fileToRead.Open(iTheFs, iFileName, EFileShareReadersOrWriters | EFileRead | EFileStream));
+		CleanupClosePushL(fileToRead);
+		if(method == KMethodHandle)
+			{
+			if (checkSpecific)
+				{
+				HBufC8* specificMimeType8 = ConvertDes16toHBufC8LC(specificMimeType);
+				TDataType mime(*specificMimeType8);																					
+				INFO_PRINTF2(_L("Test matching specific mime-type %S by Handle"), &iFileName);		
+				User::LeaveIfError(iLs.RecognizeSpecificData(fileToRead, mime, matchedSpecificMimeType));
+				CleanupStack::PopAndDestroy(specificMimeType8);
+				}
+			else 
+				{
+				INFO_PRINTF2(_L("Test Recognizing %S by Handle"), &iFileName);		
+			    User::LeaveIfError(iLs.RecognizeData(fileToRead, recogResult));				
+				}
+			}
+		else
+			{
+			INFO_PRINTF2(_L("Test Recognizing %S by Buffer"), &iFileName);		
+			TInt size;
+			User::LeaveIfError(fileToRead.Size(size));
+
+			TInt maxBufferSize;
+			if(GetIntFromConfig(ConfigSection(), _L("maxBufferSize"), maxBufferSize))
+				{
+				if(size > maxBufferSize)
+					{
+					size = maxBufferSize;
+					}
+				}
+
+			HBufC8* memForFile = HBufC8::NewLC(size);
+			TPtr8 fileContent(memForFile->Des());		
+			User::LeaveIfError(fileToRead.Read(fileContent, size));
+			User::LeaveIfError(iLs.RecognizeData(iFileName, fileContent, recogResult));
+			CleanupStack::PopAndDestroy(); //memForFile,
+			}
+		CleanupStack::PopAndDestroy(&fileToRead);
+		}
+	else
+		{
+		ERR_PRINTF1(_L("method not set correctly"));		
+		User::Leave(KErrArgument);
+		}
+	
+	
+	if (checkSpecific)
+		{
+		if (matchedSpecificMimeType)
+			{
+			INFO_PRINTF2(_L("Specific type '%S' matched\n"), &specificMimeType);
+			SetTestStepResult(EPass);			
+			}
+		else 
+			{
+			INFO_PRINTF2(_L("Specific type '%S' not matched\n"), &specificMimeType);
+			SetTestStepResult(EFail);			
+			}
+		}
+    else 
+    	{
+    	TPtrC result16 = recogResult.iDataType.Des();
+    	if (// Expected failure
+		((expectedConfidence == CApaDataRecognizerType::ENotRecognized) && 
+		 (recogResult.iDataType != expectedDataBuf8->Des())) ||
+		// Expected success
+		((recogResult.iConfidence == expectedConfidence) && 
+		 (recogResult.iDataType == expectedDataBuf8->Des())))
+		    {
+			INFO_PRINTF3(_L("PASSED - type '%S' confidence=%d\n"), 
+						 &result16,
+						 recogResult.iConfidence);		
+		    SetTestStepResult(EPass);	
+		    }
+		else
+			{
+			ERR_PRINTF5(_L("FAILED - expected '%S', got type '%S' - expected confidence=%d got confidence %d\n"), 
+						&expectedDataType16,
+						&result16,
+						expectedConfidence,
+						recogResult.iConfidence);		
+			SetTestStepResult(EFail);		
+			}
+    	}
+	
+	if(usePrivateFile)
+		{
+		CleanupStack::PopAndDestroy(&deletefile);
+		}
+	
+	CleanupStack::PopAndDestroy(expectedDataBuf8);
+	INFO_PRINTF1(KCompleted);
+   	}
+
+HBufC8* CRecogStep::ConvertDes16toHBufC8LC(TDesC& source)
+	{
+	HBufC8 *buf = HBufC8::NewL(source.Length());
+	CleanupStack::PushL(buf);
+	TPtr8 ptr=buf->Des();
+
+	CCnvCharacterSetConverter *converter = CCnvCharacterSetConverter::NewLC();
+	converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, iTheFs);
+	converter->ConvertFromUnicode(ptr, source);
+	CleanupStack::PopAndDestroy(converter);
+	return buf;
+	}
+
+
+
+void CRecogStep::RunTestCasesL()
+	{
+	__UHEAP_MARK;
+	TRAPD(r,TestRecognizeDataL());
+	TEST(r==KErrNone);
+	__UHEAP_MARKEND;
+	}
+
+
+/**
+   Destructor
+ */
+CRecogStep::~CRecogStep()
+	{
+	iTheFs.Close();
+	iLs.Close();
+	}
+
+/**
+   Constructor
+ */
+CRecogStep::CRecogStep()
+	{
+
+	TInt ret=iTheFs.Connect();
+	TEST(ret==KErrNone);
+	iTheFs.ShareProtected();
+
+	ret = iLs.Connect();
+	TEST(ret==KErrNone);
+
+	
+	// Call base class method to set up the human readable name for logging
+	SetTestStepName(KRecogStep);
+	}
+
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+TVerdict CRecogStep::doTestStepPreambleL()
+	{
+	SetTestStepResult(EPass);
+	return TestStepResult();
+	}
+
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+TVerdict CRecogStep::doTestStepPostambleL()
+	{
+	return TestStepResult();
+	}
+
+
+TVerdict CRecogStep::doTestStepL()
+	{
+	TRAPD(ret,RunTestCasesL())
+	TEST(ret==KErrNone);
+	return TestStepResult();
+	}
+
+void CRecogStep::ConvertFileToPrivateL()
+	{
+	// Read source file
+	RFile fromFile;	
+	User::LeaveIfError(fromFile.Open(iTheFs, iFileName, EFileShareReadersOrWriters | EFileRead | EFileStream));
+	CleanupClosePushL(fromFile);
+	TInt size;
+	User::LeaveIfError(fromFile.Size(size));
+	HBufC8* memForFileContents = HBufC8::NewLC(size);
+	TPtr8 fileContents(memForFileContents->Des());		
+	User::LeaveIfError(fromFile.Read(fileContents, size));
+	
+	// Create destination path
+	TDriveUnit sysDrive = RFs::GetSystemDrive();
+	(void)iTheFs.CreatePrivatePath(static_cast<TInt> (sysDrive));
+	TFileName newFileName;
+	User::LeaveIfError(iTheFs.PrivatePath(newFileName));
+	newFileName.Insert(0, sysDrive.Name());
+	TParsePtr parseFrom(iFileName);
+	newFileName.Append(parseFrom.NameAndExt());
+
+	// Make sure destination does not already exist.
+	(void) iTheFs.Delete(newFileName);
+
+	// Copy file to private location
+	RFile toFile;
+	User::LeaveIfError(toFile.Create(iTheFs, newFileName, EFileShareExclusive | EFileWrite | EFileStream));
+	CleanupClosePushL(toFile);
+
+	User::LeaveIfError(toFile.Write(fileContents));
+
+	// Update iFileName
+	iFileName = newFileName;
+	
+	// Cleanup
+	CleanupStack::PopAndDestroy(&toFile);
+	CleanupStack::PopAndDestroy(memForFileContents);
+	CleanupStack::PopAndDestroy(&fromFile);
+	}
+
+// End of file