diff -r cd501b96611d -r ece3df019add authenticationservices/authenticationserver/test/reftestplugin/tpinplugin/tpinpluginteststep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/authenticationservices/authenticationserver/test/reftestplugin/tpinplugin/tpinpluginteststep.cpp Tue Nov 24 09:06:03 2009 +0200 @@ -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 +#include + +_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(); + } + + + + +