--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmserver/Test/TAlarmData.cpp Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,551 @@
+// Copyright (c) 1997-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:
+//
+
+#include "ASTstAlarmTest.h"
+
+// System includes
+#include <asclisoundplay.h>
+
+// Constants
+const TInt KWaitInterval = 10; // time delay after which alarms complete in seconds.
+// Literal constants
+_LIT8(KSomeAlarmData, "This is some 8-bit data");
+
+
+static void testDataInvalidAlarmL()
+//
+//
+//
+ {
+ TheAlarmTest.Test().Next(_L("Testing data methods with invalid alarm ids"));
+ //
+ TInt r;
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(KNullAlarmId);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+
+ // AlarmDataDetatch has been deprecated (since it's spelt wrong).
+ // We still call it here though, since removing it would break SC.
+ r = TheAlarmTest.Session().AlarmDataDetatch(KNullAlarmId);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(KNullAlarmId, KSomeAlarmData);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ HBufC8* buf = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pBuf(buf->Des());
+ r = TheAlarmTest.Session().GetAlarmData(KNullAlarmId, pBuf);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ TheAlarmTest(*buf == KNullDesC8, __LINE__);
+ CleanupStack::PopAndDestroy(buf);
+
+ HBufC8* buf2 = NULL;
+ r = TheAlarmTest.Session().GetAlarmData(KNullAlarmId, buf2);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ TheAlarmTest(buf2 == NULL, __LINE__);
+ }
+
+
+static void testDataValidAlarmL()
+//
+//
+//
+ {
+
+ TheAlarmTest.Test().Next(_L("Data API test"));
+
+ TInt r;
+ TAlarmId alarmId;
+ TASShdAlarm alarm;
+ static TRequestStatus status;
+ //
+ alarm.Message() = _L("Alarm with data");
+ alarm.NextDueTime().HomeTime();
+ alarm.NextDueTime() += TTimeIntervalSeconds(KWaitInterval);
+ //
+ r = TheAlarmTest.Session().AlarmAdd(alarm);
+ TheAlarmTest(r==KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(status == EAlarmChangeEventAlarmData, __LINE__);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ User::WaitForRequest(status);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrInUse, __LINE__);
+ TheAlarmTest(status == KRequestPending, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KSomeAlarmData().Size());
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest.TestEventBuffer(EAlarmChangeEventAlarmData, status, alarmId);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ alarm.NextDueTime().HomeTime();
+ alarm.NextDueTime() += TTimeIntervalSeconds(KWaitInterval);
+ r = TheAlarmTest.Session().AlarmAdd(alarm);
+ TheAlarmTest(r==KErrNone, __LINE__);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(status == EAlarmChangeEventAlarmData, __LINE__);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ User::WaitForRequest(status);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest.TestEventBuffer(EAlarmChangeEventAlarmData, status, alarmId);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(status == EAlarmChangeEventAlarmData, __LINE__);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ User::WaitForRequest(status);
+ //
+ HBufC8* buf = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pBuf(buf->Des());
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), pBuf);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf == KSomeAlarmData, __LINE__);
+ //
+ HBufC8* buf2 = NULL;
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), buf2);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf2 == KSomeAlarmData, __LINE__);
+ delete buf2;
+ //
+
+
+
+ TheAlarmTest.Test().Next(_L("Waiting for alarm to expire"));
+ TheAlarmTest.WaitForEvent(EAlarmChangeEventTimerExpired, status, alarmId);
+ TheAlarmTest(alarmId == alarm.Id(), __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrInUse, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KSomeAlarmData().Size(), __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+
+ TheAlarmTest.Session().AlarmAddWithNotification(status, alarm, KSomeAlarmData);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ HBufC8* alarmdata = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pAlarmdata(alarmdata->Des());
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), pAlarmdata);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*alarmdata == KSomeAlarmData, __LINE__);
+ CleanupStack::PopAndDestroy(alarmdata);
+ //
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), buf2);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf2 == KSomeAlarmData, __LINE__);
+ delete buf2;
+ //
+ alarm.Reset();
+ alarm.Message() = _L("Alarm with data");
+ alarm.NextDueTime().HomeTime();
+ alarm.NextDueTime() += TTimeIntervalSeconds(KWaitInterval);
+ //
+ r = TheAlarmTest.Session().AlarmAdd(alarm, KSomeAlarmData);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ HBufC8* alarmdata1 = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pAlarmdata1(alarmdata1->Des());
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), pAlarmdata1);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*alarmdata1 == KSomeAlarmData, __LINE__);
+ CleanupStack::PopAndDestroy(alarmdata1);
+ //
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), buf2);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf2 == KSomeAlarmData, __LINE__);
+ delete buf2;
+ //
+
+#ifdef _DEBUG
+#ifdef __WINS__
+
+
+ TheAlarmTest.Test().Next(_L("Debug only - shutting down server"));
+ TheAlarmTest.Session().__DbgShutDownServer();
+ User::After(3 * 1000000);
+ //
+
+
+ TheAlarmTest.Test().Next(_L("Debug only - starting up server"));
+ TheAlarmTest(TheAlarmTest.Session().Connect() == KErrNone, __LINE__);
+ //
+
+
+ TheAlarmTest.Test().Next(_L("Debug only - testing data restoration"));
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrInUse, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KSomeAlarmData().Size(), __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmAdd(alarm);
+ TheAlarmTest(r==KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+
+#endif
+#endif
+ CleanupStack::PopAndDestroy(buf);
+ }
+
+
+static void testDataInvalidUtcAlarmL()
+ {
+ TheAlarmTest.Test().Next(_L("Testing data methods with invalid alarm ids"));
+ //
+ TInt r;
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(KNullAlarmId);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+
+ // AlarmDataDetatch has been deprecated (since it's spelt wrong).
+ // We still call it here though, since removing it would break SC.
+ r = TheAlarmTest.Session().AlarmDataDetatch(KNullAlarmId);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(KNullAlarmId, KSomeAlarmData);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ HBufC8* buf = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pBuf(buf->Des());
+ r = TheAlarmTest.Session().GetAlarmData(KNullAlarmId, pBuf);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ TheAlarmTest(*buf == KNullDesC8, __LINE__);
+ CleanupStack::PopAndDestroy(buf);
+ //
+ //
+ HBufC8* buf2 = NULL;
+ r = TheAlarmTest.Session().GetAlarmData(KNullAlarmId, buf2);
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ TheAlarmTest(buf2 == NULL, __LINE__);
+ //
+ }
+
+static void testDataValidUtcAlarmL()
+ {
+
+ TheAlarmTest.Test().Next(_L("Data API test"));
+
+ TInt r;
+ TAlarmId alarmId;
+ TASShdAlarm alarm;
+ static TRequestStatus status;
+ TTime time;
+ //
+ alarm.Message()=(_L("Alarm with data"));
+ time.UniversalTime();
+ time += TTimeIntervalSeconds(KWaitInterval);
+ alarm.SetUtcNextDueTime(time);
+ //
+ r = TheAlarmTest.Session().AlarmAdd(alarm);
+ TheAlarmTest(r==KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(status == EAlarmChangeEventAlarmData, __LINE__);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ User::WaitForRequest(status);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrInUse, __LINE__);
+ TheAlarmTest(status == KRequestPending, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KSomeAlarmData().Size());
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest.TestEventBuffer(EAlarmChangeEventAlarmData, status, alarmId);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ time.UniversalTime();
+ time += TTimeIntervalSeconds(KWaitInterval);
+ alarm.SetUtcNextDueTime(time);
+ r = TheAlarmTest.Session().AlarmAdd(alarm);
+ TheAlarmTest(r==KErrNone, __LINE__);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(status == EAlarmChangeEventAlarmData, __LINE__);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ User::WaitForRequest(status);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest.TestEventBuffer(EAlarmChangeEventAlarmData, status, alarmId);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ TheAlarmTest.WaitForNotificationBufferToBeEmptied(status, alarmId);
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(status == EAlarmChangeEventAlarmData, __LINE__);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ User::WaitForRequest(status);
+ //
+ HBufC8* buf = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pBuf(buf->Des());
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), pBuf);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf == KSomeAlarmData, __LINE__);
+ //
+ HBufC8* buf2 = NULL;
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), buf2);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf2 == KSomeAlarmData, __LINE__);
+ delete buf2;
+ //
+
+
+ TheAlarmTest.Test().Next(_L("Waiting for alarm to expire"));
+ TheAlarmTest.WaitForEvent(EAlarmChangeEventTimerExpired, status, alarmId);
+ TheAlarmTest(alarmId == alarm.Id(), __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrInUse, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KSomeAlarmData().Size(), __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+
+ TheAlarmTest.Session().AlarmAddWithNotification(status, alarm, KSomeAlarmData);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ HBufC8* alarmdata = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pAlarmdata(alarmdata->Des());
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), pAlarmdata);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*alarmdata == KSomeAlarmData, __LINE__);
+ CleanupStack::PopAndDestroy(alarmdata);
+ //
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), buf2);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf2 == KSomeAlarmData, __LINE__);
+ delete buf2;
+ //
+ alarm.Reset();
+ alarm.Message()=(_L("Alarm with data"));
+ time.UniversalTime();
+ time += TTimeIntervalSeconds(KWaitInterval);
+ alarm.SetUtcNextDueTime(time);
+ //
+ r = TheAlarmTest.Session().AlarmAdd(alarm, KSomeAlarmData);
+ TheAlarmTest(alarmId = alarm.Id(), __LINE__);
+ HBufC8* alarmdata1 = HBufC8::NewLC(KSomeAlarmData().Size());
+ TPtr8 pAlarmdata1(alarmdata1->Des());
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), pAlarmdata1);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*alarmdata1 == KSomeAlarmData, __LINE__);
+ CleanupStack::PopAndDestroy(alarmdata1);
+ //
+ r = TheAlarmTest.Session().GetAlarmData(alarm.Id(), buf2);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest(*buf2 == KSomeAlarmData, __LINE__);
+ delete buf2;
+ //
+
+#ifdef _DEBUG
+#ifdef __WINS__
+
+
+ TheAlarmTest.Test().Next(_L("Debug only - shutting down server"));
+ TheAlarmTest.Session().__DbgShutDownServer();
+ User::After(3 * 1000000);
+ //
+
+
+ TheAlarmTest.Test().Next(_L("Debug only - starting up server"));
+ TheAlarmTest(TheAlarmTest.Session().Connect() == KErrNone, __LINE__);
+ //
+
+
+ TheAlarmTest.Test().Next(_L("Debug only - testing data restoration"));
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrInUse, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KSomeAlarmData().Size(), __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmAdd(alarm);
+ TheAlarmTest(r==KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataAttachL(alarm.Id(), KSomeAlarmData);
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataDetach(alarm.Id());
+ TheAlarmTest(r == KErrNone, __LINE__);
+ //
+ r = TheAlarmTest.Session().AlarmDataSize(alarm.Id());
+ TheAlarmTest(r == KErrNotFound, __LINE__);
+
+#endif
+#endif
+ CleanupStack::PopAndDestroy(buf);
+ }
+
+/**
+@SYMTestCaseID PIM-TALARMDATA-0001
+*/
+static void doTestsL()
+ {
+ CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
+ CleanupStack::PushL(scheduler);
+ CActiveScheduler::Install(scheduler);
+
+ const TInt KGmtOffset = 3600;
+ _LIT(KTime, "20040730:050000.000000"); //In summer time
+ TInt err = User::SetUTCTimeAndOffset(TTime(KTime), KGmtOffset);
+
+ TheAlarmTest.Start(_L("@SYMTestCaseID PIM-TALARMDATA-0001 Connecting to server"));
+ TInt r = TheAlarmTest.Session().Connect();
+ TheAlarmTest(r == KErrNone, __LINE__);
+ TheAlarmTest.TestClearStoreL();
+
+ TheAlarmTest.Session().__DbgPreventUserNotify(ETrue);
+
+ // Test valid alarm set with local wall-clock time.
+ TheAlarmTest.Test().Printf(_L("Alarms set with local wall-clock time.\n"));
+ testDataValidAlarmL();
+ TheAlarmTest.TestClearStoreL();
+ TheAlarmTest.Test().Printf(_L("Alarms set with UTC time.\n"));
+
+ // Test valid alarm set with UTC time.
+ testDataValidUtcAlarmL();
+
+ // Test invalid alarm set with local wall-clock time.
+ TheAlarmTest.Test().Printf(_L("Alarms set with ocal wall-clock time.\n"));
+ testDataInvalidAlarmL();
+
+ // Tests invalid alarm set with UTC time.
+ TheAlarmTest.Test().Printf(_L("Alarms set with UTC time.\n"));
+ testDataInvalidUtcAlarmL();
+
+ TheAlarmTest.TestClearStoreL();
+ TheAlarmTest.Session().Close();
+
+ CleanupStack::PopAndDestroy(scheduler);
+ }
+
+GLDEF_C TInt E32Main()
+//
+// Test the alarm server.
+//
+ {
+ __UHEAP_MARK;
+ TInt ret = KErrNone;
+ CTrapCleanup* cleanup = CTrapCleanup::New();
+ if (!cleanup)
+ return KErrNoMemory;
+
+ TheAlarmTest.Title();
+ TheAlarmTest.TestStartServers();
+ //
+ TRAPD(error, doTestsL());
+ TheAlarmTest(error == KErrNone, __LINE__);
+ //
+ TRAP(ret,TheAlarmTest.EndL());
+ TheAlarmTest.Test().Close();
+ ASTstAlarmTest::Close();
+
+ delete cleanup;
+ __UHEAP_MARKEND;
+ return ret;
+ }