diff -r 000000000000 -r af10295192d8 networksecurity/tlsprovider/Test/tlstest2/updateentrystep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networksecurity/tlsprovider/Test/tlstest2/updateentrystep.cpp Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,134 @@ +// Copyright (c) 2008-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: +// + +/** + @file updateentrystep.h + @internalTechnology +*/ + +#include "updateentrystep.h" + +#include + +const TInt KDefaultResponseDelay = 3; + +CUpdateEntryStep::CUpdateEntryStep() + : iResponseDelay(KDefaultResponseDelay) + { + SetTestStepName(KUpdateEntryStep); + } + +TVerdict CUpdateEntryStep::doTestStepPreambleL() + { + // Initialise the tests + InitializeL(); + + // Parse the parameters required + _LIT(KCertEntryApproved, "approved"); + _LIT(KResponseDelay, "delay"); + _LIT(KCancel, "cancelled"); + + // Ignore return code from GetBoolFromConfig to keep default of EFalse. + GetBoolFromConfig(ConfigSection(), KCancel, iCancel); + + // Ignore return status from GetIntFromConfig to keep default value. + GetIntFromConfig(ConfigSection(), KResponseDelay, iResponseDelay); + + if (iCancel) + { + INFO_PRINTF3(_L("Certificate entry will be %S with a delay of %d seconds."), &KResponseDelay, iResponseDelay); + } + else if (!GetBoolFromConfig(ConfigSection(), KCertEntryApproved, iApproveEntry)) + { + INFO_PRINTF1(_L("Could not read certificate approval status from INI, abort.")); + + SetTestStepResult(EAbort); + return EAbort; + } + else if (iApproveEntry) + { + INFO_PRINTF3(_L("Certificate entry will be %S with a delay of %d seconds."), &KResponseDelay, iResponseDelay); + } + else + { + INFO_PRINTF3(_L("Certificate entry will be %S with a delay of %d seconds."), &KResponseDelay, iResponseDelay); + } + + + return EPass; + + } + +TVerdict CUpdateEntryStep::doTestStepL() + { + + // don't continue if previous phases have aborted + if (TestStepResult() != EPass) + { + return TestStepResult(); + } + + // Entry state should be ENewEntry at this point. + TCacheEntryState state = Session().GetStateL(); + + if (state != ENewEntry) + { + INFO_PRINTF4(_L("State of cache entry for certificate '%S' is %d, but should be %d (ENewEntry)."), SubjectLC(), state, ENewEntry); + CleanupStack::PopAndDestroy(1); // subject + SetTestStepResult(EFail); + return EFail; + } + else + { + INFO_PRINTF2(_L("State of cache entry for certificate '%S' is ENewEntry."), SubjectLC()); + CleanupStack::PopAndDestroy(1); // subject + } + + // Wait specifed number of seconds + User::After(iResponseDelay * 1000000); + + if (iCancel) + { + Session().Cancel(); + // log the action + INFO_PRINTF2(_L("Cancelled cert cache session opened for certificate '%S'."), SubjectLC()); + CleanupStack::PopAndDestroy(1); // subject + } + else + { + Session().SetStateL(iApproveEntry ? EEntryApproved : EEntryDenied); + // log the action + INFO_PRINTF2(_L("Updated cache entry for certificate '%S'."), SubjectLC()); + CleanupStack::PopAndDestroy(1); // subject + } + + + SetTestStepResult(EPass); + return EPass; + } + +TVerdict CUpdateEntryStep::doTestStepPostambleL() + { + if (TestStepResult() == EPass) + { + INFO_PRINTF1(_L("Step suceeded.")); + return EPass; + } + else + { + INFO_PRINTF1(_L("Step failed.")); + return EFail; + } + }