diff -r 000000000000 -r af10295192d8 networksecurity/tls/ts_tls/TlsTestSection3.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networksecurity/tls/ts_tls/TlsTestSection3.cpp Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,128 @@ +// Copyright (c) 2003-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: +// This contains TLS test section 3 +// +// + +// Test system includes +#include "T_TLS_test.h" +#include "TlsTestSection3.h" +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif + +GLREF_C void CommInitL(); + + +CTlsTestSection3_1::CTlsTestSection3_1() +/** + * Constructor. + * Stores the name of this test case. + */ +{ + iTestStepName = _L("tls_TestSection3_1"); +} + + +CTlsTestSection3_1::~CTlsTestSection3_1() +/** + * Destructor. + */ +{ +} + + +TVerdict CTlsTestSection3_1::doTestStepL( ) +{ + Log(_L("SSL Socket options test")); + + __UHEAP_MARK; + // assume that everything passed, unless we leave + iTestStepResult = EPass; + TInt error(KErrNone); + TInt recvBufSize(-1), sendBufSize(-1); + TInt noDelayEnabled(-1); + + // Create an active scheduler + CActiveScheduler* myActiveScheduler = new(ELeave) CActiveScheduler(); + CleanupStack::PushL( myActiveScheduler ); + CActiveScheduler::Install( myActiveScheduler ); + + // Connect the socket server + RSocketServ socketServ; + error = socketServ.Connect(); + TESTEL(error == KErrNone, error); + CleanupClosePushL(socketServ); + + // Open a socket + RSocket socket; + error = socket.Open( socketServ, KAfInet, KSockStream, KProtocolInetTcp ); + TESTEL(error == KErrNone, error); + CleanupClosePushL(socket); + + Log(_L("Creating a secure socket")); + CSecureSocket* secureSocket = NULL; + secureSocket = CSecureSocket::NewL( socket, KDefCfgProtocol ); + + // Now do sSetOpt's and GetOpt's at + Log(_L("Setting KSORecvBuf to 1000")); + error = secureSocket->SetOpt(KSORecvBuf, KSOLSocket, 1000); + TESTEL(error == KErrNone, error); + + Log(_L("Checking KSORecvBuf is set to 1000")); + error = secureSocket->GetOpt(KSORecvBuf, KSOLSocket, recvBufSize); + TESTEL(error == KErrNone, error); + TESTEL(recvBufSize == 1000, recvBufSize); + + error = secureSocket->GetOpt(KSOSendBuf, KSOLSocket, sendBufSize); + TESTEL(error == KErrNone, error); + Log(_L("Read sendbuf size of %d"), sendBufSize); + + Log(_L("Read KSoTcpNoDelay of %d"), noDelayEnabled); + error = secureSocket->GetOpt(KSoTcpNoDelay, KSolInetTcp, noDelayEnabled); + TESTEL(error == KErrNone, error); + + error = secureSocket->SetOpt(KSoTcpNoDelay, KSolInetTcp, !noDelayEnabled); + TESTEL(error == KErrNone, error); + + TDialogMode dialogMode = secureSocket->DialogMode(); + Log( _L("Dialog mode setting is: %d"), dialogMode ); + + error = secureSocket->SetDialogMode(EDialogModeUnattended); + TESTEL(error == KErrNone, error); + TESTL(secureSocket->DialogMode()==EDialogModeUnattended); + Log( _L("Dialog mode setting is: %d"), EDialogModeUnattended ); + + error = secureSocket->SetDialogMode(dialogMode); + TESTEL(error == KErrNone, error); + TESTL(secureSocket->DialogMode()==dialogMode); + Log( _L("Dialog mode reset to: %d"), dialogMode ); + + secureSocket->Close(); + delete secureSocket; + secureSocket = NULL; + + CleanupStack::PopAndDestroy(); // socket + CleanupStack::PopAndDestroy(); // socketServ + + CActiveScheduler::Install( NULL ); + CleanupStack::PopAndDestroy( myActiveScheduler ); + + // unload the securesocket library + CSecureSocketLibraryLoader::Unload(); + + __UHEAP_MARKEND; + + return iTestStepResult; +}