idlefw/tsrc/sapidataplugin/ut_sapidata/ut_sapidata.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 10:13:44 +0300
branchRCL_3
changeset 111 053c6c7c14f3
permissions -rw-r--r--
Revision: 201026 Kit: 201033

/*
* 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: unit test for the mcsplugin handler
*
*/


//  CLASS HEADER
#include "ut_sapidata.h"


//  EXTERNAL INCLUDES
#include <digia/eunit/eunitmacros.h>
#include <e32cmn.h>
#include "aiutility.h"
#include "aipluginsettings.h"

//  INTERNAL INCLUDES
#define private public
#include "sapidata.h"
#undef private
#include "sapidataplugin.h"
#include "observer.h"

// Implementation of the MTest interface
void MTest::GetMenuItemsL()
	{
	
	}

// CONSTRUCTION

// ---------------------------------------------------------------------------
// UT_SapiData* UT_SapiData::NewL()
// ---------------------------------------------------------------------------
//
UT_SapiData* UT_SapiData::NewL()
    {
    UT_SapiData* self = UT_SapiData::NewLC();
    CleanupStack::Pop();

    return self;
    }

// ---------------------------------------------------------------------------
// UT_SapiData* UT_SapiData::NewLC()
// ---------------------------------------------------------------------------
//
UT_SapiData* UT_SapiData::NewLC()
    {
    UT_SapiData* self = new(ELeave) UT_SapiData();
    CleanupStack::PushL(self);

    self->ConstructL();

    return self;
    }

// ---------------------------------------------------------------------------
// Destructor (virtual by CBase)
// ---------------------------------------------------------------------------
//
UT_SapiData::~UT_SapiData()
    {
    }

// ---------------------------------------------------------------------------
// Default constructor
// ---------------------------------------------------------------------------
//
UT_SapiData::UT_SapiData()
    {
    }

// ---------------------------------------------------------------------------
// Second phase construct
// ---------------------------------------------------------------------------
//
void UT_SapiData::ConstructL()
    {
    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
    // It generates the test case table.
    CEUnitTestSuiteClass::ConstructL();
    }

// ---------------------------------------------------------------------------
// void UT_SapiDataPlugin::SetupL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::SetupL()
    {
    iContentObserver = Observer::NewL();    
    TUid uid = { SAPIDP_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_DATAPLUGIN };

    iPlugin = CSapiDataPlugin::NewL();

    // Array owned by the plugin
    RAiSettingsItemArray settings;
    settings.ReserveL( 3 );
    
    MAiPluginSettings* configuration( AiUtility::CreatePluginSettingsL() );
    CleanupDeletePushL( configuration );
       
    MAiPluginConfigurationItem& confItem = configuration->AiPluginConfigurationItem();
    confItem.SetOwnerL( KPlugin );
    confItem.SetNameL( KPublisher );
    confItem.SetValueL( KMtSapiDataPlugin );

    settings.AppendL( configuration );
    CleanupStack::Pop( configuration );
                
    // No publisher there, set empty
    iPlugin->ConfigureL( settings );
    iPlugin->SubscribeL( *iContentObserver );
    iPlugin->Start( CHsContentPublisher::ESystemStartup );
    iPlugin->Resume( CHsContentPublisher::EForeground );
    
    CleanupStack::PushL( iPlugin );
    iData = CSapiData::NewL( iPlugin );
    CleanupStack::Pop( iPlugin );
    iData->SetContentIdL( KId );
    iData->ConfigureL( settings );
    }

// ---------------------------------------------------------------------------
// void UT_SapiDataPlugin::Teardown()
// ---------------------------------------------------------------------------
//
void UT_SapiData::Teardown()
    {
    if ( iContentObserver )
        {
        delete iContentObserver;
        iContentObserver = NULL;
        }
    if ( iData )
        {
        delete iData;
        iData = NULL;
        }
    if ( iPlugin )
        {
        delete iPlugin;
        iPlugin = NULL;
        }
    }

