telephonyserverplugins/simtsy/test/Te_Sim/Te_SimMiscTest.cpp
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/simtsy/test/Te_Sim/Te_SimMiscTest.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,263 @@
+// 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:
+//
+
+#include "Te_SimMiscTest.h"
+
+#define KSimTsyVersionTestOffset	30
+_LIT8(KConfigScAuthAUTN, "AUTN_IN");
+_LIT8(KConfigScAuthRAND, "RAND_IN");
+
+CSimMiscTest::CSimMiscTest() 
+	{ 
+	SetTestStepName(_L("MiscTest"));
+	}
+
+TVerdict CSimMiscTest::doTestStepL()
+	{
+	INFO_PRINTF1(_L("Misc Functionality"));
+
+ 	CreateConfigFileL(_L("c:\\config3.txt"));
+ 	SetTestNumberL(0);
+
+	TInt ret = iPhone.Open(iTelServer,KPhoneName); 
+	INFO_PRINTF2(_L("Result: %d"),ret); 
+	TESTL(ret == KErrNone); 
+	INFO_PRINTF1(_L("Opened phone object"));
+	
+	TBool result;
+	TBuf<10> tsyName;
+	tsyName = KSimtsyName;
+	INFO_PRINTF1(_L("Tesing Is Supported functionality"));
+	for (TInt mixin=KETelExtMultimodeV1; mixin<=KETelFuncMobileUserSignalling;mixin++)
+		{	
+		iTelServer.IsSupportedByModule(tsyName, mixin, result);
+		if (mixin== KETelExtMultimodeV1
+			|| mixin==KETelFuncMobileNetwork
+			|| mixin==KETelFuncMobilePower
+			|| mixin==KETelFuncMobileSignal
+			|| mixin==KETelFuncMobileIndicator
+			|| mixin==KETelFuncMobileDTMF
+			|| mixin==KETelFuncMobileDataCall
+			|| mixin==KETelFuncMobileEmergencyCall
+			|| mixin==KETelFuncMobileSmsMessaging
+			|| mixin==KETelFuncMobilePhonebook
+			|| mixin==KETelFuncMobileSmsStore
+			|| mixin==KETelFuncMobileOwnNumberStore
+			|| mixin==KETelExtPcktV1
+			|| mixin==RMobileCall::KETelMobileDataCallParamsV1
+			|| mixin==RMobileCall::KETel3rdPartyCallParamsV1			
+			)
+				TESTL(result!=EFalse);
+		else 
+				TESTL(result==EFalse);
+		
+		}
+	
+	iTelServer.IsSupportedByModule(tsyName, KEtelExtMultimodeV9, result);
+	TESTL(result!=EFalse);
+	iTelServer.IsSupportedByModule(tsyName, KEtelFuncCellInfo, result);
+	TESTL(result!=EFalse);
+
+	iPhone.Close();
+	ASSERT(RThread().RequestCount()==0);
+
+	return TestStepResult();
+	}
+
+//------------------------------------------------------------------
+
+CSetVersion::CSetVersion()
+/** Each test step initialises it's own name
+*/
+	{
+	// store the name of this test case
+	// this is the name that is used by the script file
+	SetTestStepName(_L("SetVersion"));
+	}
+//------------------------------------------------------------------
+
+TVerdict CSetVersion::doTestStepL( void )
+	{
+    INFO_PRINTF1(_L("Testing the simulated version."));
+
+	CreateConfigFileL(_L("c:\\config3.txt"));
+
+	for(TInt version = 1; version<=6; version++)
+		{
+		SetTestNumberL(version + KSimTsyVersionTestOffset);
+		TestVersion(version);
+		}
+	
+	return TestStepResult();
+	}
+
+void CSetVersion::TestVersion(TInt aVersion)
+	{
+	// Closing and re-opening the phone (to refresh the version setting)
+ 	iPhone.Close();
+	TInt ret = iPhone.Open(iTelServer,KPhoneName); 
+	TESTL(ret == KErrNone); 
+	INFO_PRINTF1(_L("Opened phone object"));
+
+	TRequestStatus stat0;
+
+	// Testing a V1 data structure.
+	TUint32 capabilities;
+	RMobilePhone::TMobilePhoneBatteryInfoV1 battery;
+	INFO_PRINTF1(_L("Testing a V1 data structure."));
+	ret = iPhone.GetBatteryCaps(capabilities);
+	TESTL(ret==KErrNone); // must always pass - there is no version number lower than 1;
+
+	// Testing a V2 data structure.
+ 	RMobilePhone::TUSimApplicationInfoV2 usimAppInfo;
+	RMobilePhone::TUSimApplicationInfoV2Pckg usimAppInfoPckg(usimAppInfo);
+	INFO_PRINTF1(_L("Testing a V2 data structure."));
+	iPhone.GetUSimApplicationInfo(stat0, 0, usimAppInfoPckg);
+  	User::WaitForRequest(stat0);
+	if(aVersion >=2)
+		{
+		TESTL(stat0==KErrNone);
+		}
+	else
+		{
+		TESTL(stat0==KErrNotSupported);
+		}
+  	
+  	
+ 	// Testing a V3 data structure.
+ 	RMobilePhone::TMobilePhoneNetworkNameV3 networkname;
+	RMobilePhone::TMobilePhoneNetworkNameV3Pckg networknamePckg(networkname);
+	RMobilePhone::TMobilePhoneOPlmnV3 locInfo;
+	RMobilePhone::TMobilePhoneOPlmnV3Pckg locInfoPckg(locInfo);
+	INFO_PRINTF1(_L("Testing a V3 data structure."));
+	iPhone.GetCurrentNetworkName(stat0, networknamePckg, locInfoPckg);
+	User::WaitForRequest(stat0);
+	if(aVersion >=3)
+		{
+		TESTL(stat0==KErrNone);
+		}
+	else
+		{
+		TESTL(stat0==KErrNotSupported);
+		}
+  	
+ 	// Testing a V5 data structure.
+ 	RMobilePhone::TSmartCardApplicationInfoV5 smartCardAppInfo;
+	RMobilePhone::TSmartCardApplicationInfoV5Pckg smartCardAppInfoPckg(smartCardAppInfo);
+	INFO_PRINTF1(_L("Testing a V5 data structure."));
+	iPhone.GetSmartCardApplicationInfo(stat0, 0, smartCardAppInfoPckg);
+	User::WaitForRequest(stat0);
+	if(aVersion >=5)
+		{
+		TESTL(stat0==KErrNone);
+		}
+	else
+		{
+		TESTL(stat0==KErrNotSupported);
+		}
+
+ 	// Testing a V6 data structure.
+	RMobilePhone::TSmartCardAuthenticateDataV6 authenticateData;
+	RMobilePhone::TSmartCardAuthenticateDataV6Pckg authenticateDataPckg(authenticateData);
+	authenticateData.iAUTN = KConfigScAuthAUTN();
+	authenticateData.iRAND = KConfigScAuthRAND();
+	INFO_PRINTF1(_L("Testing a V6 data structure."));
+	iPhone.SmartCardAuthenticate(stat0, authenticateDataPckg);
+	User::WaitForRequest(stat0);
+	if(aVersion >=6)
+		{
+		TESTL(stat0==KErrNone);
+		}
+	else
+		{
+		TESTL(stat0==KErrNotSupported);
+		}
+
+	
+	iPhone.Close();
+	}
+	
+//------------------------------------------------------------------
+
+CCheckVersionSupport::CCheckVersionSupport()
+/** Each test step initialises it's own name
+*/
+	{
+	// store the name of this test case
+	// this is the name hat is used by the script file
+	SetTestStepName(_L("CCheckVersionSupport"));
+	}
+//------------------------------------------------------------------
+
+TVerdict CCheckVersionSupport::doTestStepL( void )
+	{
+    INFO_PRINTF1(_L("Testing the support of the simulated version."));
+
+	CreateConfigFileL(_L("c:\\config3.txt"));
+
+	for(TInt version = 1; version<=6; version++)
+		{
+		SetTestNumberL(version + KSimTsyVersionTestOffset);
+		TestVersionSupport(version);
+		}
+
+	return TestStepResult();
+	}
+	
+	
+void CCheckVersionSupport::TestVersionSupport(TInt aSimTsyVersion)
+	{
+	TInt mmBaseClassVersion = KETelExtMultimodeV1;
+	TBool isVer;
+
+	const TInt mmVersion[7] = 
+		{
+		0,
+		KETelExtMultimodeV1,
+		KETelExtMultimodeV2,
+		KETelExtMultimodeV3,
+		KETelExtMultimodeV4,
+		KEtelExtMultimodeV5,
+		KEtelExtMultimodeV6
+		};
+	
+	// Closing and re-opening the phone (to refresh the version setting)
+ 	iPhone.Close();
+	TInt ret = iPhone.Open(iTelServer,KPhoneName); 
+	TESTL(ret == KErrNone); 
+	INFO_PRINTF1(_L("Opened phone object"));
+
+	for(TInt version = 1; version<=6; version++)
+		{
+		// setting the version to check
+		mmBaseClassVersion = mmVersion[version];
+		
+		// checking support
+		INFO_PRINTF2(_L("Testing KETelExtMultimodeV%d."), version);
+		iTelServer.IsSupportedByModule(KSimtsyName,mmBaseClassVersion,isVer);
+
+		if(version <= aSimTsyVersion)
+			{
+			TEST(isVer);
+			}
+		else
+			{
+			TEST(!isVer);
+			}
+		}
+		
+	// close the phone (will be opened again on the next iteration)
+	iPhone.Close();
+	}