diff -r b183ec05bd8c -r 19bba8228ff0 remotemgmt_plat/syncml_ds_customization_api/tsrc/devinfextmgmtinterface/devinfextmgmtif_test.cpp --- a/remotemgmt_plat/syncml_ds_customization_api/tsrc/devinfextmgmtinterface/devinfextmgmtif_test.cpp Tue Aug 31 16:04:06 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,339 +0,0 @@ -/* -* Copyright (c) 2010 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: Source code file for device info extension management -* interface unit tests. -* -*/ - -// CLASS HEADER -#include "devinfextmgmtif_test.h" - -// EXTERNAL INCLUDES -#include -#include -#include - -// INTERNAL INCLUDES -#include "exampledevinfextdatacontainerplugin.h" - -// LOCAL DEFINITIONS -namespace - { - _LIT8( KTestXNam1, "TestExtensionName" ); - _LIT8( KTestXNam2, "AnotherExtensionName" ); - _LIT8( KTestXNam3, "ExtensionNameWithNoValues" ); - - _LIT8( KTestXVal1, "FirstValue" ); - _LIT8( KTestXVal2, "SecondValue" ); - _LIT8( KTestXVal3, "ThirdValue" ); - _LIT8( KTestXVal4, "FourthValue" ); - } - -// - Construction ----------------------------------------------------------- -CDevInfExtMgmtIf_Test* CDevInfExtMgmtIf_Test::NewL() - { - CDevInfExtMgmtIf_Test* self = CDevInfExtMgmtIf_Test::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -CDevInfExtMgmtIf_Test* CDevInfExtMgmtIf_Test::NewLC() - { - CDevInfExtMgmtIf_Test* self = new ( ELeave ) CDevInfExtMgmtIf_Test(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -CDevInfExtMgmtIf_Test::~CDevInfExtMgmtIf_Test() - { - if( iEcomPlugin ) - { - delete iEcomPlugin; - REComSession::FinalClose(); - } - } - -CDevInfExtMgmtIf_Test::CDevInfExtMgmtIf_Test() - { - } - -void CDevInfExtMgmtIf_Test::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Setup & Teardown --------------------------------------------------------- - -void CDevInfExtMgmtIf_Test::SetupEmptyL() - { - // Construct the plugin normally; in its default construction, no - // extensions are available. - TRAPD( err, iEcomPlugin = CNSmlDevInfExtDataContainerPlugin::NewL() ); - if( err != KErrNone ) - { - EUNIT_PRINT( _L( "Leave while instantiating plugin: %d" ), err ); - } - EUNIT_ASSERT_DESC( iEcomPlugin, "Plugin instantiation failed." ); - } - -void CDevInfExtMgmtIf_Test::SetupOneXNamL() - { - // Default construction - SetupEmptyL(); - - // Add XNam + XVals - CExampleDevInfExtDataContainerPlugin* plugin = - reinterpret_cast < CExampleDevInfExtDataContainerPlugin* >( iEcomPlugin ); - - plugin->InsertExtension( KTestXNam1, KTestXVal1 ); - plugin->InsertExtension( KTestXNam1, KTestXVal2 ); - } - -void CDevInfExtMgmtIf_Test::SetupMultipleXNamL() - { - // Default construction - SetupEmptyL(); - - // Add XNam + XVals - CExampleDevInfExtDataContainerPlugin* plugin = - reinterpret_cast < CExampleDevInfExtDataContainerPlugin* >( iEcomPlugin ); - - plugin->InsertExtension( KTestXNam1, KTestXVal1 ); - plugin->InsertExtension( KTestXNam1, KTestXVal2 ); - plugin->InsertExtension( KTestXNam2, KTestXVal3 ); - plugin->InsertExtension( KTestXNam2, KTestXVal4 ); - plugin->InsertExtension( KTestXNam3, KNullDesC8 ); - } - -void CDevInfExtMgmtIf_Test::Teardown() - { - if( iEcomPlugin ) - { - delete iEcomPlugin; - } - REComSession::FinalClose(); - } - -// - Actual test methods ------------------------------------------------------ -void CDevInfExtMgmtIf_Test::NewLL() - { - // Instantiate the example plugin - CNSmlDevInfExtDataContainerPlugin* ecomPlugin = NULL; - - // Instantiate the plugin - TRAPD( err, ecomPlugin = CNSmlDevInfExtDataContainerPlugin::NewL() ); - if( err != KErrNone ) - { - EUNIT_PRINT( _L( "Leave while instantiating plugin: %d" ), err ); - } - - EUNIT_ASSERT( ecomPlugin ); - delete ecomPlugin; - ecomPlugin = NULL; - - // Tell the framework that plugin is no longer used - resources are released - REComSession::FinalClose(); - } - -// Run tests for the test plugin, when there are no extension configured -// in the plugin. -void CDevInfExtMgmtIf_Test::TestEmptyPluginL() - { - // Debug - PrintExtensions(); - - TInt extCount = 0; - TRAPD( err, extCount = iEcomPlugin->GetExtensionCountL() ); - EUNIT_ASSERT_DESC( err == KErrNone, "GetExtensionCountL() leaves" ); - EUNIT_ASSERT( extCount == 0 ); - - // Ensure that other methods leave, as there are not extensions - TRAP( err, iEcomPlugin->GetExtNameL( 0 ) ); - EUNIT_ASSERT( err == KErrArgument ); - TRAP( err, iEcomPlugin->GetExtNameL( 1 ) ); - EUNIT_ASSERT( err == KErrArgument ); - - TRAP( err, iEcomPlugin->GetExtValueCountL( 0 ) ); - EUNIT_ASSERT( err == KErrArgument ); - TRAP( err, iEcomPlugin->GetExtValueCountL( 1 ) ); - EUNIT_ASSERT( err == KErrArgument ); - - TRAP( err, iEcomPlugin->GetExtValueL( 0, 0 ) ); - EUNIT_ASSERT( err == KErrArgument ); - } - -// Run tests for the test plugin, when there is one extension configured -// in the plugin. -void CDevInfExtMgmtIf_Test::TestOneXNamPluginL() - { - // Debug - PrintExtensions(); - - TInt extCount = 0; - TRAPD( err, extCount = iEcomPlugin->GetExtensionCountL() ); - EUNIT_ASSERT_DESC( err == KErrNone, "GetExtensionCountL() leaves" ); - EUNIT_ASSERT( extCount == 1 ); - - // Check legal values - TBuf8< 50 > tmpBuf; - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtNameL( 0 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXNam1 ) == 0 ); - - TInt xValCount = 0; - EUNIT_ASSERT_NO_LEAVE( xValCount = iEcomPlugin->GetExtValueCountL( 0 ) ); - EUNIT_ASSERT( xValCount == 2 ); - - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtValueL( 0, 0 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXVal1 ) == 0 ); - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtValueL( 0, 1 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXVal2 ) == 0 ); - - // Ensure that methods leave with illegal indices - TRAP( err, iEcomPlugin->GetExtNameL( 1 ) ); - EUNIT_ASSERT( err == KErrArgument ); - - TRAP( err, iEcomPlugin->GetExtValueCountL( 1 ) ); - EUNIT_ASSERT( err == KErrArgument ); - - TRAP( err, iEcomPlugin->GetExtValueL( 1, 0 ) ); - EUNIT_ASSERT( err == KErrArgument ); - } - -// Run tests for the test plugin, when there are multiple extensions configured -// in the plugin. -void CDevInfExtMgmtIf_Test::TestMultipleXNamPluginL() - { - // Debug - PrintExtensions(); - - TInt extCount = 0; - TRAPD( err, extCount = iEcomPlugin->GetExtensionCountL() ); - EUNIT_ASSERT_DESC( err == KErrNone, "GetExtensionCountL() leaves" ); - EUNIT_ASSERT( extCount == 3 ); - - // Check legal values - // 1st extension (index 0) - TBuf8< 50 > tmpBuf; - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtNameL( 0 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXNam1 ) == 0 ); - - TInt xValCount = 0; - EUNIT_ASSERT_NO_LEAVE( xValCount = iEcomPlugin->GetExtValueCountL( 0 ) ); - EUNIT_ASSERT( xValCount == 2 ); - - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtValueL( 0, 0 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXVal1 ) == 0 ); - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtValueL( 0, 1 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXVal2 ) == 0 ); - - // 2nd extension (index 1) - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtNameL( 1 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXNam2 ) == 0 ); - - xValCount = 0; - EUNIT_ASSERT_NO_LEAVE( xValCount = iEcomPlugin->GetExtValueCountL( 1 ) ); - EUNIT_ASSERT( xValCount == 2 ); - - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtValueL( 1, 0 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXVal3 ) == 0 ); - tmpBuf.Zero(); - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtValueL( 1, 1 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXVal4 ) == 0 ); - - // 3nd extension (index 2) - EUNIT_ASSERT_NO_LEAVE( tmpBuf = iEcomPlugin->GetExtNameL( 2 ) ); - EUNIT_ASSERT( tmpBuf.Compare( KTestXNam3 ) == 0 ); - - xValCount = 0; - EUNIT_ASSERT_NO_LEAVE( xValCount = iEcomPlugin->GetExtValueCountL( 2 ) ); - EUNIT_ASSERT( xValCount == 0 ); - - // Ensure that methods leave with illegal indices - TRAP( err, iEcomPlugin->GetExtNameL( -1 ) ); - EUNIT_ASSERT( err == KErrArgument ); - - TRAP( err, iEcomPlugin->GetExtValueCountL( 3 ) ); - EUNIT_ASSERT( err == KErrArgument ); - - TRAP( err, iEcomPlugin->GetExtValueL( 5, 2 ) ); - EUNIT_ASSERT( err == KErrArgument ); - } - -// - Utilities ---------------------------------------------------------------- -void CDevInfExtMgmtIf_Test::PrintExtensions() - { - EUNIT_PRINT( _L( "Extension count %d" ), iEcomPlugin->GetExtensionCountL() ); - - for ( TInt i = 0; i < iEcomPlugin->GetExtensionCountL(); i++ ) - { - EUNIT_PRINT( _L("EXTENSION NUMBER %d"), i ); - - EUNIT_PRINT( _L( "Name" ) ); - EUNIT_PRINT( iEcomPlugin->GetExtNameL( i ) ); - - EUNIT_PRINT( _L( "Values" ) ); - for ( TInt j = 0; j < iEcomPlugin->GetExtValueCountL( i ); j++ ) - { - EUNIT_PRINT( iEcomPlugin->GetExtValueL( i, j ) ); - } - - EUNIT_PRINT( _L("END OF EXTENSION %d"), i ); - } - } - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - CDevInfExtMgmtIf_Test, - "Unit tests for Device info ext management interface.", - "UNIT" ) - -EUNIT_TEST( - "Verify Ecom plugin instantiation", - "CNSmlDevInfExtDataContainerPlugin", - "NewL", - "FUNCTIONALITY", - Empty, NewLL, Empty) - -EUNIT_TEST( - "Test the behaviour with no extensions", - "CNSmlDevInfExtDataContainerPlugin", - "NewL", - "FUNCTIONALITY", - SetupEmptyL, TestEmptyPluginL, Teardown) - -EUNIT_TEST( - "Test the behaviour with one extension", - "CNSmlDevInfExtDataContainerPlugin", - "NewL", - "FUNCTIONALITY", - SetupOneXNamL, TestOneXNamPluginL, Teardown) - -EUNIT_TEST( - "Test the behaviour with multiple extensions", - "CNSmlDevInfExtDataContainerPlugin", - "NewL", - "FUNCTIONALITY", - SetupMultipleXNamL, TestMultipleXNamPluginL, Teardown) - -EUNIT_END_TEST_TABLE - -// End of file