// ---------------------------------------------------------------------------
// void UT_SapiData::TestConfigureL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestConfigureL()
	{
    RAiSettingsItemArray configurationItemsArr;
    configurationItemsArr.ReserveL( 1 );
    
    MAiPluginSettings* settings( AiUtility::CreatePluginSettingsL() );
    CleanupDeletePushL( settings );
    
    MAiPluginSettingsItem& item( settings->AiPluginSettingsItem() ); 
    item.SetPublisherId( TUid::Uid( 3 ) );

    _LIT( KPlugin, "plugin" );
    _LIT( KPublisher16,  "publisher" );
    MAiPluginConfigurationItem& confItem = settings->AiPluginConfigurationItem();
    confItem.SetOwnerL( KPlugin );
    confItem.SetNameL( KPublisher16 );
    
    TInt32 key( 0 );
    
    item.SetKey( key );
    _LIT( KValue, "value" );
    item.SetValueL( KValue, EFalse );
    
    configurationItemsArr.Append( settings );            
    CleanupStack::Pop( settings );
    
    
    EUNIT_ASSERT_NO_LEAVE( iData->ConfigureL( configurationItemsArr ) );
    
    //delete settings;
    configurationItemsArr.ResetAndDestroy();
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestSetContentIdL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestSetContentIdL()
	{
	_LIT8( KId, "11" );
	EUNIT_ASSERT_NO_LEAVE( iData->SetContentIdL( KId ) );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestSetStartupReasonL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestSetStartupReasonL()
	{
	_LIT8( KStartupReason, "startup_reason" );
	EUNIT_ASSERT_LEAVE( iData->SetStartupReasonL( KStartupReason ) );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestIsPluginActive()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestIsPluginActive()
	{
	TBool res = iData->IsPluginActive();
	EUNIT_ASSERT( res );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestChangePublisherStatusL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestChangePublisherStatusL()
	{
	_LIT8( KStatus, "new_status" );
	
	iData->SetUpdateNeeded( ETrue );
	EUNIT_ASSERT_LEAVE( iData->ChangePublisherStatusL( KStatus ) );

	iData->SetUpdateNeeded( EFalse );
	EUNIT_ASSERT_LEAVE( iData->ChangePublisherStatusL( KStatus ) );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestTriggerActiveL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestTriggerActiveL()
	{
	EUNIT_ASSERT_LEAVE( iData->TriggerActiveL() );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestUpdatePublisherStatusL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestUpdatePublisherStatusL()
	{
	TBuf<10> publisher;
	publisher.Append( _L("publisher") );
	EUNIT_ASSERT_NO_LEAVE( iData->UpdatePublisherStatusL( publisher) );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestCanUpdate()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestCanUpdate()
	{
	TBuf<20> KId_EU;
	KId_EU.Append( _L("4"));

	TBuf<20> KAll_EU;
	KAll_EU.Append( _L("all"));

	TBufC<30> KPublisher_EU ( KMtSapiDataPlugin );

	
	EUNIT_ASSERT( iData->CanUpdate( KPublisher_EU, KAll_EU, KId_EU ) );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestGetMenuItemsL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestGetMenuItemsL()
	{
	MTest* test;
	
	test = reinterpret_cast<MTest*> ( iData );
	
	EUNIT_ASSERT_NO_LEAVE( test->GetMenuItemsL() );	
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestHasMenuItem()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestHasMenuItem()
	{
	_LIT16( KParam, "hello world" );
	EUNIT_ASSERT( !iData->HasMenuItem(KParam) );
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestRemoveL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestRemoveL()
	{
	TBuf<10> KAll;
	KAll.Append( _L("all") );	

	Observer* observer = Observer::NewL();
	
	EUNIT_ASSERT_NO_LEAVE( iData->RemoveL(observer, KAll) );	
	
	delete observer;
	}

// ---------------------------------------------------------------------------
// void UT_SapiData::TestRefreshL()
// ---------------------------------------------------------------------------
//
void UT_SapiData::TestRefreshL()
	{   
	TBuf<20> publisher;
	publisher.Append( _L("mt_sapi_plugin") );
	TBuf<10> contentType;
	contentType.Append( _L("all") );
	TBuf<10> contentId;
	contentId.Append( _L("4") );
	TBuf<10> operation;
	operation.Append( _L("operation") );
    CLiwDefaultMap* dataMap;
    
    iData->CanUpdate( publisher, contentType, contentId );
    iData->RefreshL( publisher, contentType, contentId, operation, dataMap );
    
    TInt id = 4;
    iPlugin->Clean(iContentObserver, id );
	}

//  TEST TABLE

EUNIT_BEGIN_TEST_TABLE
    (
    UT_SapiData,
    "Sapidata plugin tests",
    "UNIT"
    )

EUNIT_TEST
	(
	"Test configure",
	"CSapiData",
	"ConfigureL",
	"FUNCTIONALITY",
	SetupL, TestConfigureL, Teardown
    )
    
EUNIT_TEST
	(
	"Test refresh",
	"CSapiData",
	"RefreshL",
	"FUNCTIONALITY",
	SetupL, TestRefreshL, Teardown
    )

EUNIT_TEST
    (
    "Test set content ID",
    "CSapiData",
    "SetContentIdL",
    "FUNCTIONALITY",
    SetupL, TestSetContentIdL, Teardown
    )

EUNIT_TEST
    (
    "Test set startup reason",
    "CSapiData",
    "SetStartupReasonL",
    "FUNCTIONALITY",
    SetupL, TestSetStartupReasonL, Teardown
    )
    
EUNIT_TEST
    (
    "Test is plugin active",
    "CSapiData",
    "IsPluginActive",
    "FUNCTIONALITY",
    SetupL, TestIsPluginActive, Teardown
    )
    
EUNIT_TEST
    (
    "Test change publisher status",
    "CSapiData",
    "ChangePublisherStatusL",
    "FUNCTIONALITY",
    SetupL, TestChangePublisherStatusL, Teardown
    )

EUNIT_TEST
    (
    "Test trigger activate",
    "CSapiData",
    "TriggerActivateL",
    "FUNCTIONALITY",
    SetupL, TestTriggerActiveL, Teardown
    )

EUNIT_TEST
    (
    "Test update publisher status",
    "CSapiData",
    "UpdatePublisherStatusL",
    "FUNCTIONALITY",
    SetupL, TestUpdatePublisherStatusL, Teardown
    )
    
EUNIT_TEST
    (
    "Test can update",
    "CSapiData",
    "CanUpdate",
    "FUNCTIONALITY",
    SetupL, TestCanUpdate, Teardown
    )
    
EUNIT_TEST
    (
    "Test get menu items",
    "CSapiData",
    "GetMenuItemsL",
    "FUNCTIONALITY",
    SetupL, TestGetMenuItemsL, Teardown
    )
    
EUNIT_TEST
    (
    "Test has menu item",
    "CSapiData",
    "HasMenuItem",
    "FUNCTIONALITY",
    SetupL, TestHasMenuItem, Teardown
    )
    
EUNIT_TEST
    (
    "Test remove",
    "CSapiData",
    "RemoveL",
    "FUNCTIONALITY",
    SetupL, TestRemoveL, Teardown
    )

EUNIT_END_TEST_TABLE

//  END OF FILE