serviceproviders/sapi_calendar/tsrc/testing/tcalendarservice/tcal_getlist/src/tcal_getlistblocks.cpp
changeset 5 989d2f495d90
child 10 fc9cf246af83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_calendar/tsrc/testing/tcalendarservice/tcal_getlist/src/tcal_getlistblocks.cpp	Fri Jul 03 15:51:24 2009 +0100
@@ -0,0 +1,2027 @@
+/*
+* Copyright (c) 2002 - 2007 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:   ?Description
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <e32svr.h>
+#include <e32std.h>
+#include <f32file.h> //for RFile and Rfs
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "tcal_getlist.h"
+#include "calendarheader.h"
+#include "calendarservice.h"
+#include <calentry.h>//for CCalEntry
+#include <calinstanceview.h>//for CCalInstance
+#include <calcommon.h>//for Filter Type Enum Constants
+#include <calinstance.h>
+#include "teststartconsolealarmserver.h"
+
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+TInt AddRepeatingAptEntryL(CCalendarService* aService, const TDesC& name, TUIDSet*& uids);
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+
+struct TUIDSetTest 
+	{
+	
+	TCalLocalUid iLocalUID;
+	HBufC8*  iGlobalUID;
+	
+	TUIDSetTest():iGlobalUID(NULL){}
+	
+	~TUIDSetTest()
+		{
+		delete iGlobalUID;
+		iGlobalUID = NULL;
+		}
+	};
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void Ctcal_getlist::Delete() 
+    {
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::printUid
+// Log the GUID of calendar entry passed. 
+// Called from other member functions. 
+// -----------------------------------------------------------------------------
+//
+void Ctcal_getlist::printUid(const TDesC8& aGuid)
+{
+	TInt err_alloc = KErrNone;
+}
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Ctcal_getlist::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        // Copy this line for every implemented function.
+        // First string is the function name used in TestScripter script file.
+        // Second is the actual implementation member function. 
+        ENTRY( "EmptyGetList"   , Ctcal_getlist::EmptyGetList ),
+		ENTRY( "AddGetList"   , Ctcal_getlist::AddGetList ),
+		ENTRY( "DeleteDefaultCalendar"   , Ctcal_getlist::DeleteDefaultCalendar ),
+		ENTRY( "GetDefaultCalendar"   , Ctcal_getlist::GetDefaultCalendar ),
+		ENTRY( "DefaultArgTest"   , Ctcal_getlist::DefaultArgTest ),
+		ENTRY( "InvalidArgTest"   , Ctcal_getlist::InvalidArgTest ),
+		ENTRY( "GetCalByGUid"   , Ctcal_getlist::GetCalByGUid ),
+		ENTRY( "GetUpdatedEntByGuid"   , Ctcal_getlist::GetUpdatedEntByGuid ),
+		ENTRY( "GetUpdatedEntByLuid"   , Ctcal_getlist::GetUpdatedEntByLuid ),
+		ENTRY( "GetCalByLuid"   , Ctcal_getlist::GetCalByLuid ),
+		ENTRY( "GetCalEntBySearchFilter"   , Ctcal_getlist::GetCalEntBySearchFilter ),
+		ENTRY( "GetCalEntByTimeFilter"   , Ctcal_getlist::GetCalEntByTimeFilter ),
+		ENTRY( "GetCalEntByTypeFilter"   , Ctcal_getlist::GetCalEntByTypeFilter ),
+		
+        //ADD NEW ENTRY HERE
+
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::EmptyGetList
+// To test GetList API on calendar files when there are no calendar files. Should return default calendar
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::EmptyGetList( CStifItemParser& /*aItem*/ )
+    { 
+
+	 TInt result = KErrNone;
+	 __UHEAP_MARK;
+	 
+    // Print to UI
+    _LIT( KTestCal                ,"C:Calendar");
+    _LIT( KExample, "In Example" );
+
+	
+	CDesCArray *allCalendarNames = NULL;
+	
+	TInt Noofitems;
+	
+
+//	TInt Noofitems = allCalendarNames->Count();
+	
+	 CCalendarService* service ;
+	 
+	 TRAPD(err_one,service = CCalendarService::NewL());
+	 
+	TInt flag=0;		
+	
+	if(service && err_one == KErrNone)
+		{
+			TRAPD( err , service->GetListL( allCalendarNames, EFalse ) );
+			if( err == KErrNone )
+			{
+				if( allCalendarNames )
+				{
+					Noofitems = allCalendarNames->Count();		
+					
+				/*	iLog->Log(_L("element"));
+				 	iLog->Log("%s",element.Ptr());
+					TBuf<20> buf ;
+					buf.Copy(element) ;
+					iLog->Log(buf) ;*/
+					for(TInt i=0;i<Noofitems;i++)
+					{
+						TPtrC16 element = allCalendarNames->MdcaPoint(i);
+						if(element.Compare(KTestCal) == 0)
+						{
+							allCalendarNames->Reset();
+							flag=1;
+							break;
+						}
+					}		
+											
+				}
+				else
+					result = KErrGeneral;
+			}
+			else
+				result=err;
+		}
+
+	if(!result && !flag)
+		result = KErrGeneral;
+	
+	delete allCalendarNames;
+	delete service; 
+
+	__UHEAP_MARKEND;
+    return result;
+
+    }
+    
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::AddGetList
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::AddGetList( CStifItemParser& /*aItem*/ )
+    {
+
+	 TInt result = KErrNone;
+	 __UHEAP_MARK;
+	 
+    // Print to UI
+    _LIT( Ktcal_getlist, "tcal_getlist" );
+    _LIT( KExample, "In Example" );
+    _LIT( KTestCalFile                ,"C:Calendar");
+    _LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT(KTestCal2File                ,"C:getlistcal2"); 
+	
+	TInt count=0;
+	TInt cal1_flag = 0, cal2_flag =0, cal_flag =0;
+          
+    CDesCArray* allCalendarNames = NULL;
+
+//	CDesCArray* allCalendarNames;
+	
+	 CCalendarService* service ;
+	 
+	 TRAPD(err_one,service = CCalendarService::NewL());
+	 
+	if(service && err_one == KErrNone)
+		{
+		TInt calAdderr = AddCalendarFile(service, KTestCal1File);
+		if( calAdderr == KErrNone || calAdderr == KErrAlreadyExists )	
+			{
+			calAdderr = AddCalendarFile(service, KTestCal2File);
+			if( calAdderr == KErrNone || calAdderr == KErrAlreadyExists )	
+				{
+				TRAPD( err , service->GetListL( allCalendarNames, EFalse ) );
+				
+		
+				if( err == KErrNone )
+					{
+					if( allCalendarNames )
+					{
+						TInt pos1, pos2;
+						for(TInt i=0;i<allCalendarNames->Count();i++)
+						{
+							if(allCalendarNames->MdcaPoint(i).Compare(KTestCal1File) == 0)
+							{
+								cal1_flag=1;
+							}
+							else if(allCalendarNames->MdcaPoint(i).Compare(KTestCal2File) == 0)
+							{
+								cal2_flag=1;
+						
+							}
+							else if(allCalendarNames->MdcaPoint(i).Compare(KTestCalFile) == 0)
+							{
+								cal_flag=1;
+						
+							}
+						}						
+						
+						allCalendarNames->Reset();
+					}
+					else
+						result = KErrGeneral;
+							
+					}
+				else
+					{
+					if( allCalendarNames )
+						allCalendarNames->Reset();
+					result = err;
+					
+					}	
+				}
+			}
+		else
+			result = calAdderr;
+		}
+
+	if(!result && (!cal_flag || !cal1_flag || !cal2_flag))
+		result = KErrGeneral;
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	RemoveCalendarFile( service, KTestCal2File );
+	
+	delete allCalendarNames;
+	delete service;
+
+	__UHEAP_MARKEND;
+    return result;
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::DeleteDefaultCalendar
+// Attempt to delete default calendar. Deletion of default calendar not supported
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::DeleteDefaultCalendar( CStifItemParser& /*aItem*/ )
+    { 
+
+	 TInt result = KErrGeneral;
+	 __UHEAP_MARK;
+	 
+    // Print to UI
+    _LIT( KTestCalFile                ,"C:Calendar");
+    
+	
+	
+	
+//	TInt Noofitems;
+	
+
+	 CCalendarService* service ;
+	 
+	 TRAPD(err_one,service = CCalendarService::NewL());
+	
+	if(err_one == KErrNone && service)
+		{
+		//	TRAPD(err_delete,RemoveCalendarFile( service, KTestCalFile ));
+			TInt err_delete = RemoveCalendarFile( service, KTestCalFile );
+			if(err_delete == KErrNotSupported)
+			{
+				result = KErrNone;
+			}
+			
+				
+		}
+
+	delete service; 
+	__UHEAP_MARKEND;
+    return result;
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::GetDefaultCalendar
+// Attempt to retrieve default calendar in the presence of other calendar files
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetDefaultCalendar( CStifItemParser& /*aItem*/ )
+    { 
+
+		TInt result = KErrNone;
+    _LIT( Ktcal_getlist, "tcal_getlist" );
+    _LIT( KExample, "In Example" );
+    _LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT(KTestCal2File                ,"C:getlistcal2"); 
+	
+	
+          
+    CDesCArray* allCalendarNames = NULL;
+
+//	CDesCArray* allCalendarNames;
+	
+	 CCalendarService* service ;
+	 
+	TRAPD(err_one,service = CCalendarService::NewL());
+	 
+	RemoveCalendarFile( service, KTestCal1File );
+	RemoveCalendarFile( service, KTestCal2File );
+	TInt count = 0;
+	
+	TRAPD( err_getlist , service->GetListL( allCalendarNames, EFalse ) );
+	
+	if(!err_getlist)
+	{
+		count = allCalendarNames->Count() ;
+		allCalendarNames->Reset();
+	}
+	else
+		result = KErrGeneral;
+	
+	if(!result && service && !err_one)
+		{
+		TInt calAdderr = AddCalendarFile(service, KTestCal1File);
+		if( calAdderr == KErrNone || calAdderr == KErrAlreadyExists )	
+			{
+			calAdderr = AddCalendarFile(service, KTestCal2File);
+			if( calAdderr == KErrNone || calAdderr == KErrAlreadyExists )	
+				{
+				TRAPD( err , service->GetListL( allCalendarNames, ETrue ) );
+				
+		
+				if( err == KErrNone )
+					{
+					if( allCalendarNames )
+						{
+						TInt pos1, pos2;
+					//	if( allCalendarNames->Count() < 2 || allCalendarNames->Find(KTestCal1File, pos1) != 0 || allCalendarNames->Find(KTestCal2File, pos2) != 0 )
+						if(allCalendarNames->Count() != 1)
+							result = KErrGeneral;
+						else
+							allCalendarNames->Reset();
+						
+						service->GetListL( allCalendarNames, EFalse );
+						if(!result && allCalendarNames->Count() != count+2)
+							result = KErrGeneral;
+						
+						allCalendarNames->Reset();
+						}
+					else
+						result = KErrGeneral;
+							
+					}
+				else
+					{
+					if( allCalendarNames )
+						allCalendarNames->Reset();
+					result = err;
+					
+					}	
+				}
+			}
+		else
+			result = calAdderr;
+		}
+
+	RemoveCalendarFile( service, KTestCal1File );
+	RemoveCalendarFile( service, KTestCal2File );
+	if(!result)
+	{
+		service->GetListL( allCalendarNames, EFalse );
+		if(allCalendarNames->Count() != count)
+			result = KErrGeneral;
+	}
+	
+	
+	allCalendarNames->Reset();
+	
+	delete allCalendarNames;
+	delete service;
+
+
+	__UHEAP_MARKEND;
+    return result;
+	
+
+    }
+    
+    
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::DefaultArgTest
+// Attempt to test GetList for default argument 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::DefaultArgTest( CStifItemParser& /*aItem*/ )
+    { 
+
+	 TInt result = KErrNone;
+	 TInt flag=0;
+	 __UHEAP_MARK;
+	 
+    // Print to UI
+    _LIT( KTestCalFile                ,"C:Calendar");
+    _LIT(KTestCal1File                ,"C:getlistcal1"); 
+    
+	
+	CDesCArray *allCalendarNames = NULL;
+	
+ 	 CCalendarService* service ;
+	 
+	 TRAPD(err_one,service = CCalendarService::NewL());
+	
+	if(err_one == KErrNone && service)
+	{
+			//Checking for default argument value of EFalse
+			TRAPD( err , service->GetListL( allCalendarNames) );
+			if(err == KErrNone && allCalendarNames)
+			{
+				TInt count = allCalendarNames->Count();
+				for(TInt i=0;i<count;i++)
+				{
+					if(allCalendarNames->MdcaPoint(i).Compare(KTestCalFile) == 0)
+					{
+						flag=1;
+						break;
+					}
+				}			
+			}
+			else
+				result = err;	
+	}
+	else
+		result = err_one;
+	
+		
+	if(!result && !flag)
+		result = KErrGeneral;
+	
+	if(allCalendarNames)
+		allCalendarNames->Reset();
+	
+	
+	delete allCalendarNames;
+	delete service; 
+
+
+	__UHEAP_MARKEND;
+    return result;
+
+    }
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::InvalidArgTest
+// Attempt to test GetList for invalid argument
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::InvalidArgTest( CStifItemParser& /*aItem*/ )
+    { 
+	__UHEAP_MARK;
+	 TInt result = KErrNone;
+	 TInt result_one;
+	 TInt result_two = KErrNone;
+	 TInt result_three = KErrNone;
+	 TInt result_four = KErrNone;
+	 TInt count;
+	 TBuf<40> buf;
+	 TCalLocalUid luid;
+	 
+	 
+    // Print to UI
+    _LIT( KTestCalFile                ,"C:Calendar");
+    _LIT(KTestCal1File                ,"C:getlistcal1");
+    _LIT(KTestCal2File                ,"C:getlistcal2");
+    _LIT(KInvalidFile                ,"F:check");
+    
+    
+	RPointerArray<TUIDSet> arruids;
+	RPointerArray<CCalEntry> entryArray(1);
+	TUIDSet* uids = NULL;
+		
+	CCalendarService* service ;
+	TRAPD(err_one,service = CCalendarService::NewL());	 
+	RemoveCalendarFile( service, KTestCal1File );
+	
+	 
+	 if(err_one == KErrNone && service)
+	 {
+	 	TInt calAdderr = AddCalendarFile(service, KTestCal1File);
+		if( calAdderr == KErrNone || calAdderr == KErrAlreadyExists )	
+		{
+			result_one = KErrNone;			
+		}
+		else
+			result = calAdderr;
+	 } 
+	
+
+	if(AddAppointmentWithAttendees(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+			arruids.Append(uids);
+			buf.Copy(*(uids->iGlobalUID));
+	//		iLog->Log(buf);
+	//		uids = NULL;
+		}
+
+	TCalLocalUid uid_entry = uids->iLocalUID;	
+	
+	if ( arruids.Count() > 0 )
+		{    
+	     
+	    TRAPD( err_two, service->GetListL( KTestCal1File, NULL, entryArray ));
+	    if ( err_two == KErrNone )
+	    	{ 
+	    		if(entryArray.Count())
+	    		{
+	    			result_two = KErrGeneral;
+	    			entryArray.ResetAndDestroy();
+	    		}
+	    	}
+	    else
+	    	result_two = err_two;
+	    
+	    
+	    
+	   TRAPD( err_three, service->GetListL( KTestCal1File, 12340e11, entryArray ));
+	   
+	    if ( err_three == KErrNone )
+	    	{ 
+	    		if(entryArray.Count())
+	    		{
+	    			result_two = KErrGeneral;
+	    			entryArray.ResetAndDestroy();
+	    		}
+	    	}
+	    else
+	    	result_two = err_three;
+	    
+	    
+	    TRAPD( err_four, service->GetListL( KTestCal1File, -2000000, entryArray ));
+	    if ( err_four == KErrNone )
+	    	{ 
+	    		if(entryArray.Count())
+	    		{
+	    			result_two = KErrGeneral;
+	    			entryArray.ResetAndDestroy();
+	    		}
+	    	}
+	    else
+	    	result_two = err_four;
+	    
+	    
+	    
+	    TRAPD( err_five, service->GetListL( KTestCal1File, 123e-12, entryArray ));
+	    if ( err_five == KErrNone )
+	    	{ 
+	    		if(entryArray.Count())
+	    		{
+	    			result_two = KErrGeneral;
+	    			entryArray.ResetAndDestroy();
+	    		}
+	    	}
+	    else
+	    	result_two = err_five;
+	    
+	    
+	    TRAPD( err_six, service->GetListL( KTestCal1File, 45.33343434343493823423948238432423423, entryArray ));
+	    if ( err_six == KErrNone )
+	    	{ 
+				if(entryArray.Count())
+	    		{
+	    			result_two = KErrGeneral;
+	    			entryArray.ResetAndDestroy();
+	    		}
+	    	}
+	    else
+	    	result_two = err_six;       
+	    
+	    
+	    TRAPD( err_nine, service->GetListL( KTestCalFile, NULL, entryArray ));
+	    if ( err_nine == KErrNone )
+	    	{ 
+	    		if(entryArray.Count())
+	    		{
+	    			result_two = KErrGeneral;
+	    			entryArray.ResetAndDestroy();
+	    		}
+	    	}
+	    else
+	    	result_two = err_nine;
+	            
+	    
+	    TRAPD( err_eleven, service->GetListL( KTestCal1File, arruids[0]->iLocalUID, entryArray ));
+	    if ( err_eleven == KErrNone )
+	    	{ 
+	    		service->GetListL( KTestCal1File, arruids[0]->iLocalUID, entryArray );
+	    		count = entryArray.Count();
+	    	if( !( entryArray.Count() == 2 && entryArray[0]->LocalUidL() == arruids[0]->iLocalUID && entryArray[1]->LocalUidL() == arruids[0]->iLocalUID))
+	    		{
+	    		result_three = KErrGeneral;
+	    	
+	    		}
+	    		if(count > 0)
+	    		{
+	    			buf.Copy(entryArray[0]->UidL());
+	    			luid = entryArray[0]->LocalUidL();   
+	    			entryArray.ResetAndDestroy(); 
+	    			count = 0; 			
+	    		}
+	    	}
+	    else
+	    	result_three = err_eleven;
+	    
+	    
+	    TRAPD( err_twelve, service->GetListL( KTestCal1File, arruids[0]->iLocalUID, entryArray ));
+	    if ( err_twelve == KErrNone )
+	    	{ 
+	    		entryArray.ResetAndDestroy();
+	    		service->GetListL( KTestCal1File, arruids[0]->iLocalUID, entryArray );
+	    		count = entryArray.Count();
+	    	if( !( entryArray.Count() == 1 && entryArray[0]->LocalUidL() == arruids[0]->iLocalUID ))
+	    		{
+	    		result_four = KErrGeneral;
+	    	
+	    		}
+	    		if(count > 0)
+	    		{
+	    			buf.Copy(entryArray[0]->UidL());
+	    			luid = entryArray[0]->LocalUidL();  
+	    			entryArray.ResetAndDestroy();  
+	    			count = 0;  			
+	    		}
+	    	}
+	    else
+	    	result_four = err_twelve;
+	    
+		}
+	    
+	entryArray.ResetAndDestroy();
+	arruids.ResetAndDestroy();    
+	RemoveCalendarFile( service, KTestCal1File );
+	    
+	delete service; 	
+	
+	uids = NULL;
+	
+	__UHEAP_MARKEND;
+	 if(result == KErrNone && result_one == KErrNone && result_two == KErrNone && result_three == KErrNone && result_four == KErrNone)
+    return KErrNone;
+    
+    else
+    return KErrGeneral;
+
+
+    }
+
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::GetCalByGUid
+// Get calendar entries based on GUID
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+TInt Ctcal_getlist::GetCalByGUid( CStifItemParser& /*aItem*/ )
+	{
+	TInt result = KErrNone;
+	__UHEAP_MARK;
+//	__UHEAP_MARK;
+	
+	_LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT( KTestCalFile                ,"C:Calendar");
+	_LIT(KTestCal2File                ,"ALH3434MDFLMEF046");
+
+	HBufC8* guid = NULL;
+	TBuf<40> buf;
+	
+//	const TDesC8& test_guid = *guid;
+
+	
+	
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+	RPointerArray<TUIDSet> arruids;
+	
+	TUIDSet* uids = NULL;
+	
+	if(AddRepeatingAppointmentEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		buf.Copy(*(uids->iGlobalUID));
+		}
+
+
+	
+	if(AddToDo( service, KTestCal1File, uids ) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	}
+	
+	if(AddAnny( service, KTestCal1File, uids ) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	}
+	
+	if(AddReminder( service, KTestCal1File, uids ) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+		//iLog->Log(*(uids->iGlobalUID)) ;
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	}
+
+	if(AddEvent(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		buf.Copy(*(uids->iGlobalUID));
+		//iLog->Log(buf);
+	//	uids = NULL;
+		}
+	
+	TInt entry_count = arruids.Count();
+	//printUid(*(arruids[0]->iGlobalUID));
+	
+
+	
+	
+	if ( arruids.Count() > 0 )
+		{
+		
+	    RPointerArray<CCalEntry> entryArray(1);
+	     
+	    TRAPD( err_one, service->GetListL( KTestCal1File, *(arruids[0]->iGlobalUID), entryArray ));
+	    if ( err_one == KErrNone )
+	    	{ 
+	    		TInt count = entryArray.Count();
+	    	if( !( entryArray.Count() == 1 && entryArray[0]->UidL().CompareF(*(arruids[0]->iGlobalUID)) == 0 ))
+	    		{
+	    		result = KErrGeneral;
+	    	
+	    		}
+	    	}
+	    else
+	    	result = err_one;	
+	    
+	//    entryArray.ResetAndDestroy();
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_two, service->GetListL( KTestCal1File, *(arruids[1]->iGlobalUID), entryArray ));
+	    	if(err_two == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 2 && entryArray[1]->UidL().CompareF(*(arruids[1]->iGlobalUID)) == 0))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_two;
+	    	
+	    }
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_three, service->GetListL( KTestCal1File, *(arruids[2]->iGlobalUID), entryArray ));
+	    	if(err_three == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 3 && entryArray[2]->UidL().CompareF(*(arruids[2]->iGlobalUID)) == 0))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_three;
+	    	
+	    }
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_four, service->GetListL( KTestCal1File, *(arruids[3]->iGlobalUID), entryArray ));
+	    	if(err_four == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 4 && entryArray[3]->UidL().CompareF(*(arruids[3]->iGlobalUID)) == 0))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_four;
+	    	
+	    }
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_five, service->GetListL( KTestCal1File, *(arruids[4]->iGlobalUID), entryArray ));
+	    	if(err_five == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 5 && entryArray[4]->UidL().CompareF(*(arruids[4]->iGlobalUID)) == 0))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_five;
+	    	
+	    }
+	  //  delete uids;
+	//	uids = NULL;
+		
+	    entryArray.ResetAndDestroy();
+	    arruids.ResetAndDestroy();
+		}
+	else
+		result = KErrGeneral;	
+
+	RemoveCalendarFile( service, KTestCal1File );
+	
+	delete service;
+	
+
+	__UHEAP_MARKEND;
+
+	return result;
+    }
+    
+ // -----------------------------------------------------------------------------
+// Ctcal_getlist::GetUpdatedEntByGuid
+// GetList by Guid for updated calendar entry. 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetUpdatedEntByGuid( CStifItemParser& /*aItem*/ )
+    { 
+
+TInt result = KErrNone;
+__UHEAP_MARK;
+	
+_LIT(KTestCal1File                ,"C:getlistcal1");
+	
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+	RPointerArray<TUIDSet> arruids(5);
+	
+	TUIDSet* uids = NULL;
+	
+	if(AddRepeatingAppointmentEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		uids = NULL;
+		}
+
+	if ( arruids.Count() > 0 )
+		{
+	    RPointerArray<CCalEntry> entryArray;
+	    
+	    CEntryAttributes* entryObj = CEntryAttributes::NewL();
+	    
+		entryObj->SetDescriptionL(_L("Updated SAPI weekly meeting"));
+	    
+	    TTime stTime(TDateTime(2007, ESeptember, 15, 9, 0, 0, 0));
+			
+		CRepeatInfo* rrule = CRepeatInfo::NewL(3);    
+	    rrule->SetStartTimeL(stTime);
+		TTime uTime(TDateTime(2007, EDecember, 30, 0, 0, 0, 0));
+		rrule->SetUntilTimeL(uTime);
+		TCalRRule::TDayOfMonth day1(EMonday,1);
+		TCalRRule::TDayOfMonth day2(EWednesday,3);
+		RArray<TCalRRule::TDayOfMonth> monthDays;
+		monthDays.Append(day1);
+		monthDays.Append(day2);
+		rrule->SetMonthDays(monthDays);
+		monthDays.Close();
+		
+		entryObj->SetRepeatRule(rrule);	
+		delete rrule;
+
+		service->GetListL( KTestCal1File, arruids[0]->iLocalUID , entryArray );
+		
+		TCalLocalUid old_luid = arruids[0]->iLocalUID;
+
+		if( entryArray.Count() == 1 )
+			{
+			entryObj->SetLocalUid( arruids[0]->iLocalUID );
+			}
+		entryArray.ResetAndDestroy();
+		TUIDSet* uids = NULL;
+		TCalLocalUid modifiedEntryId;		
+	    TRAPD( err, service->AddL(KTestCal1File,entryObj,uids) );
+	    modifiedEntryId = uids->iLocalUID;
+	    delete uids;
+	    
+	    if ( err == KErrNone )
+	    	{ 
+	    	service->GetListL( KTestCal1File, modifiedEntryId , entryArray );
+	    	if( entryArray.Count() == 1 )
+	    		{
+	    		TCalRRule rRule;
+	    		entryArray[0]->GetRRuleL( rRule );
+	    		TCalTime utTime;
+				utTime.SetTimeUtcL(TTime(TDateTime(2007, EDecember, 18, 9, 0, 0, 0)));
+	    //		if( !( rRule.Type() == TCalRRule::EMonthly && rRule.Until().TimeLocalL() == utTime.TimeLocalL() ))
+	    		if( !( rRule.Type() == TCalRRule::EMonthly ))
+		    		{
+		    		result = KErrGeneral;	
+		    		}
+		    	}
+	    	}
+        else
+	        {
+	        result = KErrGeneral;		
+	        }
+	        
+	     if(result == KErrNone)
+	     {
+	     	service->GetListL( KTestCal1File,*(arruids[0]->iGlobalUID),entryArray);
+	     	TInt count = entryArray.Count();
+	     	if(count != 2 || entryArray[0]->UidL().CompareF(*(arruids[0]->iGlobalUID)) != 0 || entryArray[1]->UidL().CompareF(*(arruids[0]->iGlobalUID)))
+	     		result =KErrGeneral;
+	     }
+	     
+	     
+		entryArray.ResetAndDestroy();
+	    arruids.ResetAndDestroy();
+	    delete entryObj;
+	    }
+		else
+			result = KErrGeneral;	
+
+	RemoveCalendarFile( service, KTestCal1File );
+	
+	delete service;
+	
+	__UHEAP_MARKEND;
+
+	return result;
+    }
+
+   
+  // -----------------------------------------------------------------------------
+// Ctcal_getlist::GetUpdatedEntByLuid
+// GetList by Luid for updated calendar entry. 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetUpdatedEntByLuid( CStifItemParser& /*aItem*/ )
+    { 
+
+	TInt result = KErrNone;
+	__UHEAP_MARK;
+	_LIT(KTestCal1File                ,"C:getlistcal1");
+	TBuf<40> buf;
+	
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+	RPointerArray<TUIDSet> arruids(5);
+	
+	TUIDSet* uids = NULL;
+	
+	if(AddRepeatingAppointmentEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		uids = NULL;
+		}
+
+	if ( arruids.Count() > 0 )
+		{
+	    RPointerArray<CCalEntry> entryArray;
+	    
+	    CEntryAttributes* entryObj = CEntryAttributes::NewL();
+	    
+	    
+	    TTime stTime(TDateTime(2007, ESeptember, 17, 9, 0, 0, 0));
+		entryObj->SetInstanceStartTimeL(stTime);
+		TTime startTime(TDateTime(2007, ESeptember, 17, 14, 0, 0, 0));
+		entryObj->SetStartTimeL(startTime);
+		TTime endTime(TDateTime(2007, ESeptember, 17, 17, 30, 0, 0));
+		entryObj->SetEndTimeL(endTime);	
+		
+		TCalLocalUid old_luid = arruids[0]->iLocalUID; 	
+			    		
+		service->GetListL( KTestCal1File, arruids[0]->iLocalUID , entryArray );
+
+		if( entryArray.Count() == 1 )
+			{
+			entryObj->SetLocalUid( arruids[0]->iLocalUID );
+			}
+			
+		TUIDSet* uids = NULL;
+		TCalLocalUid modifiedEntryId;		
+	    TRAPD( err, service->AddL(KTestCal1File,entryObj,uids) );
+	    modifiedEntryId = uids->iLocalUID;
+	    delete uids;
+	    entryArray.ResetAndDestroy();
+	    if ( err == KErrNone )
+	    	{ 
+	    	service->GetListL( KTestCal1File, modifiedEntryId , entryArray );
+	    	if( entryArray.Count() == 1 )
+	    		{
+	    			if( !( entryArray[0]->StartTimeL().TimeUtcL() == startTime && 
+	    		    entryArray[0]->EndTimeL().TimeUtcL() == endTime ))
+	    		    {
+		    		result = KErrGeneral;	
+		    		}
+		    		else
+		    		{
+		    			service->GetListL( KTestCal1File,old_luid,entryArray);
+		    			buf.Copy(entryArray[0]->UidL());
+	    				//iLog->Log(buf);
+	    				buf.Copy(entryArray[1]->UidL());
+	    				//iLog->Log(buf);
+		    			if(entryArray[0]->LocalUidL() == entryArray[1]->LocalUidL() || entryArray[0]->UidL().CompareF(entryArray[1]->UidL()) != 0)
+		    				result = KErrGeneral;
+		    		}
+		    	}
+	    		
+	    	}
+        else
+	        {
+	        result = KErrGeneral;		
+	        }
+	        
+	    
+	        
+		entryArray.ResetAndDestroy();
+	    arruids.ResetAndDestroy();
+	    delete entryObj;
+	    }
+		else
+			result = KErrGeneral;	
+		
+	RemoveCalendarFile( service, KTestCal1File );
+	
+	delete service;
+	__UHEAP_MARKEND;
+	return result;
+
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::GetCalByLuid
+// fetch cal entry by Luid
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetCalByLuid( CStifItemParser& /*aItem*/ )
+    { 
+
+	 TInt result = KErrNone;
+	__UHEAP_MARK;
+
+	_LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT( KTestCalFile                ,"C:Calendar");
+	_LIT(KTestCal2File                ,"ALH3434MDFLMEF046");
+
+	TBuf<40> buf;
+	
+
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+	RPointerArray<TUIDSet> arruids;
+	TUIDSet* uids = NULL;
+	
+
+	if(AddRepeatingAppointmentEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+			arruids.Append(uids);
+			//iLog->Log(*(uids->iGlobalUID)) ;
+			buf.Copy(*(uids->iGlobalUID));
+	//		iLog->Log(buf);
+	//		uids = NULL;
+		}
+
+
+	
+	if(AddToDo( service, KTestCal1File, uids ) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+		//iLog->Log(*(uids->iGlobalUID)) ;
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	}
+	
+	if(AddAnny( service, KTestCal1File, uids ) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+	//	iLog->Log(*(uids->iGlobalUID)) ;
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	}
+	
+	if(AddReminder( service, KTestCal1File, uids ) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+	//	iLog->Log(*(uids->iGlobalUID)) ;
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	}
+
+	if(AddEvent(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		buf.Copy(*(uids->iGlobalUID));
+	//	iLog->Log(buf);
+	//	uids = NULL;
+		}
+	
+	TInt entry_count = arruids.Count();
+		
+	if ( arruids.Count() > 0 )
+		{
+		
+	    RPointerArray<CCalEntry> entryArray(1);
+	     
+	    TRAPD( err_one, service->GetListL( KTestCal1File, arruids[0]->iLocalUID, entryArray ));
+	    if ( err_one == KErrNone )
+	    	{ 
+	    		TInt count = entryArray.Count();
+	    	if( !( entryArray.Count() == 1 && entryArray[0]->LocalUidL() == arruids[0]->iLocalUID))
+	    		{
+	    		result = KErrGeneral;
+	    	
+	    		}
+	    	}
+	    else
+	    	result = err_one;	
+	    
+    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_two, service->GetListL( KTestCal1File, arruids[1]->iLocalUID, entryArray ));
+	    	if(err_two == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 2 && entryArray[1]->LocalUidL() == arruids[1]->iLocalUID))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_two;
+	    	
+	    }
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_three, service->GetListL( KTestCal1File, arruids[2]->iLocalUID, entryArray ));
+	    	if(err_three == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 3 && entryArray[2]->LocalUidL() == arruids[2]->iLocalUID))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_three;
+	    	
+	    }
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_four, service->GetListL( KTestCal1File, arruids[3]->iLocalUID, entryArray ));
+	    	if(err_four == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 4 && entryArray[3]->LocalUidL() == arruids[3]->iLocalUID))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_four;
+	    	
+	    }
+	    
+	    if(result == KErrNone)
+	    {
+	    	TRAPD( err_five, service->GetListL( KTestCal1File, arruids[4]->iLocalUID, entryArray ));
+	    	if(err_five == KErrNone)
+	    	{
+	    		TInt count = entryArray.Count();
+	    		buf.Copy(entryArray[0]->UidL());
+	    	//	iLog->Log(buf);
+	    		if( !( entryArray.Count() == 5 && entryArray[4]->LocalUidL() == arruids[4]->iLocalUID))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    	}
+	    	else
+	    		result = err_five;
+	    	
+	    }
+	    
+	    entryArray.ResetAndDestroy();
+	    arruids.ResetAndDestroy();
+		}
+	else
+		result = KErrGeneral;	
+
+	RemoveCalendarFile( service, KTestCal1File );
+	
+	delete service;
+	uids = NULL;
+	__UHEAP_MARKEND;
+	return result;
+    }
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::GetCalEntBySearchFilter
+// GetList by text filter on summary field. 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetCalEntBySearchFilter( CStifItemParser& /*aItem*/ )
+    { 
+
+	TInt result = KErrNone;
+	
+	TInt count;
+	TInt val;
+	TBuf<40> buf;
+	
+	_LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT(KSearchTexttest                 ,"HAPPENs from 9 TO");
+	_LIT(KLongTexttest                 ,"dsfnsdflksdn 9234i2- as;mmsal; sdklasdasjdhaskl sadasldjasldjasd lasdklasjdlkasjdklsjad  kasjdkasjdlkasjdlkdjakl -3232m asdjasl;dkas;ldka;slkd;askd ;lsakd hawdhwqduahsizudh");
+	_LIT(KCalTexttest                 ,"C:xyndsks:dkl");
+	_LIT(KNewTexttest                 ,"SUMMARY");
+	_LIT(KRepeatingEnttexttest                 ,"REPEATING");
+	 RPointerArray<CCalInstance> instanceArray;
+	
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+
+	CEntryAttributes* entryObj = CEntryAttributes::NewL(KEntryAppt);
+	
+	entryObj->SetDescriptionL(_L("SAPI weekly meeting"));
+	entryObj->SetLocationL(_L("Hara"));
+	entryObj->SetEntryStatusL(KStatusConfirmed);
+	entryObj->SetMethodL(KMethodNone);
+	entryObj->SetPriority(5);
+    entryObj->SetSummaryL(_L("Meeting happens from 9 to 9:30"));
+    
+    TCalTime stTime;
+	stTime.SetTimeUtcL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+	entryObj->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+	
+	TCalTime endTime;
+	endTime.SetTimeUtcL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+	entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+	
+	TUIDSet* uids = NULL;
+	service->AddL(KTestCal1File,entryObj,uids);
+	
+	
+	RPointerArray<TUIDSet> arruids(5);
+
+	
+	arruids.Append(uids);
+	TCalLocalUid luid = arruids[0]->iLocalUID;
+	buf.Copy(*(arruids[0]->iGlobalUID));
+	//iLog->Log(buf);
+	
+	TCalLocalUid luid_entry;
+	
+	
+	uids = NULL;
+	
+	
+	if(AddAppointmentWithAttendees(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+			arruids.Append(uids);
+		}
+		
+		buf.Copy(*(arruids[1]->iGlobalUID));
+	    //iLog->Log(buf);
+	    TCalLocalUid new_luid = uids->iLocalUID;
+	    
+	    
+
+	if ( arruids.Count() > 0 )
+		{
+	   
+
+		CCalendarFilter *filter = CCalendarFilter::NewL();
+		
+		filter->SetFilterTextL( KSearchTexttest );
+	     
+	    TRAPD( err, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count() ;
+	    	if( !( instanceArray.Count() == 2 && instanceArray[0]->Entry().UidL().CompareF(*(arruids[1]->iGlobalUID)) == 0 && instanceArray[1]->Entry().UidL().CompareF(*(arruids[0]->iGlobalUID)) == 0))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    		if(count > 0)
+	    		{
+	    			for(TInt index=0;index<count;index++)
+	    			{
+	    				luid_entry = instanceArray[index]->Entry().LocalUidL();
+	    				buf.Copy(instanceArray[index]->Entry().UidL());
+	    				//iLog->Log(buf);
+	    			
+	    				buf.Copy(instanceArray[index]->Entry().SummaryL());
+	    				//iLog->Log(buf);
+	    			
+	    			}
+	    			
+	    			count = 0;
+	    			instanceArray.ResetAndDestroy();
+	    		}
+	    		
+	    	}
+	    else
+	    	result = err;
+	    
+	    
+	    if(AddRepeatingAppointmentEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+			arruids.Append(uids);
+			buf.Copy(*(uids->iGlobalUID));
+	   		 //iLog->Log(buf);
+	   		 new_luid = uids->iLocalUID;
+		
+		}
+		
+				
+		
+		filter->SetFilterTextL( KRepeatingEnttexttest );
+	    TRAPD( err_one, service->GetListL( KTestCal1File, filter, instanceArray ));
+	    if(err_one == KErrNone)
+	    {
+	    	count = instanceArray.Count() ;
+	    	if(count > 0)
+	    	{
+	    		for(TInt index=0;index<count;index++)
+	    		{
+	    			luid_entry = instanceArray[index]->Entry().LocalUidL();
+	    			buf.Copy(instanceArray[index]->Entry().UidL());
+	    			//iLog->Log(buf);
+	    			
+	    			buf.Copy(instanceArray[index]->Entry().SummaryL());
+	    			//iLog->Log(buf);
+	    			
+	    			TTime stTime = instanceArray[index]->Entry().StartTimeL().TimeLocalL();
+	    			TTime endTime = instanceArray[index]->Entry().EndTimeL().TimeLocalL();
+	    			
+    			
+	    		}
+	    		count = 0;
+	    	}
+	    }
+	    else if(result == KErrNone)
+	    	result = err_one;
+	    
+	    	    
+	    filter->SetFilterTextL( KLongTexttest );
+	    TRAPD( err_two, service->GetListL( KTestCal1File, filter, instanceArray ));
+	    if(err_two != KErrArgument)
+	       	result = KErrGeneral;
+	    
+	    
+	    
+	    
+	    filter->SetFilterTextL( KCalTexttest );
+	    TRAPD( err_three, service->GetListL( KTestCal1File, filter, instanceArray ));
+	    if(err_three == KErrNone)
+	    {
+	    	count = instanceArray.Count() ;
+	    	if(count > 0)
+	    	{
+	    		val = instanceArray[0]->Entry().UidL().CompareF(*(arruids[0]->iGlobalUID));
+	    		count = 0;
+	    		instanceArray.ResetAndDestroy();
+	    	}
+	    }
+	    else if(result == KErrNone)
+	    	result = err_three;
+	    
+	    
+	    CEntryAttributes* new_entryObj = CEntryAttributes::NewL();
+	    new_entryObj->SetSummaryL(_L("New summary text"));
+	    new_entryObj->SetLocalUid( luid );
+	    TRAPD(err_add,service->AddL(KTestCal1File,new_entryObj,uids));
+	    delete new_entryObj;
+	    arruids.Append(uids);
+	    
+	    filter->SetFilterTextL( KNewTexttest );
+	    TRAPD( err_four, service->GetListL( KTestCal1File, filter, instanceArray ));
+	    if(err_four == KErrNone)
+	    {
+	    	count = instanceArray.Count() ;
+	    	if( !( instanceArray.Count() == 1 && instanceArray[0]->Entry().UidL().CompareF(*(arruids[3]->iGlobalUID)) == 0 ))
+	    	{
+	    		result = KErrGeneral;
+	    	}
+	    	count = 0;
+	    }
+	    else if(result == KErrNone)
+	    	result = err_four;
+	    
+	       
+	    
+	    
+	    delete filter;
+	    instanceArray.ResetAndDestroy();
+	    arruids.ResetAndDestroy();
+		}
+	else
+		result = KErrGeneral;	
+	
+	
+	RemoveCalendarFile( service, KTestCal1File );
+
+	delete service;
+	delete entryObj;
+
+	
+	return result;
+    }
+
+
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::GetCalEntByTimeFilter
+// GetList by time range 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetCalEntByTimeFilter( CStifItemParser& /*aItem*/ )
+    { 
+
+	TInt result = KErrNone;
+	TInt count;
+	_LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT(KInvalidCalFile                ,"C:xynsdsdk");
+	__UHEAP_MARK;
+	
+	
+	TBuf<40> buf;
+
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+
+	CEntryAttributes* entryObj = CEntryAttributes::NewL(KEntryAppt);
+	
+	entryObj->SetDescriptionL(_L("SAPI weekly meeting"));
+	entryObj->SetLocationL(_L("Hara"));
+	entryObj->SetEntryStatusL(KStatusConfirmed);
+	entryObj->SetMethodL(KMethodNone);
+	entryObj->SetPriority(5);
+    entryObj->SetSummaryL(_L("Meeting Happens from 9 to 9:30"));
+    
+    TCalTime stTime;
+	stTime.SetTimeUtcL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+	entryObj->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+	
+	TCalTime endTime;
+	endTime.SetTimeUtcL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+	entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+	
+    CRepeatInfo* rrule = CRepeatInfo::NewL(TCalRRule::EWeekly);
+	rrule->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+    
+    RArray<TDay> dayArray;
+    dayArray.Append( stTime.TimeUtcL().DayNoInWeek() );
+    rrule->SetDaysInWeek( dayArray );
+    rrule->SetCount( 1 );
+
+    entryObj->SetRepeatRule( rrule );
+    dayArray.Reset();
+    delete rrule;
+	
+	TUIDSet* uids = NULL;
+	service->AddL(KTestCal1File,entryObj,uids);
+	buf.Copy(*(uids->iGlobalUID));
+	//iLog->Log(buf);
+
+	RPointerArray<TUIDSet> arruids(5);
+	CCalendarFilter *filter = CCalendarFilter::NewL();
+	RPointerArray<CCalInstance> instanceArray;
+	RPointerArray<CCalEntry> entryArray(1);
+	
+	arruids.Append(uids);
+	
+	if(AddRepeatingAptEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+			arruids.Append(uids);
+			buf.Copy(*(uids->iGlobalUID));
+	   		 //iLog->Log(buf);
+	   			
+		} 
+		
+	
+
+	if ( arruids.Count() > 0 )
+		{
+	    
+
+		
+		
+	    filter->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+		filter->SetEndTimeL(TTime(TDateTime(2008, EAugust, 8, 9, 0, 0, 0)));
+	     
+	    TRAPD( err, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		for(TInt i=0;i<count;i++)
+	    		{
+	    			buf.Copy(instanceArray[i]->Entry().UidL());
+	    			//iLog->Log(_L("Global Uid of Instance"));
+	   			 	//iLog->Log(buf);
+	   			 
+	   			 	buf.Copy(instanceArray[i]->Entry().DescriptionL());
+	   			 	//iLog->Log(_L("Summary of the instance"));
+	   			 	//iLog->Log(buf); 
+	   			 	
+	   			 	TInt day_no = instanceArray[i]->Time().TimeLocalL().DateTime().Day();
+	   			 				 	
+	    		}
+	   		
+	    	if( !( instanceArray.Count() == 16 && instanceArray[0]->Entry().UidL().CompareF(*(arruids[0]->iGlobalUID)) == 0 && instanceArray[1]->Entry().UidL().CompareF(*(arruids[1]->iGlobalUID)) == 0))
+	    		{
+	    		result = KErrGeneral;
+	    		}
+	    		
+	    	}
+	    else
+	    	result = err;	
+	    
+	    instanceArray.ResetAndDestroy();
+	    count = 0;
+	    
+	   // delete uids;
+	    //uids = NULL;
+	    
+	    
+	    filter->SetStartTimeL(TTime(TDateTime(2008, EAugust, 8, 9, 0, 0, 0)));
+		filter->SetEndTimeL(TTime(TDateTime(2009, EAugust, 8, 9, 0, 0, 0)));
+	    
+	    TRAPD( err_one, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err_one == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		if(count != 0)
+	    			result = KErrGeneral;
+	    	}
+	    	
+	    else if (result == KErrNone)
+	    	result = err_one;
+	    
+	    
+	    instanceArray.ResetAndDestroy();
+	    count = 0;
+	    
+	    //same day    
+	    filter->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+		filter->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 10, 0, 0, 0)));
+	    
+	    TRAPD( err_two, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err_two == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		if(count != 1)
+	    			result = KErrGeneral;
+	    	}
+	    	
+	    else if (result == KErrNone)
+	    	result = err_two;
+	    
+	    
+	    instanceArray.ResetAndDestroy();
+	    count = 0;
+	    
+	    	    
+	    filter->SetStartTimeL(TTime(TDateTime(2007, ESeptember, 14, 9, 0, 0, 0)));
+		filter->SetEndTimeL(TTime(TDateTime(2007, ESeptember, 29, 8, 0, 0, 0)));
+	    
+	    TRAPD( err_three, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err_three == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		if(count != 13)
+	    			result = KErrGeneral;
+	    	}
+	    	
+	    else if (result == KErrNone)
+	    	result = err_three;
+	    
+	    instanceArray.ResetAndDestroy();
+	    count = 0;
+	    
+	    
+	    // pass null object as filter
+	   	    
+	    TRAPD( err_four, service->GetListL( KTestCal1File, NULL, instanceArray ));
+
+	    if ( err_four == KErrNone && result == KErrNone)
+	    	{ 
+	    		result = KErrGeneral;
+	    	}
+	    	
+	        
+	    
+	    
+		
+		//invalid calendar file
+		
+		TRAPD( err_five, service->GetListL( KInvalidCalFile, filter, instanceArray ));
+
+	    if ( err_five == KErrNone && result == KErrNone)
+	    	{ 
+	    		result = KErrGeneral;
+	    	}
+	    
+	   	    
+	    }
+		else
+			result = KErrGeneral; 
+	
+	delete filter;
+	instanceArray.ResetAndDestroy();
+	arruids.ResetAndDestroy();
+	    
+
+	RemoveCalendarFile( service, KTestCal1File );
+	delete entryObj;
+	delete service;
+	__UHEAP_MARKEND;
+	return result;
+    }
+    
+    
+    // -----------------------------------------------------------------------------
+// Ctcal_getlist::GetCalEntByTypeFilter
+// GetList by type of entry 
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+
+//
+TInt Ctcal_getlist::GetCalEntByTypeFilter( CStifItemParser& /*aItem*/ )
+    { 
+
+	TInt result = KErrNone;
+	__UHEAP_MARK;
+	
+	_LIT(KTestCal1File                ,"C:getlistcal1");
+	_LIT(KInvalidCalFile                ,"C:xynsdsdk");
+	_LIT(KInvalidText, 			"Invalid");
+	
+	TInt count;
+	TBuf<40> buf;
+	
+	
+	CCalendarService* service = CCalendarService::NewL();
+	
+	RemoveCalendarFile( service, KTestCal1File );
+	AddCalendarFile( service, KTestCal1File );
+
+	RPointerArray<TUIDSet> arruids(5);
+	
+	TUIDSet* uids = NULL;
+	
+	if(AddAppointmentWithAttendees(service, KTestCal1File, uids) == KErrNone && uids)
+	{
+		arruids.Append(uids);
+		uids = NULL;
+	}
+	
+	if(AddRepeatingAptEntryL(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		uids = NULL;
+		}
+		
+//	delete uids;
+//	uids = NULL;		
+	
+
+	if ( arruids.Count() > 0 )
+		{
+	    RPointerArray<CCalInstance> instanceArray;
+
+		CCalendarFilter *filter = CCalendarFilter::NewL();
+		
+		filter->SetFilterTypeL( KEntryAppt );
+		
+	     
+	    TRAPD( err, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		
+	    	if( instanceArray.Count() > 0 && count == 16 )
+	    		{
+	    		for(TInt index = 0; index < instanceArray.Count(); index++ )
+	    			{
+	    			if( instanceArray[index]->Entry().EntryTypeL() != CCalEntry::EAppt )
+	    				{
+	    				result = KErrGeneral;
+	    				break;
+	    				}
+	    			}
+	    		}
+	    	else
+	    		result = KErrGeneral;	
+	    	}
+	    else
+	    	result = err;	
+	    
+	    TRAPD(err_setfilter,filter->SetFilterTypeL(KInvalidText));
+	    
+	   if ( err_setfilter == KErrNone && result == KErrNone )
+	    	  	result = KErrGeneral; 
+	    
+	    
+	    count =0;
+	    instanceArray.ResetAndDestroy();
+	    
+	    filter->SetFilterTypeL( KEntryReminder );
+	    
+	    TRAPD( err_two, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err_two == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		if(count != 0)
+	    			result = KErrGeneral;
+	    		
+	       	}
+	    else if(result == KErrNone)
+	    	result = err_two;
+	    
+	    
+	    if(AddEvent(service, KTestCal1File, uids) == KErrNone && uids)
+		{
+		arruids.Append(uids);
+		uids = NULL;
+		}
+		
+		
+	    filter->SetFilterTypeL(KIncludeAll);
+	    
+	    TRAPD( err_three, service->GetListL( KTestCal1File, filter, instanceArray ));
+
+	    if ( err_three == KErrNone )
+	    	{ 
+	    		count = instanceArray.Count();
+	    		if(count != 17)
+	    			result = KErrGeneral;
+	    		
+	       	}
+	    else if(result == KErrNone)
+	    	result = err_three;
+	    
+	    
+	    	    
+   	    delete filter;
+	    instanceArray.ResetAndDestroy();
+	    arruids.ResetAndDestroy();
+		}
+	else
+		result = KErrGeneral;	
+
+	RemoveCalendarFile( service, KTestCal1File );
+	
+	delete service;
+	__UHEAP_MARKEND;
+	return result;
+    }
+    
+// Helper function
+
+TInt AddRepeatingAptEntryL(CCalendarService* aService, const TDesC& name, TUIDSet*& uids)
+	{
+	
+	CEntryAttributes* entryObj = CEntryAttributes::NewL( KEntryAppt );
+	
+    entryObj->SetDescriptionL(_L("SAPI weekly meeting"));
+	entryObj->SetLocationL(_L("Hara"));
+	entryObj->SetEntryStatusL(KStatusConfirmed);
+	
+	entryObj->SetMethodL(KMethodNone);
+	CAttendeeInfo* organizer = CAttendeeInfo::NewL(_L("mcrasta@gmail.com"));
+	organizer->SetCommonNameL(_L("SAPI"));
+	entryObj->SetOrganizerDataL(organizer);
+	delete organizer;
+	
+	entryObj->SetPhoneOwnerDataL(_L("h2s@gmail.com"));
+	
+	entryObj->SetPriority(5);
+    entryObj->SetSummaryL(_L("Repeating entry"));
+    
+    TTime stTime(TDateTime(2007, ESeptember, 15, 9, 0, 0, 0));
+	entryObj->SetStartTimeL(stTime);
+	
+	TTime endTime(TDateTime(2007, ESeptember, 15, 9, 30, 0, 0));
+	entryObj->SetEndTimeL(endTime);
+	
+	CCalAlarm* alarm = CCalAlarm::NewL();
+	TTime alarmTime(TDateTime(2007,ESeptember, 15, 7, 30, 0, 0));
+	//entryObj->SetAlarm(alarmTime);
+	delete alarm;
+	
+    CAttendeeInfo* attendee = CAttendeeInfo::NewL(_L("h2s@gmail.com"));
+	attendee->SetRoleL(KAttRoleReqParticipant);
+	attendee->SetStatusL(KAttStatusTentative);
+    attendee->SetRsvp(EFalse);
+    entryObj->AddAttendeeL(attendee);
+    delete attendee;
+	
+	attendee = CAttendeeInfo::NewL(_L("mdcosta@gmail.com"));
+	attendee->SetCommonNameL(_L("SAPI"));
+	attendee->SetRoleL(KAttRoleReqParticipant);
+	attendee->SetStatusL(KAttStatusTentative);
+    attendee->SetRsvp(EFalse);
+    entryObj->AddAttendeeL(attendee);
+    delete attendee;
+    
+    CRepeatInfo* rrule = CRepeatInfo::NewL(TCalRRule::EDaily);
+	//TCalRRule rrule(TCalRRule::EDaily);
+	TCalTime startTime;
+	startTime.SetTimeUtcL(stTime);
+	rrule->SetStartTimeL(stTime);
+	TCalTime uTime;
+	uTime.SetTimeUtcL(TTime(TDateTime(2007, ESeptember, 29, 0, 0, 0, 0)));
+	rrule->SetUntilTimeL(TTime(TDateTime(2007, ESeptember, 29, 9, 0, 0, 0)));
+	rrule->SetWeekStart(EWednesday);
+	entryObj->SetRepeatRule(rrule);	
+	delete rrule;
+	
+	TTime exDate(TDateTime(2007, ESeptember, 20, 0, 0, 0, 0)); 
+    TCalTime exTime;
+    exTime.SetTimeUtcL(exDate);
+    entryObj->AddExceptionDateL(exDate);
+        
+    TTime rDate(TDateTime(2007, EOctober, 0, 9, 0, 0, 0)); 
+    TCalTime rTime;
+    rTime.SetTimeUtcL(rDate);
+    entryObj->AddRepeatDateL(rDate);
+        
+	TRAPD( errno, aService->AddL(name,entryObj,uids) );
+	delete entryObj;
+	return errno;
+
+    }		    
+    
+    
+// -----------------------------------------------------------------------------
+// Ctcal_getlist::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt Ctcal_getlist::?member_function(
+   CItemParser& aItem )
+   {
+
+   ?code
+
+   }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  End of File