--- /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 <digia/eunit/eunitmacros.h>
+#include <e32cmn.h>
+#include <aiutility.h>
+#include <aipluginsettings.h>
+
+// 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<MAiContentItemIterator*>( 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