loggingservices/eventlogger/test/src/t_logapi_helper.cpp
changeset 0 08ec8eefde2f
child 9 667e88a979d7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loggingservices/eventlogger/test/src/t_logapi_helper.cpp	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,145 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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 <f32file.h>
+#include <e32std.h>
+#include <e32test.h>
+#include <s32file.h>
+#include <numberconversion.h>
+
+
+RTest TheTest(_L("t_logapi_helper"));
+
+_LIT(KSeparator, ";"); // Invalid filepath char used to separate filenames
+
+//////////////////////////////////////////////////////////////////////////////////////////
+//Tests macros and functions.
+//If (!aValue) then the test will be panicked, the test data files will be deleted.
+static void Check(TInt aValue, TInt aLine)
+    {
+    if(!aValue)
+        {
+        TheTest.Printf(_L("*** Boolean expression evaluated to false\r\n"));
+        TheTest(EFalse, aLine);
+        }
+    }
+//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted.
+static void Check(TInt aValue, TInt aExpected, TInt aLine)
+    {
+    if(aValue != aExpected)
+        {
+        TheTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue);
+        TheTest(EFalse, aLine);
+        }
+    }
+//Use these to test conditions.
+#define TEST(arg) Check((arg), __LINE__)
+#define TEST2(aValue, aExpected) Check(aValue, aExpected, __LINE__)
+
+/*
+This method helps to do operations on files and folders, like copy, delete, rename, create directory (MkDir)
+This process has a capabilities to write in all files of the system.
+-param: anOld: source file
+-param: aNew : destination file
+-param: aCode: The operation to do. 
+*/
+void OperationOnFilesAndFolders(const TDesC& anOld, const TDesC& aNew, TInt aCode)
+	{
+	RFs fs;
+	TInt err = fs.Connect();
+	TEST2(err, KErrNone);
+	
+	CFileMan* fileMan = NULL; 
+	TRAP(err, fileMan = CFileMan::NewL(fs));
+    TEST2(err, KErrNone);
+    
+	switch(aCode)
+		{
+		case 0:
+			TheTest.Printf(_L("Copying source file: %S %S\r\n"), &anOld, &aNew);
+			err = fileMan->Copy(anOld, aNew);		
+			TEST2(err, KErrNone);
+			break;
+
+		case 1:
+			TheTest.Printf(_L("Renaming file: %S %S\r\n"), &anOld, &aNew);
+			err = fileMan->Rename(anOld, aNew);
+            TEST2(err, KErrNone);
+			break;
+
+		case 2:
+			TheTest.Printf(_L("Deleting file: %S\r\n"), &anOld);
+			err = fileMan->Attribs(anOld, 0, KEntryAttReadOnly, 0, CFileMan::EOverWrite);
+			if(err == KErrNone)
+			    {
+			    err = fileMan->Delete(anOld);
+			    }
+            TEST(err == KErrNone || err == KErrNotFound);
+			break;
+		case 3:
+			TheTest.Printf(_L("Creating folder: %S\r\n"), &anOld);
+			err = fs.MkDir(anOld);		
+			TEST(err == KErrNone || err == KErrAlreadyExists);
+			break;
+		default: 
+		    break;
+		}
+	delete fileMan;
+	fs.Close();
+	}
+
+TInt E32Main()
+	{
+	CTrapCleanup* tc = CTrapCleanup::New();
+	TheTest(tc != NULL);
+	
+	__UHEAP_MARK;
+	
+	TheTest.Start(_L("Start: t_logapi_helper process started... "));
+	TheTest.Title();
+	
+	TBuf<100> args;
+	User::CommandLine(args);
+	TInt cmdLength = User::CommandLineLength();
+	
+	TInt pos = args.Find(KSeparator);
+	TBuf<50> oldName(args.Mid(0,pos));
+	TInt oldNameLength = oldName.Length();
+	TInt remainderLength = cmdLength - oldNameLength;
+	
+	TBuf<50> remainder(args.Mid(pos+1, remainderLength-1));
+	pos = remainder.Find(KSeparator);
+	
+	TDigitType digitType;
+	TInt length;
+	TBuf<50> newName(remainder.Mid(0, pos));
+	TBuf<1> code = remainder.Mid(pos+1, 1);
+	TInt numberLength = code.Length();
+	
+	TInt operationMode = NumberConversion::ConvertFirstNumber(code, length, digitType);
+	
+	OperationOnFilesAndFolders(oldName, newName, operationMode);
+	
+    TheTest.End();
+    TheTest.Close();
+	
+	__UHEAP_MARKEND;
+	
+	delete tc;
+	
+	return 0;
+	}
+