mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaConnectionAvailability.cpp
changeset 22 496ad160a278
equal deleted inserted replaced
15:ccd8e69b5392 22:496ad160a278
       
     1 /*
       
     2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 //  CLASS HEADER
       
    20 #include "UT_CMusAvaConnectionAvailability.h"
       
    21 #include "musavaavailabilityobserver.h"
       
    22 #include "musavaavailabilityobserverimp.h"
       
    23 #include "musavaavailability.h"
       
    24 #include "muslogger.h"
       
    25 #include "musavaobserver.h"
       
    26 #include "musavaobserverimp.h"
       
    27 #include "musavadefaultimp.h"
       
    28 #include "musavaobserverimp.h"
       
    29 #include "musavasettingsimp.h"
       
    30 #include "musavaconnectionmonitor.h"
       
    31 #include "musavasharedobject.h"
       
    32 #include "musavasip.h"
       
    33 #include "mussettingskeys.h"
       
    34 #include "mussettings.h"
       
    35 #include "CSipSseTestTls.h"
       
    36 #include "musavanetworkregistrationstatus.h"
       
    37 #include "musavacapabilitytesthelper.h" //remove compilation warning
       
    38 
       
    39 
       
    40 //  EXTERNAL INCLUDES
       
    41 #include <digia/eunit/eunitmacros.h>
       
    42 #include <e32base.h>
       
    43 //#include <telephonyinternalpskeys.h>
       
    44 #include <etelmm.h>
       
    45 #include <rconnmon.h>
       
    46 #include <nifvar.h>
       
    47 #include <sipstrings.h>
       
    48 #include <sipstrconsts.h>
       
    49 #include <digia/eunit/eunitdecorators.h>
       
    50 
       
    51 
       
    52 //  INTERNAL INCLUDES
       
    53 #include "musavaconnectionavailability.h"
       
    54 
       
    55 
       
    56 
       
    57 // CONSTRUCTION
       
    58 UT_CMusAvaConnectionAvailability* UT_CMusAvaConnectionAvailability::NewL()
       
    59     {
       
    60     UT_CMusAvaConnectionAvailability* self = UT_CMusAvaConnectionAvailability::NewLC(); 
       
    61     CleanupStack::Pop();
       
    62 
       
    63     return self;
       
    64     }
       
    65 
       
    66 UT_CMusAvaConnectionAvailability* UT_CMusAvaConnectionAvailability::NewLC()
       
    67     {
       
    68     UT_CMusAvaConnectionAvailability* self = new( ELeave ) UT_CMusAvaConnectionAvailability();
       
    69     CleanupStack::PushL( self );
       
    70 
       
    71 	self->ConstructL(); 
       
    72 
       
    73     return self;
       
    74     }
       
    75 
       
    76 // Destructor (virtual by CBase)
       
    77 UT_CMusAvaConnectionAvailability::~UT_CMusAvaConnectionAvailability()
       
    78     {
       
    79     }
       
    80 
       
    81 // Default constructor
       
    82 UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability()
       
    83     {
       
    84     }
       
    85 
       
    86 // Second phase construct
       
    87 void UT_CMusAvaConnectionAvailability::ConstructL()
       
    88     {
       
    89     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
       
    90     // It generates the test case table.
       
    91     CEUnitTestSuiteClass::ConstructL();
       
    92     }
       
    93 
       
    94 //  METHODS
       
    95 
       
    96 
       
    97 
       
    98 void UT_CMusAvaConnectionAvailability::SetupL(  )
       
    99     {
       
   100     SIPStrings::OpenL();
       
   101     CSipSseTestTls::OpenL();
       
   102     iProfileId = MultimediaSharingSettings::SipProfileSettingL();    
       
   103     iStorage = CSipSseTestTls::Storage();
       
   104     iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
       
   105     iConcreteSettings = CMusAvaSettingsImp::NewL();
       
   106     iConnectionAvailability  = 
       
   107     CMusAvaConnectionAvailability::NewL( *iAvailabilityObserver, *iConcreteSettings );
       
   108                                     
       
   109     iSharedObject = CMusAvaSharedObject::GetSingletonL();	
       
   110     } 
       
   111 
       
   112 void UT_CMusAvaConnectionAvailability::Teardown(  )
       
   113     {
       
   114     delete iAvailabilityObserver;
       
   115     iAvailabilityObserver = NULL;
       
   116     delete iConcreteSettings;
       
   117     iConcreteSettings = NULL;
       
   118     delete iConnectionAvailability;
       
   119     iConnectionAvailability = NULL;
       
   120   
       
   121     if ( iStorage )
       
   122         {
       
   123         iStorage->Clear();
       
   124         CSipSseTestTls::Close();
       
   125         iStorage = NULL;
       
   126         }
       
   127     CMusAvaSharedObject::DeleteSingleton();
       
   128     SIPStrings::Close();
       
   129     } 
       
   130 
       
   131 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_NewLL()
       
   132     {
       
   133     EUNIT_ASSERT( iConnectionAvailability );
       
   134     }  
       
   135 
       
   136 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_DoExecuteLL()
       
   137     {
       
   138 	// Test: VS is allowed in All Netwoks by Default. 
       
   139 
       
   140 	// Test1: VS in 3G Always Allowed. 
       
   141 	TInt error = KErrArgument;
       
   142 	TInt count = KErrNone;
       
   143     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   144     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   145     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   146     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   147     if ( error == KErrNoMemory ) User::Leave( error );
       
   148     EUNIT_ASSERT ( error == KErrNone );
       
   149 
       
   150     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   151     if ( count > 0 && iConnectionAvailability->State() 
       
   152         == MMusAvaObserver::EMusActivationError )
       
   153         {
       
   154         User::Leave( KErrNoMemory );
       
   155         }
       
   156     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   157 
       
   158 
       
   159 	//Test2 : VS is even allowed when Network type is Unknown
       
   160 	iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeUnknown );
       
   161     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   162     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   163     CMusAvaConnectionMonitor& avaConnectionMonitor = iSharedObject->ConnectionMonitor();
       
   164     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1; 
       
   165     avaConnectionMonitor.iConnectionMonitor.iConnectionCounter = 1;
       
   166     avaConnectionMonitor.iConnectionMonitor.iUintAttributeValue = 1;
       
   167     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;    
       
   168     
       
   169     //EUNIT_DISABLE_ALLOC_DECORATOR;
       
   170     
       
   171     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   172     if ( error == KErrNoMemory ) User::Leave( error );
       
   173     
       
   174     //EUNIT_DISABLE_ALLOC_DECORATOR;
       
   175     
       
   176     EUNIT_ASSERT ( error == KErrNone );
       
   177     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   178     
       
   179     //HKK Define own error condition in which it can fil. 
       
   180     
       
   181     
       
   182     if ( count > 0 && ( iConnectionAvailability->State() 
       
   183         == MMusAvaObserver::EMusActivationError) ||
       
   184         (iConnectionAvailability->State() == MMusAvaObserver::EMusAvaNetworkType ))
       
   185         {
       
   186         User::Leave( KErrNoMemory );
       
   187         }
       
   188     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   189 	
       
   190 	// Test3: VS in GSM Network is Allowed Ensure, PDP Context Need to be up to ensure network does 
       
   191 	// support data connection; Note DTM Flag is not needed anymore since VS is allowed in all network. 
       
   192     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   193     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   194     
       
   195     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   196     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1; 
       
   197     avaConnectionMonitor.iConnectionMonitor.iConnectionCounter = 1;
       
   198     avaConnectionMonitor.iConnectionMonitor.iUintAttributeValue = 1;
       
   199     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;    
       
   200     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   201     if ( error == KErrNoMemory ) User::Leave( error );
       
   202     EUNIT_ASSERT ( error == KErrNone );
       
   203     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   204     if ( count > 0 && ( iConnectionAvailability->State() 
       
   205         == MMusAvaObserver::EMusActivationError ) ||
       
   206         (iConnectionAvailability->State() == MMusAvaObserver::EMusAvaNetworkType ))
       
   207         
       
   208         {
       
   209         User::Leave( KErrNoMemory );
       
   210         }
       
   211     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   212 	
       
   213 	
       
   214 	// Test4: VS in GSM Network is dis-allowed if PDP context is not up. 
       
   215     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   216     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   217     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   218     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1; 
       
   219     avaConnectionMonitor.iConnectionMonitor.iConnectionCounter = 0;
       
   220     avaConnectionMonitor.iConnectionMonitor.iUintAttributeValue = 1;
       
   221     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;    
       
   222     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   223     if ( error == KErrNoMemory ) User::Leave( error );
       
   224     EUNIT_ASSERT ( error == KErrNone );
       
   225     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   226     if ( count > 0 && ( iConnectionAvailability->State() 
       
   227         == MMusAvaObserver::EMusActivationError ) ||
       
   228         (iConnectionAvailability->State() == MMusAvaObserver::EMusAvaNetworkType ))
       
   229         
       
   230         {
       
   231         User::Leave( KErrNoMemory );
       
   232         }
       
   233     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaEdgeDtmStatusUnknown );
       
   234     }
       
   235 
       
   236 
       
   237 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_DoExecuteLL2()
       
   238     {
       
   239     // Restrict VS to be only Used in 3G mode, 
       
   240     
       
   241    	iStorage->Set ( MusSettingsKeys::KAllowOnlyIn3GNetwork,
       
   242    	MusSettingsKeys::EAllowed3GOnly );       
       
   243 	
       
   244 	// Test: In GSM VS is not Allowed when its restricted to be only used in 3G
       
   245     
       
   246     TInt ret = 0;
       
   247     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   248     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   249     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   250     MultimediaSharingSettings::SetEdgeDtmSupportSettingL( MusSettingsKeys::EDtmModeNotAllowed );
       
   251     TRAPD( error, iConnectionAvailability->DoExecuteL() );
       
   252     if ( error == KErrNoMemory ) User::Leave( error );
       
   253     EUNIT_ASSERT ( error == KErrNone );
       
   254 
       
   255     TInt count = 0;
       
   256     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   257     if ( count > 0 &&
       
   258          iConnectionAvailability->State() !=  MMusAvaObserver::EMusAvaNetworkType )
       
   259         {
       
   260         User::Leave( KErrNoMemory );
       
   261         }
       
   262     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaNetworkType );
       
   263 
       
   264     // Test2: In 3G VS is allowed.
       
   265     
       
   266     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   267     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   268     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   269     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   270     if ( error == KErrNoMemory ) User::Leave( error );
       
   271     EUNIT_ASSERT ( error == KErrNone );
       
   272 
       
   273     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   274     if ( count > 0 && iConnectionAvailability->State() 
       
   275         == MMusAvaObserver::EMusActivationError )
       
   276         {
       
   277         User::Leave( KErrNoMemory );
       
   278         }
       
   279     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   280     
       
   281     // Test3: Active in home networks
       
   282     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   283     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   284     if ( error == KErrNoMemory ) User::Leave( error );
       
   285     EUNIT_ASSERT ( error == KErrNone );
       
   286     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   287     if ( count > 0 && iConnectionAvailability->State() 
       
   288         == MMusAvaObserver::EMusActivationError )
       
   289         {
       
   290         User::Leave( KErrNoMemory );
       
   291         }
       
   292     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   293     
       
   294     //Test4: activation set off
       
   295     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   296     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   297     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::ENever );
       
   298     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   299     if ( error == KErrNoMemory ) User::Leave( error );
       
   300     EUNIT_ASSERT ( error == KErrNone );
       
   301     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusActivationError ); 
       
   302 
       
   303     // Test5: Edge/Dtm activation settings
       
   304     // case 1 Dtm mode allowed and atleast one pdp context exist
       
   305     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   306     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   307     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   308     MultimediaSharingSettings::SetEdgeDtmSupportSettingL( MusSettingsKeys::EDtmModeAllowed );
       
   309     CMusAvaConnectionMonitor& avaConnectionMonitor = iSharedObject->ConnectionMonitor();
       
   310     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1; 
       
   311     avaConnectionMonitor.iConnectionMonitor.iConnectionCounter = 1;
       
   312     avaConnectionMonitor.iConnectionMonitor.iUintAttributeValue = 1;
       
   313     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;    
       
   314     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   315     if ( error == KErrNoMemory ) User::Leave( error );
       
   316     EUNIT_ASSERT ( error == KErrNone );
       
   317     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   318     if ( count > 0 && iConnectionAvailability->State() 
       
   319         == MMusAvaObserver::EMusActivationError )
       
   320         {
       
   321         User::Leave( KErrNoMemory );
       
   322         }
       
   323     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   324     
       
   325     // Test5: Edge DTM is allowed but no pdp context
       
   326     // case 2 Dtm mode allowed and no pdp context exist
       
   327     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   328     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   329     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   330     MultimediaSharingSettings::SetEdgeDtmSupportSettingL( MusSettingsKeys::EDtmModeAllowed );    
       
   331     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1; 
       
   332     avaConnectionMonitor.iConnectionMonitor.iConnectionCounter = 0;
       
   333     avaConnectionMonitor.iConnectionMonitor.iUintAttributeValue = 1;
       
   334     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;    
       
   335     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   336     if ( error == KErrNoMemory ) User::Leave( error );
       
   337     EUNIT_ASSERT ( error == KErrNone );
       
   338     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   339     if ( count > 0 && iConnectionAvailability->State() 
       
   340         == MMusAvaObserver::EMusActivationError )
       
   341         {
       
   342         User::Leave( KErrNoMemory );
       
   343         }
       
   344     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaEdgeDtmStatusUnknown );
       
   345     
       
   346     // Test6: case 2 Dtm mode not allowed
       
   347     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   348     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   349     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   350     MultimediaSharingSettings::SetEdgeDtmSupportSettingL( MusSettingsKeys::EDtmModeNotAllowed );
       
   351     TRAP( error, iConnectionAvailability->DoExecuteL() );
       
   352     if ( error == KErrNoMemory ) User::Leave( error );
       
   353     EUNIT_ASSERT ( error == KErrNone );
       
   354     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   355     if ( count > 0 && iConnectionAvailability->State() 
       
   356         == MMusAvaObserver::EMusActivationError )
       
   357         {
       
   358         User::Leave( KErrNoMemory );
       
   359         }
       
   360     EUNIT_ASSERT( iConnectionAvailability->State() ==  MMusAvaObserver::EMusAvaNetworkType );
       
   361     
       
   362     // Reset the Central Reppository to the default value to avoid 
       
   363     // poluting common storage.
       
   364     
       
   365    	iStorage->Set ( MusSettingsKeys::KAllowOnlyIn3GNetwork,
       
   366    	MusSettingsKeys::EAllowedAllBearers );       
       
   367     }
       
   368  		
       
   369 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_NameL()
       
   370     {
       
   371     EUNIT_ASSERT( iConnectionAvailability->Name() == MMusAvaObserver::EMusAvaBearerStatus );
       
   372     }
       
   373   
       
   374 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_StopL()
       
   375     {
       
   376     iConnectionAvailability->Stop();
       
   377     EUNIT_ASSERT( iSharedObject->MusAvaTelephonyStatus().iObserver.Count() == 0 );
       
   378     }
       
   379 
       
   380 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_PhoneNetworkModeStatusL()
       
   381     {
       
   382     //Test1:  VS by default would allow all type of Networks. 
       
   383     // Unknow Network Type : Allowed
       
   384     iConnectionAvailability->PhoneNetworkModeStatus( RMobilePhone::ENetworkModeUnknown );
       
   385     TInt count = 0;
       
   386     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   387     if ( count > 0 && ( iConnectionAvailability->State() ==  MMusAvaObserver::EMusActivationError ) ||
       
   388     					(iConnectionAvailability->State() == MMusAvaObserver::EMusAvaNetworkType ))
       
   389         {
       
   390         User::Leave( KErrNoMemory );
       
   391         }
       
   392     EUNIT_ASSERT( iConnectionAvailability->iState ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   393     
       
   394     //GSM Network is Allowed:
       
   395     iConnectionAvailability->PhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   396     
       
   397     count = 0;
       
   398     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   399     if ( count > 0 && ( iConnectionAvailability->State() ==  MMusAvaObserver::EMusActivationError ) ||
       
   400     					(iConnectionAvailability->State() == MMusAvaObserver::EMusAvaNetworkType ))
       
   401         {
       
   402         User::Leave( KErrNoMemory );
       
   403         }
       
   404     
       
   405     EUNIT_ASSERT( iConnectionAvailability->iState ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   406     
       
   407     //WCDMA: 3G is Allowed
       
   408     iConnectionAvailability->PhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   409     MMusAvaObserver::TAvailabilityStatus state = MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   410     state = iConnectionAvailability->State();
       
   411     count = 0;
       
   412     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   413     if ( count > 0 && (state == MMusAvaObserver::EMusActivationError ) ||
       
   414     				    ( state == MMusAvaObserver::EMusAvaNetworkType ))
       
   415         {
       
   416         User::Leave( KErrNoMemory );
       
   417         }
       
   418     EUNIT_ASSERT( state ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   419 
       
   420     //Test2:  Restrict VS to be only used in 3G
       
   421 	iStorage->Set ( MusSettingsKeys::KAllowOnlyIn3GNetwork,
       
   422       	MusSettingsKeys::EAllowed3GOnly );       
       
   423 	
       
   424 	//Unknown Network DisAllowed
       
   425     iConnectionAvailability->PhoneNetworkModeStatus( RMobilePhone::ENetworkModeUnknown );
       
   426     EUNIT_ASSERT( iConnectionAvailability->iState ==  MMusAvaObserver::EMusAvaNetworkType );
       
   427     
       
   428     //GSM Network is Dis-Allowed:
       
   429     iConnectionAvailability->PhoneNetworkModeStatus( RMobilePhone::ENetworkModeGsm );
       
   430     EUNIT_ASSERT( iConnectionAvailability->iState ==  MMusAvaObserver::EMusAvaNetworkType );
       
   431 
       
   432     
       
   433     //3G is Allowed:
       
   434     iConnectionAvailability->PhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   435     MMusAvaObserver::TAvailabilityStatus state1 = MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   436     state1 = iConnectionAvailability->State();
       
   437     TInt count1 = 0;
       
   438     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   439     if ( count1 > 0 && state1 == MMusAvaObserver::EMusActivationError )
       
   440         {
       
   441         User::Leave( KErrNoMemory );
       
   442         }
       
   443     EUNIT_ASSERT( state1 ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   444     
       
   445     //Reset the key to the default value.
       
   446    	iStorage->Set ( MusSettingsKeys::KAllowOnlyIn3GNetwork,
       
   447       	MusSettingsKeys::EAllowedAllBearers );       
       
   448     }
       
   449                           
       
   450 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_NetworkRegistrationStatusL()
       
   451     {
       
   452     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   453     iConnectionAvailability->iState = MMusAvaObserver::EMusAvaStatusAvailable;
       
   454     iConnectionAvailability->NetworkRegistrationStatus( RMobilePhone::ERegistrationUnknown );
       
   455     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   456     TInt count = 0;
       
   457     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   458     if ( count > 0 && iConnectionAvailability->iState 
       
   459         == MMusAvaObserver::EMusActivationError )
       
   460         {
       
   461         User::Leave( KErrNoMemory );
       
   462         }
       
   463     EUNIT_ASSERT( iConnectionAvailability->iState ==  MMusAvaObserver::EMusAvaRoamingError );
       
   464     iConnectionAvailability->iState = MMusAvaObserver::EMusAvaStatusAvailable;
       
   465     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   466     iConnectionAvailability->NetworkRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   467     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   468     if ( count > 0 && iConnectionAvailability->iState 
       
   469         == MMusAvaObserver::EMusActivationError )
       
   470         {
       
   471         User::Leave( KErrNoMemory );
       
   472         }
       
   473     EUNIT_ASSERT( iConnectionAvailability->iState ==  MMusAvaObserver::EMusAvaStatusAvailable );
       
   474     }
       
   475     
       
   476 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_EventLL()
       
   477     {
       
   478     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   479     CMusAvaConnectionMonitor& avaConnectionMonitor = iSharedObject->ConnectionMonitor();
       
   480     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1; 
       
   481     avaConnectionMonitor.iConnectionMonitor.iConnectionCounter = 1;
       
   482     avaConnectionMonitor.iConnectionMonitor.iUintAttributeValue = 1;
       
   483     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;
       
   484     
       
   485     //Test create connection
       
   486     //Access point 
       
   487     MultimediaSharingSettings::SetSipProfileSettingL( 1 );
       
   488     //IAP 
       
   489     avaConnectionMonitor.iConnectionID = 0;
       
   490     CConnMonCreateConnection* createConnection = 
       
   491         new( ELeave ) CConnMonCreateConnection( 1 );
       
   492     CleanupStack::PushL( createConnection );
       
   493     iConnectionAvailability->EventL( *createConnection );
       
   494     CleanupStack::PopAndDestroy( createConnection );
       
   495     EUNIT_ASSERT( avaConnectionMonitor.iConnectionMonitor.iConnectionId == 1 );
       
   496     //Connection is created
       
   497     avaConnectionMonitor.iConnectionMonitor.iConnectionId = 1;
       
   498     createConnection = 
       
   499         new( ELeave ) CConnMonCreateConnection( 2 );
       
   500     CleanupStack::PushL( createConnection );
       
   501     iConnectionAvailability->EventL( *createConnection );
       
   502     CleanupStack::PopAndDestroy( createConnection );
       
   503     EUNIT_ASSERT( avaConnectionMonitor.iConnectionMonitor.iConnectionId == 1 );
       
   504     avaConnectionMonitor.iConnectionID = 0;
       
   505     //PDP context deleted, before is created
       
   506     createConnection = 
       
   507         new( ELeave ) CConnMonCreateConnection( 1 );
       
   508     CleanupStack::PushL( createConnection );
       
   509     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNotFound;
       
   510     iConnectionAvailability->EventL( *createConnection );
       
   511     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   512         MMusAvaObserver::EMusAvaConnectionErr );
       
   513     CleanupStack::PopAndDestroy( createConnection );
       
   514     avaConnectionMonitor.iConnectionMonitor.iConnectionInfoError = KErrNone;
       
   515     
       
   516     //Test delete connection /////////////////////////////////////////////////////
       
   517     CConnMonDeleteConnection* deleteConnection = 
       
   518         new( ELeave ) CConnMonDeleteConnection( 1, 64, 64, ETrue );
       
   519     CleanupStack::PushL( deleteConnection );
       
   520     iConnectionAvailability->EventL( *deleteConnection );
       
   521     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   522         MMusAvaObserver::EMusAvaConnectionErr );
       
   523     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   524         MMusAvaObserver::EMusAvaConnectionErr );
       
   525     CleanupStack::PopAndDestroy( deleteConnection );
       
   526     iAvailabilityObserver->iStatus =  MMusAvaObserver::EMusAvaStatusNotExecuted ;
       
   527     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   528     iConnectionAvailability->SetState( 
       
   529                                 MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   530         ;
       
   531     //Connection ID not found
       
   532     CConnMonDeleteConnection* deleteConnection2 = 
       
   533         new( ELeave ) CConnMonDeleteConnection( 3 , 64, 64, ETrue );
       
   534     CleanupStack::PushL( deleteConnection2 );
       
   535     iConnectionAvailability->EventL( *deleteConnection2 );
       
   536     //Initial value or previous values
       
   537     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   538         MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   539     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   540         MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   541     CleanupStack::PopAndDestroy( deleteConnection2 );
       
   542     iAvailabilityObserver->iStatus = MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   543     iConnectionAvailability->SetState(
       
   544                                 MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   545         
       
   546     // Connection Status Change ///////////////////////////////////////////////
       
   547     
       
   548     //Connection status found, but no connection  
       
   549     CConnMonConnectionStatusChange* connectionStatusChange = 
       
   550         new( ELeave ) CConnMonConnectionStatusChange( 2, 1, KConnectionFailure  );                                              
       
   551     CleanupStack::PushL( connectionStatusChange );
       
   552     iConnectionAvailability->EventL( *connectionStatusChange );   
       
   553     CleanupStack::PopAndDestroy( connectionStatusChange ); 
       
   554     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   555         MMusAvaObserver::EMusAvaStatusNotExecuted ); 
       
   556 
       
   557     //Connection status and connection ID are found
       
   558     avaConnectionMonitor.iConnectionID = 1;  
       
   559     connectionStatusChange = 
       
   560         new( ELeave ) CConnMonConnectionStatusChange( 1, 1, KConnectionFailure  );                                                 
       
   561     CleanupStack::PushL( connectionStatusChange );
       
   562     iConnectionAvailability->EventL( *connectionStatusChange );   
       
   563     CleanupStack::PopAndDestroy( connectionStatusChange ); 
       
   564     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   565         MMusAvaObserver::EMusAvaConnectionErr );  
       
   566     iConnectionAvailability->SetState(
       
   567                                 MMusAvaObserver::EMusAvaStatusNotExecuted ); 
       
   568     iAvailabilityObserver->iStatus =
       
   569         MMusAvaObserver::EMusAvaStatusNotExecuted; 
       
   570     //Connection status and connection ID are not found 
       
   571     connectionStatusChange = new( ELeave ) CConnMonConnectionStatusChange( 
       
   572                             2, 1, KConfigDaemonFinishedDeregistrationStop  );
       
   573                                                      
       
   574     CleanupStack::PushL( connectionStatusChange );
       
   575     iConnectionAvailability->EventL( *connectionStatusChange );   
       
   576     CleanupStack::PopAndDestroy( connectionStatusChange ); 
       
   577     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   578         MMusAvaObserver::EMusAvaStatusNotExecuted );  
       
   579         
       
   580      //Connection status is not found, but connection ID is found   
       
   581     connectionStatusChange = 
       
   582         new( ELeave ) CConnMonConnectionStatusChange( 1, 1, KConfigDaemonFinishedDeregistrationStop  );                                               
       
   583     CleanupStack::PushL( connectionStatusChange );
       
   584     iConnectionAvailability->EventL( *connectionStatusChange );   
       
   585     CleanupStack::PopAndDestroy( connectionStatusChange ); 
       
   586     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   587         MMusAvaObserver::EMusAvaStatusNotExecuted );  
       
   588         
       
   589     //Connection created, but connection ID is not found
       
   590     connectionStatusChange = 
       
   591         new( ELeave ) CConnMonConnectionStatusChange( 2, 1, KConnectionOpen  );                                               
       
   592     CleanupStack::PushL( connectionStatusChange );
       
   593     iConnectionAvailability->EventL( *connectionStatusChange );   
       
   594     CleanupStack::PopAndDestroy( connectionStatusChange ); 
       
   595     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   596         MMusAvaObserver::EMusAvaStatusNotExecuted );  
       
   597     //Connection created, but connection ID is found    
       
   598     connectionStatusChange = 
       
   599         new( ELeave ) CConnMonConnectionStatusChange( 1, 1, KConnectionOpen  );                                               
       
   600     CleanupStack::PushL( connectionStatusChange );
       
   601     iConnectionAvailability->EventL( *connectionStatusChange );   
       
   602     CleanupStack::PopAndDestroy( connectionStatusChange ); 
       
   603     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   604         MMusAvaObserver::EMusAvaStatusAvailable );  
       
   605     //Test network status ////////////////////////////////////////////////////
       
   606     CConnMonNetworkStatusChange* networkStatusChange = 
       
   607         new( ELeave ) CConnMonNetworkStatusChange( EBearerIdWCDMA, EConnMonStatusActive );
       
   608     CleanupStack::PushL( networkStatusChange );
       
   609     iConnectionAvailability->EventL( *networkStatusChange );
       
   610     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   611         MMusAvaObserver::EMusAvaStatusAvailable );
       
   612     CleanupStack::PopAndDestroy( networkStatusChange );    
       
   613 
       
   614     networkStatusChange = 
       
   615         new( ELeave ) CConnMonNetworkStatusChange( EBearerIdWCDMA, EConnMonStatusNotAvailable );
       
   616     CleanupStack::PushL( networkStatusChange );
       
   617     iConnectionAvailability->EventL( *networkStatusChange );
       
   618     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   619         MMusAvaObserver::EMusAvaConnectionErr );
       
   620     CleanupStack::PopAndDestroy( networkStatusChange );
       
   621     iAvailabilityObserver->iStatus =
       
   622                                 MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   623     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   624     iConnectionAvailability->SetState(
       
   625                                 MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   626         
       
   627         
       
   628    //Network status not available
       
   629     CConnMonNetworkStatusChange* networkStatusChange4 = 
       
   630         new( ELeave ) CConnMonNetworkStatusChange( 3, EConnMonStatusNotAvailable );
       
   631     CleanupStack::PushL( networkStatusChange4 );
       
   632     iConnectionAvailability->EventL( *networkStatusChange4 );
       
   633     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   634         MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   635     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   636         MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   637     CleanupStack::PopAndDestroy( networkStatusChange4 );
       
   638     iAvailabilityObserver->iStatus =
       
   639                                 MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   640     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   641         
       
   642     //Test network Registration ///////////////////////////////////////////////
       
   643     iConnectionAvailability->SetState(
       
   644                                         MMusAvaObserver::EMusAvaStatusAvailable );
       
   645     CConnMonNetworkRegistrationChange* registrationChange = 
       
   646         new( ELeave ) CConnMonNetworkRegistrationChange( EBearerIdWCDMA, 
       
   647         ENetworkRegistrationHomeNetwork );
       
   648     CleanupStack::PushL( registrationChange );
       
   649     iConnectionAvailability->EventL( *registrationChange );
       
   650     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   651         MMusAvaObserver::EMusAvaStatusAvailable );
       
   652     CleanupStack::PopAndDestroy( registrationChange );
       
   653     iAvailabilityObserver->iStatus =
       
   654                                 MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   655     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   656     iConnectionAvailability->SetState(
       
   657                                     MMusAvaObserver::EMusAvaStatusAvailable );
       
   658         
       
   659     registrationChange = new( ELeave ) CConnMonNetworkRegistrationChange(
       
   660                         EBearerIdWCDMA, 
       
   661                         ENetworkRegistrationRoaming );
       
   662     CleanupStack::PushL( registrationChange );
       
   663     iConnectionAvailability->EventL( *registrationChange );
       
   664     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   665     MMusAvaObserver::EMusAvaRoamingError );
       
   666     CleanupStack::PopAndDestroy( registrationChange );
       
   667     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   668                 MMusAvaObserver::EMusAvaRoamingError );
       
   669     iAvailabilityObserver->iStatus =
       
   670                                 MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   671     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   672         
       
   673     //Test bearer change///////////////////////////////////////////////////////
       
   674                 
       
   675     CConnMonBearerChange* bearerChange = 
       
   676         new( ELeave ) CConnMonBearerChange( EBearerIdWCDMA, EBearerWCDMA );
       
   677     CleanupStack::PushL( bearerChange );
       
   678     iConnectionAvailability->EventL( *bearerChange );
       
   679     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   680         MMusAvaObserver::EMusAvaStatusAvailable );
       
   681     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   682         MMusAvaObserver::EMusAvaStatusAvailable );
       
   683     CleanupStack::PopAndDestroy( bearerChange );
       
   684     iAvailabilityObserver->iStatus =
       
   685                                 MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   686     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   687         
       
   688    //Unknown unknown bearer change
       
   689     bearerChange = 
       
   690         new( ELeave ) CConnMonBearerChange( EBearerIdGSM, EBearerGPRS );
       
   691     CleanupStack::PushL( bearerChange );
       
   692     iConnectionAvailability->EventL( *bearerChange );
       
   693     EUNIT_ASSERT( iConnectionAvailability->State() ==
       
   694         MMusAvaObserver::EMusAvaNetworkType );
       
   695     EUNIT_ASSERT( iAvailabilityObserver->iStatus ==
       
   696         MMusAvaObserver::EMusAvaNetworkType );
       
   697     CleanupStack::PopAndDestroy( bearerChange );
       
   698     iAvailabilityObserver->iStatus =
       
   699                                 MMusAvaObserver::EMusAvaStatusNotExecuted;
       
   700     iAvailabilityObserver->iName = MMusAvaObserver::EMusAvaNameNotDefined;
       
   701     }
       
   702 
       
   703 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_NetworkRegistrationAndSettingsLL()
       
   704     {
       
   705     iStorage->Clear();
       
   706      	MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EOperatorSpecific );
       
   707     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   708     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys:: ENever  );
       
   709     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL() 
       
   710     == MMusAvaObserver::EMusActivationError );
       
   711     
       
   712     iStorage->Clear();
       
   713     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   714     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys:: ENever  );
       
   715     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   716     == MMusAvaObserver::EMusActivationError );
       
   717     
       
   718     iStorage->Clear();
       
   719     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeUnknown );
       
   720     iStorage->SetRegistrationStatus( RMobilePhone::ERegistrationUnknown );
       
   721     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL() 
       
   722     == MMusAvaObserver::EMusActivationError );
       
   723     
       
   724     iStorage->Clear();
       
   725     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   726     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   727     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::ENever );
       
   728     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   729     == MMusAvaObserver::EMusActivationError );
       
   730     
       
   731     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   732     iStorage->SetRegistrationStatus( RMobilePhone::ERegistrationUnknown );
       
   733     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   734     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   735     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   736     
       
   737     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   738     iStorage->SetRegistrationStatus( RMobilePhone::ERegistrationUnknown );
       
   739     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   740     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   741     == MMusAvaObserver::EMusActivationError );
       
   742     
       
   743     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   744     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   745     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::ENever );
       
   746     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   747     == MMusAvaObserver::EMusActivationError );
       
   748     
       
   749     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   750     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   751     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   752     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   753     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   754     
       
   755     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   756     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   757     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   758     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   759     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   760     
       
   761     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   762     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   763      	iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationAllowed);
       
   764     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   765     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   766     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   767     
       
   768     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   769     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   770     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationAllowed);
       
   771     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   772     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   773     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   774     
       
   775     
       
   776     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   777     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   778     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   779     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   780     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   781     
       
   782     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   783     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredOnHomeNetwork );
       
   784     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationAllowed);
       
   785     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   786     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   787     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   788     
       
   789     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   790     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   791     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationExecuted);
       
   792     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   793     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   794     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   795     
       
   796     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   797     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   798     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationExecuted);
       
   799     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   800     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   801     == MMusAvaObserver::EMusActivationError );
       
   802     
       
   803     MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   804     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   805     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   806     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationNotExecuted);
       
   807     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   808     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   809     == MMusAvaObserver::EMusAvaManualActivation );
       
   810     
       
   811     MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   812     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   813     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   814     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationAllowed);
       
   815     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   816     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   817     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   818     
       
   819     MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   820     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   821     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   822     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationNotAllowed);
       
   823     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EAlwaysActive );
       
   824     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   825     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   826     
       
   827     MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   828     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   829     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   830     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationNotAllowed);
       
   831     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   832     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   833     == MMusAvaObserver::EMusActivationError );
       
   834     
       
   835     MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   836     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   837     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   838     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationNotExecuted);
       
   839     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   840     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   841     == MMusAvaObserver::EMusAvaManualActivation );
       
   842     
       
   843     MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   844     iStorage->SetPhoneNetworkModeStatus( RMobilePhone::ENetworkModeWcdma );
       
   845     iStorage->SetRegistrationStatus( RMobilePhone::ERegisteredRoaming );
       
   846     iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationAllowed);
       
   847     MultimediaSharingSettings::SetActivationSettingL( MusSettingsKeys::EActiveInHomeNetworks );
       
   848     EUNIT_ASSERT( iConnectionAvailability->NetworkRegistrationAndSettingsL()
       
   849     == MMusAvaObserver::EMusAvaStatusAvailable );
       
   850     }
       
   851     
       
   852     
       
   853 void UT_CMusAvaConnectionAvailability::UT_CMusAvaConnectionAvailability_ManualActivationLL()
       
   854  	{
       
   855  	MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EOperatorSpecific );
       
   856  	EUNIT_ASSERT( iConnectionAvailability->ManualActivationL() == MMusAvaObserver::EMusActivationError );	
       
   857  	
       
   858  	MultimediaSharingSettings::SetOperatorVariantSettingL( MusSettingsKeys::EStandard );
       
   859  	iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationAllowed);
       
   860  	EUNIT_ASSERT( iConnectionAvailability->ManualActivationL() == MMusAvaObserver::EMusAvaStatusAvailable );	
       
   861  	
       
   862 	iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationNotExecuted );
       
   863  	EUNIT_ASSERT( iConnectionAvailability->ManualActivationL() == MMusAvaObserver::EMusAvaManualActivation );	
       
   864  	
       
   865  	iConcreteSettings->SetManualActivation( MMusAvaSettings::EActivationExecuted );
       
   866  	EUNIT_ASSERT( iConnectionAvailability->ManualActivationL() == MMusAvaObserver::EMusActivationError );	
       
   867  	}
       
   868  	
       
   869 //  TEST TABLE
       
   870 
       
   871 EUNIT_BEGIN_TEST_TABLE( 
       
   872     UT_CMusAvaConnectionAvailability,
       
   873     "CMusAvaConnectionAvailability",
       
   874     "UNIT" )
       
   875 
       
   876 EUNIT_TEST(
       
   877     "NewL - test ",
       
   878     "CMusAvaConnectionAvailability",
       
   879     "NewL",
       
   880     "FUNCTIONALITY",
       
   881     SetupL, UT_CMusAvaConnectionAvailability_NewLL, Teardown)
       
   882     
       
   883 EUNIT_TEST(
       
   884     "DoExecuteL - test ",
       
   885     "CMusAvaConnectionAvailability",
       
   886     "DoExecuteL",
       
   887     "FUNCTIONALITY",
       
   888     SetupL, UT_CMusAvaConnectionAvailability_DoExecuteLL, Teardown)
       
   889     
       
   890 EUNIT_TEST(
       
   891     "DoExecuteL - test 3G Restricted",
       
   892     "CMusAvaConnectionAvailability",
       
   893     "DoExecuteL",
       
   894     "FUNCTIONALITY",
       
   895     SetupL, UT_CMusAvaConnectionAvailability_DoExecuteLL2, Teardown)
       
   896     
       
   897     
       
   898 EUNIT_TEST(
       
   899     "Name - test ",
       
   900     "CMusAvaConnectionAvailability",
       
   901     "Name",
       
   902     "FUNCTIONALITY",
       
   903     SetupL, UT_CMusAvaConnectionAvailability_NameL, Teardown)
       
   904     
       
   905 EUNIT_TEST(
       
   906     "Stop - test ",
       
   907     "CMusAvaConnectionAvailability",
       
   908     "Stop",
       
   909     "FUNCTIONALITY",
       
   910     SetupL, UT_CMusAvaConnectionAvailability_StopL, Teardown)
       
   911  
       
   912     
       
   913  EUNIT_TEST(
       
   914     "PhoneNetworkModeStatusL - test ",
       
   915     "CMusAvaConnectionAvailability",
       
   916     "PhoneNetworkModeStatusL",
       
   917     "FUNCTIONALITY",
       
   918     SetupL, UT_CMusAvaConnectionAvailability_PhoneNetworkModeStatusL, Teardown)
       
   919     
       
   920  EUNIT_TEST(
       
   921     "NetworkRegistrationStatus - test ",
       
   922     "CMusAvaConnectionAvailability",
       
   923     "NetworkRegistrationStatus",
       
   924     "FUNCTIONALITY",
       
   925     SetupL, UT_CMusAvaConnectionAvailability_NetworkRegistrationStatusL, Teardown)
       
   926     
       
   927  EUNIT_TEST(
       
   928     "EventL - test ",
       
   929     "CMusAvaConnectionAvailability",
       
   930     "EventL",
       
   931     "FUNCTIONALITY",
       
   932     SetupL, UT_CMusAvaConnectionAvailability_EventLL, Teardown)
       
   933 
       
   934   
       
   935 EUNIT_TEST(
       
   936     "NetworkRegistrationAndSettingsL - test ",
       
   937     "CMusAvaConnectionAvailability",
       
   938     "NetworkRegistrationAndSettingsL",
       
   939     "FUNCTIONALITY",
       
   940     SetupL, UT_CMusAvaConnectionAvailability_NetworkRegistrationAndSettingsLL, Teardown)
       
   941     
       
   942 EUNIT_TEST(
       
   943     "ManualActivationL - test ",
       
   944     "CMusAvaConnectionAvailability",
       
   945     "ManualActivationL",
       
   946     "FUNCTIONALITY",
       
   947     SetupL, UT_CMusAvaConnectionAvailability_ManualActivationLL, Teardown)
       
   948 
       
   949 EUNIT_END_TEST_TABLE
       
   950 
       
   951 //  END OF FILE