diff -r 2c7f27287390 -r 053c6c7c14f3 idlefw/tsrc/sapidataplugin/ut_sapidataplugin/ut_sapidataplugin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/tsrc/sapidataplugin/ut_sapidataplugin/ut_sapidataplugin.cpp Thu Aug 19 10:13:44 2010 +0300 @@ -0,0 +1,354 @@ +/* +* 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_sapidataplugin.h" + + +// EXTERNAL INCLUDES +#include +#include +#include +#include + +// INTERNAL INCLUDES +#include "sapidata.h" +#include "sapidataobserver.h" +#include "sapidataplugin.h" +#include "sapidatapluginconst.h" +#include "observer.h" + + +_LIT( KTest, "TEST" ); +_LIT( KUpdate, "update" ); +// CONSTRUCTION + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +UT_SapiDataPlugin* UT_SapiDataPlugin::NewL() + { + UT_SapiDataPlugin* self = UT_SapiDataPlugin::NewLC(); + CleanupStack::Pop(); + + return self; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +UT_SapiDataPlugin* UT_SapiDataPlugin::NewLC() + { + UT_SapiDataPlugin* self = new(ELeave) UT_SapiDataPlugin(); + CleanupStack::PushL(self); + + self->ConstructL(); + + return self; + } + +// --------------------------------------------------------------------------- +// Destructor (virtual by CBase) +// --------------------------------------------------------------------------- +// +UT_SapiDataPlugin::~UT_SapiDataPlugin() + { + + } + +// --------------------------------------------------------------------------- +// Default constructor +// --------------------------------------------------------------------------- +// +UT_SapiDataPlugin::UT_SapiDataPlugin() + { + + } + +// --------------------------------------------------------------------------- +// Second phase construct +// --------------------------------------------------------------------------- +// +void UT_SapiDataPlugin::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + +// --------------------------------------------------------------------------- +// void UT_SapiDataPlugin::Teardown() +// --------------------------------------------------------------------------- +// +void UT_SapiDataPlugin::Teardown() + { + if ( iPlugin ) + { + delete iPlugin; + iPlugin = NULL; + } + if ( iObserver ) + { + delete iObserver; + iObserver = NULL; + } + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_Data() + { + iData = iPlugin->Data(); + EUNIT_ASSERT( iData ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::SetupL() + { + iPlugin = CSapiDataPlugin::NewL(); + + RAiSettingsItemArray settings; + MAiPluginSettings* setting = AiUtility::CreatePluginSettingsL(); + + CleanupDeletePushL( setting ); + MAiPluginContentItem& item = setting->AiPluginContentItem(); + item.SetTypeL( _L( "image" ) ); + item.SetNameL( _L( "widget/icon" ) ); + settings.AppendL( setting ); + CleanupStack::Pop( setting ); + + MAiPluginSettings* setting1 = AiUtility::CreatePluginSettingsL(); + CleanupDeletePushL( setting1 ); + MAiPluginContentItem& item1 = setting1->AiPluginContentItem(); + item1.SetTypeL( _L( "image" ) ); + item1.SetNameL( _L( "widget/icon" ) ); + settings.AppendL( setting1 ); + CleanupStack::Pop( setting1 ); + + MAiPluginSettings* setting2 = AiUtility::CreatePluginSettingsL(); + CleanupDeletePushL( setting2 ); + MAiPluginContentItem& item2 = setting2->AiPluginContentItem(); + item2.SetTypeL( _L( "text" ) ); + item2.SetNameL( _L( "widget/longname" ) ); + settings.AppendL( setting2 ); + CleanupStack::Pop( setting2 ); + + MAiPluginSettings* setting3 = AiUtility::CreatePluginSettingsL(); + CleanupDeletePushL( setting3 ); + MAiPluginConfigurationItem& item3 = setting3->AiPluginConfigurationItem(); + item3.SetOwnerL( _L( "plugin" ) ); + item3.SetNameL( _L( "publisher" )); + item3.SetValueL( _L( "TEST" ) ); + settings.AppendL( setting3 ); + CleanupStack::Pop( setting3 ); + + TRAPD( err, iPlugin->ConfigureL( settings ) ); + EUNIT_ASSERT_EQUALS(err, KErrNone); + + iPlugin->Start( CHsContentPublisher::ESystemStartup ); + iPlugin->Resume( CHsContentPublisher::EForeground ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_GetTypeL() + { + MAiPluginSettings* setting4 = AiUtility::CreatePluginSettingsL(); + CleanupDeletePushL( setting4 ); + MAiPluginContentItem& item4 = setting4->AiPluginContentItem(); + item4.SetTypeL( _L( "text" ) ); + item4.SetNameL( _L( "widget/longname" ) ); + + HBufC* objectId = item4.Name().AllocLC(); + objectId->Des().Delete(0, objectId->LocateReverse(KPluginNameSeprator) + 1); + + HBufC* type = iPlugin->GetTypeL( *objectId ).AllocLC(); + EUNIT_ASSERT_EQUALS( type != KNullDesC(), ETrue ) + + CleanupStack::PopAndDestroy( type ); + CleanupStack::PopAndDestroy( objectId ); + CleanupStack::PopAndDestroy( setting4 ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_GetIdL() + { + MAiPluginSettings* setting4 = AiUtility::CreatePluginSettingsL(); + CleanupDeletePushL( setting4 ); + MAiPluginContentItem& item4 = setting4->AiPluginContentItem(); + item4.SetTypeL( _L( "text" ) ); + item4.SetNameL( _L( "widget/longname" ) ); + + HBufC* objectId = item4.Name().AllocLC(); + objectId->Des().Delete(0, objectId->LocateReverse(KPluginNameSeprator) + 1); + + TInt id = iPlugin->GetIdL( *objectId ); + EUNIT_ASSERT_EQUALS( id != KErrNotFound, ETrue ); + + CleanupStack::PopAndDestroy( objectId ); + CleanupStack::PopAndDestroy( setting4 ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_Resume() + { + EUNIT_ASSERT( iPlugin->IsActive() ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_NetworkStatus() + { + iPlugin->SetOnline(); + CSapiDataPlugin::TPluginNetworkStatus networkStatus = + iPlugin->NetworkStatus(); + EUNIT_ASSERT_EQUALS( networkStatus == CSapiDataPlugin::EOnline, ETrue ); + + iPlugin->SetOffline(); + networkStatus = iPlugin->NetworkStatus(); + EUNIT_ASSERT_EQUALS( networkStatus == CSapiDataPlugin::EOffline, ETrue ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_GetProperty() + { + TAny* anyPtr = iPlugin->GetProperty( CSapiDataPlugin::EPublisherContent ); + MAiContentItemIterator* iter = + static_cast( anyPtr); + EUNIT_ASSERT( iter ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_HasMenuItem() + { + TBool res = iPlugin->HasMenuItem( KTest ); + EUNIT_ASSERT( res == EFalse ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +void UT_SapiDataPlugin::UT_SapiDataPlugin_Clean() + { + iObserver = Observer::NewL(); + TInt id = 1; + + iPlugin->SubscribeL( *iObserver ); + EUNIT_ASSERT_NO_LEAVE( iPlugin->Clean( iObserver, id ) ); + } + +// TEST TABLE + + +EUNIT_BEGIN_TEST_TABLE + ( + UT_SapiDataPlugin, + "Sapidata plugin tests", + "UNIT" + ) + +EUNIT_TEST + ( + "Data", + "CSapiDataPlugin", + "Data", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_Data, Teardown + ) + +EUNIT_TEST + ( + "Resume", + "CSapiDataPlugin", + "Resume", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_Resume, Teardown + ) + +EUNIT_TEST + ( + "GetTypeL", + "CSapiDataPlugin", + "GetTypeL", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_GetTypeL, Teardown + ) + +EUNIT_TEST + ( + "GetIdL", + "CSapiDataPlugin", + "GetIdL", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_GetIdL, Teardown + ) + +EUNIT_TEST + ( + "NetworkStatus", + "CSapiDataPlugin", + "NetworkStatus", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_NetworkStatus, Teardown + ) + +EUNIT_TEST + ( + "GetProperty", + "CSapiDataPlugin", + "GetProperty", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_GetProperty, Teardown + ) + +EUNIT_TEST + ( + "HasMenuItem", + "CSapiDataPlugin", + "HasMenuItem", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_HasMenuItem, Teardown + ) + +EUNIT_TEST + ( + "Clean", + "CSapiDataPlugin", + "Clean", + "FUNCTIONALITY", + SetupL, UT_SapiDataPlugin_Clean, Teardown + ) + +EUNIT_END_TEST_TABLE + +// END OF FILE