diff -r 000000000000 -r dfb7c4ff071f commsfwtools/preparedefaultcommsdatabase/te_commsdat/src/commsdatWifiTests.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfwtools/preparedefaultcommsdatabase/te_commsdat/src/commsdatWifiTests.cpp Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,349 @@ + +// Copyright (c) 2005-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: +// Test of Commsdat Wifi Security tables +// +// + + +#include "commsdatWifiTests.h" +#include "Te_commsdatSuiteDefs.h" +#include + +#include +#include +#include +#include + +//---------------------------------------------------------------------------------------------------------------- + +CCommsdat197Step::CCommsdat197Step() +/** + * Constructor + */ + { + SetTestStepName(KCommsdat197Step); + } + + +TVerdict CCommsdat197Step::doTestStepL() +/** + * @return TVerdict code + * @internalComponent +*/ + { + + SetTestStepResult(EFail); + INFO_PRINTF1(_L("I am in CCommsdat197Step::doTestStepL() Store and Find values in the WLAN Table Fields")); + +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2); +#else + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1); +#endif + CleanupStack::PushL(cmdbSession); + + CCDWLANServiceExtRecord *wlanRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord)); + CleanupStack::PushL(wlanRecord); + + // create Wlan table entries + _LIT(KWLANProfile, "1234567890abcdefghijklmnopqrstuvwxyz"); + wlanRecord->SetRecordId(KCDNewRecordRequest); + wlanRecord->iWLANProfile.SetL(KWLANProfile); + wlanRecord->iWLANAllowUnencryptMode = 0; + wlanRecord->iWLANEncryptionType = ECommsDatWlanEncryptionTypeAES; + wlanRecord->StoreL(*cmdbSession); + + INFO_PRINTF1(_L("WLANEncryptionType has been set")); + + //Find the above record + CCDWLANServiceExtRecord *wlanFindRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord)); + CleanupStack::PushL(wlanFindRecord); + wlanFindRecord->iWLANEncryptionType = ECommsDatWlanEncryptionTypeAES; + if(wlanFindRecord->FindL(*cmdbSession)) + { + TInt temp(0); + CMDBField *wLanProfile = static_cast *>(wlanFindRecord->GetFieldByNameL(KCDTypeNameWLANProfile, temp)); + TPtrC wlanProfileValue(*wLanProfile); + if(wlanProfileValue == KWLANProfile) + { + SetTestStepResult(EPass); + } + } + CleanupStack::PopAndDestroy(wlanFindRecord); + CleanupStack::PopAndDestroy(wlanRecord); + CleanupStack::PopAndDestroy(cmdbSession); + return TestStepResult(); + } +//---------------------------------------------------------------------------------------------------------------- + +CCommsdat198Step::CCommsdat198Step() +/** + * Constructor + */ + { + SetTestStepName(KCommsdat198Step); + } + + +TVerdict CCommsdat198Step::doTestStepL() +/** + * @return TVerdict code + * @internalComponent +*/ + { + SetTestStepResult(EFail); + INFO_PRINTF1(_L("I am in CCommsdat198Step::doTestStepL() testing all the Wifi specific tables via cfg")); + + //create a session +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2); +#else + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1); +#endif + CleanupStack::PushL(cmdbSession); + + //and with each of the tables + INFO_PRINTF1(_L("Create Instance of each Table")); + CCDEAPSecRecord *EAPSecRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdEAPSecRecord)); + CleanupStack::PushL(EAPSecRecord); + CCDTunEAPRecord *TunEAPRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdTunEAPRecord)); + CleanupStack::PushL(TunEAPRecord); + CCDEAPTLSRecord *EAPTLSRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdEAPTLSRecord)); + CleanupStack::PushL(EAPTLSRecord); + CCDLEAPRecord *LEAPRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdLEAPRecord)); + CleanupStack::PushL(LEAPRecord); + + //prime + EAPSecRecord->SetRecordId(1); + TunEAPRecord->SetRecordId(1); + EAPTLSRecord->SetRecordId(1); + LEAPRecord->SetRecordId(1); + + //load + INFO_PRINTF1(_L("Load Record 1 of each table")); + EAPSecRecord->LoadL(*cmdbSession); + TunEAPRecord->LoadL(*cmdbSession); + EAPTLSRecord->LoadL(*cmdbSession); + LEAPRecord->LoadL(*cmdbSession); + + //set te values + INFO_PRINTF1(_L("Test Values")); + _LIT(KEAPTLSClientCertName, "0123abcd"); + TPtrC EAPTLSClientCertNameValue(EAPTLSRecord->iEAPTLSClientCertName); + _LIT(KEAPSecId, "abcd0123"); + TPtrC EAPSecIdValue(EAPSecRecord->iEAPSecId); + + //check the value is correctly loaded via ced + if ( (LEAPRecord->iLEAPTimeout == 10) && + (EAPTLSClientCertNameValue == KEAPTLSClientCertName) && + (TunEAPRecord->iTUNEAPInnerType == ECommsDatTunEapMSCHAPv2) && + (EAPSecRecord->iEAPSecOuterEAPType == ECommsDatEAPSecPEAP) && + (EAPSecIdValue == KEAPSecId)) + { + //Value is correct to the Test Result is Pass + SetTestStepResult(EPass); + } + + //cleanup + CleanupStack::PopAndDestroy(LEAPRecord); + CleanupStack::PopAndDestroy(EAPTLSRecord); + CleanupStack::PopAndDestroy(TunEAPRecord); + CleanupStack::PopAndDestroy(EAPSecRecord); + CleanupStack::PopAndDestroy(cmdbSession); + + return TestStepResult(); + } +//---------------------------------------------------------------------------------------------------------------- + +CCommsdat199Step::CCommsdat199Step() +/** + * Constructor + */ + { + SetTestStepName(KCommsdat199Step); + } + + +TVerdict CCommsdat199Step::doTestStepL() +/** + * @return TVerdict code + * @internalComponent + */ + { + SetTestStepResult(EFail); + INFO_PRINTF1(_L("I am in CCommsdat199Step::doTestStepL() set the security type and Test link to correct security table ")); + + //Sets the EAP Security Outer Type to MSCHAPv2 + TCommsDatEAPSECOuterEAPType EAPSecOuterEAPTypeValue = ECommsDatEAPSecEAPMSCHAPv2; + + //create a session +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2); +#else + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1); +#endif + CleanupStack::PushL(cmdbSession); + + //set and store the value if the record + INFO_PRINTF1(_L("Storing WLAN Security Record")); + CCDEAPSecRecord *EAPSecRecord= static_cast(CCDRecordBase::RecordFactoryL(KCDTIdEAPSecRecord)); + CleanupStack::PushL(EAPSecRecord); + EAPSecRecord->SetRecordId(KCDNewRecordRequest); + EAPSecRecord->iEAPSecOuterEAPType = EAPSecOuterEAPTypeValue; + EAPSecRecord->StoreL(*cmdbSession); + + //set and store the value if the record + INFO_PRINTF1(_L("Storing WLAN Service Record")); + CCDWLANServiceExtRecord *WLANServiceExtRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord)); + CleanupStack::PushL(WLANServiceExtRecord); + WLANServiceExtRecord->SetRecordId(KCDNewRecordRequest); + WLANServiceExtRecord->iWLANSecData = EAPSecRecord->ElementId(); + WLANServiceExtRecord->StoreL(*cmdbSession); + + TUint recordId = WLANServiceExtRecord->RecordId(); + + //Cleanup + INFO_PRINTF1(_L("Cleanup")); + CleanupStack::PopAndDestroy(WLANServiceExtRecord); + CleanupStack::PopAndDestroy(EAPSecRecord); + + //Load the Wlan table + INFO_PRINTF1(_L("Loading WLAN Record")); + WLANServiceExtRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord)); + CleanupStack::PushL(WLANServiceExtRecord); + WLANServiceExtRecord->SetRecordId(recordId); + WLANServiceExtRecord->LoadL(*cmdbSession); + + // Linked record in action + INFO_PRINTF1(_L("Loading WLAN Security Record")); + EAPSecRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(WLANServiceExtRecord->iWLANSecData)); + CleanupStack::PushL(EAPSecRecord); + EAPSecRecord->LoadL(*cmdbSession); + + //compare + INFO_PRINTF1(_L("Comparing Data")); + TCommsDatEAPSECOuterEAPType eapTypeValue = EAPSecRecord->iEAPSecOuterEAPType; + INFO_PRINTF3(_L("Outer EAP Type: Got %d Expected %d"), eapTypeValue, EAPSecOuterEAPTypeValue); + TESTL(eapTypeValue == EAPSecOuterEAPTypeValue); + + //Cleanup + INFO_PRINTF1(_L("Cleanup")); + CleanupStack::PopAndDestroy(EAPSecRecord); + CleanupStack::PopAndDestroy(WLANServiceExtRecord); + CleanupStack::PopAndDestroy(cmdbSession); + + //Test has not left so Result is Pass + SetTestStepResult(EPass); + return TestStepResult(); + } +//---------------------------------------------------------------------------------------------------------------- + +CCommsdat200Step::CCommsdat200Step() +/** + * Constructor + */ + { + SetTestStepName(KCommsdat200Step); + } + + +TVerdict CCommsdat200Step::doTestStepL() +/** + * @return TVerdict code + * @internalComponent + */ + { + SetTestStepResult(EFail); + INFO_PRINTF1(_L("I am in CCommsdat200Step::doTestStepL() test the Security Link fields")); + + //create a commsdat session +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2); +#else + CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1); +#endif + CleanupStack::PushL(cmdbSession); + + //load the table + INFO_PRINTF1(_L("Retrieving WLAN Record 1")); + CCDWLANServiceExtRecord *WLANServiceExtRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord)); + CleanupStack::PushL(WLANServiceExtRecord); + WLANServiceExtRecord->SetRecordId(1); + WLANServiceExtRecord->LoadL(*cmdbSession); + + // Load Security Record + INFO_PRINTF1(_L("Retrieving EAP Security")); + CCDEAPSecRecord *EAPSecRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(WLANServiceExtRecord->iWLANSecData)); + CleanupStack::PushL(EAPSecRecord); + EAPSecRecord->LoadL(*cmdbSession); + // Compare link with value + TESTL(EAPSecRecord->iEAPSecOuterEAPType == ECommsDatEAPSecPEAP); + + // Load Tunnelled Record + INFO_PRINTF1(_L("Retrieving Tunnelled EAP Security")); + CCDTunEAPRecord *TunEAPSecRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(EAPSecRecord->iEAPSecData)); + CleanupStack::PushL(TunEAPSecRecord); + TunEAPSecRecord->LoadL(*cmdbSession); + TESTL(TunEAPSecRecord->iTUNEAPInnerType == ECommsDatTunEapMSCHAPv2); + + INFO_PRINTF1(_L("Cleanup")); + CleanupStack::PopAndDestroy(TunEAPSecRecord); + + CleanupStack::PopAndDestroy(EAPSecRecord); + + CleanupStack::PopAndDestroy(WLANServiceExtRecord); + + //load the table + INFO_PRINTF1(_L("Retrieving WLAN Record 2")); + WLANServiceExtRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord)); + CleanupStack::PushL(WLANServiceExtRecord); + WLANServiceExtRecord->SetRecordId(2); + WLANServiceExtRecord->LoadL(*cmdbSession); + + // Load Security Record + INFO_PRINTF1(_L("Retrieving EAP Security")); + EAPSecRecord= reinterpret_cast(CCDRecordBase::RecordFactoryL(WLANServiceExtRecord->iWLANSecData)); + CleanupStack::PushL(EAPSecRecord); + EAPSecRecord->LoadL(*cmdbSession); + // Compare link with value + TESTL(EAPSecRecord->iEAPSecOuterEAPType == ECommsDatEAPSecEAPTLS); + + // Load Tunnelled Record + INFO_PRINTF1(_L("Retrieving TLS EAP Security")); + CCDEAPTLSRecord *TLSEAPSecRecord = reinterpret_cast(CCDRecordBase::RecordFactoryL(EAPSecRecord->iEAPSecData)); + CleanupStack::PushL(TLSEAPSecRecord); + TLSEAPSecRecord->LoadL(*cmdbSession); + + TPtrC certName (TLSEAPSecRecord->iEAPTLSClientCertName); + TESTL(certName.Compare(_L("0123abcd")) == 0); + + INFO_PRINTF1(_L("Cleanup")); + CleanupStack::PopAndDestroy(TLSEAPSecRecord); + + CleanupStack::PopAndDestroy(EAPSecRecord); + + CleanupStack::PopAndDestroy(WLANServiceExtRecord); + + INFO_PRINTF1(_L("Test Complete")); + CleanupStack::PopAndDestroy(cmdbSession); + + //Test has not left so Result is Pass + SetTestStepResult(EPass); + return TestStepResult(); + } +//---------------------------------------------------------------------------------------------------------------- + + +