--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commonappservices/alarmservertest/TestAlarmSrv/EASShdOpCodeAlarmAdd1_CStep.cpp Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,135 @@
+// 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:
+// This file contains the functions to construct the Test Step and the
+// Exec_SendReceiveL() function that connects to the server and makes IPC calls.
+//
+//
+
+// Test Step header
+#include "EASShdOpCodeAlarmAdd1_CStep.h"
+
+// TO BE SAFE
+IMPORT_C TInt StartDialogThread();
+
+/**
+Constructor called from the respective Suite.cpp from their "AddTestStep" function
+Each test step initialises it's own name
+*/
+CEASShdOpCodeAlarmAdd1Step::CEASShdOpCodeAlarmAdd1Step()
+ {
+ // The server name and IPC number is obtained and all messages are checked Sync
+ iSrServerName = _L("!AlarmServer");
+ iSrMessageType = 2;
+ iSrMessageId = 200;
+ iSrMessageMask = 65536;
+ iServerPanic = _L("ALARMSERVER");
+
+ TCapability cap[] = {ECapabilityWriteUserData, ECapability_Limit};
+
+ TSecurityInfo info;
+ info.Set(RProcess());
+ TBool result = EFalse;
+
+ TInt i;
+ for (i = 0; cap[i] != ECapability_Limit; i++)
+ {
+ if (!(info.iCaps.HasCapability(cap[i])))
+ {
+ result=ETrue;
+ }
+ }
+
+ iExpectRejection = result;
+ iStepCap = 65536;
+
+ // Get a unique thread name
+ iSrChildThread.Format(_L("ChildThread_%S_%d"),&iSrServerName,iSrMessageId);
+ }
+
+/**
+This function is called by the Child Thread
+1. Create a session with the server
+2. Test an SendReceive call
+3. Informs the main thread about the status of the call using
+ a. iSessionCreated, if the a connection is established
+ b. iResultServer, holds the return value for connection
+ c. iResultSr, the return value of SendReceive call
+*/
+TInt CEASShdOpCodeAlarmAdd1Step::Exec_SendReceiveL()
+ {
+ iResultServer = CreateSession(iSrServerName,Version(),KAlarmServerAsynchronousSlotCount);
+
+ if (iResultServer!=KErrNone)
+ {
+ iResultServer=StartServer();
+ if (iResultServer!=KErrNone)
+ {
+ return(iResultServer);
+ }
+ iResultServer = CreateSession(iSrServerName,Version(),KAlarmServerAsynchronousSlotCount);
+ }
+ if(iResultServer == 0)
+ {
+ iSessionCreated = ETrue;
+ if(iSrMessageId >= 0)
+ {
+ // Modifications made to tool generated code
+ // Create a TASShdAlarm object and set its properties
+ TASShdAlarm alarm;
+ alarm.Category() = KASCliCategoryClock;
+ alarm.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
+ alarm.NextDueTime().HomeTime();
+
+ // Set the alarm to go off after 20 seconds.
+ // The alarm is intended to go off when EASShdOpCodeNotifyChange1_CStep,
+ // the next test step that will be executed, is waiting for an event to occur.
+ TInt seconds = 20;
+ alarm.NextDueTime() += TTimeIntervalSeconds(seconds);
+
+ // Construct the TIpcArgs for SendReceive
+ TPckg<TASShdAlarm> package(alarm);
+ TDesC8 emptydata = KNullDesC8;
+ TIpcArgs args(&package, emptydata.Length(), &emptydata);
+
+ // Make the IPC call
+ iResultSr = SendReceive(iSrMessageId, args);
+
+ // Create one more alarm as AlarmCancelAndDeque test step will
+ // remove one from the server
+ TASShdAlarm alarm1;
+ alarm1.Category() = KASCliCategoryClock;
+ alarm1.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
+ alarm1.NextDueTime().HomeTime();
+ seconds = 50;
+ alarm1.NextDueTime() += TTimeIntervalSeconds(seconds);
+ TPckg<TASShdAlarm> package1(alarm1);
+ TDesC8 emptydata1 = KNullDesC8;
+ TIpcArgs args1(&package1, emptydata1.Length(), &emptydata1);
+ iResultSr = SendReceive(iSrMessageId, args1);
+
+ // And one more just in case
+ TASShdAlarm alarm2;
+ alarm2.Category() = KASCliCategoryClock;
+ alarm2.RepeatDefinition() = EAlarmRepeatDefintionRepeatOnce;
+ alarm2.NextDueTime().HomeTime();
+ seconds = 70;
+ alarm2.NextDueTime() += TTimeIntervalSeconds(seconds);
+ TPckg<TASShdAlarm> package2(alarm2);
+ TDesC8 emptydata2 = KNullDesC8;
+ TIpcArgs args2(&package2, emptydata2.Length(), &emptydata2);
+ iResultSr = SendReceive(iSrMessageId, args2);
+ }
+ }
+ return iResultServer;
+ }