authenticationservices/authenticationserver/test/reftestplugin/tpinplugin/tpinpluginteststep.cpp
branchRCL_3
changeset 61 641f389e9157
parent 29 ece3df019add
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/authenticationservices/authenticationserver/test/reftestplugin/tpinplugin/tpinpluginteststep.cpp	Tue Aug 31 17:00:08 2010 +0300
@@ -0,0 +1,276 @@
+/*
+* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 "tpinpluginteststep.h"
+#include <test/testexecutelog.h>
+#include <s32file.h>
+
+_LIT(KProperties,   		"Property");
+_LIT(KDefaultData,			"DefaultData");
+_LIT(KIdentify,				"Identify");
+_LIT(KTrain,   				"Train");
+_LIT(KReTrain,   			"ReTrain");
+_LIT(KForget,   			"Forget");
+_LIT(KSequence,   			"Sequence");
+_LIT(KOom,   				"Oom");
+
+_LIT(KInputFile, 	"C:\\t_pinplugindlg_in.dat");
+_LIT(KOutputFile, "C:\\t_pinplugindlg_out.dat");
+
+using namespace AuthServer;
+
+CPinPluginTestStep::~CPinPluginTestStep()
+	{
+	}
+
+CPinPluginTestStep::CPinPluginTestStep()
+	{
+	// Call base class method to set up the human readable name for logging
+	SetTestStepName(KPinPluginTestStep);
+	}
+
+TVerdict CPinPluginTestStep::doTestStepPreambleL()
+	{
+	// get step parameters
+	if (!GetStringFromConfig(ConfigSection(), _L("pinprocesstype"), iPinProcessType))
+		{
+		ERR_PRINTF1(_L("Requested Pin Process Type is missing"));
+		SetTestStepResult(EFail);
+		}
+	else
+		{
+		if (iPinProcessType.CompareF(KProperties) != 0 
+			&& iPinProcessType.CompareF(KOom) != 0)
+			{
+			TInt id  = 0;
+			if (!GetIntFromConfig(ConfigSection(), _L("identityid"), id))
+				{
+				ERR_PRINTF1(_L("Identity Id Value is missing"));
+				SetTestStepResult(EFail);	
+				}
+			else
+				{
+				iIdentityId = TIdentityId(id);
+				SetTestStepResult(EPass);
+				INFO_PRINTF3(_L("\"%S\" the Identity '%d' using PinPlugin System"), &iPinProcessType, id/*iIdentityId*/);
+				}
+			}
+		}
+	return TestStepResult();
+	}
+
+TVerdict CPinPluginTestStep::doTestStepL()
+	{
+	if (TestStepResult() != EPass)
+		{
+		return TestStepResult();
+		}
+
+	CActiveScheduler* sched = NULL;
+	sched = new (ELeave) CActiveScheduler;
+	CleanupStack::PushL(sched);
+	CActiveScheduler::Install(sched);	
+	CPinPluginTestActive* activeObj = CPinPluginTestActive::NewL(Logger(), iIdentityId, iPinProcessType, *this);
+	CleanupStack::PushL(activeObj);
+	
+	if (iPinProcessType.CompareF(KProperties) == 0)
+		{
+		iVerdict = activeObj->DoTestPropertyL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KDefaultData) == 0)
+		{
+		iVerdict = activeObj->DoTestDefaultDataL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KIdentify) == 0)
+		{
+		iVerdict = activeObj->DoTestIdentifyL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KTrain) == 0)
+		{
+		iVerdict = activeObj->DoTestTrainL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KReTrain) == 0)
+		{
+		iVerdict = activeObj->DoTestReTrainL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KForget) == 0)
+		{
+		iVerdict = activeObj->DoTestForgetL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KTrainServerCancel) == 0
+			|| (iPinProcessType.CompareF(KReTrainServerCancel) == 0)
+			|| (iPinProcessType.CompareF(KIdentifyServerCancel) == 0))
+		{
+		iVerdict = activeObj->DoTestServerCancelL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KSequence) == 0)
+		{
+		iVerdict = activeObj->DoTestSequenceL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	else if (iPinProcessType.CompareF(KOom) == 0)
+		{
+		iVerdict = activeObj->DoTestOomL();
+		INFO_PRINTF1(activeObj->iLogInfo);
+		}
+	CleanupStack::PopAndDestroy(2, sched);
+	SetTestStepResult(iVerdict);
+	return TestStepResult();
+	}
+
+TVerdict CPinPluginTestStep::doTestStepPostambleL()
+	{
+	CActiveScheduler::Install(NULL);
+	return TestStepResult();
+	}
+
+CCreateFile::~CCreateFile()
+	{}
+
+CCreateFile::CCreateFile()
+	{
+	// Call base class method to set up the human readable name for logging
+	SetTestStepName(KCreateInputFile);
+	}
+
+TVerdict CCreateFile::doTestStepPreambleL()
+	{
+	TPtrC pinProcessType;
+	// get step parameters
+	if (!GetStringFromConfig(ConfigSection(), _L("pinprocesstype"), pinProcessType))
+		{
+		ERR_PRINTF1(_L("Index not present"));
+		SetTestStepResult(EFail);
+		}
+	else
+		{
+		if (pinProcessType.CompareF(KTrain) == 0)
+			{
+			iOperation = EPinPluginTraining;
+			}
+		else if (pinProcessType.CompareF(KIdentify) == 0)
+			{
+			iOperation = EPinPluginIdentify;
+			}
+		}
+	TPtrC pinValue;
+	if (GetStringFromConfig(ConfigSection(), _L("pinvalue"), pinValue))
+		{
+		if(pinValue == _L("readoutput"))
+			{
+			iPinValue = GetPinFromOutputFileL();
+			}
+		else
+			{
+			iPinValue.Copy(pinValue);
+			}
+		}
+	
+	if (!GetIntFromConfig(ConfigSection(), _L("selectedindex"), iIndex))
+		{
+		ERR_PRINTF1(_L("Index not present"));
+		SetTestStepResult(EFail);
+		}
+	if (!GetIntFromConfig(ConfigSection(), _L("newpinlength"), iNewPinLength))
+		{
+		ERR_PRINTF1(_L("new pin length missing"));
+		SetTestStepResult(EFail);	
+		}
+	if (!GetIntFromConfig(ConfigSection(), _L("outputatdialog"), iDialogNumber))
+		{
+		ERR_PRINTF1(_L("dialog number missing"));
+		SetTestStepResult(EFail);	
+		}
+	
+	return TestStepResult();
+	}
+
+TVerdict CCreateFile::doTestStepL()
+	{
+	if (TestStepResult() != EPass)
+		{
+		return TestStepResult();
+		}
+	
+	RFileWriteStream stream;
+	RFs fs;
+	User::LeaveIfError(fs.Connect());
+	TInt err = stream.Replace(fs, KInputFile, EFileWrite | EFileShareExclusive);
+	User::LeaveIfError(err);
+	stream.PushL();
+	
+	MStreamBuf* streamBuf = stream.Sink();
+	streamBuf->SeekL(MStreamBuf::EWrite, EStreamEnd);
+	stream.WriteInt32L(iOperation);
+	stream.WriteInt32L(iPinValue.Length());
+	stream.WriteL(iPinValue);
+	stream.WriteInt32L(iIndex);
+	stream.WriteInt32L(iNewPinLength);
+	TPinPluginDialogResult cmdResult = EOk;
+	stream.WriteInt32L(cmdResult);
+	iOperation = EPinPluginInfo;
+	stream.WriteInt32L(iOperation);
+	TPinPluginDialogResult cmdFinalResult = EOk;
+	stream.WriteInt32L(cmdFinalResult);
+	stream.WriteInt32L(iDialogNumber);
+	stream.CommitL();
+	CleanupStack::PopAndDestroy(); // stream
+	
+	SetTestStepResult(EPass);
+	return TestStepResult();
+	}
+
+TPinValue CCreateFile::GetPinFromOutputFileL()
+	{
+	RFileReadStream stream;
+	RFs fs;
+	User::LeaveIfError(fs.Connect());
+	User::LeaveIfError(stream.Open(fs, KOutputFile, EFileRead | EFileShareExclusive));
+	stream.PushL();
+
+	TPinValue pinvalue;
+	
+	stream.ReadInt32L();
+	TInt pinValueLength = stream.ReadInt32L();
+	HBufC8* pinValueBuf = HBufC8::NewMaxLC(pinValueLength);
+	TPtr8 pinValuePtr(pinValueBuf->Des());
+	stream.ReadL(pinValuePtr, pinValueLength);
+	pinvalue.Copy(pinValuePtr);
+	
+	CleanupStack::PopAndDestroy(2, &stream);	
+
+	return pinvalue;
+	}
+
+TVerdict CCreateFile::doTestStepPostambleL()
+	{
+	CActiveScheduler::Install(NULL);
+	return TestStepResult();
+	}
+
+
+
+
+