--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/natfw/natfwsocketmediaconnwrapper/tsrc/ut_socketmediaconnwrapper/src/ut_cnatfwsockethandler.cpp Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,295 @@
+/*
+* Copyright (c) 2004 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:
+*
+*/
+
+
+
+
+// CLASS HEADER
+#include "ut_cnatfwsockethandler.h"
+
+// EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#include "natfwconnectivityapidefs.h"
+
+// INTERNAL INCLUDES
+#include "natfwsockethandler.h"
+#include "socketmediaconnwrappertestdefs.h"
+#include "natfwunittestmacros.h"
+
+_LIT8(KData,"qwerty");
+const TUint KTestPortUdp = 5000;
+const TUint KTestPortTcp = 5001;
+const TUint KTestPort2 = 5010;
+
+// CONSTRUCTION
+ut_cnatfwsockethandler* ut_cnatfwsockethandler::NewL()
+ {
+ ut_cnatfwsockethandler* self = ut_cnatfwsockethandler::NewLC();
+ CleanupStack::Pop();
+
+ return self;
+ }
+
+ut_cnatfwsockethandler* ut_cnatfwsockethandler::NewLC()
+ {
+ ut_cnatfwsockethandler* self = new( ELeave ) ut_cnatfwsockethandler();
+ CleanupStack::PushL( self );
+
+ self->ConstructL();
+
+ return self;
+ }
+
+// Destructor (virtual by CBase)
+ut_cnatfwsockethandler::~ut_cnatfwsockethandler()
+ {
+ }
+
+// Default constructor
+ut_cnatfwsockethandler::ut_cnatfwsockethandler()
+ {
+ }
+
+// Second phase construct
+void ut_cnatfwsockethandler::ConstructL()
+ {
+ // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+ // It generates the test case table.
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+// From observer interface
+void ut_cnatfwsockethandler::GetNewFreePort( TUint& aPort )
+ {
+ aPort = KTestPort2;
+ }
+
+// METHODS
+void ut_cnatfwsockethandler::SetupL( )
+ {
+ iHandler = CNATFWSocketHandler::NewL( *this, *this, KProtocolInetUdp, KTestPortUdp );
+ User::LeaveIfError( iSocketServer.Connect() );
+ }
+
+void ut_cnatfwsockethandler::Setup2L( )
+ {
+ iHandler = CNATFWSocketHandler::NewL( *this, *this, KProtocolInetTcp, KTestPortTcp );
+ User::LeaveIfError( iSocketServer.Connect() );
+ }
+
+void ut_cnatfwsockethandler::Teardown( )
+ {
+ delete iHandler;
+ iSocketServer.Close();
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_NewLL( )
+ {
+ TUint port = 0;
+ CNATFWSocketHandler* handler = NULL;
+
+ NATFW_EUNIT_ASSERT_SPECIFIC_LEAVE(
+ handler = CNATFWSocketHandler::NewL( *this, *this, 0, port ), KErrArgument );
+
+ delete handler;
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_LocalAddressL( )
+ {
+ iHandler->LocalAddress( iAddr );
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_SetAddrLL( )
+ {
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+
+ NATFW_EUNIT_ASSERT_SPECIFIC_LEAVE( iHandler->SetAddrL( iAddr ), KErrArgument );
+
+ delete iHandler;
+ iHandler = NULL;
+ iHandler = CNATFWSocketHandler::NewL( *this, *this, KProtocolInetTcp, KTestPortTcp );
+
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_SetAddrL2L( )
+ {
+ TSockAddr addr;
+ RSocket socket;
+
+ User::LeaveIfError( socket.Open( iSocketServer, KAfInet, KSockDatagram, KProtocolInetUdp ) );
+ socket.SetLocalPort( KTestPortUdp );
+
+ // RSocket is stubbed and currently the used ports are not stored
+ // so we can make the next localportcall fail with this
+ TBool shouldItFail = ETrue;
+ socket.NextSetLocalPortShouldFail(ETrue, shouldItFail); // fails
+
+ iHandler->SetMediaObserverL( this );
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ // Will try to use same port as KTestPortUdp, but
+ // since it's reserved, should switch to KTestPort2
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+
+ iHandler->LocalAddress( addr );
+ EUNIT_ASSERT_EQUALS( KTestPort2, addr.Port() );
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_ConnectLL( )
+ {
+ iHandler->iSendState = iHandler->EConnected;
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_StartListeningLL( )
+ {
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_SendLL( )
+ {
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+ iHandler->iSendState = iHandler->EConnected;
+ iHandler->SetSendingStateL();
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SendL( KData ) );
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_SetLocalAddressL( )
+ {
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_DeactivateSendingL( )
+ {
+ iHandler->DeactivateSending();
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_DeactivateReceivingL( )
+ {
+ iHandler->DeactivateReceiving();
+ }
+
+void ut_cnatfwsockethandler::ut_cnatfwsockethandler_SetupTcpConnectionL( )
+ {
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+ iHandler->OpenTcpConnectionL( ETcpSetupActive, *this );
+
+ delete iHandler;
+ iHandler = NULL;
+ iHandler = CNATFWSocketHandler::NewL( *this, *this, KProtocolInetTcp, KTestPortTcp );
+
+ iHandler->SetLocalAddress( iSocketServer, iAddr );
+ NATFW_EUNIT_ASSERT_NO_LEAVE( iHandler->SetAddrL( iAddr ) );
+ iHandler->OpenTcpConnectionL( ETcpSetupPassive, *this );
+
+ iHandler->iSendState = iHandler->EConnected;
+ NATFW_EUNIT_ASSERT_SPECIFIC_LEAVE( iHandler->OpenTcpConnectionL( ETcpSetupPassive, *this ), KErrInUse );
+ }
+
+
+// TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+ ut_cnatfwsockethandler,
+ "Add test suite description here.",
+ "UNIT" )
+
+EUNIT_TEST(
+ "NewL - test ",
+ "CNATFWSocketHandler",
+ "NewL",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_NewLL, Teardown)
+
+EUNIT_TEST(
+ "LocalAddress - test ",
+ "CNATFWSocketHandler",
+ "LocalAddress",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_LocalAddressL, Teardown)
+
+EUNIT_TEST(
+ "SetAddrL - test ",
+ "CNATFWSocketHandler",
+ "SetAddrL",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_SetAddrLL, Teardown)
+
+EUNIT_TEST(
+ "SetAddrL2 - port in use test ",
+ "CNATFWSocketHandler",
+ "SetAddrL",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_SetAddrL2L, Teardown)
+
+EUNIT_TEST(
+ "ConnectL - test ",
+ "CNATFWSocketHandler",
+ "ConnectL",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_ConnectLL, Teardown)
+
+EUNIT_TEST(
+ "StartListeningL - test ",
+ "CNATFWSocketHandler",
+ "StartListeningL",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_StartListeningLL, Teardown)
+
+EUNIT_TEST(
+ "SendL - test ",
+ "CNATFWSocketHandler",
+ "SendL",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_SendLL, Teardown)
+
+EUNIT_TEST(
+ "SetLocalAddress - test ",
+ "CNATFWSocketHandler",
+ "SetLocalAddress",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_SetLocalAddressL, Teardown)
+
+EUNIT_TEST(
+ "DeactivateSending - test ",
+ "CNATFWSocketHandler",
+ "DeactivateSending",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_DeactivateSendingL, Teardown)
+
+EUNIT_TEST(
+ "DeactivateReceiving - test ",
+ "CNATFWSocketHandler",
+ "DeactivateReceiving",
+ "FUNCTIONALITY",
+ SetupL, ut_cnatfwsockethandler_DeactivateReceivingL, Teardown)
+
+EUNIT_TEST(
+ "SetupTcpConnection - test ",
+ "CNATFWSocketHandler",
+ "SetupTcpConnection",
+ "FUNCTIONALITY",
+ Setup2L, ut_cnatfwsockethandler_SetupTcpConnectionL, Teardown)
+
+
+EUNIT_END_TEST_TABLE
+
+// END OF FILE