diff -r 000000000000 -r f979ecb2b13e pimappservices/calendar/tsrc/tcal_servershutdown.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pimappservices/calendar/tsrc/tcal_servershutdown.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,226 @@ +// Copyright (c) 2007-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: +// tcal_servershutdown: +// This test is intended to test the delay added to the calendar file before it is closed +// +// + +#ifndef __TCAL_SERVERSHUTDOWN_H__ +#define __TCAL_SERVERSHUTDOWN_H__ + +#include +#include +#include +#include +#include +#include +#include "caltestoom.h" +#include "caltestlib.h" + + +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT +#include +#include "ASCliSession.h" +class CCalInstanceView; +#endif + + + +_LIT(KTestName, "TCal_ServerShutdown"); +RTest test(KTestName); + +// Two sample calendar files +_LIT(KServerShutdownCalFile, "c:tcal_servershutdown_calfile"); +_LIT(KServerShutdownCalFileMultifFile, "c:tcal_servershutdown_calfile_multi_file"); + +// v9.1 calendar file - conversion test +_LIT(KServerShutdown91CalFile, "c:tcal_servershutdown_calfile_v91"); + +// Calendar file - delete test +_LIT(KServerShutdownCalFileToDelete, "c:tcal_servershutdown_calfile_ToDelete"); +_LIT(KServerShutdownCalFileToDeleteRAM, "c:\\private\\10003a5b\\tcal_servershutdown_calfile_ToDelete"); + +_LIT(KServerShutdownCalFileToDeleteOOM, "c:tcal_servershutdown_calfile_ToDelete"); +_LIT(KServerShutdownCalFileToDeleteRAM_OOM, "c:\\private\\10003a5b\\tcal_servershutdown_calfile_ToDelete"); + +// Non-existent calendar filename +_LIT(KServerShutdownBadCalFileName, "c:tcal_servershutdown_calfile_ShouldNotExist"); + +// Calendar files in ROM (origin) +_LIT(KServerShutdownCalFileROM, "z:\\private\\10003a5b\\tcal_servershutdown_calfile"); +_LIT(KServerShutdownCalFileMultiFileROM, "z:\\private\\10003a5b\\tcal_servershutdown_calfile_multi_file"); +_LIT(KServerShutdown91CalFileROM, "z:\\private\\10003a5b\\tcal_servershutdown_calfile_v91"); + +// Calendar files in RAM (Destination) +_LIT(KServerShutdownCalFileRAM, "c:\\private\\10003a5b\\tcal_servershutdown_calfile"); +_LIT(KServerShutdownCalFileMultiFileRAM, "c:\\private\\10003a5b\\tcal_servershutdown_calfile_multi_file"); +_LIT(KServerShutdown91CalFileRAM, "c:\\private\\10003a5b\\tcal_servershutdown_calfile_v91"); + +// Expectd minimum delay before the calendar file is closed +const TTimeIntervalMicroSeconds32 KServerShutdownDelayMin = 5000000; +// Maximum possible delay before the calendar file is closed +const TTimeIntervalMicroSeconds32 KServerShutdownDelayMax = 6000000; + +// Delay to test the cancellation of the calendar close delay timers +const TTimeIntervalMicroSeconds32 KServerCancelDelay = 3000000; + +const TUid KServerUid2 = {0x1000008D}; +const TUid KServerUid3 = {0x101F502A}; +_LIT(KConsoleAlarmAlertServerImg, "ConsoleAlarmAlertServer"); + +class CServerShutdownTestManager : public CActive, public MCalProgressCallBack, public MCalTestOomCallBack + { +public: + enum TTestCases + { + ETestServerShutdownWithIndex, + ETestServerShutdownCancelWithIndexStart, + ETestServerShutdownCancelWithIndexCancelled, + ETestServerShutdownCancelWithIndexShutdown, + ETestServerShutdownDeleteFile, + ETestServerShutdownDeleteMultiFiles, + ETestServerShutdownProcessExit, + ETestServerShutdownOOMDeleteFile, + ETestServerShutdownOOMOpenCloseFile, + ETestServerSingleSessionOpenTwiceStart, + ETestServerSingleSessionOpenTwiceShutdown, + ETestServerMultiSessionSingleFileOpenStart, + ETestServerMultiSessionSingleFileOpen, + ETestServerMultiSessionSingleFileOpenShutdown, + ETestServerMultiSessionMultiFileOpenStart, + ETestServerMultiSessionMultiFileOpenShutdown, + ETestServerShutdownOpenInvalidFileLeave, + ETestServerShutdownv91CalendarFileConversion, +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT + ETestServerShutdownWithSystemStateNotification, + ETestServerShutdownWithSystemStateNotificationAsync, + ETestServerShutdownWithSystemStateNotificationInstance, + ETestServerShutdownWithSystemStateNotificationNormal +#endif + }; + +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT + enum TSystemStateNotifications + { + ESystemStateNormal, + ESystemStateShutdown, + ESystemStateAck + }; +#endif + + static CServerShutdownTestManager* NewLC(TInt aPriority); + ~CServerShutdownTestManager(); + + void RunAllTestsL(); + +private: + void RunL(); + void DoCancel(); + + void ProcessLogonL(); + void ShutdownProcessL(const TDesC& aProcessUid); + + // from MCalProgressCallBack + void Progress(TInt aPercentageCompleted); + void Completed(TInt aError); + TBool NotifyProgress(); + + // from MCalTestOomCallBack + void OomTestL(TType aType, TInt aFailAt); + + CServerShutdownTestManager(TInt aPriority); + void ConstructL(); + + void TestServerShutdownWithIndexL(); + void TestServerShutdownCancelWithIndexL(); + void TestServerShutdownDeleteFileL(); + void TestServerShutdownDeleteMultiFilesL(); + void TestServerShutdownDeleteFileOOML(TInt aFailAt); + void TestServerShutdownOpenCloseFileOOML(); + void TestServerShutdownProcessExitL(); + void TestServerShutdownOOML(); + void TestServerShutdownSingleSessionOpenTwiceL(); + void TestServerShutdownMultiSessionSingleFileOpenL(); + void TestServerShutdownMultiSessionMultiFileOpenL(); + void TestServerShutdownOpenInvalidFileLeaveL(); + void TestServerShutdownTestOldCalendarFileConversionL(); +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT + void TestServerShutdownWithSystemStateNotificationsL(); + void TestServerShutdownWithSystemStateNotificationsAsyncL(); + void TestServerShutdownWithStateNotificationAndInstanceViewL(); + void TestServerShutdownWithNormalSystemStateNotification(); + void CreateSystemStateNotificationProperty(); + void TestSystemAckNotification(); + void TestPostShutdownOperationsL(const TDesC8& aGuid, TInt aErr, TInt aAlarmCount = 0); + void TestAsycnDeleteOperationL(); + void TestInstanceViewOperationsL(); + void ClearAllAlarmsL(); +#endif + + // Record a timestamp before initiating server shutdown + void RecordTimeStampBeforeServerShutdown(); + // Record a timestamp after initiating server shutdown, calculate the period of shutdown and ensure that is within the expected range + void TestServerShutdownTime(); + + void CreateSessionL(); + void CreateAdditionalSessionL(); + + void CloseSession(TBool aWaitToClose); + void CloseAdditionalSession(TBool aWaitToClose); +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT + void CreateEntry(const TDesC8& aGuid); + void CreateRecurringEntriesL(const TDesC8& aGuid); + void CreateInstanceViewL(TBool aWaitToOpen); +#endif + void CreateEntryViewL(const TDesC& aCalFile, TBool aWaitToOpen); + + void CreateAdditionalEntryViewL(const TDesC& aCalFile, TBool aWaitToOpen); + + void CloseEntryView(); + void CloseAdditionalEntryView(); +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT + void CloseInstanceView(); + void SendSystemStateNotification(TSystemStateNotifications aSystemStateNotification); + void SubscribeToSystemNotification(); +#endif + + // Async delay helper functions + void AsyncDelay(TTimeIntervalMicroSeconds32 aMicroseconds); + static TInt AsyncDelayCallBack(TAny* aPtr); + + RProcess iProcess; + RPIMTestServer iPIMTestServer; + CTestRegister* iFileRegister; + + CPeriodic* iPeriodic; + + CCalSession* iSession; + CCalSession* iAdditionalSession; + CCalEntryView* iEntryView; + CCalEntryView* iAdditionalEntryView; + + TUint32 iSrvTimerStartTicks; + TInt iNanoTickPeriod; + + TInt iTestCase; +#ifdef SYMBIAN_SYSTEM_STATE_MANAGEMENT + CCalInstanceView* iInstanceView; + RProperty iSystemStateNotification; + TUid iMyUid; + TInt itcal_key; + RASCliSession iAlarmServer; +#endif + }; + +#endif