applayerprotocols/httptransportfw/Test/Acceptance/Iter2/SingleTrans.cpp
changeset 0 b16258d2340f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/applayerprotocols/httptransportfw/Test/Acceptance/Iter2/SingleTrans.cpp	Tue Feb 02 01:09:52 2010 +0200
@@ -0,0 +1,128 @@
+// Copyright (c) 2001-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:
+// SingleTrans..cpp
+// 
+//
+
+#include <x509cert.h>
+
+#include "SingleTrans.h"
+#include <http.h>
+
+void CHttpTestSingleTrans::CreateSingleTransactionL()
+	{
+	iTransaction = CreateTransactionL(0);
+	}
+
+void CHttpTestSingleTrans::OpenTestSessionL()
+	{
+	iSession.OpenL();
+	CleanupClosePushL ( iSession );
+	SetProxyL(0); // 0 is the start item to look for it in the param list for the test in the ini file
+	SetMaxRedirectsL(0);
+	MHTTPAuthenticationCallback::InstallAuthenticationL(iSession);
+	iMyStrP = iSession.StringPool();
+	TPtrC testName = CHttpTestTransactions::TestName();
+	if (testName.CompareF(_L("SSL9"))==0)
+		{
+		RHTTPConnectionInfo	connInfo = iSession.ConnectionInfo();
+		connInfo.SetPropertyL( 
+							 iMyStrP.StringF(HTTP::ESecureDialog, RHTTPSession::GetTable() ),
+							 iMyStrP.StringF(HTTP::EDialogNoPrompt, RHTTPSession::GetTable() )
+							 );
+		iEngine->Utils().LogIt(_L("Secure Dialog session property set\n"));
+		}
+	CreateSingleTransactionL();
+	CleanupStack::Pop (&iSession);
+	}
+
+void CHttpTestSingleTrans::CloseTestSession()
+	{
+	LogCertificate();
+	// Allow the base class to do any closing
+	CHttpTestTransactions::CloseTestSession();
+	// Close strings used in this session before closing the session
+	//close Transaction and session
+	iTransaction.Close();
+	iEngine->Utils().LogIt(_L("Transaction terminated\n"));
+	iSession.Close();
+	iEngine->Utils().LogIt(_L("Session terminated"));
+	}
+
+void CHttpTestSingleTrans::LogCertificate()
+	{
+	if(iLogCert)
+		{
+		TRAPD(error, LogCertL());
+		if(error != KErrNone)
+			iEngine->Utils().LogIt(_L("Unable to log server certificate.  Error code=%d\n"), error);
+		}
+	}
+
+void CHttpTestSingleTrans::LogCertL()
+	{
+	TCertInfo certInfo;
+	User::LeaveIfError(iTransaction.ServerCert(certInfo));
+
+	LogCertificateL(certInfo);
+
+	const CX509Certificate* cert = static_cast<const CX509Certificate*>(iTransaction.ServerCert());
+	LogCertificateL(cert);
+
+	}
+
+CHttpTestSingleTrans* CHttpTestSingleTrans::NewL(CScriptFile& aIniFile, CScriptFile* aIniSettingsFile, const TInt aSectionNumber)
+	{
+	CHttpTestSingleTrans* self= new(ELeave) CHttpTestSingleTrans;
+	CleanupStack::PushL(self);
+	self->ConstructL(aIniFile, aIniSettingsFile, aSectionNumber);
+	CleanupStack::Pop();
+	return self;
+	}
+
+void CHttpTestSingleTrans::ConstructL(CScriptFile& aIniFile, CScriptFile* aIniSettingsFile, const TInt aSectionNumber)
+	{
+	CHttpTestTransactions::ConstructL(aIniFile, aIniSettingsFile, aSectionNumber);
+
+	_LIT(KLogCipherSuite, "LogCipherSuite");
+	CScriptSectionItem* cipherSuiteItem = aIniFile.Section(aSectionNumber).Item(KLogCipherSuite);
+	_LIT(KItemSet, "1");
+	if(cipherSuiteItem && cipherSuiteItem->Value().Compare(KItemSet) == 0)
+		{
+		iLogCipherSuite = ETrue;
+		}
+	}
+	
+void CHttpTestSingleTrans::MHFRunL(RHTTPTransaction aTransaction,
+								   const THTTPEvent& aEvent)
+	{
+	// Handle the event
+	switch (aEvent.iStatus)
+		{
+	case THTTPEvent::EGotResponseHeaders:
+		{
+		if (iLogCipherSuite)
+			{
+			RString cipherSuite = aTransaction.CipherSuite();
+			
+			iEngine->Utils().LogIt(_L("Cipher Suite = %s\n"), &cipherSuite.DesC());
+			}
+		}
+		break;
+	default:
+		;
+		}
+	CHttpAcceptTestBase::MHFRunL(aTransaction,aEvent);
+	}
+