diff -r e8e63152f320 -r 2a9601315dfc javacommons/security/javaunicertstoreplugin/tsrc/src/tokentests.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javacommons/security/javaunicertstoreplugin/tsrc/src/tokentests.cpp Mon May 03 12:27:20 2010 +0300 @@ -0,0 +1,242 @@ +/* +* Copyright (c) 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: +* +*/ + +#include +#include +#include +#include +#include +#include + +#include "TestHarness.h" +#include "testexecutor.h" +#include "securitycommsmessagedefs.h" +#include "testdata.h" +#include "testutils.h" +#include "javacertstoretokentype.h" +#include "javacertstoretoken.h" +#include "javacertstoreimpl.h" +#include "testfailedexception.h" +#include "commsmsgsender.h" + +using namespace std; +using namespace java::security; + +_LIT(KMIDP2TrustRoot, "Java Trust Root"); + +TEST_GROUP(TokenTests) +{ + TEST_SETUP() + { + } + + TEST_TEARDOWN() + { + } +}; + +// +// TEST CASE 30 +// +TEST(TokenTests,testsForList) +{ + printf("+testsForList\n"); + + try + { + auto_ptr testExecutor(new CTestExecutor()); + auto_ptr certStoreTokenType + (static_cast(CJavaCertStoreTokenType::New2L())); + + RCPointerArray outList; + certStoreTokenType->List(outList,testExecutor->GetRequestStatus()); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + CHECK(1 == outList.Count()); + CHECK(0 == outList[0]->Compare(_L("Java Trust Roots"))); + outList.Close(); + + printf("-testsForList\n"); + } + catch (TestFailedException& ex) + { + printf("testsForList() ERROR: %s",ex.toString().c_str()); + CHECK(false); + } + catch (...) + { + printf("testsForList() Unexpected exception caught"); + CHECK(false); + } +} + +// +// TEST CASE 31 +// +TEST(TokenTests,testsForOpenToken) +{ + printf("+testsForOpenToken\n"); + + try + { + auto_ptr testExecutor(new CTestExecutor()); + auto_ptr certStoreTokenType + (static_cast(CJavaCertStoreTokenType::New2L())); + + //# 1 + //Getting token. + MCTToken* outToken = NULL; + certStoreTokenType->OpenToken(_L("Java Trust Roots"),outToken,testExecutor->GetRequestStatus()); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + TCTTokenHandle tokenHandle = outToken->Handle(); + CHECK(0x1234 == tokenHandle.iTokenId); + outToken->Release(); + + //# 2 + //Try to get token using unsupported token type. + MCTToken* outToken2 = NULL; + certStoreTokenType->OpenToken(_L("blaah"),outToken2,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNotSupported == testExecutor->GetErrorCode()); + + //# 3 + //Calling unsupported version from OpenToken() operation. + certStoreTokenType->OpenToken(tokenHandle,outToken2,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNotSupported == testExecutor->GetErrorCode()); + + printf("-testsForOpenToken\n"); + } + catch (TestFailedException& ex) + { + printf("testsForOpenToken() ERROR: %s",ex.toString().c_str()); + CHECK(false); + } + catch (...) + { + printf("testsForOpenToken() Unexpected exception caught"); + CHECK(false); + } +} + +// +// TEST CASE 32 +// +TEST(TokenTests,testsForDoGetInterface) +{ + printf("+testsForDoGetInterface\n"); + + try + { + //Starting java captain. + TestUtils::StartJavaCaptain(); + + auto_ptr testExecutor(new CTestExecutor()); + + { + //# 1 + //Getting non-writable cert store interface. + auto_ptr certStoreTokenType + (static_cast(CJavaCertStoreTokenType::New2L())); + MCTToken* outToken = NULL; + certStoreTokenType->OpenToken(_L("Java Trust Roots"),outToken,testExecutor->GetRequestStatus()); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + + MCTTokenInterface* outInterface = NULL; + TUid tmpUid = TUid::Uid(KInterfaceCertStore); + outToken->GetInterface(tmpUid,outInterface,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + MCTToken& token = outInterface->Token(); + TCTTokenHandle tokenHandle = outToken->Handle(); + CHECK(0x1234 == tokenHandle.iTokenId); + outInterface->Release(); + outToken->Release(); + CJavaCertStoreTokenType* tmpObj = certStoreTokenType.release(); + tmpObj->Release(); + } + + { + //# 2 + //Getting writable cert store interface. + auto_ptr certStoreTokenType + (static_cast(CJavaCertStoreTokenType::New2L())); + MCTToken* outToken = NULL; + certStoreTokenType->OpenToken(_L("Java Trust Roots"),outToken,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + + MCTTokenInterface* outInterface = NULL; + TUid tmpUid = TUid::Uid(KInterfaceWritableCertStore); + outToken->GetInterface(tmpUid,outInterface,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + MCTToken& token = outInterface->Token(); + TCTTokenHandle tokenHandle = outToken->Handle(); + CHECK(0x1234 == tokenHandle.iTokenId); + outInterface->Release(); + outToken->Release(); + CJavaCertStoreTokenType* tmpObj = certStoreTokenType.release(); + tmpObj->Release(); + } + + { + //# 3 + //Pass incorrect interface uid as argument to DoGetInterface() operation. + auto_ptr certStoreTokenType + (static_cast(CJavaCertStoreTokenType::New2L())); + MCTToken* outToken = NULL; + certStoreTokenType->OpenToken(_L("Java Trust Roots"),outToken,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNone == testExecutor->GetErrorCode()); + + MCTTokenInterface* outInterface = NULL; + TUid tmpUid = TUid::Uid(0x10); + outToken->GetInterface(tmpUid,outInterface,testExecutor->GetRequestStatus()); + testExecutor->Activate(); + CActiveScheduler::Start(); + CHECK(KErrNotSupported == testExecutor->GetErrorCode()); + outToken->Release(); + CJavaCertStoreTokenType* tmpObj = certStoreTokenType.release(); + tmpObj->Release(); + } + + printf("-testsForDoGetInterface\n"); + } + catch (TestFailedException& ex) + { + printf("testsForDoGetInterface() ERROR: %s",ex.toString().c_str()); + CHECK(false); + } + catch (...) + { + printf("testsForDoGetInterface() Unexpected exception caught"); + CHECK(false); + } +} + + + +