--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_calendar/tsrc/testing/tcalendarservice/tcal_getlist/src/calgetlisttestcases.cpp Thu Aug 27 07:43:07 2009 +0300
@@ -0,0 +1,578 @@
+/*
+* Copyright (c) 2002 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
+*
+*/
+
+
+
+// SYSTEM INCLUDE FILES
+#include <e32base.h>
+#include <f32file.h> //for RFile and Rfs
+
+#include <calentry.h>//for CCalEntry
+#include <calinstanceview.h>//for CCalInstance
+#include <calcommon.h>//for Filter Type Enum Constants
+#include <calinstance.h>
+#include <caltime.h>
+
+// USER INCLUDE FILES
+#include "calgetlisttestcases.h"
+#include "entryattributes.h"
+//#include <ASCliClientUtils.h>
+#include "calendarservice.h"
+#include "calendarconstants.h"
+
+
+
+CCalGetlistTestCases* CCalGetlistTestCases::NewL( TInt& aResult, TBool aEntryArray)
+ {
+ CCalGetlistTestCases* self = new(ELeave)CCalGetlistTestCases( aResult, aEntryArray);
+
+ self->ConstructL();
+
+ return self;
+ }
+
+CCalGetlistTestCases::~CCalGetlistTestCases()
+ {
+ Cancel();
+
+
+ if(iWaitSchedular->IsStarted())
+ iWaitSchedular->AsyncStop();
+
+ if(iCalendarService)
+ delete iCalendarService;
+
+ if(iWaitSchedular)
+ delete iWaitSchedular;
+
+
+
+ }
+
+
+_LIT(KGetlistTestCalNameGetlistGuidFilterAsync ,"c:getlistcalguidFilterasync");
+
+_LIT(KGetlistTestCalNameGetlistLuidFilterAsync ,"c:getlistcalluidFilterasync");
+
+_LIT(KGetlistTestCalNameGetlistTmRgFilterAsync ,"c:getlistcaltmrgFilterasync");
+
+_LIT(KGetlistTestCalNameGetlistTextFilterAsync ,"c:getlistcaltextFilterasync");
+
+_LIT(KGetlistTestCalNameGetlistTypeFilterAsync ,"c:getlistcaltypeFilterasync");
+
+_LIT(KGetlistTestCalNameGetlistInvalidGuidFilterAsync ,"c:getlistcalinvalidguidFilterasync");
+
+_LIT(KGetlistTestCalNameGetlistInvalidLuidFilterAsync ,"c:getlistcalinvalidluidFilterasync");
+
+void CCalGetlistTestCases::TestGetlistGuidFilterAsyncL()
+ {
+ iTestCaseType = KGetlistGuidFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistGuidFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistGuidFilterAsync.operator()() ) );
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistGuidFilterAsync.operator()() ) );
+
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+void CCalGetlistTestCases::TestGetlistLuidFilterAsyncL()
+ {
+ iTestCaseType = KGetlistLuidFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistLuidiiFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistLuidFilterAsync.operator()() ) );
+
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistLuidFilterAsync.operator()() ) );
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+void CCalGetlistTestCases::TestGetlistTmRgFilterAsyncL()
+ {
+ iTestCaseType = KGetlistTmRgFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistTmRgiiFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistTmRgFilterAsync.operator()() ) );
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistTmRgFilterAsync.operator()() ) );
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+void CCalGetlistTestCases::TestGetlistTextFilterAsyncL()
+ {
+ iTestCaseType = KGetlistTextFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistTextiiFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistTextFilterAsync.operator()() ) );
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistTextFilterAsync.operator()() ) );
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+void CCalGetlistTestCases::TestGetlistTypeFilterAsyncL()
+ {
+ iTestCaseType = KGetlistTypeFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistTypeiiFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistTypeFilterAsync.operator()() ) );
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistTypeFilterAsync.operator()() ) );
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+void CCalGetlistTestCases::TestGetlistInvalidGuidFilterAsyncL()
+ {
+ iTestCaseType = KGetlistInvalidGuidFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistGuidFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistInvalidGuidFilterAsync.operator()() ) );
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistInvalidGuidFilterAsync.operator()() ) );
+
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+void CCalGetlistTestCases::TestGetlistInvalidLuidFilterAsyncL()
+ {
+ iTestCaseType = KGetlistInvalidLuidFilterAsync;
+
+ //RemoveCalendarFile(iCalendarService, KGetlistTestCalNameGetlistLuidiiFilterAsync.operator()());
+ TRAP( iResult , iCalendarService->DeleteL( KGetlistTestCalNameGetlistInvalidLuidFilterAsync.operator()() ) );
+
+ TRAP( iResult , iCalendarService->AddL( KGetlistTestCalNameGetlistInvalidLuidFilterAsync.operator()() ) );
+
+ if(iResult == KErrNone)
+ Start();
+ }
+
+TInt CCalGetlistTestCases::Result()
+ {
+ return iResult;
+ }
+
+void CCalGetlistTestCases::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+
+ iCalendarService = CCalendarService::NewL();
+
+ iWaitSchedular = new(ELeave) CActiveSchedulerWait();
+ }
+
+CCalGetlistTestCases::CCalGetlistTestCases( TInt& aResult, TBool aEntryArray) : CActive(EPriorityStandard), iResult(aResult),
+ iEntryArray(aEntryArray)
+ {
+
+ }
+
+//for the sake of ActiveObject
+void CCalGetlistTestCases::DoCancel()
+ {
+
+ }
+
+_LIT(KSearchTexttest ,"Meeting");
+void CCalGetlistTestCases::RunL()
+ {
+ CCalendarFilter *filter;
+
+ CEntryAttributes* entryObj;
+
+ RPointerArray<TUIDSet> arruids(5);
+ TUIDSet* uids = NULL;
+
+ switch( iTestCaseType )
+ {
+ case KGetlistGuidFilterAsync :
+
+ 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("Happens from 9 to 9:30"));
+
+ entryObj->SetStartTimeL( TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)) );
+
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistGuidFilterAsync,entryObj,uids) ;
+
+ arruids.Append(uids);
+ uids = NULL;
+ if ( arruids.Count() > 0 )
+ {
+ TRAPD( err , iCalendarService->GetListL( KGetlistTestCalNameGetlistGuidFilterAsync, *(arruids[0]->iGlobalUID), this ));
+ if(err != KErrNone)
+ {
+ iResult = KErrGeneral;
+ }
+ }
+
+ /* if(iResult != KErrNone)
+ {
+ iWaitSchedular->AsyncStop();
+ }*/
+ delete entryObj;
+ arruids.ResetAndDestroy();
+ break;
+ case KGetlistLuidFilterAsync :
+ 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("Happens from 9 to 9:30"));
+
+ entryObj->SetStartTimeL( TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)) );
+
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistLuidFilterAsync,entryObj,uids) ;
+ arruids.Append(uids);
+ uids = NULL;
+ delete entryObj;
+ entryObj = CEntryAttributes::NewL( KEntryEvent );
+
+ entryObj->SetDescriptionL(_L("New Event entry created"));
+ entryObj->SetSummaryL(_L("Event Entry"));
+ TTime stTime1(TDateTime(2007, EJuly, 25, 0, 0, 0, 0));
+ entryObj->SetStartTimeL(stTime1);
+ entryObj->SetReplicationL(KReplPrivate);
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistLuidFilterAsync,entryObj,uids);
+ arruids.Append(uids);
+ uids = NULL;
+
+ if ( arruids.Count() > 0 )
+ {
+ TRAPD( err , iCalendarService->GetListL( KGetlistTestCalNameGetlistLuidFilterAsync, arruids[0]->iLocalUID, this ));
+ if(err != KErrNone)
+ {
+ iResult = KErrGeneral;
+ }
+ }
+ delete entryObj;
+ arruids.ResetAndDestroy();
+
+ break;
+ case KGetlistTmRgFilterAsync :
+ iEntryArray = EFalse;
+
+ 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("Happens from 9 to 9:30"));
+
+ entryObj->SetStartTimeL( TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)) );
+
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ TCalTime stTime;
+ stTime.SetTimeLocalL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+ entryObj->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+
+ TCalTime endTime;
+ endTime.SetTimeLocalL(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.TimeLocalL().DayNoInWeek() );
+ rrule->SetDaysInWeek( dayArray );
+ rrule->SetCount( 10 );
+
+ entryObj->SetRepeatRule( rrule );
+ dayArray.Reset();
+ delete rrule;
+
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistTmRgFilterAsync.operator()(),entryObj,uids);
+
+
+ //delete uids;
+
+
+ arruids.Append(uids);
+ uids = NULL;
+ //delete uids;
+
+ if ( arruids.Count() > 0 )
+ {
+ // addSomeEntries( KGetlistTestCalNameGetlistTmRgFilterAsync.operator()() );//adds the entries and fills up iArruids with UIDSets
+ filter = CCalendarFilter::NewL();
+ filter->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+ filter->SetEndTimeL(TTime(TDateTime(2008, EAugust, 8, 9, 0, 0, 0)));
+
+ TRAP( iResult, iCalendarService->GetListL( KGetlistTestCalNameGetlistTmRgFilterAsync.operator()() , filter , this ) );
+ }
+ if(iResult != KErrNone)
+ {
+ iWaitSchedular->AsyncStop();
+ }
+ delete entryObj;
+ arruids.ResetAndDestroy();
+ delete filter;
+
+ break;
+ case KGetlistTextFilterAsync :
+ iEntryArray = EFalse;
+ 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 stTime3;
+ stTime3.SetTimeLocalL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+ entryObj->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+
+ TCalTime endTime3;
+ endTime3.SetTimeLocalL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistTextFilterAsync.operator()(),entryObj,uids);
+ arruids.Append(uids);
+ uids = NULL;
+
+ if ( arruids.Count() > 0 )
+ {
+ // addSomeEntries( KGetlistTestCalNameGetlistTmRgFilterAsync.operator()() );//adds the entries and fills up iArruids with UIDSets
+ filter = CCalendarFilter::NewL();
+ filter->SetFilterTextL( KSearchTexttest );
+
+ TRAP( iResult, iCalendarService->GetListL( KGetlistTestCalNameGetlistTextFilterAsync.operator()() , filter , this ) );
+ }
+ if(iResult != KErrNone)
+ {
+ iWaitSchedular->AsyncStop();
+ }
+ delete entryObj;
+ arruids.ResetAndDestroy();
+ delete filter;
+
+ break;
+ case KGetlistTypeFilterAsync :
+ iEntryArray = EFalse;
+ 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 stTime2;
+ stTime2.SetTimeLocalL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+ entryObj->SetStartTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)));
+
+ TCalTime endTime2;
+ endTime2.SetTimeLocalL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistTextFilterAsync.operator()(),entryObj,uids);
+ arruids.Append(uids);
+ uids = NULL;
+
+ if ( arruids.Count() > 0 )
+ {
+ // addSomeEntries( KGetlistTestCalNameGetlistTmRgFilterAsync.operator()() );//adds the entries and fills up iArruids with UIDSets
+ filter = CCalendarFilter::NewL();
+ filter->SetFilterTypeL( KEntryAppt );
+
+ TRAP( iResult, iCalendarService->GetListL( KGetlistTestCalNameGetlistTextFilterAsync.operator()() , filter , this ) );
+ }
+ if(iResult != KErrNone)
+ {
+ iWaitSchedular->AsyncStop();
+ }
+ delete entryObj;
+ arruids.ResetAndDestroy();
+ delete filter;
+
+ break;
+ case KGetlistInvalidGuidFilterAsync :
+
+ 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("Happens from 9 to 9:30"));
+
+ entryObj->SetStartTimeL( TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)) );
+
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistInvalidGuidFilterAsync,entryObj,uids) ;
+
+ arruids.Append(uids);
+ uids = NULL;
+ if ( arruids.Count() > 0 )
+ {
+ TRAPD( err , iCalendarService->GetListL( KGetlistTestCalNameGetlistInvalidGuidFilterAsync,_L8("xyz"), this ));
+ if(err != KErrNone)
+ {
+ iResult = KErrGeneral;
+ }
+ }
+
+ if(iResult != KErrNone)
+ {
+ iWaitSchedular->AsyncStop();
+ }
+ delete entryObj;
+ arruids.ResetAndDestroy();
+ break;
+ case KGetlistInvalidLuidFilterAsync :
+ 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("Happens from 9 to 9:30"));
+
+ entryObj->SetStartTimeL( TTime(TDateTime(2007, EAugust, 8, 9, 0, 0, 0)) );
+
+ entryObj->SetEndTimeL(TTime(TDateTime(2007, EAugust, 8, 9, 30, 0, 0)));
+
+ iCalendarService->AddL(KGetlistTestCalNameGetlistInvalidLuidFilterAsync,entryObj,uids) ;
+ arruids.Append(uids);
+ uids = NULL;
+
+ if ( arruids.Count() > 0 )
+ {
+ TRAPD( err , iCalendarService->GetListL( KGetlistTestCalNameGetlistInvalidLuidFilterAsync, _L8("0"), this ));
+ if(err != KErrNone)
+ {
+ iResult = KErrGeneral;
+ }
+ }
+ if(iResult != KErrNone)
+ {
+ iWaitSchedular->AsyncStop();
+ }
+ delete entryObj;
+ arruids.ResetAndDestroy();
+
+ break;
+
+ }
+
+ }
+
+void CCalGetlistTestCases::Start()
+ {
+ SetActive();
+ TRequestStatus* temp = &iStatus;
+
+ User::RequestComplete(temp, KErrNone);
+
+ iWaitSchedular->Start();
+ }
+
+
+void CCalGetlistTestCases::NotifyResultL(TInt aErrCode, TAny* aResult)
+ {
+ //******************* set iResult ****************************
+ iResult = aErrCode;
+ //******************* set iResult ****************************
+ //write the result to the corresponding file basing on the iTestCaseType
+ RPointerArray<CCalEntry> entryList;
+
+ RPointerArray<CCalInstance> instanceList;
+
+ if(iEntryArray)
+ {
+ entryList = *(RPointerArray<CCalEntry>*)(aResult);
+ }
+ else
+ {
+ instanceList = *(RPointerArray<CCalInstance>*)(aResult);
+ }
+ switch( iTestCaseType )
+ {
+ case KGetlistGuidFilterAsync :
+ case KGetlistLuidFilterAsync :
+ case KGetlistTmRgFilterAsync :
+ case KGetlistTextFilterAsync :
+ case KGetlistTypeFilterAsync :
+ if(iEntryArray)
+ {
+ if ( entryList.Count() == 0)
+ {
+ iResult = KErrGeneral;
+ }
+ else
+ {
+ for(TInt i = 0; i<entryList.Count(); i++)
+ {
+ delete entryList[i];
+ }
+ }
+ }
+ else
+ {
+ if((instanceList.Count() == 0))
+ {
+ iResult = KErrGeneral;
+ }
+ else
+ {
+ for(TInt i = 0; i<instanceList.Count(); i++)
+ {
+ delete instanceList[i];
+ }
+ }
+
+ }
+ break;
+ case KGetlistInvalidLuidFilterAsync :
+ case KGetlistInvalidGuidFilterAsync :
+ if ( entryList.Count() > 0)
+ {
+ iResult = KErrGeneral;
+ }
+ break;
+ }
+ iWaitSchedular->AsyncStop();
+
+ }