Rework addition of Symbian splash screen to reduce the source impact (uses SVG from Bug 2414)
Notes: by using the OPTION SOURCEDIR parameter in the mifconv extension instructions, I can
arrange to use the same source file name in sfimage, without having to export over the original
Nokia file. This means that the name inside splashscreen.mbg is the same, which removes the need
for the conditional compilation in SplashScreen.cpp, and gets rid of sf_splashscreen.mmp.
// 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:
// Test session notification of alarms
//
//
#include "ASTstAlarmTest.h"
#include "testserver.h"
// Constants
const TUint KHeapMinSize=0x01000;
const TUint KHeapMaxSize=0x10000;
// Globals
static TAlarmId TheAlarmId = KNullAlarmId;
static TBool TheNotifyFlag=EFalse;
static TBool TheNotifyThread=ETrue;
static TRequestStatus TheCurrentRequest=KErrNone;
static TRequestStatus TheSessionStatus;
//
static void testOtherNotify(TBool aExpected);
static void testThisNotify(TInt aExpected=KErrNone);
static TInt ntfThreadMain(TAny* /*aPtr*/)
//
// Main thread of notification thread
//
{
RASCliSession almSvr;
const TInt r=almSvr.Connect();
TheAlarmTest(r==KErrNone, __LINE__);
//
TAlarmId alarmId;
TRequestStatus stat;
FOREVER
{
FOREVER
{
almSvr.NotifyChange(stat, alarmId);
User::After(KTimeToWait);
if (stat == KRequestPending)
break;
User::WaitForRequest(stat);
}
User::WaitForRequest(stat);
//
if (!TheNotifyThread)
break;
//
TheAlarmTest(stat >= EAlarmChangeEventState && stat <= EAlarmChangeEventLast, __LINE__);
TheNotifyFlag = ETrue;
}
//
TheNotifyFlag=ETrue;
return(KErrNone);
}
static void startNotifyThread()
//
// Start the thread that determines NotifyOnChange
//
{
TheAlarmTest.Test().Next(_L("Starting the notification test thread"));
RThread t;
TInt r=t.Create(_L("NtfThread"),ntfThreadMain,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL);
TheAlarmTest(r==KErrNone, __LINE__);
TRequestStatus tStat;
t.Logon(tStat);
t.SetPriority(EPriorityMore);
TheAlarmTest(tStat==KRequestPending, __LINE__);
t.Resume();
TheAlarmTest(tStat==KRequestPending, __LINE__);
User::After(KTimeToWait);
}
static void testSetupNotify()
//
// Set up the notify requests
//
{
TheNotifyFlag=EFalse;
startNotifyThread();
//
TheAlarmTest.Test().Next(_L("Set up notification requests"));
//
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
TheAlarmTest.Session().NotifyChangeCancel();
//
TheAlarmTest(TheCurrentRequest == KErrCancel, __LINE__);
TheAlarmTest(TheNotifyFlag == EFalse, __LINE__);
//
#if defined(_DEBUG)
TheAlarmTest.Session().__DbgPreventUserNotify(ETrue);
#endif
//
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
}
static void testOtherNotify(TBool aExpected)
//
// Check there was a notification to the notify thread
//
{
User::After(KTimeToWait);
TheAlarmTest(TheNotifyFlag==aExpected, __LINE__);
TheNotifyFlag=EFalse;
}
static void testThisNotify(TInt aExpected)
//
// Check there the notification of this thread. Because notifications
// in the new Alarm Server are bufferred, then the first notification
// may not be the one we are looking for. Therefore we continue to
// request notifications until the buffer is exhausted, at which point,
// if we haven't yet seent the notification we were looking for, we
// panic.
//
{
if (TheCurrentRequest != aExpected)
{
// Need to exhaust the event buffer
// If the buffer is empty (server side) then the current
// request will still be outstanding, therefore the test
// has failed.
User::After(KTimeToWait);
TheAlarmTest(TheCurrentRequest != KRequestPending, __LINE__);
// Eat current request
User::WaitForRequest(TheCurrentRequest);
// Now go through each item in the buffer, requesting them
// one by one
FOREVER
{
TheAlarmTest.Session().NotifyChange(TheCurrentRequest, TheAlarmId);
User::After(KTimeToWait);
TheAlarmTest(TheCurrentRequest != KRequestPending, __LINE__);
User::WaitForRequest(TheCurrentRequest);
if (TheCurrentRequest == aExpected)
break;
}
}
// Request another notification
if (TheCurrentRequest != KRequestPending)
{
// Eat all the rest
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
}
}
static void testTimeChangeL()
//
// Test that time notifications work
//
{
RPIMTestServer serv;
User::LeaveIfError(serv.Connect());
TheAlarmTest.Test().Next(_L("Time changes and alarms set with local wall-clock time."));
//
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
//
TTime home;
home.HomeTime();
home+=TTimeIntervalMinutes(2);
serv.SetHomeTime(home);
User::After(KTimeToWait);
//
testThisNotify(EAlarmChangeEventSystemDateTimeChanged);
testOtherNotify(ETrue);
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
TASShdAlarm alarm;
alarm.Message() = _L("Time");
alarm.NextDueTime().HomeTime();
alarm.NextDueTime() += TTimeIntervalMinutes(30);
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
TheAlarmTest(TheSessionStatus == KRequestPending, __LINE__);
//
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
//
TInt r;
TAlarmId nextDueAlarmId;
//
r = TheAlarmTest.Session().GetNextDueAlarmId(nextDueAlarmId);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(nextDueAlarmId = alarm.Id(), __LINE__);
//
TASShdAlarm retrievedAlarm;
r = TheAlarmTest.Session().GetAlarmDetails(nextDueAlarmId, retrievedAlarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(retrievedAlarm.Message() == _L("Time"), __LINE__);
//
serv.SetHomeTime(retrievedAlarm.NextDueTime());
serv.Close();
User::After(KTimeToWait);
//
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventSystemDateTimeChanged);
TheAlarmTest(TheSessionStatus != KRequestPending, __LINE__);
User::WaitForRequest(TheSessionStatus);
//
r = TheAlarmTest.Session().GetNextDueAlarmId(nextDueAlarmId);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(nextDueAlarmId == KNullAlarmId, __LINE__);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
testOtherNotify(ETrue);
//
alarm.NextDueTime() += TTimeIntervalDays(1);
alarm.Message() = _L("DayTime");
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
testThisNotify(EAlarmChangeEventAlarmAddition);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
//
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
testThisNotify(EAlarmChangeEventAlarmAddition);
testOtherNotify(ETrue);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
//
TheAlarmTest(TheSessionStatus==KErrCancel, __LINE__);
testOtherNotify(ETrue);
}
static void testSetAndCancelPast()
//
// Test that each type of alarm goes off if set in the past.
// Careful of DayAlarms - cant be sure if a time in today is past/before the current time.
//
{
TheAlarmTest.Test().Next(_L("Set alarms with local wall-clock time in past"));
testOtherNotify(EFalse);
//
TASShdAlarm alarm;
alarm.Message() = _L("Past");
alarm.SoundName() = _L("none");
alarm.NextDueTime().HomeTime();
alarm.NextDueTime() += TTimeIntervalDays(-2);
//
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
//
TInt r;
//
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TAlarmId clockAlarmId = alarm.Id();
//
testThisNotify(EAlarmChangeEventAlarmAddition);
testOtherNotify(ETrue);
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
//
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
TheAlarmTest(TheSessionStatus == KErrNone, __LINE__);
User::WaitForRequest(TheSessionStatus);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
testOtherNotify(ETrue);
//
r = TheAlarmTest.Session().AlarmDelete(clockAlarmId);
TheAlarmTest(r == 0, __LINE__);
testThisNotify(EAlarmChangeEventAlarmDeletion);
testOtherNotify(ETrue);
}
static void testSetAndCancelFuture()
//
// Set alarms in future
//
{
TheAlarmTest.Test().Next(_L("Set alarms with local wall-clock time in future"));
TheAlarmTest(TheNotifyFlag==EFalse, __LINE__);
//
TASShdAlarm alarm;
alarm.Message() = _L("Future");
alarm.NextDueTime().HomeTime();
alarm.NextDueTime() += TTimeIntervalDays(1);
alarm.NextDueTime() += TTimeIntervalMinutes(30);
//
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TheAlarmTest(TheSessionStatus == KRequestPending, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
//
TAlarmId id;
TASShdAlarm retrievedAlarm;
TInt r;
//
r = TheAlarmTest.Session().GetNextDueAlarmId(id);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(id == alarm.Id(), __LINE__);
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), retrievedAlarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(retrievedAlarm.Id() == alarm.Id(), __LINE__);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testOtherNotify(ETrue);
TheAlarmTest(TheSessionStatus==KErrCancel, __LINE__);
testThisNotify(EAlarmChangeEventAlarmDeletion);
//
r = TheAlarmTest.Session().GetNextDueAlarmId(id);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(r == KNullAlarmId, __LINE__);
//
alarm.Reset();
alarm.Message() = _L("Clock");
alarm.NextDueTime().HomeTime();
alarm.NextDueTime() += TTimeIntervalDays(1);
alarm.NextDueTime() += TTimeIntervalMinutes(30);
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
//
r = TheAlarmTest.Session().GetNextDueAlarmId(id);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(id == alarm.Id(), __LINE__);
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), retrievedAlarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(retrievedAlarm.Id() = alarm.Id(), __LINE__);
//
r = TheAlarmTest.Session().SetAlarmStatus(alarm.Id(), EAlarmStatusDisabled);
TheAlarmTest(r == KErrNone, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventStatus);
//
r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmDeletion);
}
static void testSoundChange()
//
// Test that sound notifications work
//
{
TheAlarmTest.Test().Next(_L("Sound changes"));
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
TheAlarmTest.Session().CancelAlarmSilence();
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
TheAlarmTest.Session().SetAlarmSoundsSilentFor(60);
testThisNotify(EAlarmChangeEventSoundSilence);
testOtherNotify(ETrue);
TheAlarmTest.Session().CancelAlarmSilence();
testThisNotify(EAlarmChangeEventSoundSilence);
testOtherNotify(ETrue);
TheAlarmTest.Session().SetAlarmSoundsSilentFor(60);
testThisNotify(EAlarmChangeEventSoundSilence);
testOtherNotify(ETrue);
TheAlarmTest.Session().SetAlarmSoundsSilentFor(0);
testThisNotify(EAlarmChangeEventSoundSilence);
testOtherNotify(ETrue);
TheAlarmTest.Session().SetAlarmSoundState(EAlarmGlobalSoundStateOn);
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
TheAlarmTest.Session().SetAlarmSoundState(EAlarmGlobalSoundStateOff);
testThisNotify(EAlarmChangeEventGlobalSoundStateChanged);
testOtherNotify(ETrue);
TheAlarmTest.Session().SetAlarmSoundState(EAlarmGlobalSoundStateOn);
testThisNotify(EAlarmChangeEventGlobalSoundStateChanged);
testOtherNotify(ETrue);
}
static void testTimeChangeUtcL()
{
RPIMTestServer serv;
User::LeaveIfError(serv.Connect());
TheAlarmTest.Test().Next(_L("Time changes and alarms set with UTC time."));
//
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
//
TTime home;
home.HomeTime();
home+=TTimeIntervalMinutes(2);
serv.SetHomeTime(home);
User::After(KTimeToWait);
//
testThisNotify(EAlarmChangeEventSystemDateTimeChanged);
testOtherNotify(ETrue);
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
TASShdAlarm alarm;
alarm.Message()=(_L("Time"));
TTime time;
time.UniversalTime();
time += TTimeIntervalMinutes(30);
alarm.SetUtcNextDueTime(time);
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
TheAlarmTest(TheSessionStatus == KRequestPending, __LINE__);
//
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
//
TInt r;
TAlarmId nextDueAlarmId;
//
r = TheAlarmTest.Session().GetNextDueAlarmId(nextDueAlarmId);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(nextDueAlarmId = alarm.Id(), __LINE__);
//
TASShdAlarm retrievedAlarm;
r = TheAlarmTest.Session().GetAlarmDetails(nextDueAlarmId, retrievedAlarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(retrievedAlarm.Message() == _L("Time"), __LINE__);
//
User::SetUTCTime(retrievedAlarm.NextDueTime());
serv.Close();
User::After(KTimeToWait);
//
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventSystemDateTimeChanged);
TheAlarmTest(TheSessionStatus != KRequestPending, __LINE__);
User::WaitForRequest(TheSessionStatus);
//
r = TheAlarmTest.Session().GetNextDueAlarmId(nextDueAlarmId);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(nextDueAlarmId == KNullAlarmId, __LINE__);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
testOtherNotify(ETrue);
//
time = alarm.NextDueTime();
time += TTimeIntervalDays(1);
alarm.SetUtcNextDueTime(time);
alarm.Message()=(_L("DayTime"));
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
testThisNotify(EAlarmChangeEventAlarmAddition);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
//
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
testThisNotify(EAlarmChangeEventAlarmAddition);
testOtherNotify(ETrue);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
//
TheAlarmTest(TheSessionStatus==KErrCancel, __LINE__);
testOtherNotify(ETrue);
}
static void testSetAndCancelFutureUtc()
{
TheAlarmTest.Test().Next(_L("Set alarms with UTC time in future"));
TheAlarmTest(TheNotifyFlag==EFalse, __LINE__);
//
TASShdAlarm alarm;
alarm.Message()=(_L("Future"));
TTime time;
time.UniversalTime();
time += TTimeIntervalDays(1);
time += TTimeIntervalMinutes(30);
alarm.SetUtcNextDueTime(time);
//
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TheAlarmTest(TheSessionStatus == KRequestPending, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
//
TAlarmId id;
TASShdAlarm retrievedAlarm;
TInt r;
//
r = TheAlarmTest.Session().GetNextDueAlarmId(id);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(id == alarm.Id(), __LINE__);
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), retrievedAlarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(retrievedAlarm.Id() == alarm.Id(), __LINE__);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testOtherNotify(ETrue);
TheAlarmTest(TheSessionStatus==KErrCancel, __LINE__);
testThisNotify(EAlarmChangeEventAlarmDeletion);
//
r = TheAlarmTest.Session().GetNextDueAlarmId(id);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(r == KNullAlarmId, __LINE__);
//
alarm.Reset();
alarm.Message()=(_L("Clock"));
time.UniversalTime();
time += TTimeIntervalDays(1);
time += TTimeIntervalMinutes(30);
alarm.SetUtcNextDueTime(time);
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
//
r = TheAlarmTest.Session().GetNextDueAlarmId(id);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(id == alarm.Id(), __LINE__);
r = TheAlarmTest.Session().GetAlarmDetails(alarm.Id(), retrievedAlarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(retrievedAlarm.Id() == alarm.Id(), __LINE__);
//
r = TheAlarmTest.Session().SetAlarmStatus(alarm.Id(), EAlarmStatusDisabled);
TheAlarmTest(r == KErrNone, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventStatus);
//
r = TheAlarmTest.Session().AlarmDelete(alarm.Id());
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmDeletion);
}
static void testSetAndCancelPastUtc()
{
TheAlarmTest.Test().Next(_L("Set alarms with UTC time in past"));
testOtherNotify(EFalse);
//
TASShdAlarm alarm;
alarm.Message()=(_L("Past"));
alarm.SoundName()=(_L("none"));
TTime time;
time.UniversalTime();
time += TTimeIntervalDays(-2);
alarm.SetUtcNextDueTime(time);
//
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
//
TInt r;
//
r = TheAlarmTest.Session().AlarmAdd(alarm);
TheAlarmTest(r == KErrNone, __LINE__);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
TAlarmId clockAlarmId = alarm.Id();
//
testThisNotify(EAlarmChangeEventAlarmAddition);
testOtherNotify(ETrue);
TheAlarmTest.WaitForNotificationBufferToBeEmptied(TheCurrentRequest, TheAlarmId);
//
testThisNotify(KRequestPending);
testOtherNotify(EFalse);
testThisNotify(KRequestPending);
//
TheAlarmTest.Session().AlarmAddWithNotification(TheSessionStatus, alarm);
TheAlarmTest(alarm.Id() != KNullAlarmId, __LINE__);
testOtherNotify(ETrue);
testThisNotify(EAlarmChangeEventAlarmAddition);
TheAlarmTest(TheSessionStatus == KErrNone, __LINE__);
User::WaitForRequest(TheSessionStatus);
//
TheAlarmTest.Session().AlarmNotificationCancelAndDequeue(alarm.Id());
testThisNotify(EAlarmChangeEventAlarmDeletion);
testOtherNotify(ETrue);
//
r = TheAlarmTest.Session().AlarmDelete(clockAlarmId);
TheAlarmTest(r == 0, __LINE__);
testThisNotify(EAlarmChangeEventAlarmDeletion);
testOtherNotify(ETrue);
}
static void doTestsL()
{
const TInt KGmtOffset = 3600;
_LIT(KTime, "20040730:050000.000000"); //Summertime
TInt err = User::SetUTCTimeAndOffset(TTime(KTime), KGmtOffset);
TheAlarmTest(err == KErrNone, __LINE__);
TheAlarmTest.TestStartServers();
__UHEAP_FAILNEXT(1);
TheAlarmTest(TheAlarmTest.Session().Connect() == KErrNone, __LINE__);
__UHEAP_RESET;
CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
CleanupStack::PushL(scheduler);
CActiveScheduler::Install(scheduler);
//
TheAlarmTest.TestClearStoreL();
testSetupNotify();
testSoundChange();
// Alarms set with local wall-clock times.
testTimeChangeL();
testSetAndCancelFuture();
testSetAndCancelPast();
// Alarms set with UTC times.
testTimeChangeUtcL();
testSetAndCancelFutureUtc();
testSetAndCancelPastUtc();
CleanupStack::PopAndDestroy(scheduler);
TheAlarmTest.TestClearStoreL();
}
/**
@SYMTestCaseID PIM-TALARMNOTIFICATIONS-0001
*/
GLDEF_C TInt E32Main()
//
// Test the alarm server.
//
{
TInt ret = KErrNone;
TheAlarmTest.Title();
TheAlarmTest.Start(_L("@SYMTestCaseID PIM-TALARMNOTIFICATIONS-0001 Session alarms"));
__UHEAP_MARK;
CTrapCleanup* cleanup = CTrapCleanup::New();
TRAPD(err, doTestsL());
TheAlarmTest(err == KErrNone, __LINE__);
delete cleanup;
__UHEAP_MARKEND;
TheAlarmTest.Session().Close();
TRAP(ret,TheAlarmTest.EndL());
TheAlarmTest.Test().Close();
ASTstAlarmTest::Close();
//
return ret;
}