--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/buildverification/autosmoketest/messaging/Src/TestMessCreateSMSaccount.cpp Wed Sep 01 12:30:50 2010 +0100
@@ -0,0 +1,151 @@
+// Copyright (c) 2004-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 contains CTestMessCreateSmsAccount which creates an SMS
+// account folder for GSM or CDMA
+
+#include "TestMessCreateSmsAccount.h"
+#include "TestMess.h"
+
+// EPOC includes
+#include <msvids.h>
+#include <miutset.h>
+#include <msvstore.h>
+
+#include "TestMessCreateGsmSmsUtil.h"
+//Usage of Macro for CDMA mtm
+#if (defined CDMA_API_ENABLED)
+#include "TestMessCreateCdmaSmsUtil.h"
+#endif
+
+#include <csmsaccount.h>
+#include <MsvScheduleSettings.h>
+#include <MsvOffPeakTime.h>
+#include <MsvSendErrorAction.h>
+#include <MsvSysAgentAction.h>
+
+/*@{*/
+_LIT(KSCName, "scname");
+_LIT(KSCNumber, "scnumber");
+
+_LIT(KPtGSM, "GSM");
+#if (defined CDMA_API_ENABLED)
+_LIT(KPtMessageBearerType, "MessageBearerType");
+_LIT(KPtCDMA, "CDMA");
+#endif
+/*@}*/
+
+CTestMessCreateSmsAccount::CTestMessCreateSmsAccount()
+: CTestMessBase(EFalse)
+ {
+ SetTestStepName(_L("CreateSmsAccount"));
+ }
+
+/**
+ Creates the SMS account folder for GSM or CDMA. For CDMA mtm,
+ it creates the respective utility class for creating the account
+ @return TVerdict
+*/
+TVerdict CTestMessCreateSmsAccount::doTestStepL()
+ {
+ // Printing to the console and log file
+ INFO_PRINTF1(_L("Create SMS account"));
+
+ TPtrC ptrSCName;
+ TBool returnValue =GetStringFromConfig(ConfigSection(), KSCName, ptrSCName);
+ INFO_PRINTF2(_L("SC Name = %S"), &ptrSCName);
+
+ TPtrC ptrSCNumber;
+ returnValue =GetStringFromConfig(ConfigSection(), KSCNumber, ptrSCNumber);
+ INFO_PRINTF2(_L("SC Number = %S"), &ptrSCNumber);
+
+ CSmsAccount* smsAccount = CSmsAccount::NewLC();
+ CMsvScheduleSettings* scheduleSetting = CMsvScheduleSettings::NewLC();
+ CMsvOffPeakTimes* offPeakTimes=new (ELeave) CMsvOffPeakTimes();
+ CleanupStack::PushL(offPeakTimes);
+ CMsvSendErrorActions* errorActions=CMsvSendErrorActions::NewLC();
+ CMsvSysAgentActions* sysAgentActions=new (ELeave) CMsvSysAgentActions();
+ CleanupStack::PushL(sysAgentActions);
+ CSmsSettings* smsSettings = CSmsSettings::NewL();
+ CleanupStack::PushL(smsSettings);
+ SetEntryL(KMsvRootIndexEntryId);
+
+ EntryL().SetSortTypeL(SelectionOrdering());
+ CMsvEntrySelection* selection=EntryL().ChildrenWithTypeL(KUidMsvServiceEntry);
+ CleanupStack::PushL(selection);
+ TInt count=selection->Count();
+ TBool found=EFalse;
+ for (TInt i=count; i>0 && !found; )
+ {
+ SetEntryL(selection->At(--i));
+
+ // Only one Sms Service allowed
+ if ( EntryL().Entry().iMtm == KUidMsgTypeSMS &&
+ EntryL().Entry().iType == KUidMsvServiceEntry
+ )
+ {
+ found=ETrue;
+ }
+ }
+
+ if ( !found )
+ {
+ smsAccount->InitialiseDefaultSettingsL(*smsSettings);
+ smsAccount->InitialiseDefaultSettingsL(*scheduleSetting, *offPeakTimes, *errorActions, *sysAgentActions);
+
+ TPtrC messageBearerType;
+ messageBearerType.Set(KPtGSM);
+#if (defined CDMA_API_ENABLED)
+ GetStringFromConfig(ConfigSection(), KPtMessageBearerType, messageBearerType);
+ INFO_PRINTF2(_L("The message bearer type is : %S"), &messageBearerType);
+#endif
+
+ CTestMessCreateSmsUtilBase* createSmsUtil = NULL;
+ //Creates the util class for GSM or CDMA
+ if ( messageBearerType.Compare(KPtGSM)==0 )
+ {
+ createSmsUtil = new (ELeave) CTestMessCreateGsmSmsUtil(*this);
+ }
+#if (defined CDMA_API_ENABLED)
+ else if( messageBearerType.Compare(KPtCDMA)==0 )
+ {
+ createSmsUtil = new (ELeave) CTestMessCreateCdmaSmsUtil(*this);
+ }
+#endif
+ else
+ {
+ WARN_PRINTF1(_L("Unknown bearer type using Gsm"));
+ createSmsUtil= new (ELeave) CTestMessCreateGsmSmsUtil(*this);
+ }
+ CleanupStack::PushL(createSmsUtil);
+
+ //Changes the new account settings
+ createSmsUtil->SetSmsAccountSettings(*smsSettings);
+ CleanupStack::PopAndDestroy(createSmsUtil);
+
+ smsAccount->SaveSettingsL(*smsSettings);
+ smsAccount->SaveSettingsL(*scheduleSetting, *offPeakTimes, *errorActions, *sysAgentActions);
+ }
+
+ if ( TestStepResult()==EPass )
+ {
+ smsAccount->LoadSettingsL(*smsSettings);
+ smsSettings->AddServiceCenterL(ptrSCName, ptrSCNumber);
+ smsAccount->SaveSettingsL(*smsSettings);
+ }
+
+ CleanupStack::PopAndDestroy(2, smsSettings);
+ CleanupStack::PopAndDestroy(5, smsAccount);
+
+ return TestStepResult();
+ }