diff -r 000000000000 -r f979ecb2b13e pimappservices/calendar/tsrc/tcal_observer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappservices/calendar/tsrc/tcal_observer.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,129 @@ +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "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: +// + +#ifndef __TCAL_OBSERVER_H__ +#define __TCAL_OBSERVER_H__ + +#include +#include +#include +#include +#include + +#include "caltestlib.h" + +_LIT(KChunkName, "tcal_observer_chunk"); +_LIT(KTestCaseChunkName, "tcal_test_case_observer_chunk"); +_LIT(KCalendarFile, "tcal_observer"); +_LIT(KCalendarFileOther, "tcal_observer_other"); +_LIT(KSemName, "tcal_observer_sem"); +_LIT(KThreadName, "tcal_observer__modifier_thread"); + +const TTime KRangeStartTime(TDateTime(2005, EJanuary, 0, 0, 0, 0, 0)); +const TTime KRangeEndTime(TDateTime(2006, EJanuary, 0, 0, 0, 0, 0)); + +TInt RunTestThread(TAny* /*aArgs*/); // modifying thread entry point + +class CTestApp : public CBase, public MCalProgressCallBack + { +protected: + enum TTestCase + { + EEntryOutOfRange, // add entry that is out of filter range + EEntryOutOfRange1, // add child entry that is out of filter range + EApptInsideRange1, // add + EApptInsideRange2, // update + EApptInsideRange3, // delete + EApptOutsideRange1, // add + EApptOutsideRange2, // update + EApptOutsideRange3, // delete + ENotifyNonResponsive, // test nonresponsive client + ENotifyNonResponsive1, // delete + ETodoInsideRange1, // disable notification and add + ETodoInsideRange2, // re-enable notification + ETodoInsideRange3, // update + ETodoInsideRange4, // delete + ETodoOutsideRange1, // add + ETodoOutsideRange2, // update + ETodoOutsideRange3, // delete + EAddUndatedTodo, // adding undated todo + EUpdateUndatedTodo, // update undated todo + EClearUndatedTodo, // delete undated todo + EMultipleInAndOutside1, // add 2 todo and 2 events, each with 1 inside and 1 outside + EMultipleInAndOutside2, // delete + EBulkAdd, // Add bulk entries - Random number of notifications are received + EBulkDelete, // Delete bulk entries - Random number of notifications are received + EBulkAddToOverflowNotificationBuffer, // Add bulk entries and wait to overflow the notification buffer + EBulkDeleteToOverflowNotificationBuffer,// Delete bulk entries and wait to overflow the notification buffer + ERepeatingEitherSideOfRange1, // add entry with instances before and after range, but not inside + ERepeatingEitherSideOfRange2, // update + ERepeatingEitherSideOfRange3, // delete + ERepeatingAcrossStartBoundary1, // add on start boundary + ERepeatingAcrossStartBoundary2, // move to outside range + ERepeatingAcrossStartBoundary3, // delete + ERepeatingAcrossStartBoundary4, // add outside range + ERepeatingAcrossStartBoundary5, // move to on start boundary + ERepeatingAcrossStartBoundary6, // delete + ERepeatingAcrossEndBoundary1, // add on end boundary + ERepeatingAcrossEndBoundary2, // move to ouside range + ERepeatingAcrossEndBoundary3, // delete + ERepeatingAcrossEndBoundary4, // add outside range + ERepeatingAcrossEndBoundary5, // move to end boundary + ERepeatingAcrossEndBoundary6, // delete + EFilterOnlyEventEntries1, // change filter to only events + EFilterOnlyEventEntries2, // add todo entry + EFilterOnlyEventEntries3, // add event entry + EFilterOnlyEventEntries4, // delete + EFilterOnlyTodoEntries1, // change filter to only todos + EFilterOnlyTodoEntries2, // add todo entry + EFilterOnlyTodoEntries3, // add event entry + EFilterOnlyTodoEntries4, // delete + EFilterOnlyTodoEntries5, // restore filter + EAddAndUpdateParentAndChild1, // add the parent entry + EAddAndUpdateParentAndChild2, // update the parent entry + EAddAndUpdateParentAndChild3, // add a child entry + EAddAndUpdateParentAndChild4, // update the child + EAddAndUpdateParentAndChild5, // store the parent again + EAddAndUpdateParentAndChild6, // add the child again + EAddAndUpdateParentAndChild7, // delete the child + EAddAndUpdateParentAndChild8, // add the child again + EAddAndUpdateParentAndChild9, // delete the parent + EDeleteMultipleEntriesSetup, // create entry for delete test + EDeleteMultipleEntriesFail, // delete multiple entries, the second will fail + EChangesToOtherFile, // open another file and add entry to it (test stops notification) + EAmount, // used for looping through the test cases + }; +public: + virtual void RunTestL() = 0; + ~CTestApp(); + void ConstructL(); + +private: // from MCalProgressCallBack + void Progress(TInt ) {;} + TBool NotifyProgress() {return EFalse;} + void Completed(TInt aError); + +protected: + CCalTestLibrary* iCalTestLibrary; + CPeriodic* iTimer; + TBool iActiveSchedulerStarted; + RChunk iChunk; + RSemaphore iSemaphore; + TInt* iNumExpectedChanges; + TCalChangeEntry* iExpectedChanges; + TInt* iTestCase; + }; + +#endif // __TCAL_OBSERVER_H__