mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_musfactorysettings.cpp
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_musfactorysettings.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,194 @@
+/*
+* Copyright (c) 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:  
+*
+*/
+
+
+//  INTERNAL INCLUDES
+#include <CTSYDomainPSKeys.h>
+#include "etelmm.h"
+#include "ut_musfactorysettings.h"
+#include "musfactorysettings.h"
+#include "centralrepository.h"
+#include "e32property.h"
+
+
+//  SYSTEM INCLUDES
+#include <eunitmacros.h>
+
+// -----------------------------------------------------------------------------
+// Two phase symbian constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusFactorySettings* UT_CMusFactorySettings::NewL()
+    {
+    UT_CMusFactorySettings* self = UT_CMusFactorySettings::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// Two phase symbian constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusFactorySettings* UT_CMusFactorySettings::NewLC()
+    {
+    UT_CMusFactorySettings* self = new( ELeave ) UT_CMusFactorySettings();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusFactorySettings::~UT_CMusFactorySettings()
+    {  
+    
+    }
+
+
+// -----------------------------------------------------------------------------
+// Default constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusFactorySettings::UT_CMusFactorySettings()
+    {
+    // NOP
+    }
+
+
+// -----------------------------------------------------------------------------
+// Second phase construct
+// -----------------------------------------------------------------------------
+//
+void UT_CMusFactorySettings::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    
+    }
+    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusFactorySettings::SetupL()
+    {
+    iMusCentralRepository = CRepository::NewL( MusSettingsKeys::KRepositoryUid );    
+    CRepository::ResetStubGlobal();
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusFactorySettings::Teardown()
+    {  
+    delete iMusCentralRepository;   
+    iMusCentralRepository = NULL;    
+    CRepository::ResetStubGlobal();
+    PropertyHelper::Close(); // CRepository puts stuff to RProperty static
+    }
+
+// TEST CASES
+
+// -----------------------------------------------------------------------------
+// SetCallInfo test function
+// -----------------------------------------------------------------------------
+//
+void UT_CMusFactorySettings::UT_CMusFactorySettings_IsSupportedLL()
+    {    
+    // call cases    
+    // all call types allowed    
+    TPSCTsyCallType callType = EPSCTsyCallTypeCSVoice;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyWithActiveCSCall,
+                                                   MusSettingsKeys::EAllowedAllCalls) );
+    EUNIT_ASSERT( MusFactorySettings::IsSupportedL( callType ));
+   
+    // allowed csonly and call type is voip
+    callType = EPSCTsyCallTypeVoIP;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyWithActiveCSCall,
+                              MusSettingsKeys::EAllowedCSOnly) );
+    EUNIT_ASSERT( !MusFactorySettings::IsSupportedL( callType ));
+    
+    // allowed csonly and call type is cs
+    callType = EPSCTsyCallTypeCSVoice;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyWithActiveCSCall,
+                              MusSettingsKeys::EAllowedCSOnly) );
+    EUNIT_ASSERT( MusFactorySettings::IsSupportedL( callType ));
+               
+    // allowed csonly and call type is EPSCTsyCallTypeNone
+    callType = EPSCTsyCallTypeNone;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyWithActiveCSCall,
+                              MusSettingsKeys::EAllowedCSOnly) );
+    EUNIT_ASSERT( !MusFactorySettings::IsSupportedL( callType )); 
+ 
+    // network cases
+    // all bearer types allowed
+    RMobilePhone::TMobilePhoneNetworkMode networkType = RMobilePhone::ENetworkModeGsm;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyIn3GNetwork,
+                               MusSettingsKeys::EAllowedAllBearers) );
+    EUNIT_ASSERT( MusFactorySettings::IsSupportedL( networkType ));
+    
+    // 3g only and network type is gsm
+    networkType = RMobilePhone::ENetworkModeGsm;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyIn3GNetwork,
+                                MusSettingsKeys::EAllowed3GOnly) );
+    EUNIT_ASSERT( !MusFactorySettings::IsSupportedL( networkType ));  
+    
+    // 3g only and network type is 3g
+    networkType = RMobilePhone::ENetworkModeWcdma;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyIn3GNetwork,
+                                 MusSettingsKeys::EAllowed3GOnly) );
+    EUNIT_ASSERT( MusFactorySettings::IsSupportedL( networkType ));   
+    
+    // if allowed3gonly setting cenrep key not found
+    // then function should not leave and should behave like in default
+    // case ie all bearer supported. so it should return ETrue
+    networkType = RMobilePhone::ENetworkModeGsm;
+    User::LeaveIfError( CRepository::SetStubGlobal(MusSettingsKeys::KAllowOnlyIn3GNetwork,
+                                     MusSettingsKeys::EAllowed3GOnly) );
+    CRepository::iForceFailWithCode = KErrNotFound;
+    TBool supported = EFalse;
+    EUNIT_ASSERT_NO_LEAVE( supported = MusFactorySettings::IsSupportedL( networkType ))
+    EUNIT_ASSERT( supported );
+    }
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_CMusFactorySettings,
+    "UT_CMusFactorySettings",
+    "UNIT" )
+
+EUNIT_TEST(
+    "IsSupportedL - test",
+    "CMusFactorySettings",
+    "IsSupportedL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusFactorySettings_IsSupportedLL, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE
+
+