javacommons/security/javaunicertstoreplugin/tsrc/src/tokentests.cpp
changeset 21 2a9601315dfc
--- /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 <stdio.h>
+#include <string>
+#include <memory>
+#include <unistd.h>
+#include <e32cmn.h>
+#include <e32des8.h>
+
+#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<CTestExecutor> testExecutor(new CTestExecutor());
+        auto_ptr<CJavaCertStoreTokenType> certStoreTokenType
+        (static_cast<CJavaCertStoreTokenType*>(CJavaCertStoreTokenType::New2L()));
+
+        RCPointerArray<HBufC> 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<CTestExecutor> testExecutor(new CTestExecutor());
+        auto_ptr<CJavaCertStoreTokenType> certStoreTokenType
+        (static_cast<CJavaCertStoreTokenType*>(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<CTestExecutor> testExecutor(new CTestExecutor());
+
+        {
+            //# 1
+            //Getting non-writable cert store interface.
+            auto_ptr<CJavaCertStoreTokenType> certStoreTokenType
+            (static_cast<CJavaCertStoreTokenType*>(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<CJavaCertStoreTokenType> certStoreTokenType
+            (static_cast<CJavaCertStoreTokenType*>(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<CJavaCertStoreTokenType> certStoreTokenType
+            (static_cast<CJavaCertStoreTokenType*>(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);
+    }
+}
+
+
+
+