--- a/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/src/Cdma2000settingsstep.cpp Tue Aug 24 14:43:02 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,509 +0,0 @@
-// Copyright (c) 2004-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:
-// CommDB CDMA2000 Settings test implementation
-//
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include "Cdma2000settingsstep.h"
-#include <testexecutelog.h>
-
-#include <e32std.h>
-#include <e32base.h>
-
-using namespace te_Cdma2000CommDbSettings;
-
-namespace
- {
- // "End of table" marker.
- _LIT(KNoMoreEntriesLit, "NO_MORE_ENTRIES");
- const TPtrC KNoMoreEntries(KNoMoreEntriesLit);
-
-
- //
- // CDMA2000 CommDB column constants:
- //
- // These constants are defined in cdbcols.h and are used
- // to access CDMA related settings via CommDB. Some constants in the
- // are aliased to the generic SERVICE_xxx constants, e.g
- //
- // #define CDMA_ENABLE_IP_HEADER_COMP SERVICE_ENABLE_IP_HEADER_COMP
- //
- // The tables below may contain entries for both the SERVICE_xxx constant
- // and the corresponding CDMA_xxx constant. The purpose of this duplication is
- // to verify that the particular field is accessible via both the SERVICE and the CDMA
- // constant. The SERVICE_xxx constants are typically used by the sytem (e.g. PPP) to access
- // settings common to all the service tables. The specific CDMA_xxx constants may be used by CDMA
- // specific code to manipulate CDMA tables only.
-
- // GlobalSettings table: TUint32 values.
- const TPtrC KCdmaGlobalSettingsTableTUint32[] =
- {
- CDMA_OP_CAPABILITY,
- CDMA_SIMIP_MAX_NUM_NAI,
- CDMA_SIMIP_MAX_NAI_LENGTH,
- CDMA_SIMIP_MAX_SS_LENGTH,
- CDMA_SIMIP_AUTH_SUPPORTED,
- CDMA_MIP_MAX_NUM_NAI,
- CDMA_MIP_MAX_NAI_LENGTH,
- CDMA_MIP_MAX_MN_AAA_SS_LENGTH,
- CDMA_MIP_MN_AAA_AUTH_ALGORITHM,
- CDMA_MIP_MAX_MN_HA_SS_LENGTH,
- CDMA_MIP_MN_HA_AUTH_ALGORITHM,
- KNoMoreEntries
- };
-
- // DefaultCDMA2000SettingsTable: TBool values.
- const TPtrC KDefaultCdma2000SettingsTableTBool[] =
- {
- DEFAULT_CDMA_ENABLE_IP_HEADER_COMP, // #defined as SERVICE_ENABLE_IP_HEADER_COMP
- SERVICE_ENABLE_IP_HEADER_COMP,
- KNoMoreEntries
- };
-
- // DefaultCDMA2000SettingsTable: TUint32 values.
- const TPtrC KDefaultCdma2000SettingsTableTUint32[] =
- {
- CDMA_OP_MODE,
- CDMA_MIP_MAX_NUM_RETRY,
- CDMA_MIP_FIRST_RETRY_TIMEOUT,
- CDMA_MIP_REREG_THRESHOLD,
- DEFAULT_CDMA_FCH_MUX,
- DEFAULT_CDMA_SCH_MUX,
- KNoMoreEntries
- };
-
- // CDMA2000PacketServiceTable: TUint32 values.
- const TPtrC KCdma2000PacketServiceTableTUint32[] =
- {
- CDMA_NAI_TYPE,
- CDMA_SIMIP_AUTH_ALGORITHM,
- CDMA_SIMIP_PAP_SS_HANDLE,
- CDMA_SIMIP_CHAP_SS_HANDLE,
- CDMA_MIP_T_BIT,
- CDMA_MIP_MN_AAA_AUTH_ALGORITHM,
- CDMA_MIP_MN_AAA_SPI,
- CDMA_MIP_MN_HA_AUTH_ALGORITHM,
- CDMA_MIP_MN_HA_SPI,
- CDMA_FCH_MUX,
- CDMA_SCH_MUX,
- KNoMoreEntries
- };
-
- // CDMA2000PacketServiceTable: TBool values.
- const TPtrC KCdma2000PacketServiceTableTBool[] =
- {
- SERVICE_IF_EXTERN_IP_CONFIG_ALWAYS_REJECT_AUTH,
- CDMA_IF_EXTERN_IP_CONFIG_ALWAYS_REJECT_AUTH, // #defined as SERVICE_IF_EXTERN_IP_CONFIG_ALWAYS_REJECT_AUTH
- CDMA_MIP_MN_AAA_SPI_INDICATOR,
- CDMA_MIP_MN_HA_SPI_INDICATOR,
- CDMA_ENABLE_IP_HEADER_COMP, // #defined as SERVICE_ENABLE_IP_HEADER_COMP
- SERVICE_ENABLE_IP_HEADER_COMP,
- SERVICE_ENABLE_SW_COMP,
- KNoMoreEntries
- };
-
- // CDMA2000PacketServiceTable: Text values.
- const TPtrC KCdma2000PacketServiceTableText[] =
- {
- CDMA_MIP_HOME_ADDRESS,
- CDMA_MIP_PRIMARY_HOME_AGENT,
- CDMA_MIP_SECONDARY_HOME_AGENT,
- CDMA_MIP_MN_AAA_SS_DATA,
- CDMA_MIP_MN_HA_SS_DATA,
- KNoMoreEntries
- };
-
- // DialOutIsp table: TBool values.
- const TPtrC KDialOutIspTableTBool[] =
- {
- ISP_IF_SERVER_MODE,
- KNoMoreEntries
- };
-
-
- //----------------------------------------------------------------
- // Test for named constants:
- // If the following constants are absent, this code will not compile.
- const TUint KCdmaEnumValues[] =
- {
- //-------------------------------------------------
- // Global Settings
-
- // CDMA_OP_CAPABILITY values
- ECommDbCdmaOpCapabilitySimpleIp,
- ECommDbCdmaOpCapabilityMobileIp,
- ECommDbCdmaOpCapabilityFallback,
-
- // CDMA_SIMIP_AUTH_SUPPORTED values
- ECommDbCdmaSimpIpCapabilityChap,
- ECommDbCdmaSimpIpCapabilityPap,
-
- // CDMA_MIP_MN_AAA_AUTH_ALGORITHM
- // CDMA_MIP_MN_HA_AUTH_ALGORITHM values
- ECommDbCdmaMIpMd5,
-
-
- //---------------------------------------------------
- // DEFAULT_CDMA2000_SETTINGS_TABLE
-
- //CDMA_OP_MODE
- ECommDbCdmaOpSimpleIp,
- ECommDbCdmaOpFallback,
- ECommDbCdmaOpMobileIp,
-
- //----------------------------------------------------
- // CDMA2000_PACKET_SERVICE_TABLE
-
- // CDMA_OP_MODE values
- ECommDbCdmaOpSimpleIp,
- ECommDbCdmaOpFallback,
- ECommDbCdmaOpMobileIp,
-
- // CDMA_NAI_TYPE values
- ECommDbCdmaNaiSimpleIp,
- ECommDbCdmaNaiMobileIp,
-
- // CDMA_SIMIP_AUTH_ALGORITHM
- ECommDbCdmaSimpIpAuthNone,
- ECommDbCdmaSimpIpAuthChap,
- ECommDbCdmaSimpIpAuthPap,
- ECommDbCdmaSimpIpAuthFallback,
-
- // CDMA_MIP_MN_AAA_AUTH_ALGORITHM
- // CDMA_MIP_MN_HA_AUTH_ALGORITHM values
- ECommDbCdmaMIpAuthNone,
- ECommDbCdmaMIpAuthMd5
- };
- //-------------------------------------------------------------------
- } // module namespace
-
-
-/**
-Verifies that the specified TBool columns can be read from CommDB.
-
-@param aCommDbTableCols CommDB columns to be read
-@return ETrue if all the columns could be read, EFalse otherwise
-*/
-TBool CCdma2000SettingsTestStep::CheckTableTBool(const TPtrC aCommDbTableCols[])
- {
- TBool isCheckOk = ETrue;
- __UHEAP_MARK;
-
- // Attempt to read all the columns.
-
- for (TInt curCol = 0; KNoMoreEntries != aCommDbTableCols[curCol]; curCol++)
- {
- TBool value = EFalse;
- TRAPD(err, iCommDbView->ReadBoolL(aCommDbTableCols[curCol], value));
-
- switch(err)
- {
- case KErrNone: // Column exists and is not null: OK
- INFO_PRINTF3(_L("OK: Column [%S], value. [%d]"), &aCommDbTableCols[curCol], value);
- break;
-
- case KErrNotFound: // Column does not exist: Error
- INFO_PRINTF3(_L("ERROR. Column [%S] does not exist. Error code [%d]: KErrNotFound"), &aCommDbTableCols[curCol], err);
- isCheckOk = EFalse;
- break;
-
- case KErrUnknown: // Column exists, but is null: Error
- INFO_PRINTF3(_L("ERROR. Column [%S] does exists but is null: Error code [%d]: KErrUnknown."), &aCommDbTableCols[curCol], err);
- isCheckOk = EFalse;
- break;
-
- default: // Some other error.
- INFO_PRINTF3(_L("ERROR. Error code [%d] when reading column [%S]."), err, &aCommDbTableCols[curCol]);
- isCheckOk = EFalse;
- };
- }
-
- __UHEAP_MARKEND;
- return isCheckOk;
- }
-
-
-/**
-Verifies that the specified TUint32 columns can be read from CommDB.
-
-@param aCommDbTableCols CommDB columns to be read
-@return ETrue if all the columns could be read, EFalse otherwise
-*/
-TBool CCdma2000SettingsTestStep::CheckTableTUint32(const TPtrC aCommDbTableCols[])
- {
- TBool isCheckOk = ETrue;
- __UHEAP_MARK;
-
- // Attempt to read all the columns.
-
- for(TInt curCol = 0; KNoMoreEntries != aCommDbTableCols[curCol]; curCol++)
- {
- TUint32 value = 0;
- TInt err = KErrNone;
- if(aCommDbTableCols == KCdmaGlobalSettingsTableTUint32)
- {
- TRAP(err, iCommDb->GetGlobalSettingL(aCommDbTableCols[curCol], value));
- }
- else
- {
- TRAP(err, iCommDbView->ReadUintL(aCommDbTableCols[curCol], value));
- }
-
- switch(err)
- {
- case KErrNone: // Column exists and is not null: OK
- INFO_PRINTF3(_L("OK: Column [%S], value. [%d]"), &aCommDbTableCols[curCol], value);
- break;
-
- case KErrNotFound: // Column does not exist: Error
- INFO_PRINTF3(_L("ERROR. Column [%S] does not exist. Error code [%d]: KErrNotFound"), &aCommDbTableCols[curCol], err);
- isCheckOk = EFalse;
- break;
-
- case KErrUnknown: // Column exists, but is null: Error
- INFO_PRINTF3(_L("ERROR. Column [%S] does exists but is null Error code [%d]: KErrUnknown."), &aCommDbTableCols[curCol], err);
- isCheckOk = EFalse;
- break;
-
- default: // Some other error.
- INFO_PRINTF3(_L("ERROR. Error code [%d] when reading column [%S]."), err, &aCommDbTableCols[curCol]);
- isCheckOk = EFalse;
- };
- }
-
- __UHEAP_MARKEND;
- return isCheckOk;
- }
-
-/**
-Verifies that the specified TText columns can be read from CommDB.
-
-@param aCommDbTableCols CommDB columns to be read
-@return ETrue if all the columns could be read, EFalse otherwise
-*/
-TBool CCdma2000SettingsTestStep::CheckTableText(const TPtrC aCommDbTableCols[])
- {
- TBool isCheckOk = ETrue;
- __UHEAP_MARK;
-
- // Attempt to read all the columns.
-
- for(TInt curCol = 0; KNoMoreEntries != aCommDbTableCols[curCol]; curCol++)
- {
- TBuf<KCommsDbSvrMaxColumnNameLength> value;
- TRAPD(err, iCommDbView->ReadTextL(aCommDbTableCols[curCol], value));
-
- switch(err)
- {
- case KErrNone: // Column exists and is not null: OK
- INFO_PRINTF3(_L("OK: Column [%S], value. [%S]"), &aCommDbTableCols[curCol], &value);
- break;
-
- case KErrNotFound: // Column does not exist: Error
- INFO_PRINTF3(_L("ERROR. Column [%S] does not exist. Error code [%d]: KErrNotFound"), &aCommDbTableCols[curCol], err);
- isCheckOk = EFalse;
- break;
-
- case KErrUnknown: // Column exists, but is null: Error
- INFO_PRINTF3(_L("ERROR. Column [%S] does exists but is null Error code [%d]: KErrUnknown."), &aCommDbTableCols[curCol], err);
- isCheckOk = EFalse;
- break;
-
- default: // Some other error.
- INFO_PRINTF3(_L("ERROR. Error code [%d] when reading column [%S]."), err, &aCommDbTableCols[curCol]);
- isCheckOk = EFalse;
- }
- }
-
- __UHEAP_MARKEND;
- return isCheckOk;
- }
-
-
-/**
- C++ Constructor
-
- @post Test name is setup.
- */
-CCdma2000SettingsTestStep::CCdma2000SettingsTestStep():
- iCommDb(NULL),
- iCommDbView(NULL)
- {
- SetTestStepName(KCdma2000SettingsStep);
- }
-
-/** C++ Destructor */
-CCdma2000SettingsTestStep::~CCdma2000SettingsTestStep()
- {
- if(iCommDbView) delete iCommDbView; // Lint generates warning if CloseCommDbTable() is used here.
- if(iCommDb) delete iCommDb;
- }
-
-/** Closes CommDB table opened previously with a call to OpenCommDbTableL */
-void CCdma2000SettingsTestStep::CloseCommDbTable()
- {
- if(iCommDbView)
- {
- delete iCommDbView;
- iCommDbView = NULL;
- }
- }
-
-/**
-Opens a view on the first record of a CommDB table.
-
-@param aTableName the table to open.
-@leave if CommDB access methods leave.
-*/
-void CCdma2000SettingsTestStep::OpenCommDbTableL(const TPtrC& aTableName)
- {
- ASSERT(!iCommDbView);
-
- const TUint32 KRecordId = 1;
- iCommDbView = iCommDb->OpenViewMatchingUintLC(aTableName, TPtrC(COMMDB_ID), KRecordId);
- // Take iCommDbView off the cleanup stack so it is never deleted without
- // setting the pointer to NULL, but rather with a call to
- // CloseCommDbTable() or in the destructor.
- CleanupStack::Pop(iCommDbView);
-
- TInt err = iCommDbView->GotoFirstRecord();
- if (KErrNone != err)
- {
- INFO_PRINTF4(_L("Table[%S]: Record[%d] does not exist. Error[%d]"), &aTableName, KRecordId, err);
- User::Leave(err);
- }
- INFO_PRINTF1(_L(""));
- INFO_PRINTF3(_L("Opened Table[%S]. Record[%d]. ========================== "), &aTableName, KRecordId);
- }
-
-
-/**
-Carries out the actual test sequence for CDMA2000 CommDB Settings.
-
-@leave if CommDB access methods leave.
-*/
-void CCdma2000SettingsTestStep::DoTestSequenceL()
- {
- __UHEAP_MARK;
-
- //
- // Create CommDB
- //
- ASSERT(!iCommDb);
- iCommDb = CCommsDatabase::NewL();
- // Don't put iCommDb onto cleanup stack so it is never deleted without
- // setting the pointer to NULL, but rather below or in the destructor.
- iCommDb->ShowHiddenRecords();
-
- //
- // Carry out the testing
- //
-
- // DefaultCDMA2000SettingsTable
- OpenCommDbTableL(TPtrC(DEFAULT_CDMA2000_SETTINGS_TABLE));
- if(CheckTableTUint32(KDefaultCdma2000SettingsTableTUint32) &&
- CheckTableTBool(KDefaultCdma2000SettingsTableTBool))
- {
- INFO_PRINTF1(_L("===>OK: DefaultCDMA2000Settings table"));
- }
- else
- {
- INFO_PRINTF1(_L("===>ERROR: accessing DefaultCDMA2000Settings table."));
- SetTestStepResult(EFail);
- }
- CloseCommDbTable();
-
- // CDMA2000PacketServiceTable
- OpenCommDbTableL(TPtrC(CDMA2000_PACKET_SERVICE_TABLE));
- if(CheckTableTUint32(KCdma2000PacketServiceTableTUint32) && // TUint32 columns
- CheckTableTBool(KCdma2000PacketServiceTableTBool) && // TBool columns
- CheckTableText(KCdma2000PacketServiceTableText)) // Text columns
- {
- INFO_PRINTF1(_L("===>OK: CDMA2000PacketServiceTable table"));
- }
- else
- {
- INFO_PRINTF1(_L("===>ERROR: accessing CDMA2000PacketServiceTable table."));
- SetTestStepResult(EFail);
- }
- CloseCommDbTable();
-
- // DialOutIsp
- OpenCommDbTableL(TPtrC(DIAL_OUT_ISP));
- if(CheckTableTBool(KDialOutIspTableTBool))
- {
- INFO_PRINTF1(_L("===>OK: DialOutIsp table"));
- }
- else
- {
- INFO_PRINTF1(_L("===>ERROR: accessing DialOutIsp table."));
- SetTestStepResult(EFail);
- }
- CloseCommDbTable();
-
- // Global Settings
- INFO_PRINTF1(_L(""));
- INFO_PRINTF1(_L("Reading Global Settings ================================"));
- if(CheckTableTUint32(KCdmaGlobalSettingsTableTUint32))
- {
- INFO_PRINTF1(_L("===>OK: GlobalSettings table"));
- }
- else
- {
- INFO_PRINTF1(_L("===>ERROR: accessing GlobalSettings table."));
- SetTestStepResult(EFail);
- }
-
-
- //
- // Close CommDB
- //
- delete iCommDb;
- iCommDb = NULL;
-
- __UHEAP_MARKEND;
- }
-
-/**
- Verifies that all CDMA2000 settings can be accessed.
-
- @return result of the test: EPass if all settings can be accessed.
- */
-TVerdict CCdma2000SettingsTestStep::doTestStepL()
- {
- //---------------------------------------------------------------------
- // Reference KCdmaEnumValues[] to supress ARM5 compiler warning regarding unreferenced variable
- // This has no consequences for the test.
- INFO_PRINTF2(_L("Referencing KCdmaEnumValues: element 0=[%d]"), KCdmaEnumValues[0]);
- //---------------------------------------------------------------------
-
-
-
- SetTestStepResult(EPass);
-
- TRAPD(testErr, DoTestSequenceL());
- if(KErrNone != testErr)
- {
- SetTestStepResult(ETestSuiteError);
- INFO_PRINTF2(_L("ERROR: internal test suite error [%d]."), testErr);
- }
-
- return TestStepResult();
- }
-