diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopBackCSmsdelete.cpp --- /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 +#include +#include +#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(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(); + }