telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopBackCSmsdelete.cpp
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopBackCSmsdelete.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,270 @@
+// 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 simple SMS Storage Delete tests.
+// See CDataCall.cpp for fully documented test scenario.
+// 
+//
+
+/**
+ @file
+*/
+
+#include <e32test.h>
+#include <mmretrieve.h>
+#include <etelmm.h>
+#include "Te_LoopBackCSmsdelete.h"
+#include "../../hayes/TSYCONFG.H" // for KInternetAccessPoint
+
+
+#define DMMTSY_SMS_MESSAGE_PDU2		_L8("22221234567899876543212222")
+#define DMMTSY_SMS_STORE_INDEX2		(45)
+//
+// Test-side class
+// With the assistance of the base class, this class must start the emulator
+// and drive the ETel API.
+//
+CTestDriveSmsDelete* CTestDriveSmsDelete::NewL(const TScriptList aScriptListEntry)
+	{
+	CTestDriveSmsDelete* aA = new (ELeave) CTestDriveSmsDelete(aScriptListEntry);
+	CleanupStack::PushL(aA);
+	aA->ConstructL();
+	CleanupStack::Pop();
+	return (aA);
+	}
+
+CTestDriveSmsDelete::CTestDriveSmsDelete(const TScriptList aScriptListEntry) :
+	iScriptListEntry(aScriptListEntry)
+	{}
+
+CTestDriveSmsDelete::~CTestDriveSmsDelete()
+	{}
+
+TInt CTestDriveSmsDelete::RunTestL()
+	{
+	iCurrentScript = iScriptListEntry;
+	return StartEmulatorL();
+	}
+
+TInt CTestDriveSmsDelete::DriveETelApiL()
+//
+// This function contains the real meat of the Client-side test code
+//
+	{
+	RMobileSmsMessaging sms;
+	RMobileSmsStore smsSimStore;
+
+	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);
+
+	INFO_PRINTF1(_L("Opening SMS Messaging...\n"));
+	TESTL(sms.Open(iPhone) == KErrNone);
+
+ 	INFO_PRINTF1(_L("Opening SMS SIM Storage...\n"));
+	TESTL(smsSimStore.Open(sms, KETelCombinedSmsStore) == KErrNone); 
+	
+	TestSmsDeleteL(smsSimStore);
+
+	INFO_PRINTF1(_L("End of Sms Delete tests\n"));
+
+	smsSimStore.Close();
+	sms.Close();
+
+	return (KErrNone);
+	}
+
+ 
+void CTestDriveSmsDelete::TestSmsDeleteL(RMobileSmsStore& aSmsSimStore)
+	{
+
+ //	Get SMS store information
+	TRequestStatus   Status1,Status2;
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1 asyncInfo;
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg asyncInfoPckg(asyncInfo);
+	
+	// asynchronous
+	INFO_PRINTF1(_L("Mobile Phone SMS Store Info\n"));
+	aSmsSimStore.GetInfo(Status1, asyncInfoPckg); 
+	User::WaitForRequest(Status1);
+	INFO_PRINTF2(_L("SMS GetInfo Status before Write = %d\n "),Status1.Int());
+
+	if(Status1==KErrNone)
+		{
+		INFO_PRINTF1(_L("Mobile Phone SMS Store Info Before Write\n"));
+		asyncInfo=asyncInfoPckg();
+		DisplayPhoneStoreInfo(asyncInfo);
+		}
+
+	INFO_PRINTF1(_L("Mobile Phone SMS Store Write\n"));
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entry1;
+	RMobileSmsStore::TMobileGsmSmsEntryV1Pckg entry1Pckg(entry1);
+	entry1.iMsgData = DMMTSY_SMS_MESSAGE_PDU2;
+	
+	aSmsSimStore.Write(Status2, entry1Pckg);
+	
+	User::WaitForRequest(Status2);
+	TESTL(Status2==KErrNone); 
+	INFO_PRINTF2(_L("SMS Write Status = %d\n "),Status2.Int());
+
+	aSmsSimStore.GetInfo(Status1, asyncInfoPckg); 
+	User::WaitForRequest(Status1); 
+
+	
+	INFO_PRINTF2(_L("SMS GetInfo Status After Write = %d\n "),Status1.Int());
+
+	if(Status1==KErrNone)
+		{
+		INFO_PRINTF1(_L("Mobile Phone SMS Store Info After Write\n"));
+		asyncInfo=asyncInfoPckg();
+		DisplayPhoneStoreInfo(asyncInfo);
+		}
+	
+	INFO_PRINTF1(_L("SMS Delete - \n "));
+	aSmsSimStore.Delete(Status2,1);
+ 	User::WaitForRequest(Status2);
+    TESTL(Status2==KErrNone);   
+	INFO_PRINTF2(_L("SMS Delete Status = %d\n "),Status2.Int());
+
+	INFO_PRINTF1(_L("Mobile Phone SMS Store Info After Delete\n"));
+	
+	aSmsSimStore.GetInfo(Status1, asyncInfoPckg); 
+	User::WaitForRequest(Status1);
+	INFO_PRINTF2(_L("SMS GetInfo Status After delete = %d\n "),Status1.Int());
+
+	if(Status1==KErrNone)
+		{
+		INFO_PRINTF1(_L("Mobile Phone SMS Store Info After Write\n"));
+		asyncInfo=asyncInfoPckg();
+		DisplayPhoneStoreInfo(asyncInfo);
+		}
+
+
+	}
+
+
+void CTestDriveSmsDelete::DisplayPhoneStoreInfo(RMobilePhoneStore::TMobilePhoneStoreInfoV1& aStoreInfo)
+	{
+	INFO_PRINTF1(_L("Mobile Phone Store Info:\n"));
+	INFO_PRINTF2(_L("  Name = %S\n"), &aStoreInfo.iName);\
+
+	switch (aStoreInfo.iType)
+		{
+		case RMobilePhoneStore::EPhoneStoreTypeUnknown:
+			INFO_PRINTF1(_L("  Type = Unknown\n"));
+			break;
+		case RMobilePhoneStore::EShortMessageStore:
+			INFO_PRINTF1(_L("  Type = Short Message\n"));
+			break;
+		case RMobilePhoneStore::ENamStore:
+			INFO_PRINTF1(_L("  Type = NAM\n"));
+			break;
+		case RMobilePhoneStore::EPhoneBookStore:
+			INFO_PRINTF1(_L("  Type = Phonebook\n"));
+			break;
+		case RMobilePhoneStore::EEmergencyNumberStore:
+			INFO_PRINTF1(_L("  Type = Emergency Number\n"));
+			break;
+		case RMobilePhoneStore::EOwnNumberStore:
+			INFO_PRINTF1(_L("  Type = Own Number\n"));
+			break;
+		default:
+			INFO_PRINTF2(_L("  Type = %d\n"), aStoreInfo.iType);
+			break;
+		}
+
+	INFO_PRINTF2(_L("  Total Entries = %d\n"), aStoreInfo.iTotalEntries);
+	INFO_PRINTF2(_L("  Used Entries  = %d\n"), aStoreInfo.iUsedEntries);
+
+
+	// display the caps for the base class RMobilePhoneStore
+	INFO_PRINTF2(_L("  SMS Store Capabilities = 0x%x\n"), aStoreInfo.iCaps);
+	INFO_PRINTF1(_L("  Phone Store Capabilities:\n"));
+	if (aStoreInfo.iCaps & static_cast<TUint32>(RMobilePhoneStore::KCapsWholeStore))
+		INFO_PRINTF1(_L("  Whole Store Supported\n"));
+	if (aStoreInfo.iCaps & RMobilePhoneStore::KCapsIndividualEntry)
+		INFO_PRINTF1(_L("  Individual Entry Supported\n"));
+	if (aStoreInfo.iCaps & RMobilePhoneStore::KCapsReadAccess)
+		INFO_PRINTF1(_L("  Read Access Supported\n"));
+	if (aStoreInfo.iCaps & RMobilePhoneStore::KCapsWriteAccess)
+		INFO_PRINTF1(_L("  Write Access Supported\n"));
+	if (aStoreInfo.iCaps & RMobilePhoneStore::KCapsDeleteAll)
+		INFO_PRINTF1(_L("  Delete All Supported\n"));
+	if (aStoreInfo.iCaps & RMobilePhoneStore::KCapsNotifyEvent)
+		INFO_PRINTF1(_L("  Notify Event Supported\n"));
+
+	// display the caps for the derived class RMobileSmsStore
+	// these caps use the same variable as the base class
+	INFO_PRINTF1(_L("  SMS Store Capabilities:\n"));
+	if (aStoreInfo.iCaps & RMobileSmsStore::KCapsUnreadMessages)
+		INFO_PRINTF1(_L("  Unread Messages Supported\n"));
+	if (aStoreInfo.iCaps & RMobileSmsStore::KCapsReadMessages)
+		INFO_PRINTF1(_L("  Read Messages Supported\n"));
+	if (aStoreInfo.iCaps & RMobileSmsStore::KCapsSentMessages)
+		INFO_PRINTF1(_L("  Sent Messages Supported\n"));
+	if (aStoreInfo.iCaps & RMobileSmsStore::KCapsUnsentMessages)
+		INFO_PRINTF1(_L("  Unsent Messages Supported\n"));
+	if (aStoreInfo.iCaps & RMobileSmsStore::KCapsGsmMessages)
+		INFO_PRINTF1(_L("  GSM Messages Supported\n"));
+	
+	}
+ 
+
+//
+// Emulator-side class
+// With the assistance of the base class, this class must run the designated script
+//
+CTestSmsDelMess* CTestSmsDelMess::NewL(const TScript* aScript)
+	{
+	CTestSmsDelMess* aA = new (ELeave) CTestSmsDelMess(aScript);
+	CleanupStack::PushL(aA);
+	aA->ConstructL();
+	CleanupStack::Pop();
+	return (aA);
+	}
+
+CTestSmsDelMess::CTestSmsDelMess(const TScript* aScript) :
+	iScript(aScript)
+	{}
+
+void CTestSmsDelMess::ConstructL()
+	{
+	CATScriptEng::ConstructL();
+	}
+
+CTestSmsDelMess::~CTestSmsDelMess()
+	{}
+
+TInt CTestSmsDelMess::Start()
+	{
+	StartScript(iScript);
+	return (KErrNone);
+	}
+
+void CTestSmsDelMess::SpecificAlgorithmL(TInt /* aParam */)
+	{
+	}
+
+void CTestSmsDelMess::Complete(TInt aError)
+	{
+	iReturnValue = aError;
+	CActiveScheduler::Stop();
+	}