--- /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 <digia/eunit/eunitmacros.h>
+#include <GSPrivatePluginProviderIds.h>
+#include <aknappui.h>
+#include <aknviewappui.h>
+#include <eikenv.h>
+#include <CentralRepository.h>
+#include <apgcli.h> //RApaLsSession
+#include <w32std.h> // For RWsSession
+
+// INTERNAL INCLUDES
+#include <aicontentobserver.h>
+#include <aiutility.h>
+#include <puacodes.hrh>
+
+#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<CAiProfilePlugin*>( 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<MAiPropertyExtension*>(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