--- a/adaptationlayer/tsy/simatktsy_dll/internal/test/simatktsy_testtool/simatk/src/simatkblocks.cpp Mon Nov 09 10:31:01 2009 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,991 +0,0 @@
-/*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: Specific class for SIM ATK TSY tests
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <stifparser.h>
-#include "simatk.h"
-#include "saticon.h"
-#include "saterrors.h"
-
-#include "commandgetinkey.h"
-#include "commanddisplaytext.h"
-#include "commandgetinput.h"
-#include "commandsendss.h"
-#include "commandsendsm.h"
-#include "commandsetupcall.h"
-#include "commandplaytone.h"
-#include "commandsetupmenu.h"
-#include "commandselectitem.h"
-#include "satcallcontrol.h"
-#include "satmosmscontrol.h"
-#include "commandrefresh.h"
-#include "commandsendussd.h"
-#include "commandlocalinfo.h"
-#include "commandsetupeventlist.h"
-#include "commandsetupidlemodetext.h"
-#include "commandopenchannel.h"
-#include "commandsenddata.h"
-#include "commandlaunchbrowser.h"
-#include "commandsenddtmf.h"
-#include "commandlanguagenotification.h"
-#include "commandclosechannel.h"
-#include "commandreceivedata.h"
-#include "commandgetchannelstatus.h"
-
-
-// CONSTANTS
-_LIT( KCommandType, "CommandType" );
-
-// Commands can omit SessionEnd procedure from script by setting this flag to 0
-_LIT( KSessionEnd, "SessionEnd" );
-
-
-// -----------------------------------------------------------------------------
-// CSimAtk::Delete
-// Delete here all resources allocated and opened from test methods.
-// Called from destructor.
-// -----------------------------------------------------------------------------
-//
-void CSimAtk::Delete()
- {
- iCoreLog->Log( _L( "CSimAtk::Delete" ) );
- // No implementation required
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::RunMethodL
-// Run specified method. Contains also table of test methods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::RunMethodL
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::RunMethodL" ) );
-
- // Store parser
- if ( !iParser )
- {
- iParser = &aItem;
- }
-
- static TStifFunctionInfo const KFunctions[] =
- {
- // Copy this line for every implemented function.
- // First string is the function name used in TestScripter script file.
- // Second is the actual implementation member function.
-
- // Generic
- ENTRY( "Open", CSimAtk::Open ),
- ENTRY( "Close", CSimAtk::Close ),
- ENTRY( "WaitForRequest", CSimAtk::WaitForRequest ),
- ENTRY( "Delay", CSimAtk::Delay ),
- // ISC Control
- ENTRY( "LoadIscTests", CSimAtk::LoadIscTests ),
- ENTRY( "RunIscTestCase", CSimAtk::RunIscTestCase ),
- ENTRY( "SyncIscTestCase", CSimAtk::SyncIscTestCase ),
- ENTRY( "CancelTestCase", CSimAtk::CancelTestCase ),
-
- ENTRY( "CheckData", CSimAtk::CheckData ),
- ENTRY( "CheckProactiveCommand", CSimAtk::CheckData ),
- ENTRY( "CheckIcon", CSimAtk::CheckIcon ),
-
- ENTRY( "SendResponse", CSimAtk::SendResponse ),
- ENTRY( "SendEnvelope", CSimAtk::SendResponse ),
- ENTRY( "SendTerminalResponse", CSimAtk::SendResponse )
- };
-
- const TInt count = sizeof( KFunctions ) /
- sizeof( TStifFunctionInfo );
-
- return RunInternalL( KFunctions, count, aItem );
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::Open
-// Open method function.
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::Open
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::Open" ) );
-
- TInt ret( KErrNotFound );
- TPtrC string;
- aItem.GetString ( _L( "Open" ), string );
-
- if ( _L( "SAT" ) == string )
- {
- ret = iSat.Open( iRphone );
- iCoreLog->Log( _L( "CSimAtk::Open: SAT, return %d" ), ret );
- }
- else if ( _L( "IscControl" ) == string )
- {
- ret = iRIscTestControl.Connect();
- iCoreLog->Log( _L( "CSimAtk::Open: IscControl, return %d" ), ret );
- }
- else if ( _L( "SmsMessaging" ) == string )
- {
- ret = iSmsMessaging.Open( iRphone );
- iCoreLog->Log( _L( "CSimAtk::Open: SmsMessaging, return %d" ), ret );
- }
- else
- {
- // If any Open item not found in SimAtk,then checks Core.
- CSimAtkCore::SetString( string );
- ret = CSimAtkCore::Open( aItem );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::Close
-// Close method function.
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::Close
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::Close" ) );
- TInt ret( KErrNotFound );
- TPtrC string;
- aItem.GetString ( _L( "Close" ), string );
-
- if ( _L( "SAT" ) == string)
- {
- iSat.Close();
- ret = KErrNone;
- }
- else if ( _L( "IscControl" ) == string)
- {
- iRIscTestControl.Close();
- ret = KErrNone;
- }
- else if ( _L( "SmsMessaging" ) == string)
- {
- iSmsMessaging.Close();
- ret = KErrNone;
- }
- else
- {
- // If any Close item not found in SimAtk, then checks Core.
- CSimAtkCore::SetString( string );
- ret = CSimAtkCore::Close( aItem );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::NotifySimAtkL
-// Activates the notify
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::NotifySimAtkL
- (
- TRequestStatus& aReqStatus,
- const TSatIpc& aNotifyIpc
- )
- {
- iCoreLog->Log( _L( "CSimAtk::NotifySimAtk" ) );
-
- TInt ret( KErrNone );
-
- CSatBase* command = NULL;
-
- TPtrC notifyName( MapIpcToString( aNotifyIpc ) );
-
- TInt index ( 0 );
-
- // Create test class only if it does not already exist
- if ( KErrNotFound == FindIndex ( aNotifyIpc, index ) )
- {
- switch ( aNotifyIpc )
- {
- case ESatNotifyDisplayTextPCmd:
- {
- command = new (ELeave) CCommandDisplayText( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyGetInkeyPCmd:
- {
- command = new (ELeave) CCommandGetInkey( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyGetInputPCmd:
- {
- command = new (ELeave) CCommandGetInput( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyPlayTonePCmd:
- {
- command = new (ELeave) CCommandPlayTone( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyRefreshPCmd:
- {
- command = new (ELeave) CCommandRefresh( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyRefreshRequiredParam:
- {
- command = new (ELeave) CCommandRefresh( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySendSsPCmd:
- {
- command = new (ELeave) CCommandSendSs( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
-
- // Set Cc pointer
- CCommandSendUssd* ss
- = static_cast<CCommandSendUssd*> ( command );
- ss->SetCallControl( &iCallControl );
- break;
- }
- case ESatNotifySendSmPCmd:
- {
- command = new (ELeave) CCommandSendSm( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySetUpCallPCmd:
- {
- command = new (ELeave) CCommandSetUpCall( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
-
- // Set Cc pointer
- CCommandSendUssd* call
- = static_cast<CCommandSendUssd*> ( command );
- call->SetCallControl( &iCallControl );
- break;
- }
- case ESatNotifySetUpMenuPCmd:
- {
- command = new (ELeave) CCommandSetUpMenu( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySelectItemPCmd:
- {
- command = new (ELeave) CCommandSelectItem( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySendUssdPCmd:
- {
- command = new (ELeave) CCommandSendUssd( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
-
- // Set Cc pointer
- CCommandSendUssd* ussd
- = static_cast<CCommandSendUssd*> ( command );
- ussd->SetCallControl( &iCallControl );
-
- break;
- }
- case ESatNotifyLocalInfoPCmd:
- {
- command = new (ELeave) CCommandLocalInfo( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySetUpEventListPCmd:
- {
- command = new (ELeave) CCommandSetUpEventList( aNotifyIpc,
- iSat, *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySetUpIdleModeTextPCmd:
- {
- command = new (ELeave) CCommandSetUpIdleModeText( aNotifyIpc,
- iSat, *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyOpenChannelPCmd:
- {
- command = new (ELeave) CCommandOpenChannel( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySendDataPCmd:
- {
- command = new (ELeave) CCommandSendData( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyLaunchBrowserPCmd:
- {
- command = new (ELeave) CCommandLaunchBrowser( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifySendDtmfPCmd:
- {
- command = new (ELeave) CCommandSendDtmf( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyLanguageNotificationPCmd:
- {
- command = new (ELeave) CCommandLanguageNotification(
- aNotifyIpc, iSat, *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyCloseChannelPCmd:
- {
- command = new (ELeave) CCommandCloseChannel( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyReceiveDataPCmd:
- {
- command = new (ELeave) CCommandReceiveData( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyGetChannelStatusPCmd:
- {
- command = new (ELeave) CCommandGetChannelStatus( aNotifyIpc,
- iSat, *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyCallControlRequest:
- {
- command = new (ELeave) CSatCallControl( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
-
- // Store pointer for SendSs/Ussd & Setup Call commands
- iCallControl = command;
- break;
- }
- case ESatNotifyMoSmControlRequest:
- {
- command = new (ELeave) CSatMoSmsControl( aNotifyIpc, iSat,
- *iParser, *iCoreLog );
- break;
- }
- case ESatNotifyProactiveSimSessionEnd:
- {
- // None. SimSessionEnd is notified automatically.
- break;
- }
- default:
- {
- iCoreLog->Log( _L( "CSimAtk::NotifySimAtk %S not supported! \
- Aborting..." ), ¬ifyName );
- ret = KErrNotSupported;
- CancelTestCase( ret );
- break;
- }
- }
-
- if ( KErrNone == ret )
- {
- // Put command to array
- iArray->AppendL( command );
- }
-
- }
- else
- {
- // Reusing existing test class
- command = iArray->At( index );
- }
-
-
- // If command was created, notify SAT
- if ( NULL != command )
- {
- // Notify the SAT about command and SimSessionEnd
- iCoreLog->Log( _L( "CSimAtk::NotifySimAtk \
- %S async method activated" ), ¬ifyName );
-
- command->NotifySat( aReqStatus );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::NotifySimAtkCancel
-// Cancels notifys
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::NotifySimAtkCancel
- (
- const TSatIpc& aNotify
- )
- {
- iCoreLog->Log( _L( "CSimAtk::NotifySimAtkCancel" ) );
-
- TInt ret( KErrNone );
- TInt index ( 0 );
-
- ret = FindIndex( aNotify, index );
-
- if ( KErrNone == ret )
- {
- iArray->At( index )->CancelRequest();
-
- iArray->Delete( index );
-
- if ( ESatNotifyCallControlRequest == aNotify )
- {
- iCallControl = NULL;
- }
-
- iCoreLog->Log( _L( "CSimAtk::NotifySimAtkCancel \
- Async method cancelled" ) );
- }
- else
- {
- iCoreLog->Log( _L( "CSimAtk::NotifySimAtkCancel \
- Cancellation requested but command not found! Aborting..." ) );
-
- CancelTestCase( ret );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::LoadIscTests
-// Connects to ISC test control and loads XML file
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::LoadIscTests
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::LoadIscTests" ) );
-
- TPtrC string;
- aItem.GetString ( _L( "LoadIscTests" ), string );
- TInt ret( iRIscTestControl.LoadTestCases( string ) );
-
- if ( KErrNone == ret )
- {
- iCoreLog->Log( _L( "CSimAtk::LoadIscTests:\
- %S loaded successfully." ), &string );
- }
- else
- {
- iCoreLog->Log( _L( "CSimAtk::LoadIscTests \
- Loading failed: %S " ), &string );
-
- TPtrC errorString = MapErrorCodeToString( ret );
-
- iCoreLog->Log( _L( "CSimAtk::LoadIscTests \
- %S" ), &errorString );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::RunIscTestCase
-// Starts the test procedure
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::RunIscTestCase
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::RunIscTestCase" ) );
-
- TInt ret( KErrNone );
-
- // XML file ID
- TInt xmlId(0);
- if ( KErrNone == ( ret = aItem.GetInt( _L( "RunIscTestCase" ), xmlId ) ) )
- {
- // Test case ID
- TInt testId(0);
- if ( KErrNone == ( ret = aItem.GetNextInt( testId ) ) )
- {
- iCoreLog->Log( _L( "CSimAtk::RunIscTestCase: Id: %d" ), testId );
- TInt test = ( xmlId << 20 ) | testId;
- iRIscTestControl.RunTestCase( test, iIscStatus );
- }
- }
- if ( KErrNone != ret )
- {
- iCoreLog->Log( _L( "CSimAtk::RunIscTestCase Running failed!" ) );
- CancelTestCase( ret );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::WaitForStatus
-// Halts the execution until an async req is completed.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::WaitForRequest
- (
- CStifItemParser& /*aItem*/
- )
- {
- iCoreLog->Log( _L( "CSimAtk::WaitForRequest" ) );
-
- User::WaitForRequest( iIscStatus );
-
- TInt errorStatus( iIscStatus.Int() );
-
- if ( KErrNone == errorStatus && iNeedSessionEnd && iSessionEnd.TimedOut() )
- {
- errorStatus = KErrTimedOut;
- }
-
- if ( KErrNone != errorStatus )
- {
- CancelTestCase( errorStatus );
- }
-
- return errorStatus;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::SyncIscTestCase
-// Connects to ISC test control and loads XML file
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::SyncIscTestCase
- (
- CStifItemParser& /*aItem*/
- )
- {
- TInt ret ( KErrNone );
-
- iCoreLog->Log( _L( "CSimAtk::SyncIscTestCase" ) );
-
- ret = iRIscTestControl.SyncTestCase();
-
- iCoreLog->Log( _L( "CSimAtk::SyncIscTestCase \
- Synch complete. Status: %d" ), ret );
-
- if ( KErrNone != ret )
- {
- CancelTestCase( ret );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::CancelTestCase
-// Test client originated test cancellation
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::CancelTestCase
- (
- const TInt aReason
- )
- {
- TPtrC error( MapErrorCodeToString( aReason ) );
-
- iCoreLog->Log( _L( "CSimAtk::CancelTestCase: %S" ), &error );
-
- if ( iArray )
- {
- // Cancel all notifys and empty the array
- for ( TInt i = 0 ; i < iArray->Count() ; i ++ )
- {
- iArray->At( i )->CancelRequest();
- }
- iArray->Reset();
-
- iCallControl = NULL;
- }
-
- iSessionEnd.Cancel();
-
- iRIscTestControl.CancelTestCase();
-
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::CancelTestCase
-// Script originated test cancellation
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::CancelTestCase
- (
- CStifItemParser& /*aItem*/
- )
- {
- iCoreLog->Log( _L( "CSimAtk::CancelTestCase" ) );
-
- if ( iArray )
- {
- // Cancel all notifys and empty the array
- for ( TInt i = 0 ; i < iArray->Count() ; i ++ )
- {
- iArray->At( i )->CancelRequest();
- }
- iArray->Reset();
-
- iCallControl = NULL;
- }
-
- iRIscTestControl.CancelTestCase();
-
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::Delay
-// Halt script execution for given time
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::Delay
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::Delay" ) );
-
- TInt delay(0);
- aItem.GetNextInt( delay );
- User::After( delay );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::CheckData
-// Verifies the validity of received data
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::CheckData
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::CheckData" ) );
-
- TInt ret( KErrNone );
- TInt commandIndex;
-
- if ( KErrNone == FindIndex( aItem, commandIndex ) )
- {
- ret = iArray->At( commandIndex )->CheckData();
- }
- else
- {
- iCoreLog->Log( _L( "CSimAtk::CheckData Unidentified command" ) );
- ret = KErrGeneral;
- }
-
- // Proactive command data was invalid or unexpected command received
- if (KErrNone != ret)
- {
- iCoreLog->Log( _L( "CSimAtk::CheckData \
- Checking of data failed, aborting." ) );
- CancelTestCase( ret );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::SendResponse
-// Creates data packet from a script and sends it to Sim
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::SendResponse
- (
- CStifItemParser& aItem
- )
- {
- iCoreLog->Log( _L( "CSimAtk::SendResponse" ) );
-
- TInt ret( KErrNone );
- TInt commandIndex;
-
- if ( KErrNone == FindIndex( aItem, commandIndex ) )
- {
- // Find command from array
- CSatCommandBase* proactiveCommand =
- static_cast<CSatCommandBase*>(iArray->At( commandIndex ) );
-
- // Check if notifying of SessionEnd is omitted from script. Needed
- // by default
- iNeedSessionEnd = ETrue;
- aItem.GetInt( KSessionEnd, iNeedSessionEnd );
-
- // In case of sending envelopes, SessionEnd has to be notified here
- if ( iNeedSessionEnd && KRequestPending != iSessionEnd.Status() )
- {
- iSessionEnd.NotifySat();
- }
-
- ret = proactiveCommand->SendResponse();
-
- if ( iNeedSessionEnd && KErrNone == ret )
- {
- // Sending OK, wait for a while for session end
- ret = iSessionEnd.WaitSessionEnd();
- }
-
- switch ( ret )
- {
- case KErrNone:
- {
- iCoreLog->Log( _L( "CSimAtk::SendResponse \
- Response sent successfully" ), ret );
- break;
- }
- case KErrTimedOut:
- {
- // When there's data coming from SIM, SessionEnd is not
- // completed and time out occurs. This is not error however,
- // final check for SessionEnd status is made in WaitForRequest
- ret = KErrNone;
-
- iCoreLog->Log( _L( "CSimAtk::SendResponse \
- SessionEnd Timed out" ) );
- break;
- }
- default:
- {
- iCoreLog->Log( _L( "CSimAtk::SendResponse \
- Command returned an error code %d!" ), ret );
- break;
- }
- }
- }
- else
- {
- iCoreLog->Log( _L( "CSimAtk::SendResponse \
- Unidentified command" ) );
- ret = KErrGeneral;
- }
-
- if ( KErrNone != ret )
- {
- CancelTestCase( ret );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::CheckIcon
-// Verifies the validity of provided icon info
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::CheckIcon
- (
- CStifItemParser& aItem
- )
- {
- TInt ret( KErrNone );
-
- // Try to load mandatory SimType parameter from script
- TPtrC simType;
-
- if ( KErrNone == aItem.GetString( KLoadIcon, simType ) )
- {
- TInt instanceNumber( 0 );
- TInt recordId( 0 );
-
- // Get instance number identifier
- if ( KErrNone != aItem.GetNextInt( instanceNumber ) )
- {
- ret = KErrArgument;
- }
- // Get record id.
- else if ( KErrNone != aItem.GetNextInt( recordId ) )
- {
- ret = KErrArgument;
- }
- else
- {
- CSatIcon satIcon( iSat, simType, recordId );
- ret = satIcon.CheckIcon( iCoreLog, instanceNumber );
- }
- }
- else
- {
- ret = KErrArgument;
- }
-
- if ( KErrNone != ret )
- {
- CancelTestCase( ret );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::FindIndex
-// Finds the index of command in array based on the script parameter
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::FindIndex
- (
- CStifItemParser& aItem, // Reference to parser
- TInt& aIndex // Index output
- )
- {
- iCoreLog->Log( _L( "CSimAtk::FindIndex (by name)") );
-
- TInt ret ( KErrNotFound );
- TPtrC cmdName;
-
- if ( iArray )
- {
- if ( KErrNone != aItem.GetString( KCommandType, cmdName ) )
- {
- // Script did not provide command type.
- // Return index 0 (first element) as a default.
- if ( 0 < iArray->Count() )
- {
- aIndex = 0;
- ret = KErrNone;
- }
- }
- else
- {
- // Script provided a command type. For example:
- // "CommandType ESatNotifyDisplayTextPCmd"
- // Loop throught the array and look for matching command type.
- // If array contains several commands of same type, latest is.
- // returned
- TBool requestPending( EFalse ); // Not used
- TSatIpc requestedCommand =
- MapStringToIpc( cmdName, requestPending );
-
- // Find command based on type
- ret = FindIndex( requestedCommand, aIndex );
- }
- } // if (iArray)
- else
- {
- // iArray is NULL
- ret = KErrCorrupt;
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::FindIndex
-// Finds the index of command in array based on the ipc of the command
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CSimAtk::FindIndex
- (
- const TSatIpc& aRequestedIpc, // Requested type
- TInt& aIndex // Index output
- )
- {
- iCoreLog->Log( _L( "CSimAtk::FindIndex (by IPC)") );
- TInt ret ( KErrNotFound );
-
- if ( iArray )
- {
- TInt i = iArray->Count() - 1;
-
- for ( ; KErrNotFound == ret && i >= 0 ; i-- )
- {
- if ( iArray->At( i )->MatchIpc( aRequestedIpc ) )
- {
- aIndex = i;
- ret = KErrNone;
- }
- }
- }
-
- if ( KErrNone != ret )
- {
- TPtrC cmdName( MapIpcToString( aRequestedIpc ) );
- iCoreLog->Log( _L( "CSimAtk::FindIndex \
- %S not found!"), &cmdName );
- }
-
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// CSimAtk::MapErrorCodeToString
-//
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TPtrC CSimAtk::MapErrorCodeToString( const TInt& aErrorCode )
- {
- TPtrC errorString( KNullDesC );
-
- for ( TUint8 i( 0 ) ; errorString == KNullDesC
- && i < KSatErrorListSize ; i++ )
- {
- if ( KSatErrorList[i].iErrorCode == aErrorCode )
- {
- errorString.Set( KSatErrorList[i].iErrorString );
- }
- }
-
- if ( errorString == KNullDesC )
- {
- errorString.Set( _L( "Unidentified error code" ) );
-
- iCoreLog->Log( _L( "CSimAtk::MapErrorCodeToString \
- Error code %d" ), aErrorCode );
- }
-
- return errorString;
- }
-
-// End of File