os/security/cryptoservices/certificateandkeymgmt/tcertstore/t_certstoreactionsclient.cpp
First public contribution.
2 * Copyright (c) 2005-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.
23 #include "t_certstoreactionsclient.h"
24 #include "t_certstoredefs.h"
25 #include "t_certstoreout.h"
28 CTestAction* CInitCertificateAppInfoManager::NewL(RFs &aFs,
29 CConsoleBase& aConsole,
31 const TTestActionSpec& aTestActionSpec)
33 CTestAction* self = NewLC(aFs, aConsole, aOut, aTestActionSpec);
34 CleanupStack::Pop(self);
38 CTestAction* CInitCertificateAppInfoManager::NewLC(RFs &aFs,
39 CConsoleBase& aConsole,
41 const TTestActionSpec& aTestActionSpec)
43 CInitCertificateAppInfoManager* self =
44 new(ELeave) CInitCertificateAppInfoManager(aFs, aConsole, aOut);
45 CleanupStack::PushL(self);
46 self->ConstructL(aTestActionSpec);
50 CInitCertificateAppInfoManager::~CInitCertificateAppInfoManager()
54 void CInitCertificateAppInfoManager::PerformAction(TRequestStatus& aStatus)
60 TRAPD(err, HandleEInit());
61 TRequestStatus* status = &aStatus;
62 User::RequestComplete(status, err);
68 TRequestStatus* status = &aStatus;
69 User::RequestComplete(status, aStatus.Int());
70 if (aStatus == iExpectedResult)
78 if (aStatus == KErrNoMemory)
91 void CInitCertificateAppInfoManager::PerformCancel()
95 void CInitCertificateAppInfoManager::Reset()
97 __ASSERT_DEBUG(EFalse, User::Panic(_L("CInitCertificateAppInfoManager::Reset()"), 1));
100 CInitCertificateAppInfoManager::CInitCertificateAppInfoManager(RFs &aFs,
101 CConsoleBase& aConsole,
104 : CCertStoreTestAction(aFs, aConsole, aOut), iState(EInit), iFs(aFs)
108 void CInitCertificateAppInfoManager::ConstructL(const TTestActionSpec& aTestActionSpec)
110 CTestAction::ConstructL(aTestActionSpec);
112 // Set expected result
114 HBufC* result = HBufC::NewLC(aTestActionSpec.iActionResult.Length());
115 TPtr(result->Des()).Copy(aTestActionSpec.iActionResult);
116 Input::GetExpectedResultL(Input::ParseElement(*result, KReturnStart, KReturnEnd), iExpectedResult);
117 CleanupStack::PopAndDestroy(result);
120 void CInitCertificateAppInfoManager::HandleEInit()
123 InitTheCertificateAppInfoManagerL();
126 void CInitCertificateAppInfoManager::DoReportAction()
128 iOut.writeString(_L("Creating CertificateAppInfoManager..."));
132 void CInitCertificateAppInfoManager::DoCheckResult(TInt aError)
136 if (aError == KErrNone)
138 iConsole.Write(_L("\tcertificate app info manager created successfully\n"));
139 iOut.writeString(_L("\tcertificate app info manager created successfully"));
145 iConsole.Write(_L("\tcertificate app info manager creation failed\n"));
146 iOut.writeString(_L("\tcertificate app info manager creation failed"));
153 CTestAction* CDeleteCertificateAppInfoManager::NewL(RFs& aFs,
154 CConsoleBase& aConsole,
156 const TTestActionSpec& aTestActionSpec)
158 CDeleteCertificateAppInfoManager* self =
159 new(ELeave) CDeleteCertificateAppInfoManager(aFs, aConsole, aOut);
160 CleanupStack::PushL(self);
161 self->ConstructL(aTestActionSpec);
162 CleanupStack::Pop(self);
166 CDeleteCertificateAppInfoManager::~CDeleteCertificateAppInfoManager()
170 CDeleteCertificateAppInfoManager::CDeleteCertificateAppInfoManager(RFs& aFs, CConsoleBase& aConsole,
172 : CCertStoreTestAction(aFs, aConsole, aOut), iState(EDelete)
176 void CDeleteCertificateAppInfoManager::ConstructL(const TTestActionSpec& aTestActionSpec)
178 CCertStoreTestAction::ConstructL(aTestActionSpec);
180 HBufC* result = HBufC::NewLC(aTestActionSpec.iActionResult.Length());
181 TPtr(result->Des()).Copy(aTestActionSpec.iActionResult);
182 Input::GetExpectedResultL(Input::ParseElement(*result, KReturnStart, KReturnEnd), iExpectedResult);
183 CleanupStack::PopAndDestroy(result);
186 void CDeleteCertificateAppInfoManager::PerformAction(TRequestStatus& aStatus)
192 DeleteTheCertificateAppInfoManager();
194 TRequestStatus* status = &aStatus;
195 User::RequestComplete(status, KErrNone);
201 TRequestStatus* status = &aStatus;
202 User::RequestComplete(status, aStatus.Int());
203 if (aStatus == iExpectedResult)
211 if (aStatus == KErrNoMemory)
224 void CDeleteCertificateAppInfoManager::PerformCancel()
228 void CDeleteCertificateAppInfoManager::Reset()
230 __ASSERT_DEBUG(EFalse, User::Panic(_L("CDeleteCertificateAppInfoManager::Reset()"), 1));
233 void CDeleteCertificateAppInfoManager::DoReportAction()
235 iOut.writeString(_L("Deleting CertificateAppInfoManager..."));
239 void CDeleteCertificateAppInfoManager::DoCheckResult(TInt aError)
243 if (aError == KErrNone)
245 iConsole.Write(_L("\tcertificate app info manager deleted successfully\n"));
246 iOut.writeString(_L("\tcertificate app info manager deleted successfully"));
252 iConsole.Write(_L("\tcertificate app info manager deletion failed\n"));
253 iOut.writeString(_L("\tcertificate app info manager deletion failed"));
260 CTestAction* CAddClient::NewL(RFs& aFs,
261 CConsoleBase& aConsole,
263 const TTestActionSpec& aTestActionSpec)
265 CAddClient* self = new(ELeave) CAddClient(aFs, aConsole, aOut);
266 CleanupStack::PushL(self);
267 self->ConstructL(aTestActionSpec);
268 CleanupStack::Pop(self);
272 CAddClient::~CAddClient()
277 void CAddClient::PerformAction(TRequestStatus& aStatus)
283 TInt err = KErrNotReady;
284 CCertificateAppInfoManager* appManager = NULL;
285 appManager = TheCertificateAppInfoManager();
288 TRAP(err, appManager->AddL(*iClientInfo));
291 TRequestStatus* status = &aStatus;
292 User::RequestComplete(status, err);
299 TRequestStatus* status = &aStatus;
300 User::RequestComplete(status, aStatus.Int());
301 if ( (aStatus == iExpectedResult) || (aStatus == KErrAlreadyExists) )
309 if (aStatus == KErrNoMemory)
322 void CAddClient::PerformCancel()
326 void CAddClient::Reset()
328 __ASSERT_DEBUG(EFalse, User::Panic(_L("CAddClient::Reset()"), 1));
331 CAddClient::CAddClient(RFs& aFs, CConsoleBase& aConsole,
333 : CCertStoreTestAction(aFs, aConsole, aOut), iState(EAdd)
337 void CAddClient::ConstructL(const TTestActionSpec& aTestActionSpec)
339 CCertStoreTestAction::ConstructL(aTestActionSpec);
342 const TDesC8& name = Input::ParseElement(aTestActionSpec.iActionBody, KNameStart, KNameEnd,
344 const TDesC8& uid = Input::ParseElement(aTestActionSpec.iActionBody, KUIDStart, KUIDEnd,
351 iClientInfo = new(ELeave) TCertificateAppInfo(u, n);
353 // Set expected result
356 HBufC* result = HBufC::NewLC(aTestActionSpec.iActionResult.Length());
357 TPtr(result->Des()).Copy(aTestActionSpec.iActionResult);
358 Input::GetExpectedResultL(Input::ParseElement(*result, KReturnStart, KReturnEnd), iExpectedResult);
359 CleanupStack::PopAndDestroy(result);
362 void CAddClient::DoReportAction()
364 iOut.writeString(_L("Adding client..."));
368 void CAddClient::DoCheckResult(TInt aError)
372 if (aError == KErrNone)
374 iConsole.Write(_L("\tClient added successfully\n"));
375 iOut.writeString(_L("\tClient added successfully"));
381 iConsole.Write(_L("\tClient added successfully\n"));
382 iOut.writeString(_L("\tClient added successfully"));
389 CTestAction* CGetClients::NewL(RFs& aFs,
390 CConsoleBase& aConsole,
392 const TTestActionSpec& aTestActionSpec)
394 CGetClients* self = new(ELeave) CGetClients(aFs, aConsole, aOut);
395 CleanupStack::PushL(self);
396 self->ConstructL(aTestActionSpec);
401 CGetClients::~CGetClients()
403 // We own iExpectedClients but not iClients
404 iExpectedClients.Close();
407 void CGetClients::PerformAction(TRequestStatus& aStatus)
413 TRequestStatus* status = &aStatus;
414 CCertificateAppInfoManager* appManager = NULL;
415 appManager = TheCertificateAppInfoManager();
418 iClients = &(appManager->Applications());
419 User::RequestComplete(status, KErrNone);
422 User::RequestComplete(status, KErrNotReady);
430 TRequestStatus* status = &aStatus;
431 User::RequestComplete(status, aStatus.Int());
432 if (aStatus == iExpectedResult)
434 // Check that we have the expected uids
435 TInt iEnd = iClients->Count();
436 if (iEnd == iExpectedClients.Count())
439 for (i = 0; i < iEnd; i++)
441 if ((*iClients)[i].Id() != iExpectedClients[i])
464 if (aStatus == KErrNoMemory)
477 void CGetClients::PerformCancel()
481 void CGetClients::Reset()
483 __ASSERT_DEBUG(EFalse, User::Panic(_L("CGetClients::Reset()"), 1));
486 CGetClients::CGetClients(RFs& aFs, CConsoleBase& aConsole,
488 : CCertStoreTestAction(aFs, aConsole, aOut),
493 void CGetClients::ConstructL(const TTestActionSpec& aTestActionSpec)
495 CCertStoreTestAction::ConstructL(aTestActionSpec);
499 // Set expected result
502 HBufC* result = HBufC::NewLC(aTestActionSpec.iActionResult.Length());
503 TPtr(result->Des()).Copy(aTestActionSpec.iActionResult);
504 Input::GetExpectedResultL(Input::ParseElement(*result, KReturnStart, KReturnEnd), iExpectedResult);
505 CleanupStack::PopAndDestroy(result);
507 const TDesC8& uidsString = Input::ParseElement(aTestActionSpec.iActionResult, KUIDStart, KUIDEnd,
509 TLex8 lex(uidsString);
512 while (err == KErrNone)
515 err = lex.Val(uid.iUid);
519 User::LeaveIfError(iExpectedClients.Append(uid));
524 void CGetClients::DoReportAction()
526 iOut.writeString(_L("Getting client..."));
528 iOut.writeString(_L("\tExpected clients :"));
529 TInt iEnd = iExpectedClients.Count();
530 for (TInt i = 0; i < iEnd; i++)
532 iOut.writeString(_L(" "));
533 iOut.writeNum(iExpectedClients[i].iUid);
539 void CGetClients::DoCheckResult(TInt aError)
543 iConsole.Printf(_L("\tClients:\n"));
544 iOut.writeString(_L("\tClients: "));
546 iOut.writeString(_L("\t\t"));
547 TInt count = iClients->Count();
548 for (TInt i = 0; i < count; i++)
550 iConsole.Printf(_L("%D "), (*iClients)[i].Id());
551 iOut.writeNum((*iClients)[i].Id().iUid);
552 iOut.writeString(_L(" "));
555 if (aError == KErrNone)
557 iConsole.Printf(_L("\tClients retrieved successfully\n"));
558 iOut.writeString(_L("\tClients retrieved successfully"));
563 iConsole.Printf(_L("\tClients retrieved failed\n"));
564 iOut.writeString(_L("\tClients retrieved failed"));
571 CTestAction* CRemoveClient::NewL(RFs& aFs,
572 CConsoleBase& aConsole,
574 const TTestActionSpec& aTestActionSpec)
576 CRemoveClient* self = new(ELeave) CRemoveClient(aFs, aConsole, aOut);
577 CleanupStack::PushL(self);
578 self->ConstructL(aTestActionSpec);
579 CleanupStack::Pop(self);
583 CRemoveClient::~CRemoveClient()
587 void CRemoveClient::PerformAction(TRequestStatus& aStatus)
593 TInt err = KErrNotReady;
594 CCertificateAppInfoManager* appManager = NULL;
595 appManager = TheCertificateAppInfoManager();
598 TRAP(err, appManager->RemoveL(iUid));
600 TRequestStatus* status = &aStatus;
601 User::RequestComplete(status, err);
608 TRequestStatus* status = &aStatus;
609 User::RequestComplete(status, aStatus.Int());
610 if (aStatus == iExpectedResult)
618 if (aStatus == KErrNoMemory)
631 void CRemoveClient::PerformCancel()
635 void CRemoveClient::Reset()
637 __ASSERT_DEBUG(EFalse, User::Panic(_L("CRemoveClient::Reset()"), 1));
640 CRemoveClient::CRemoveClient(RFs& aFs, CConsoleBase& aConsole,
642 : CCertStoreTestAction(aFs, aConsole, aOut), iState(ERemove)
646 void CRemoveClient::ConstructL(const TTestActionSpec& aTestActionSpec)
648 CCertStoreTestAction::ConstructL(aTestActionSpec);
651 const TDesC8& uid = Input::ParseElement(aTestActionSpec.iActionBody, KUIDStart, KUIDEnd,
656 // Set expected result
659 HBufC* result = HBufC::NewLC(aTestActionSpec.iActionResult.Length());
660 TPtr(result->Des()).Copy(aTestActionSpec.iActionResult);
661 Input::GetExpectedResultL(Input::ParseElement(*result, KReturnStart, KReturnEnd), iExpectedResult);
662 CleanupStack::PopAndDestroy(result);
665 void CRemoveClient::DoReportAction()
667 iOut.writeString(_L("Removing client..."));
671 void CRemoveClient::DoCheckResult(TInt aError)
675 if (aError == KErrNone)
677 iConsole.Write(_L("\tClient removed successfully\n"));
678 iOut.writeString(_L("\tClient removed successfully"));
682 else if (aError == KErrNotFound)
684 iConsole.Write(_L("\tClient not found\n"));
685 iOut.writeString(_L("\tClient not found"));