--- a/authenticationservices/authenticationserver/test/tauthcliserv/step_mgrclient.cpp Thu Apr 01 00:24:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,501 +0,0 @@
-/*
-* 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 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 <bautils.h>
-#include <s32file.h>
-#include <test/testexecutelog.h>
-
-#include "authserver/authmgrclient.h"
-#include "authserver/identity.h"
-#include "tauthcliservstep.h"
-
-using namespace AuthServer;
-
-class CRegActive : public CActive
- {
- public:
- CRegActive(RAuthMgrClient& aClient, CIdentity*& aResult, TBool aStop = ETrue) :
- CActive(EPriorityNormal),
- iFirstTime(true),
- iClient(aClient),
- iResult(aResult),
- iStop(aStop)
- {
- CActiveScheduler::Add(this);
- }
- void doReg()
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- iFirstTime = ETrue;
- }
- void DoCancel()
- {
- }
- void RunL()
- {
- if (iFirstTime)
- {
- SetActive();
- iStatus = KRequestPending;
- iClient.RegisterIdentityL(iResult, _L("SOMENAME"), iStatus);
- iFirstTime = false;
- }
- else
- {
- if (iStop)
- {
- CActiveScheduler::Stop();
- }
- iErr = iStatus.Int();
- }
- }
- TBool iFirstTime;
- RAuthMgrClient& iClient;
- CIdentity*& iResult;
- TBool iStop;
- TInt iErr;
- };
-
-class CTrainActive : public CActive
- {
- public:
- CTrainActive(RAuthMgrClient& aClient, TBool aStop = ETrue) :
- CActive(EPriorityNormal),
- iClient(aClient),
- iResult(EFail),
- iRunCount(0),
- iStop(aStop)
- {
- CActiveScheduler::Add(this);
- }
- void doTrain()
- {
-
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- iRunCount = 0;
- }
- void DoCancel()
- {
- }
- void RunL()
- {
- iErr = iStatus.Int();
- if (iStatus.Int() != KErrNone)
- {
- }
- switch (iRunCount)
- {
- case 0:
- iStatus = KRequestPending;
- iAe = AuthExpr(0x10274104);
- iId = 0;
-
- iClient.AuthenticateL(*iAe, 10, EFalse, EFalse, iId, iStatus);
- SetActive();
-
- break;
- case 1:
- delete iAe;
- delete iId;
- iStatus = KRequestPending;
- iClient.TrainPlugin(22, 0x10274104, iStatus);
- SetActive();
-
- break;
- case 2:
- iResult = iStatus.Int() == KErrNone ? EPass : EFail;
- iErr = iStatus.Int();
- if (iStop)
- {
- CActiveScheduler::Stop();
- }
-
- break;
- default:
- iResult = EFail;
-
- if (iStop)
- {
- CActiveScheduler::Stop();
- }
- }
- ++iRunCount;
- }
- RAuthMgrClient& iClient;
- TVerdict iResult;
- TInt iRunCount;
- CAuthExpression* iAe;
- CIdentity* iId;
- TBool iStop;
- TInt iErr;
- };
-
-class CTrainActive2 : public CActive
- {
- public:
- CTrainActive2(RAuthMgrClient& aClient, TBool aStop = ETrue) :
- CActive(EPriorityNormal),
- iClient(aClient),
- iRunCount(0),
- iStop(aStop)
- {
- CActiveScheduler::Add(this);
- }
- void doTrain()
- {
- SetActive();
- iClient.TrainPlugin(22, 0x10274105, iStatus);
- }
- void DoCancel()
- {
- }
- void RunL()
- {
- iErr = iStatus.Int();
- if (iStop)
- {
- CActiveScheduler::Stop();
- }
- }
-
- RAuthMgrClient& iClient;
- TInt iRunCount;
- CAuthExpression* iAe;
- CIdentity* iId;
- TBool iStop;
- TInt iErr;
- };
-
-class CCancelActive : public CActive
- {
- public:
- CCancelActive(RAuthMgrClient& aClient) :
- CActive(EPriorityNormal),
- iClient(aClient),
- iResult(EFail),
- iRunCount(0)
- {
- CActiveScheduler::Add(this);
- }
- void doIdCancel()
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- iMode = 1;
- iRunCount = 0;
- }
- void doRegCancel()
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- iMode = 2;
- iRunCount = 0;
- }
- void doTrainCancel()
- {
- SetActive();
- TRequestStatus* status = &iStatus;
- User::RequestComplete(status, KErrNone);
- iMode = 0;
- iRunCount = 0;
- }
- void DoCancel()
- {
- }
- void RunL()
- {
- if (iStatus.Int() != KErrNone)
- {
- //RDebug::Printf("CCancelActive error: %d", iStatus.Int());
- }
- switch (iRunCount)
- {
- case 0:
- iStatus = KRequestPending;
- iAe = AuthExpr(0x10274105);
- iId = 0;
- switch (iMode)
- {
- case 2:
- iClient.RegisterIdentityL(iId, _L("RegCancelID"), iStatus);
- break;
- case 1:
- iClient.AuthenticateL(*iAe, 0, EFalse, ETrue, iId, iStatus);
- break;
- case 0:
- iClient.TrainPlugin(22, 0x10274105, iStatus);
- break;
- }
- SetActive();
- User::After(1000000);
- iClient.Cancel();
-
- break;
- case 1:
- //iStatus = KRequestPending;
-
- delete iAe;
- delete iId;
- //SetActive();
-
- //break;
- case 2:
- iResult = iStatus.Int() == KErrCancel ? EPass : EFail;
- CActiveScheduler::Stop();
-
- break;
- default:
- iResult = EFail;
- CActiveScheduler::Stop();
- }
- ++iRunCount;
- }
- RAuthMgrClient& iClient;
- TVerdict iResult;
- TInt iRunCount;
- CAuthExpression* iAe;
- CIdentity* iId;
- TInt iMode;
- };
-
-
-CTStepMgrClient::CTStepMgrClient()
- {
- SetTestStepName(KTStepMgrClient);
- }
-
-
-TBool CTStepMgrClient::TestMultiRegisterL(RAuthMgrClient& client)
- {
- CIdentity* result = 0;
- CRegActive active(client, result);
-
- CIdentity* result2 = 0;
- RAuthMgrClient client2;
- User::LeaveIfError(client2.Connect());
- CleanupClosePushL(client2);
-
- CRegActive active2(client2, result2, EFalse);
-
- active.doReg();
- active2.doReg();
-
- CActiveScheduler::Start();
-
- TEST(active.iErr == KErrNone);
- TEST(active2.iErr == KErrServerBusy);
-
- delete result;
- delete result2;
- CleanupStack::PopAndDestroy(&client2);
- return ETrue;
-
- }
-
-TBool CTStepMgrClient::TestRegister(RAuthMgrClient& client)
- {
- CIdentity* result = 0;
- CRegActive active(client, result);
-
- active.doReg();
-
- CActiveScheduler::Start();
- if (result == 0)
- {
- return EFalse;
- }
-
- INFO_PRINTF3(_L("Id = %d , KeyLength = %d\n"), result->Id(), result->Key().KeyData().Size());
- delete result;
- result = 0;
- return ETrue;
- }
-
-TBool CTStepMgrClient::TestMultiTrainL(RAuthMgrClient& client)
- {
- CTrainActive2 active(client);
- active.doTrain();
-
- RAuthMgrClient client2;
- User::LeaveIfError(client2.Connect());
- CleanupClosePushL(client2);
-
- CTrainActive2 active2(client2, EFalse);
- active2.doTrain();
-
- CActiveScheduler::Start();
-
- TEST(active.iErr == KErrAuthServPluginCancelled); // blocking plugin returns
- // cancelled if left to
- // complete
- TEST(active2.iErr == KErrServerBusy);
-
- CleanupStack::PopAndDestroy(&client2);
- INFO_PRINTF3(_L("Training Result (%d,%d)\n"),
- active.iErr,
- active2.iErr);
-
- return true;
- }
-
-
-TBool CTStepMgrClient::TestTrain(RAuthMgrClient& client)
- {
- CTrainActive active(client);
- active.doTrain();
- CActiveScheduler::Start();
- INFO_PRINTF2(_L("Training Result = %d\n"), active.iResult == EPass);
- return active.iResult == EPass;
- }
-
-TBool CTStepMgrClient::TestCancellation(RAuthMgrClient& client)
- {
- CCancelActive active(client);
-
- active.doTrainCancel();
- CActiveScheduler::Start();
- TEST(active.iResult == EPass);
- INFO_PRINTF2(_L("Training Cancel Result = %d\n"), active.iResult == EPass);
-
- active.doTrainCancel();
- CActiveScheduler::Start();
- TEST(active.iResult == EPass);
- INFO_PRINTF2(_L("Training Cancel Result = %d\n"), active.iResult == EPass);
-
- active.doTrainCancel();
- CActiveScheduler::Start();
- TEST(active.iResult == EPass);
- INFO_PRINTF2(_L("Training Cancel Result = %d\n"), active.iResult == EPass);
-
- //User::After(5000000);
- active.doIdCancel();
- CActiveScheduler::Start();
- TEST(active.iResult == EPass);
- INFO_PRINTF2(_L("Id Cancel Result = %d\n"), active.iResult == EPass);
-
- active.doIdCancel();
- CActiveScheduler::Start();
- TEST(active.iResult == EPass);
- INFO_PRINTF2(_L("Id Cancel Result = %d\n"), active.iResult == EPass);
-
- active.doRegCancel();
- CActiveScheduler::Start();
- TEST(active.iResult == EPass);
- INFO_PRINTF2(_L("Registration Cancel Result = %d\n"), active.iResult == EPass);
-
- return active.iResult == EPass;
- }
-
-TVerdict CTStepMgrClient::doTestStepL()
- {
- TInt r = 0;
-
- if (TestStepResult() != EPass)
- {
- INFO_PRINTF1(_L("Previous step failed"));
-
- return TestStepResult();
- }
-
-
- WaitForServerToReleaseDb();
-
-
- TDriveUnit sysDrive (RFs::GetSystemDrive());
- TDriveName sysDriveName (sysDrive.Name());
-
- _LIT(KDbSrcFile ,"\\authdb0.db");
- TBuf<64> dbSrcFileName (sysDriveName);
- dbSrcFileName.Append(KDbSrcFile);
-
- TBuf<128> dbName(KDbName);
- dbName[0] = 'A' + sysDrive;
-
- r = BaflUtils::CopyFile(iFs, dbSrcFileName, dbName);
-
- INFO_PRINTF2(_L("File copy returned %d"), r);
-
- User::LeaveIfError(r);
-
-
-
- __UHEAP_MARK;
- SetTestStepResult(EPass);
-
- CActiveScheduler::Install(iActSchd);
-
-
- RAuthMgrClient mgrclient;
- User::LeaveIfError(mgrclient.Connect());
- CleanupClosePushL(mgrclient);
-
- mgrclient.RemoveIdentityL(2);
-
-
- RIdentityIdArray ids;
- mgrclient.IdentitiesL(ids);
- CleanupClosePushL(ids);
-
- TESTL(ids.Count() == 3);
-
- // ensure each expected identity occurs once.
- // (This technique is simple but doesn't generalise.)
- TInt sum = 0;
- for (TInt i = 0; i < 3; ++i)
- {
- TIdentityId id = ids[i];
- TESTL(id == 1 || id == 3 || id == 22);
- sum += id;
- }
- TESTL(sum == 1 + 3 + 22);
-
- CleanupStack::PopAndDestroy(&ids);
-
- TEST(TestRegister(mgrclient));
-
- mgrclient.IdentitiesL(ids);
- CleanupClosePushL(ids);
- TEST(ids.Count() == 4);
- CleanupStack::PopAndDestroy(&ids);
-
- TEST(TestTrain(mgrclient));
-
- INFO_PRINTF1(_L("Testing cancellation"));
- TEST(TestCancellation(mgrclient));
-
- INFO_PRINTF1(_L("Testing simultaneous registrations are blocked"));
- TEST(TestMultiRegisterL(mgrclient));
-
- INFO_PRINTF1(_L("Testing simultaneous trainings are blocked"));
- TestMultiTrainL(mgrclient);
-
- // Last plugin can't be removed
- TRAPD(err, mgrclient.ForgetPluginL(22,0x10274104));
- TEST(err == KErrAuthServCanNotRemoveLastPlugin);
-
- CleanupStack::PopAndDestroy(1, &mgrclient);
-
- __UHEAP_MARKEND;
- return EPass;
- }