telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopBackcsca.cpp
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopBackcsca.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,241 @@
+// 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 implements SCA retrieval and setting tests.
+// See CDataCall.cpp for fully documented test scenario.
+// 
+//
+
+/**
+ @file
+*/
+
+
+#include "Te_LoopBackcsca.h"
+#include "../../hayes/TSYCONFG.H" // for KInternetAccessPoint
+
+//
+// Test-side class
+// With the assistance of the base class, this class must start the emulator
+// and drive the ETel API.
+//
+CTestDriveSca* CTestDriveSca::NewL(const TScriptList aScriptListEntry)
+	{
+	CTestDriveSca* aA = new (ELeave) CTestDriveSca(aScriptListEntry);
+	CleanupStack::PushL(aA);
+	aA->ConstructL();
+	CleanupStack::Pop();
+	return (aA);
+	}
+
+CTestDriveSca::CTestDriveSca(const TScriptList aScriptListEntry) :
+	iScriptListEntry(aScriptListEntry)
+	{}
+
+CTestDriveSca::~CTestDriveSca()
+	{}
+
+TInt CTestDriveSca::RunTestL()
+	{
+	iCurrentScript = iScriptListEntry;
+	return (StartEmulatorL());
+	}
+
+
+
+TInt CTestDriveSca::DriveETelApiL()
+//
+// This function contains the real meat of the Client-side test code
+//
+	{
+	INFO_PRINTF1(_L("Opening SMS Messaging...\n"));
+
+	RMobileSmsMessaging sms;
+	TESTL(sms.Open(iPhone) == KErrNone);
+
+	INFO_PRINTF1(_L("Initialising the Phone...\n"));
+
+	TRequestStatus reqStatus;
+	
+	RMobilePhone::TMMTableSettings tableSettings;
+	tableSettings.iLocId=KInternetAccessPoint;
+	RMobilePhone::TMMTableSettingsPckg tableSettingsPckg(tableSettings);
+	iPhone.InitialiseMM(reqStatus, tableSettingsPckg); 	
+
+	User::WaitForRequest(reqStatus);
+	TESTL(reqStatus == KErrNone);
+	
+	RMobileSmsMessaging::TMobileSmspEntryV1 newSmspEntry;
+	RMobileSmsMessaging::TMobileSmspEntryV1 checkSmspEntry;
+
+	INFO_PRINTF1(_L("Retrieve default SMSP list\n"));
+
+	INFO_PRINTF1(_L("Store new SMSP list\n"));
+
+	newSmspEntry.iValidParams = RMobileSmsMessaging::KSCAIncluded;
+	newSmspEntry.iServiceCentre.iTypeOfNumber=RMobilePhone::EInternationalNumber;
+	newSmspEntry.iServiceCentre.iNumberPlan=RMobilePhone:: EIsdnNumberPlan;
+	newSmspEntry.iServiceCentre.iTelNumber.Copy(_L("441632960000"));
+
+	TRAP_IGNORE(SetSmspListL(newSmspEntry,sms));
+
+	INFO_PRINTF1(_L("Check SMSP list contains new entry\n"));
+ 	TRAP_IGNORE(GetSmspListL(checkSmspEntry,sms));
+
+	//Check SMSP list contains new entry 
+	TESTL(checkSmspEntry.iValidParams == RMobileSmsMessaging::KSCAIncluded);
+	TESTL(checkSmspEntry.iServiceCentre.iTypeOfNumber==RMobilePhone::EInternationalNumber);
+	TESTL(checkSmspEntry.iServiceCentre.iNumberPlan==RMobilePhone:: EIsdnNumberPlan);
+	TESTL(checkSmspEntry.iServiceCentre.iTelNumber==_L("441632960000"));
+
+	INFO_PRINTF1(_L("Display SMSP list contains new entry\n"));
+
+	DisplaySmspEntry(checkSmspEntry);
+
+	INFO_PRINTF1(_L("Closing SMS Messaging...\n"));
+	sms.Close();
+
+	return (KErrNone);
+	}
+
+
+void CTestDriveSca::GetSmspListL(RMobileSmsMessaging::TMobileSmspEntryV1& aSmspEntry,RMobileSmsMessaging& aSms)
+/**
+ * This function tests CRetrieveMobilePhoneSmspList
+ */
+	{
+	CTestGetSmspList* retrieveSmspList;
+	CMobilePhoneSmspList* smspList;
+
+// We have 	ActiveScheduler already.
+//	CActiveScheduler* testActiveScheduler = new(ELeave) CActiveScheduler();
+//	TESTL(testActiveScheduler != NULL);
+//	CActiveScheduler::Install(testActiveScheduler);
+
+	retrieveSmspList = CTestGetSmspList::NewLC(aSms);
+	CleanupStack::PushL(retrieveSmspList);
+
+	retrieveSmspList->Start();
+	CActiveScheduler::Start();
+
+	smspList = retrieveSmspList->RetrieveList();
+
+	TInt count = smspList->Enumerate();
+	INFO_PRINTF2(_L("SMSP list has %d entries\n"), count);
+
+	TInt i;
+	for (i=0; i<count; i++)
+		{
+		aSmspEntry = smspList->GetEntryL(i);
+		INFO_PRINTF3(_L("Entry %d: Service Centre = >%S<\n"),i,&aSmspEntry.iServiceCentre.iTelNumber);
+		}
+
+	CleanupStack::PopAndDestroy();
+	delete smspList;
+//	delete testActiveScheduler;
+//	User::After(1000000);		// Give user time to see the test results 
+	}
+
+
+void CTestDriveSca::SetSmspListL(RMobileSmsMessaging::TMobileSmspEntryV1& aSmspEntry,RMobileSmsMessaging& aSms)
+/**
+ * This function tests writing service centre address
+ */
+	{
+	CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL();
+	CleanupStack::PushL(smspList);
+
+	smspList->AddEntryL(aSmspEntry);
+
+	TRequestStatus reqStatus;
+
+	aSms.StoreSmspListL(reqStatus, smspList);
+	User::WaitForRequest(reqStatus);
+	TESTL(reqStatus.Int()==KErrNone);
+
+	CleanupStack::PopAndDestroy(); // smspList;
+	}
+
+void CTestDriveSca::DisplaySmspEntry(RMobileSmsMessaging::TMobileSmspEntryV1& aSmspEntry)
+	{
+	INFO_PRINTF1(_L("SMS Param Entry:\n"));
+	INFO_PRINTF2(_L("  Index = %d:\n"), aSmspEntry.iIndex);
+	INFO_PRINTF2(_L("  Text = %S:\n"), &aSmspEntry.iText);
+	INFO_PRINTF2(_L("  Valid Params = %d\n"), aSmspEntry.iValidityPeriod);
+
+	INFO_PRINTF1(_L("  Destination:\n"));
+	DisplayMobileAddr(aSmspEntry.iDestination);
+
+	INFO_PRINTF1(_L("  SCA:\n"));
+	DisplayMobileAddr(aSmspEntry.iServiceCentre);
+
+	INFO_PRINTF2(_L("  Protocol Id     = %d\n"), aSmspEntry.iProtocolId);
+	INFO_PRINTF2(_L("  DCS             = %d\n"), aSmspEntry.iDcs);
+	INFO_PRINTF2(_L("  Validity Period = %d\n"), aSmspEntry.iValidityPeriod);
+	}
+
+void CTestDriveSca::DisplayMobileAddr(RMobilePhone::TMobileAddress aMobileAddr)
+	{
+	switch (aMobileAddr.iTypeOfNumber)
+		{
+		case RMobilePhone::EUnknownNumber:
+			INFO_PRINTF1(_L("    Type of Number = Unknown\n"));
+			break;
+		case RMobilePhone::EInternationalNumber:
+			INFO_PRINTF1(_L("    Type of Number = International\n"));
+			break;
+		case RMobilePhone::ENationalNumber:
+			INFO_PRINTF1(_L("    Type of Number = National\n"));
+			break;
+		case RMobilePhone::ENetworkSpecificNumber:
+			INFO_PRINTF1(_L("    Type of Number = Network Specific\n"));
+			break;
+		case RMobilePhone::ESubscriberNumber:
+			INFO_PRINTF1(_L("    Type of Number = Subscriber\n"));
+			break;
+		case RMobilePhone::EAbbreviatedNumber:
+			INFO_PRINTF1(_L("    Type of Number = Abbreviated\n"));
+			break;
+		default:
+			INFO_PRINTF2(_L("    Type of Number = %d\n"), aMobileAddr.iTypeOfNumber);
+			break;
+		}
+
+	switch (aMobileAddr.iNumberPlan)
+		{
+		case RMobilePhone::EUnknownNumberingPlan:
+			INFO_PRINTF1(_L("    Number Plan = Unknown\n"));
+			break;
+		case RMobilePhone::EIsdnNumberPlan:
+			INFO_PRINTF1(_L("    Number Plan = ISDN\n"));
+			break;
+		case RMobilePhone::EDataNumberPlan:
+			INFO_PRINTF1(_L("    Number Plan = Data\n"));
+			break;
+		case RMobilePhone::ETelexNumberPlan:
+			INFO_PRINTF1(_L("    Number Plan = Telex\n"));
+			break;
+		case RMobilePhone::EPrivateNumberPlan:
+			INFO_PRINTF1(_L("    Number Plan = Private\n"));
+			break;
+		case RMobilePhone::ENationalNumberPlan:
+			INFO_PRINTF1(_L("    Number Plan = National\n"));
+			break;
+		default:
+			INFO_PRINTF2(_L("    Number Plan = %d\n"), aMobileAddr.iNumberPlan);
+			break;
+		}
+
+	INFO_PRINTF2(_L("  Tel # = %S\n"), &aMobileAddr.iTelNumber);
+
+	}