--- /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