commsfwtools/preparedefaultcommsdatabase/te_commsdat/src/commsdatWifiTests.cpp
changeset 0 dfb7c4ff071f
--- /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 <e32test.h>
+
+#include <commsdat_partner.h>
+#include <commsdattypesv1_1_partner.h>
+#include <commsdattypesv1_1_internal.h>
+#include <commsdattypeinfov1_1_internal.h>
+
+//----------------------------------------------------------------------------------------------------------------
+
+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<CCDWLANServiceExtRecord*>(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<CCDWLANServiceExtRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord));
+	CleanupStack::PushL(wlanFindRecord);
+	wlanFindRecord->iWLANEncryptionType = ECommsDatWlanEncryptionTypeAES;
+	if(wlanFindRecord->FindL(*cmdbSession))
+		{
+		TInt temp(0);
+		CMDBField<TDesC> *wLanProfile = static_cast<CMDBField<TDesC> *>(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<CCDEAPSecRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdEAPSecRecord));
+	CleanupStack::PushL(EAPSecRecord);	
+	CCDTunEAPRecord *TunEAPRecord = static_cast<CCDTunEAPRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdTunEAPRecord));
+	CleanupStack::PushL(TunEAPRecord);
+	CCDEAPTLSRecord *EAPTLSRecord = static_cast<CCDEAPTLSRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdEAPTLSRecord));
+	CleanupStack::PushL(EAPTLSRecord);
+	CCDLEAPRecord *LEAPRecord = static_cast<CCDLEAPRecord*>(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<CCDEAPSecRecord*>(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<CCDWLANServiceExtRecord*>(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<CCDWLANServiceExtRecord*>(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<CCDEAPSecRecord*>(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<CCDWLANServiceExtRecord*>(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<CCDEAPSecRecord*>(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<CCDTunEAPRecord*>(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<CCDWLANServiceExtRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdWLANServiceExtRecord));
+	CleanupStack::PushL(WLANServiceExtRecord);
+	WLANServiceExtRecord->SetRecordId(2);
+	WLANServiceExtRecord->LoadL(*cmdbSession);	
+
+	// Load Security Record
+	INFO_PRINTF1(_L("Retrieving EAP Security"));
+	EAPSecRecord= reinterpret_cast<CCDEAPSecRecord*>(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<CCDEAPTLSRecord*>(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();
+	}
+//----------------------------------------------------------------------------------------------------------------
+
+
+