diff -r 2c7f27287390 -r 053c6c7c14f3 idlefw/tsrc/profileplugin/ut_aiprofile/ut_aiprofile.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/tsrc/profileplugin/ut_aiprofile/ut_aiprofile.cpp Thu Aug 19 10:13:44 2010 +0300 @@ -0,0 +1,332 @@ +/* +* Copyright (c) 2005-2006 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: +* +*/ + + +// CLASS HEADER +#include "UT_aiprofile.h" + +// EXTERNAL INCLUDES +#define protected public +#define private public +#include "caiprofileplugin.h" +#include "caiprofileengine.h" +#undef private +#undef protected + +#include +#include +#include +#include +#include +#include +#include //RApaLsSession +#include // For RWsSession + +// INTERNAL INCLUDES +#include +#include +#include + +#include "profileobserver.h" +#include "aiprofileplugincontentmodel.h" +#include "aiprofilepluginuids.hrh" +#include "caiprofileplugin.h" +#include "caiprofileengine.h" +#include "aipluginsettings.h" + + +// CONSTRUCTION + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +UT_aiprofile* UT_aiprofile::NewL() +{ + UT_aiprofile* self = UT_aiprofile::NewLC(); + CleanupStack::Pop(); + + return self; +} + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +UT_aiprofile* UT_aiprofile::NewLC() +{ + UT_aiprofile* self = new(ELeave) UT_aiprofile(); + CleanupStack::PushL(self); + + self->ConstructL(); + + return self; +} + +// --------------------------------------------------------------------------- +// Destructor (virtual by CBase) +// --------------------------------------------------------------------------- +// +UT_aiprofile::~UT_aiprofile() +{ +} + +// --------------------------------------------------------------------------- +// Default constructor +// --------------------------------------------------------------------------- +// +UT_aiprofile::UT_aiprofile() +{ +} + +// --------------------------------------------------------------------------- +// Second phase construct +// --------------------------------------------------------------------------- +// +void UT_aiprofile::ConstructL() +{ + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); +} + +// METHODS + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void UT_aiprofile::SetupL() +{ + _LIT( KProfilePluginName, "profileplugin" ); + + _LIT8( KNameSpace, "1" ); + TUid uid = { AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_PROFILEPLUGIN }; + THsPublisherInfo pubInfo( uid, KProfilePluginName, KNameSpace ); + + CHsContentPublisher* pubType = CHsContentPublisher::NewL( pubInfo ); + iProfilePlugin = static_cast( pubType ); + + // iProfilePlugin = CHsContentPublisher::NewL( pubInfo ); + EUNIT_ASSERT( iProfilePlugin ); + + iContentObserver = ProfileObserver::NewL(); + + RAiSettingsItemArray settings; + iProfilePlugin->ConfigureL( settings ); + + iProfilePlugin->SubscribeL( *iContentObserver ); + iProfilePlugin->Start( CHsContentPublisher::ESystemStartup ); + + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + +/* +// iGs = CGSPluginInterface::NewL(TUid::Uid(AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_PROFILEPLUGIN), NULL); + iProfilePlugin = CAiProfilePlugin::NewL(); + EUNIT_ASSERT(iProfilePlugin); + iContentObserver = iContentObserver->NewL(); + EUNIT_ASSERT(iContentObserver); + iProfilePlugin->SubscribeL( *iContentObserver ); +*/ +} + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void UT_aiprofile::Teardown() +{ + if( iProfilePlugin ) + { + iProfilePlugin->Stop( CHsContentPublisher::ESystemShutdown ); + delete iProfilePlugin; + iProfilePlugin = NULL; + } + + delete iContentObserver; +} + + +//------------------------------------------------------------------------------------------- +// Tests for CAiProfilePlugin +//------------------------------------------------------------------------------------------- + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void UT_aiprofile::UT_resumeL() +{ + iProfilePlugin->Suspend( CHsContentPublisher::EBackground ); + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + + iProfilePlugin->Suspend(CHsContentPublisher::EBackupRestore ); + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + + iProfilePlugin->Suspend(CHsContentPublisher::EGeneralThemeChange ); + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + + iProfilePlugin->Suspend( CHsContentPublisher::EBackground ); +} + +void UT_aiprofile::UT_HandleEventL() +{ + + iProfilePlugin->HandleEvent(EAiProfileEventSwitchByName, KNullDesC); + + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + iProfilePlugin->HandleEvent(EAiProfileEventSwitchByName, KNullDesC); + + iProfilePlugin->HandleEvent(EAiProfileEventSwitchByName, _L("Silent")); + iProfilePlugin->iEngine->UpdateProfileNamesL(); + EUNIT_ASSERT_EQUALS( iProfilePlugin->iEngine->ActiveProfileName(), _L("Silent") ); + + //EUNIT_ASSERT_EQUALS(iProfilePlugin->iEngine->IsActiveProfileSilentL(), 1); + + //iProfilePlugin->iEngine->SetActiveProfileNameL( _L("Silent") ); + //EUNIT_ASSERT_EQUALS(iProfilePlugin->iEngine->ActiveProfileName(),_L("Silent")); + + //iProfilePlugin->iEngine->SetSwapProfileNameL(_L("General")); + //EUNIT_ASSERT_EQUALS(iProfilePlugin->iEngine->SwapProfileName(),_L("General")); + + iProfilePlugin->HandleEvent(EAiProfileEventSwitchByIndex, _L("0")); + //EUNIT_ASSERT_EQUALS(iProfilePlugin->iEngine->IsActiveProfileSilentL(), 0); + //EUNIT_ASSERT_EQUALS(_L("Silent"),iProfilePlugin->iEngine->ActiveProfileName()); + + iProfilePlugin->HandleEvent(EAiProfileEventSwap, _L("1")); + //EUNIT_ASSERT_EQUALS(iProfilePlugin->iEngine->IsActiveProfileSilentL(), 1); + + iProfilePlugin->HandleEvent(EAiProfileEventSwap, _L("0")); + //EUNIT_ASSERT_EQUALS(iProfilePlugin->iEngine->IsActiveProfileSilentL(), 0); + + iProfilePlugin->iEngine->ProfileNameByIndex( 0 ); + + iProfilePlugin->iEngine->SwapProfileName(); + + /* + EUNIT_ASSERT_NO_LEAVE(iProfilePlugin->iEngine-> + HandleActiveProfileEventL(EProfileNewActiveProfile, 0)); + */ +// iProfilePlugin->iEngine->ShowOfflineMessageL(); + +} + +void UT_aiprofile::UT_NotifyContentUpdateL() +{ + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + + iProfilePlugin->iEngine->PhoneSettingChanged(ESSSettingsCug,1); + + iProfilePlugin->iEngine->PhoneSettingChanged(ESSSettingsAls, 1); +} + + +void UT_aiprofile::UT_ExtensionL() +{ + /* + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + + TAny* anyPtr = NULL; + + EUNIT_ASSERT_NO_LEAVE(anyPtr = iProfilePlugin->Extension(KExtensionUidEventHandler)); + + EUNIT_ASSERT_NO_LEAVE(anyPtr = iProfilePlugin->Extension(KExtensionUidProperty)); + + TUid wrongUid = { 0x3 }; + + EUNIT_ASSERT(!iProfilePlugin->Extension(wrongUid)); + + MAiPropertyExtension* propertyExtension = static_cast(anyPtr); + EUNIT_ASSERT(propertyExtension); + + EUNIT_ASSERT_NO_LEAVE(anyPtr = propertyExtension->GetPropertyL(EAiPublisherInfo)); + EUNIT_ASSERT(anyPtr != NULL); + + EUNIT_ASSERT_NO_LEAVE(anyPtr = propertyExtension->GetPropertyL(EAiPublisherContent)); + EUNIT_ASSERT(anyPtr); + + // Discover resources + EUNIT_ASSERT_NO_LEAVE(anyPtr = propertyExtension->GetPropertyL(EAiPublisherResources)); + EUNIT_ASSERT(anyPtr); + + // Discover event iterator + EUNIT_ASSERT_NO_LEAVE(anyPtr = propertyExtension->GetPropertyL(EAiPublisherEvents)); + EUNIT_ASSERT(anyPtr); + + EUNIT_ASSERT_NO_LEAVE(anyPtr = propertyExtension->GetPropertyL(-1)); + EUNIT_ASSERT(!anyPtr); + + //iProfilePlugin->Stop(EAiSystemStartup); + */ +} + + +void UT_aiprofile::UT_ConfigureLL() +{ + RAiSettingsItemArray defaultSettingArray; + + // Profiles settings view + AddSettingL(defaultSettingArray, 0x00000001, _L("localapp:0x100058F8?view=0x02")); + EUNIT_ASSERT_NO_LEAVE(iProfilePlugin->ConfigureL(defaultSettingArray)); + + iProfilePlugin->Resume( CHsContentPublisher::EForeground ); + EUNIT_ASSERT_NO_LEAVE(iProfilePlugin->PublishL()); + iProfilePlugin->Suspend(CHsContentPublisher::EBackground ); + +} + +void UT_aiprofile::AddSettingL(RAiSettingsItemArray& aArray, const TInt32 aKey, const TDesC& aValue) +{ + MAiPluginSettings* setting = AiUtility::CreatePluginSettingsL(); + if (aArray.Append(setting) == KErrNone) + { + MAiPluginSettingsItem& item = setting->AiPluginSettingsItem(); + item.SetKey(aKey); + item.SetValueL(aValue); + } + else + { + delete setting; + } +} + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE(UT_aiprofile, "Profile plugin tests.", "UNIT") + +EUNIT_TEST( "Resume", "CAiProfilePlugin", "resume", + "FUNCTIONALITY", SetupL, UT_resumeL, Teardown) +/* +EUNIT_TEST( "SetPropertyL", "CAiProfilePlugin", "SetPropertyL", + "FUNCTIONALITY", SetupL, UT_SetPropertyLL, Teardown) +*/ +EUNIT_TEST( "HandleEventL", "CAiProfilePlugin", "HandleEventL", + "FUNCTIONALITY", SetupL, UT_HandleEventL, Teardown) + +EUNIT_TEST( "NotifyContentUpdate", "CAiProfilePlugin", "NotifyContentUpdate", + "FUNCTIONALITY", SetupL, UT_NotifyContentUpdateL, Teardown) + +EUNIT_TEST( "Extension", "CAiProfilePlugin", "Extension", + "FUNCTIONALITY", SetupL, UT_ExtensionL, Teardown) + +EUNIT_TEST( "ConfigureL", "CAiProfilePlugin", "ConfigureL", + "FUNCTIONALITY", SetupL, UT_ConfigureLL, Teardown) + +EUNIT_END_TEST_TABLE + +// END OF FILE