cellular/telephonysettings/tsrc/public/basic/PhoneSettingsTest/src/PhoneSettingsTestNetwork.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cellular/telephonysettings/tsrc/public/basic/PhoneSettingsTest/src/PhoneSettingsTestNetwork.cpp Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,606 @@
+/*
+* Copyright (c) 2002 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: Implementation of CPhoneSettingsTestNetwork class.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <StifTestModule.h>
+#include <nwdefs.h>
+#include <etelmm.h>
+#include <BADESCA.H>
+#include <PsetContainer.h>
+#include <PsetConstants.h>
+#include <PsetNetwork.h>
+#include "PhoneSettingsTest.hrh"
+#include "MPhoneSettingsTestMessageHandler.h"
+#include "PhoneSettingsTestUtilities.h"
+#include "PhoneSettingsTestDefs.h"
+#include "PhoneSettingsTestPsetRequestObserver.h"
+#include "PhoneSettingsTestNetworkInfoObserver.h"
+#include "PhoneSettingsTestNetworkModeObserver.h"
+#include "PsetSAObserver.h"
+#include "PhoneSettingsTestNetwork.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::CPhoneSettingsTestNetwork
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CPhoneSettingsTestNetwork::CPhoneSettingsTestNetwork(
+ CPhoneSettingsTestParser& aPhoneSettingsTestParser,
+ MPhoneSettingsTestMessageHandler& aPhoneSettingsTestMessageHandler ):
+ iTestParser(aPhoneSettingsTestParser),
+ iTestMessageHandler(aPhoneSettingsTestMessageHandler)
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CPhoneSettingsTestNetwork::ConstructL()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CPhoneSettingsTestNetwork* CPhoneSettingsTestNetwork::NewL(
+ CPhoneSettingsTestParser& aPhoneSettingsTestParser,
+ MPhoneSettingsTestMessageHandler& aPhoneSettingsTestMessageHandler)
+ {
+ CPhoneSettingsTestNetwork* self = new (ELeave) CPhoneSettingsTestNetwork(
+ aPhoneSettingsTestParser, aPhoneSettingsTestMessageHandler );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+// Destructor
+CPhoneSettingsTestNetwork::~CPhoneSettingsTestNetwork()
+ {
+ delete iPsetNetwork;
+ delete iPsetContainer;
+ delete iPhoneSettingsTestNetworkModeObserver;
+ delete iPhoneSettingsTestNetworkInfoObserver;
+ }
+
+// ----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::WaitTimer
+// ----------------------------------------------------------------------------
+//
+void CPhoneSettingsTestNetwork::WaitTimer(TInt aWaitTime)
+ {
+ CPeriodic* timer = CPeriodic::NewL( CActive::EPriorityStandard );
+ timer->Start( aWaitTime, aWaitTime, TCallBack( DoCallBackL, this ) );
+ iWaitTimer.Start();
+ delete timer;
+ }
+
+// ----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::DoCallBackL
+// ----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::DoCallBackL(TAny* aAny)
+ {
+ // Can't call iWaitAny.AsyncStop() in static function
+ REINTERPRET_CAST( CPhoneSettingsTestNetwork*, aAny )->Stop();
+ return KErrNone;
+ }
+
+// ----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::Stop
+// ----------------------------------------------------------------------------
+//
+void CPhoneSettingsTestNetwork::Stop()
+ {
+ iWaitTimer.AsyncStop();
+ }
+
+// ----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::SetupL
+// ----------------------------------------------------------------------------
+//
+void CPhoneSettingsTestNetwork::SetupL()
+ {
+ iPsetContainer = CPsetContainer::NewL();
+ iPhoneSettingsTestNetworkInfoObserver =
+ CPhoneSettingsTestNetworkInfoObserver::NewL();
+ iPhoneSettingsTestNetworkModeObserver =
+ CPhoneSettingsTestNetworkModeObserver::NewL();
+ iPsetNetwork = iPsetContainer->CreateNetworkObjectL(
+ *iPhoneSettingsTestNetworkInfoObserver );
+ iPsetNetwork->SetNetworkModeObserver(
+ *iPhoneSettingsTestNetworkModeObserver );
+ }
+
+// ----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TearDownL
+// ----------------------------------------------------------------------------
+//
+void CPhoneSettingsTestNetwork::TearDownL()
+ {
+ delete iPsetNetwork;
+ iPsetNetwork = NULL;
+ delete iPsetContainer;
+ iPsetContainer = NULL;
+ delete iPhoneSettingsTestNetworkModeObserver;
+ iPhoneSettingsTestNetworkModeObserver = NULL;
+ delete iPhoneSettingsTestNetworkInfoObserver;
+ iPhoneSettingsTestNetworkInfoObserver = NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestCPsetNetworkConstructAndDestructL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestCPsetNetworkConstructAndDestructL(
+ TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkConstructAndDestruct() );
+
+ // Initialize test
+ RMobilePhone phone;
+ RTelServer telServer;
+ RMobileLine line;
+ CPhoneSettingsTestUtilities::OpenPhoneL( telServer, phone, line );
+
+ CPhoneSettingsTestNetworkInfoObserver* phoneSettingsTestNetworkInfoObserver =
+ CPhoneSettingsTestNetworkInfoObserver::NewL();
+ CleanupStack::PushL( phoneSettingsTestNetworkInfoObserver );
+
+ CPhoneSettingsTestNetworkModeObserver* phoneSettingsTestNetworkModeObserver =
+ CPhoneSettingsTestNetworkModeObserver::NewL();
+ CleanupStack::PushL( phoneSettingsTestNetworkModeObserver );
+
+ CPsetNetwork* psetNetwork;
+
+ // Do tests here
+ // 1.) Test construction with Network Info observer
+ iTestMessageHandler.PrintMessage(
+ KNetworkConstructAndDestructUsingNetworkInfoObserver() );
+ psetNetwork = CPsetNetwork::NewL( phone, *phoneSettingsTestNetworkInfoObserver );
+ CleanupStack::PushL( psetNetwork );
+ ASSERT( psetNetwork != NULL );
+ CleanupStack::PopAndDestroy( psetNetwork );
+ psetNetwork = NULL;
+
+ // 2.) Test construction with Network Mode observer
+ iTestMessageHandler.PrintMessage(
+ KNetworkConstructAndDestructUsingNetworkModeObserver() );
+ psetNetwork = CPsetNetwork::NewL( phone, *phoneSettingsTestNetworkModeObserver );
+ CleanupStack::PushL( psetNetwork );
+ ASSERT( psetNetwork != NULL );
+ CleanupStack::PopAndDestroy( psetNetwork );
+ psetNetwork = NULL;
+
+ CleanupStack::PopAndDestroy( 2 );
+ CPhoneSettingsTestUtilities::ClosePhoneL( telServer, phone, line );
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkConstructAndDestruct );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestGetCurrentNetworkInfo
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestGetCurrentNetworkInfo(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkGetCurrentNetworkInfo() );
+
+ // Initialize test
+ SetupL();
+
+ MPsetNetworkSelect::TCurrentNetworkInfo networkInfo;
+
+ // Do tests here
+ TInt err = iPsetNetwork->GetCurrentNetworkInfo( networkInfo );
+ WaitTimer( KPhoneSettingsTestAsyncTimeout );
+
+ // GetCurrentNetworkInfo is deprecated and should return KErrNotSupported
+ ASSERT( err == KErrNotSupported );
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkGetCurrentNetworkInfo );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestGetNetworkSelectMode
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestGetNetworkSelectMode(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkGetNetworkSelectMode() );
+
+ // Initialize test
+ SetupL();
+
+ MPsetNetworkSelect::TSelectMode selectMode;
+
+ // Do tests here
+ TInt err = iPsetNetwork->GetNetworkSelectMode( selectMode );
+ WaitTimer( KPhoneSettingsTestAsyncTimeout );
+
+ // Parse result data
+ iTestParser.ParseTSelectMode( selectMode );
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( err, KNetworkGetNetworkSelectMode );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestIsCallActive
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestIsCallActive(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkIsCallActive() );
+
+ // Initialize test
+ SetupL();
+
+ // Do tests here
+ TInt retValue = iPsetNetwork->IsCallActive();
+ WaitTimer( KPhoneSettingsTestAsyncTimeout );
+
+ ASSERT( retValue>= 0 );
+
+ // Print result data
+ if( retValue > 0 )
+ {
+ iTestMessageHandler.PrintMessage( KCallIsActive() );
+ }
+ else
+ {
+ iTestMessageHandler.PrintMessage( KCallIsNotActive() );
+ }
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkIsCallActive );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestIsGPRSConnected
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestIsGPRSConnected(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkIsGPRSConnected() );
+
+ // Initialize test
+ SetupL();
+
+ // Do tests here
+ TInt retValue = iPsetNetwork->IsGPRSConnected();
+ WaitTimer( KPhoneSettingsTestAsyncTimeout );
+
+ ASSERT( retValue >= 0 );
+
+ // Print result data
+ switch( retValue )
+ {
+ case CPsetSAObserver::EPSetGPRSConnectionActive:
+ iTestMessageHandler.PrintMessage( KEPSetGPRSConnectionActive() );
+ break;
+ case CPsetSAObserver::EPSetGPRSNotConnected:
+ iTestMessageHandler.PrintMessage( KEPSetGPRSNotConnected() );
+ break;
+
+ default:
+ break;
+ }
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkIsGPRSConnected );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestResetNetworkSearch
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestResetNetworkSearch(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkResetNetworkSearch() );
+
+ // Initialize test
+ SetupL();
+
+ // Do tests here
+ TInt retValue = iPsetNetwork->ResetNetworkSearch();
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( retValue, KNetworkResetNetworkSearch );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestCancelProcess
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestCancelProcess(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkCancelProcess() );
+
+ // Initialize test
+ SetupL();
+
+ // Do tests here
+ iPsetNetwork->CancelProcess();
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkCancelProcess );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestGetAvailableNetworksL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestGetAvailableNetworksL(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkGetAvailableNetworksL() );
+
+ // Initialize test
+ SetupL();
+
+ // Do tests here
+ iPsetNetwork->GetAvailableNetworksL();
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkGetAvailableNetworksL );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestGetCurrentNetworkModeSelectionL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestGetCurrentNetworkModeSelectionL(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkGetCurrentNetworkModeSelectionL() );
+
+ // Initialize test
+ SetupL();
+
+ // Do tests here
+ iPsetNetwork->GetCurrentNetworkModeSelectionL();
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkGetCurrentNetworkModeSelectionL );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestSelectNetworkL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestSelectNetworkL(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkSelectNetworkL() );
+
+ // Initialize test
+ SetupL();
+
+ MPsetNetworkSelect::TNetworkInfo networkInfo;
+ networkInfo.iId.iCountryCode = KTestCountryCode;
+ networkInfo.iId.iNetworkCode = KTestNetworkCode;
+ networkInfo.iStatus = MPsetNetworkSelect::ENetStatAvailable;
+ networkInfo.iMode = MPsetNetworkSelect::ENetSelectModeAutomatic;
+ networkInfo.iAccess = MPsetNetworkSelect::ENetNetworkWCDMA;
+ networkInfo.iShortName = KNetworkShortName;
+ networkInfo.iLongName = KNetworkLongName;
+
+ // Do tests here
+ iPsetNetwork->SelectNetworkL( networkInfo );
+
+ // Parse result data
+ iTestParser.ParseTNetworkInfo( networkInfo );
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkSelectNetworkL );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestSetNetSAObserver
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestSetNetSAObserver(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkSetNetSAObserver() );
+
+ // Initialize test
+ CPsetContainer* psetContainer = CPsetContainer::NewL();
+ CleanupStack::PushL( psetContainer );
+
+ CPhoneSettingsTestNetworkInfoObserver* phoneSettingsTestNetworkInfoObserver =
+ CPhoneSettingsTestNetworkInfoObserver::NewL();
+ CleanupStack::PushL( phoneSettingsTestNetworkInfoObserver );
+
+ CPsetNetwork* psetNetwork = psetContainer->CreateNetworkObjectL(
+ *phoneSettingsTestNetworkInfoObserver );
+ CleanupStack::PushL( psetNetwork );
+
+ // Do tests here
+ psetNetwork->SetNetSAObserver( *phoneSettingsTestNetworkInfoObserver );
+
+ // Uninitialize test
+ CleanupStack::PopAndDestroy( 3 );
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkSetNetSAObserver );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestSetNetworkModeObserver
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestSetNetworkModeObserver(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkSetNetworkModeObserver() );
+
+ // Initialize test
+ CPsetContainer* psetContainer = CPsetContainer::NewL();
+ CleanupStack::PushL( psetContainer );
+
+ CPhoneSettingsTestNetworkModeObserver* phoneSettingsTestNetworkModeObserver =
+ CPhoneSettingsTestNetworkModeObserver::NewL();
+ CleanupStack::PushL( phoneSettingsTestNetworkModeObserver );
+
+ CPhoneSettingsTestNetworkInfoObserver* phoneSettingsTestNetworkInfoObserver =
+ CPhoneSettingsTestNetworkInfoObserver::NewL();
+ CleanupStack::PushL( phoneSettingsTestNetworkInfoObserver );
+
+ CPsetNetwork* psetNetwork = psetContainer->CreateNetworkObjectL(
+ *phoneSettingsTestNetworkInfoObserver );
+ CleanupStack::PushL( psetNetwork );
+
+ // Do tests here
+ psetNetwork->SetNetworkModeObserver( *phoneSettingsTestNetworkModeObserver );
+
+ // Uninitialize test
+ CleanupStack::PopAndDestroy( 4 );
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkSetNetworkModeObserver );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CPhoneSettingsTestNetwork::TestSetNetworkModeSelectionL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CPhoneSettingsTestNetwork::TestSetNetworkModeSelectionL(TTestResult& aResult)
+ {
+ iTestMessageHandler.PrintMessage( KStartingTestCase() );
+ iTestMessageHandler.PrintMessage( KNetworkSetNetworkModeSelectionL() );
+
+ // Initialize test
+ SetupL();
+
+ TUint32 networkModeCapsUint = RMmCustomAPI::KCapsNetworkModeDual;
+
+ // Do tests here
+ iPsetNetwork->SetNetworkModeSelectionL( networkModeCapsUint );
+
+ // Parse result data
+ RMmCustomAPI::TNetworkModeCaps networkModeCaps =
+ static_cast<RMmCustomAPI::TNetworkModeCaps>(networkModeCapsUint);
+ iTestParser.ParseTNetworkModeCaps( networkModeCaps );
+
+ // Uninitialize test
+ TearDownL();
+
+ // Set result for STIF framework
+ aResult.SetResult( KErrNone, KNetworkSetNetworkModeSelectionL );
+ iTestMessageHandler.PrintMessage( KExitingTestCase() );
+
+ return KErrNone;
+ }
+
+
+// End of File