os/security/cryptoservices/filebasedcertificateandkeystores/test/tkeystore/t_setusers.cpp
First public contribution.
2 * Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of the License "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
19 #include <unifiedkeystore.h>
21 #include "t_keystore_actions.h"
22 #include "t_keystore_defs.h"
26 /////////////////////////////////////////////////////////////////////////////////
28 /////////////////////////////////////////////////////////////////////////////////
30 CTestAction* CSetUsers::NewL(RFs& aFs,
31 CConsoleBase& aConsole,
33 const TTestActionSpec& aTestActionSpec)
35 CTestAction* self = CSetUsers::NewLC(aFs, aConsole, aOut, aTestActionSpec);
36 CleanupStack::Pop(self);
40 CTestAction* CSetUsers::NewLC(RFs& aFs,
41 CConsoleBase& aConsole,
43 const TTestActionSpec& aTestActionSpec)
45 CSetUsers* self = new (ELeave) CSetUsers(aFs, aConsole, aOut);
46 CleanupStack::PushL(self);
47 self->ConstructL(aTestActionSpec);
51 CSetUsers::~CSetUsers()
57 CSetUsers::CSetUsers(RFs& aFs, CConsoleBase& aConsole, Output& aOut) :
58 CKeyStoreTestAction(aFs, aConsole, aOut), iState(EListKeys)
62 void CSetUsers::ConstructL(const TTestActionSpec& aTestActionSpec)
64 CKeyStoreTestAction::ConstructL(aTestActionSpec);
69 while (AddUserL(Input::ParseElement(aTestActionSpec.iActionBody, KUserStart, KUserEnd, pos, err)))
73 TBool CSetUsers::AddUserL(const TDesC8& aData)
75 if (aData.Length() == 0)
83 User::LeaveIfError(iUsers.Append(uid));
88 void CSetUsers::PerformAction(TRequestStatus& aStatus)
94 // Currently uses first store
95 CUnifiedKeyStore& keystore = *CSharedKeyStores::TheUnifiedKeyStores().operator[](0);
97 TCTKeyAttributeFilter filter;
98 keystore.List(iKeys, filter, aStatus);
106 TRequestStatus* status = &aStatus;
108 if (iKeys.Count() == 0)
110 User::RequestComplete(status, KErrNotFound);
114 const CCTKeyInfo* key = NULL;
115 for (TInt index = 0 ; index < iKeys.Count() ; ++index)
117 const CCTKeyInfo* k = iKeys[index];
118 if (k->Label() == *iLabel)
127 iOut.writeString(_L("Key not found: "));
128 iOut.writeString(*iLabel);
130 User::RequestComplete(status, KErrNotFound);
135 // Currently uses first store
136 CUnifiedKeyStore& keystore = *CSharedKeyStores::TheUnifiedKeyStores().operator[](0);
138 keystore.SetUsers(*key, iUsers, aStatus);
144 TRequestStatus* status = &aStatus;
145 User::RequestComplete(status, aStatus.Int());
146 if (aStatus == iExpectedResult)
155 iActionState = EPostrequisite;
161 void CSetUsers::PerformCancel()
163 CUnifiedKeyStore* keystore = CSharedKeyStores::TheUnifiedKeyStores().operator[](0);
169 keystore->CancelList();
173 keystore->CancelSetUsers();
181 void CSetUsers::Reset()
187 void CSetUsers::DoReportAction()
189 iOut.writeString(_L("Setting users..."));
194 void CSetUsers::DoCheckResult(TInt aError)
198 if (aError == KErrNone)
200 _LIT(KSuccessful, "Users set successfully\n");
201 iConsole.Write(KSuccessful);
202 iOut.writeString(KSuccessful);
208 if (aError!=iExpectedResult)
210 _LIT(KFailed, "!!!Set users failure!!!\n");
211 iConsole.Write(KFailed);
212 iOut.writeString(KFailed);
216 _LIT(KFailed, "Set users failed, but expected\n");
217 iConsole.Write(KFailed);
218 iOut.writeString(KFailed);