natfw/natfwstunturnclient/tsrc/ut_stunturnclient/src/ut_cstunclient.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/natfw/natfwstunturnclient/tsrc/ut_stunturnclient/src/ut_cstunclient.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,506 @@
+/*
+* 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_cstunclient.h"
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#include <commdbconnpref.h>
+#include <e32debug.h>
+
+//  INTERNAL INCLUDES
+#include "natfwstunclient.h"
+#include "natfwunsafbindingrequest.h"
+#include "natfwunittestmacros.h"
+#include "ut_cstunbinding.h"
+
+_LIT8( KServerAddress, "10.32.194.251" );
+_LIT8( KUsername, "userAA" );
+_LIT8( KPassword,"salasana");
+_LIT8( KRealm, "example.realm.com" );
+
+_LIT8(KRealmVal,"\"myrealm\"");
+
+const TDesC8& dataDesc4(KRealmVal);
+
+// CONSTRUCTION
+ut_cstunclient* ut_cstunclient::NewL()
+    {
+    ut_cstunclient* self = ut_cstunclient::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+ut_cstunclient* ut_cstunclient::NewLC()
+    {
+    ut_cstunclient* self = new( ELeave ) ut_cstunclient();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+ut_cstunclient::~ut_cstunclient()
+    {
+    }
+
+// Default constructor
+ut_cstunclient::ut_cstunclient()
+    {
+    }
+
+// Second phase construct
+void ut_cstunclient::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+// from mstunclientbserver
+void ut_cstunclient::STUNClientInitCompleted( const CSTUNClient& /*aClient*/,
+                              TInt aCompletionCode )
+    {
+    iCallbackCalled = ETrue;
+    RDebug::Print( _L("**NATFW STUNClientInitCompleted, code: %d"), aCompletionCode );
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    }
+
+
+void ut_cstunclient::STUNBindingEventOccurredL( TSTUNBindingEvent aEvent, 
+                                const CBinding& /*aBinding*/ )
+    {
+    iCallbackCalled = ETrue;
+    RDebug::Print( _L("**NATFW STUNBindingEventOccurredL, code: %d"), aEvent );
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    }
+
+
+void ut_cstunclient::STUNBindingErrorOccurred( const CBinding& /*aBinding*/, 
+                               TInt aError )
+    {
+    iCallbackCalled = ETrue;
+    RDebug::Print( _L("**NATFW STUNBindingErrorOccurred, code: %d"), aError );
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    }
+
+void ut_cstunclient::Notify( TUint /*aSessionId*/, TUint /*aStreamId*/, 
+    TNotifyType /*aType*/, TInt /*aError*/ )
+    {
+    RDebug::Print( _L("**NATFW Notify") );
+    }
+    
+void ut_cstunclient::IcmpError( TUint /*aSessionId*/, TUint /*aStreamId*/, const TInetAddr& /*aAddress*/ )
+    {
+    RDebug::Print( _L("**NATFW IcmpError") );
+    }
+
+
+void ut_cstunclient::SetupL(  )
+    {
+    iCallbackCalled = EFalse;
+    TUint iapID( 6 );
+    TInt retransmitInterval( 10 );
+    TBufC8<13> serveraddress( KServerAddress );
+    TUint serverport( 2000 );
+    TBufC8<4> protocol( KStun );
+    TBool obtainsharedsecret( EFalse );
+    TBool failifnoSRVrecordfound( EFalse );
+    iDeltatimer = CDeltaTimer::NewL( 1 );
+    User::LeaveIfError( iSocketServ.Connect() );
+    iStreamId = 1;
+    iSubstreamId = 1;
+    TBool icmpUsed( EFalse );
+    
+    iMux = CNcmConnectionMultiplexer::NewL( *this );
+    
+    TCommDbConnPref pref;
+    pref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+    pref.SetIapId( iapID );
+    
+    User::LeaveIfError( iConnection.Open( iSocketServ ) );
+    iConnection.Start( pref, iStatus );
+    User::WaitForRequest( iStatus );
+    User::LeaveIfError( iStatus.Int() );    
+    
+    iStunclient = CSTUNClient::NewL( retransmitInterval,
+                                     serveraddress,
+                                     serverport,
+                                     protocol,
+                                     iSocketServ,
+                                     iConnection,
+                                     *iDeltatimer,
+                                     *this,
+                                     obtainsharedsecret,
+                                     failifnoSRVrecordfound,
+                                     icmpUsed,
+                                     iMux );
+                                     
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    ut_cstunbinding::iActiveSchedulerWait.Start();    
+    }
+
+void ut_cstunclient::Teardown(  )
+    {
+    delete iStunclient;
+    iStunclient = NULL;
+    iSocket.Close();
+    iConnection.Stop();
+    iConnection.Close();
+    iSocketServ.Close();
+    delete iServeraddress;
+    iServeraddress = NULL;
+    delete iResponse;
+    iResponse = NULL;
+    delete iRespDataIndication;
+    iRespDataIndication = NULL;
+    delete iDeltatimer;
+    iDeltatimer = NULL;
+    delete iMux;
+    iMux = NULL;
+    }
+
+void ut_cstunclient::UT_CSTUNClient_NewLL(  )
+    {
+    TUint iapID( 6 );
+    TInt retransmitInterval( 10 );
+    TBufC8<13> serveraddress( KServerAddress );
+    TUint serverport( 2000 );
+    TBufC8<4> protocol( KStun );
+    TBool obtainsharedsecret( EFalse );
+    TBool failifnoSRVrecordfound( EFalse );
+    iStreamId = 1;
+    iSubstreamId = 1;
+    TBool icmpUsed( EFalse );    
+    
+    TCommDbConnPref pref;
+    pref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+    pref.SetIapId( iapID );   
+    
+    CSTUNClient* stunClient = NULL;
+    
+    NATFW_EUNIT_ASSERT_NO_LEAVE( stunClient = CSTUNClient::NewL(
+        retransmitInterval,
+        serveraddress,
+        serverport,
+        protocol,
+        iSocketServ,
+        iConnection,
+        *iDeltatimer,
+        *this,
+        obtainsharedsecret,
+        failifnoSRVrecordfound,
+        icmpUsed,
+        iMux ) );
+                            
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    ut_cstunbinding::iActiveSchedulerWait.Start();
+
+    delete stunClient;        
+    }
+
+void ut_cstunclient::UT_CSTUNClient_NewL_1L(  )
+    {
+    TUint iapID( 6 );
+    TInt retransmitInterval( 10 );
+    TBufC8<13> serveraddress( KServerAddress );
+    TUint serverport( 2000 );
+    TBufC8<4> protocol( KStun );
+    TBool obtainsharedsecret( EFalse );
+    TBool failifnoSRVrecordfound( EFalse );
+    iStreamId = 1;
+    iSubstreamId = 1;
+    TBool icmpUsed( EFalse );    
+    
+    TCommDbConnPref pref;
+    pref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+    pref.SetIapId( iapID );   
+    
+    CSTUNClient* stunClient = NULL; 
+    NATFW_EUNIT_ASSERT_NO_LEAVE( stunClient = CSTUNClient::NewL( retransmitInterval,
+                                     *iDeltatimer,
+                                     *this,
+                                     iMux ) );
+                                     
+    delete stunClient;
+    }
+
+// STUN Relay case    
+void ut_cstunclient::UT_CSTUNClient_NewL_2L(  )
+    {
+    TUint iapID( 6 );
+    TInt retransmitInterval( 10 );
+    TBufC8<13> serveraddress( KServerAddress );
+    TUint serverport( 2000 );
+    TBufC8<10> service( KStunRelay );
+    TBool obtainsharedsecret( ETrue );
+    TBool failifnoSRVrecordfound( EFalse );
+    iStreamId = 1;
+    iSubstreamId = 1;
+    TBool icmpUsed( EFalse );    
+    
+    TCommDbConnPref pref;
+    pref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+    pref.SetIapId( iapID );   
+    
+    CSTUNClient* stunClient = NULL; 
+    NATFW_EUNIT_ASSERT_NO_LEAVE( stunClient = CSTUNClient::NewL( retransmitInterval,
+                                     serveraddress,
+                                     serverport,
+                                     service,
+                                     iSocketServ,
+                                     iConnection,
+                                     *iDeltatimer,
+                                     *this,
+                                     obtainsharedsecret,
+                                     failifnoSRVrecordfound,
+                                     icmpUsed,
+                                     iMux ) );
+                                     
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    ut_cstunbinding::iActiveSchedulerWait.Start();
+
+    delete stunClient;    
+    }    
+
+void ut_cstunclient::UT_CSTUNClient_NewLCL(  )
+    {
+    TUint iapID( 6 );
+    TInt retransmitInterval( 10 );
+    TBufC8<13> serveraddress( KServerAddress );
+    TUint serverport( 2000 );
+    TBufC8<4> protocol( KStun );
+    TBool obtainsharedsecret( EFalse );
+    TBool failifnoSRVrecordfound( EFalse );
+    iStreamId = 1;
+    iSubstreamId = 1;
+    TBool icmpUsed( EFalse );    
+    
+    TCommDbConnPref pref;
+    pref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+    pref.SetIapId( iapID );   
+    
+    CSTUNClient* stunClient = NULL; 
+    stunClient = CSTUNClient::NewLC( retransmitInterval,
+                                     serveraddress,
+                                     serverport,
+                                     protocol,
+                                     iSocketServ,
+                                     iConnection,
+                                     *iDeltatimer,
+                                     *this,
+                                     obtainsharedsecret,
+                                     failifnoSRVrecordfound,
+                                     icmpUsed,
+                                     iMux );
+                                     
+    if ( ut_cstunbinding::iActiveSchedulerWait.IsStarted() )
+       {
+       ut_cstunbinding::iActiveSchedulerWait.AsyncStop();
+       }
+    ut_cstunbinding::iActiveSchedulerWait.Start();
+    
+    CleanupStack::PopAndDestroy( stunClient );  
+    }
+
+void ut_cstunclient::UT_CSTUNClient_NewLC_1L(  )
+    {
+    TUint iapID( 6 );
+    TInt retransmitInterval( 10 );
+    TBufC8<13> serveraddress( KServerAddress );
+    TUint serverport( 2000 );
+    TBufC8<4> protocol( KStun );
+    TBool obtainsharedsecret( EFalse );
+    TBool failifnoSRVrecordfound( EFalse );
+    iStreamId = 1;
+    iSubstreamId = 1;
+    TBool icmpUsed( EFalse );    
+    
+    TCommDbConnPref pref;
+    pref.SetDialogPreference( ECommDbDialogPrefDoNotPrompt );
+    pref.SetIapId( iapID );   
+    
+    CSTUNClient* stunClient = CSTUNClient::NewLC( retransmitInterval,
+                                                 *iDeltatimer,
+                                                 *this,
+                                                 iMux );
+                                     
+    CleanupStack::PopAndDestroy( stunClient ); 
+    }
+
+void ut_cstunclient::UT_CSTUNClient_IsInitializedL(  )
+    {
+    TBool initialized = iStunclient->IsInitialized();
+    }
+
+void ut_cstunclient::UT_CSTUNClient_STUNServerAddrLL(  )
+    {
+    TInetAddr addr = iStunclient->STUNServerAddrL();
+    }
+
+void ut_cstunclient::UT_CSTUNClient_SetCredentialsLL(  )
+    {
+    TBufC8<16> password( KPassword );
+    TBufC8<6> usernameA( KUsername );
+    iStunclient->SetCredentialsL( usernameA, password );
+    
+    iStunclient->SetCredentialsL( usernameA, password );
+    }
+
+void ut_cstunclient::UT_CSTUNClient_SharedSecretObtainedL(  )
+    {
+    TBool sharedSecretused = iStunclient->SharedSecretObtained();
+    }
+
+/*void ut_cstunclient::UT_CSTUNClient_SetSTUNServerAddrLL(  )
+    {
+    TInetAddr addr;
+    iStunclient->SetSTUNServerAddrL( addr );
+    }*/
+
+void ut_cstunclient::UT_CSTUNClient_ObtainTransactionIDLL(  )
+    {
+    TNATFWUNSAFTransactionID transactionID;   
+    iStunclient->ObtainTransactionIDL( transactionID );
+    }
+
+void ut_cstunclient::UT_CSTUNClient_ImplementationL(  )
+    {
+    CSTUNClientImplementation& impl = iStunclient->Implementation();
+    }
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    ut_cstunclient,
+    "Add test suite description here.",
+    "UNIT" )
+
+EUNIT_TEST(
+    "NewL - test ",
+    "CSTUNClient",
+    "NewL",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_NewLL, Teardown)
+/*
+EUNIT_TEST(
+    "NewL - test ",
+    "CSTUNClient",
+    "NewL",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_NewL_1L, Teardown)
+
+EUNIT_TEST(
+    "NewL_2 - test ",
+    "CSTUNClient",
+    "NewL_2",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_NewL_2L, Teardown)
+
+EUNIT_TEST(
+    "NewLC - test ",
+    "CSTUNClient",
+    "NewLC",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_NewLCL, Teardown)
+
+EUNIT_TEST(
+    "NewLC - test ",
+    "CSTUNClient",
+    "NewLC",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_NewLC_1L, Teardown)
+
+EUNIT_TEST(
+    "IsInitialized - test ",
+    "CSTUNClient",
+    "IsInitialized",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_IsInitializedL, Teardown)
+
+EUNIT_TEST(
+    "STUNServerAddrL - test ",
+    "CSTUNClient",
+    "STUNServerAddrL",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_STUNServerAddrLL, Teardown)
+
+EUNIT_TEST(
+    "SetCredentialsL - test ",
+    "CSTUNClient",
+    "SetCredentialsL",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_SetCredentialsLL, Teardown)
+
+EUNIT_TEST(
+    "SharedSecretObtained - test ",
+    "CSTUNClient",
+    "SharedSecretObtained",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_SharedSecretObtainedL, Teardown)
+*/
+/*EUNIT_TEST(
+    "SetSTUNServerAddrL - test ",
+    "CSTUNClient",
+    "SetSTUNServerAddrL",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_SetSTUNServerAddrLL, Teardown)*/
+/*
+EUNIT_TEST(
+    "ObtainTransactionIDL - test ",
+    "CSTUNClient",
+    "ObtainTransactionIDL",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_ObtainTransactionIDLL, Teardown)
+
+EUNIT_TEST(
+    "Implementation - test ",
+    "CSTUNClient",
+    "Implementation",
+    "FUNCTIONALITY",
+    SetupL, UT_CSTUNClient_ImplementationL, Teardown)
+
+*/
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE