--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/widgetmanager/tsrc/wmunittest/src/wmunittest_all.cpp Thu Dec 17 08:40:49 2009 +0200
@@ -0,0 +1,249 @@
+/*
+* Copyright (c) 2009 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: list of all test blocks
+*
+*/
+
+//INCLUDE FILES
+#include <e32svr.h>
+#include <stdlib.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <bautils.h>
+#include <aknsskininstance.h>
+#include <swinstapi.h>
+#include <swinstdefs.h>
+#include <coemain.h>
+#include <EIKENV.H>
+#include "wmunittest.h"
+#include "wmresourceloader.h"
+
+// CONSTANTS
+_LIT( KHexPrefix, "0x" );
+_LIT8( KWrtMime, "application/x-nokia-widget");
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::RunMethodL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::RunMethodL(
+ CStifItemParser& aItem )
+ {
+ static TStifFunctionInfo const KFunctions[] =
+ {
+ // general test blocks
+ ENTRY( "HeapSet", CWmUnitTest::HeapSetL ),
+ ENTRY( "LogHeap", CWmUnitTest::LogHeapL ),
+ ENTRY( "HeapCheck", CWmUnitTest::HeapCheckL ),
+ ENTRY( "SetMass", CWmUnitTest::SetMassL ),
+ ENTRY( "ErrorPopup", CWmUnitTest::ErrorPopupL ),
+
+ // install/uninstall wrt widget for test
+ ENTRY( "InstallWrtWidget", CWmUnitTest::InstallWrtWidgetL ),
+ ENTRY( "UninstallWrtWidget", CWmUnitTest::UninstallWrtWidgetL ),
+
+ // test blocks for the plugin
+ ENTRY( "PluginCreate", CWmUnitTest::PluginCreateL ),
+ ENTRY( "PluginDelete", CWmUnitTest::PluginDeleteL ),
+ ENTRY( "PluginActivate", CWmUnitTest::PluginActivateL ),
+ ENTRY( "PluginDeactivate", CWmUnitTest::PluginDeactivateL ),
+ ENTRY( "PluginWidgetsChanged", CWmUnitTest::PluginWidgetsChangedL ),
+
+ // test blocks for the persistent widget order class
+ ENTRY( "WidgetOrderCreate", CWmUnitTest::WidgetOrderCreateL ),
+ ENTRY( "WidgetOrderDelete", CWmUnitTest::WidgetOrderDeleteL ),
+ ENTRY( "WidgetOrderLoad", CWmUnitTest::WidgetOrderLoadL ),
+ ENTRY( "WidgetOrderSave", CWmUnitTest::WidgetOrderSaveL ),
+ ENTRY( "WidgetOrderCheckIsEmpty", CWmUnitTest::WidgetOrderCheckIsEmptyL ),
+ ENTRY( "WidgetOrderUse", CWmUnitTest::WidgetOrderUseL ),
+
+ // test blocks for the image converter
+ ENTRY( "ImageConverterCreate", CWmUnitTest::ImageConverterCreateL ),
+ ENTRY( "ImageConverterDelete", CWmUnitTest::ImageConverterDeleteL ),
+ ENTRY( "ImageConverterConvert", CWmUnitTest::ImageConverterConvertL ),
+ ENTRY( "ImageConverterWaitResult", CWmUnitTest::ImageConverterWaitResultL ),
+ ENTRY( "ImageConverterConversionMethod", CWmUnitTest::ImageConverterConversionMethodL ),
+ ENTRY( "CancelConvert", CWmUnitTest::CancelConvertL ),
+
+ };
+
+ const TInt count = sizeof( KFunctions ) /
+ sizeof( TStifFunctionInfo );
+
+ return RunInternalL( KFunctions, count, aItem );
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::HeapSetL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::HeapSetL( CStifItemParser& /*aItem*/ )
+ {
+ User::Heap().AllocSize( iHeapSize );
+ _RETURN("HeapSetL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::LogHeapL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::LogHeapL( CStifItemParser& aItem )
+ {
+ TPtrC inputStr;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+
+ TInt size = 0;
+ User::Heap().AllocSize( size );
+ iLog->Log( _L("Heap usage, %S: %d"), &inputStr, size );
+ _RETURN("LogHeapL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::HeapCheckL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::HeapCheckL( CStifItemParser& /*aItem*/ )
+ {
+ TInt ret = KErrNone;
+ TInt heapSizeAtCheckpoint;
+ User::Heap().AllocSize( heapSizeAtCheckpoint );
+ if ( iHeapSize != heapSizeAtCheckpoint )
+ {
+ //ret = KErrTooBig; <-- not reliable
+ _LOG("Warning: potential memory leak detected!!!");
+ }
+ _RETURN("HeapCheckL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::SetMassL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::SetMassL( CStifItemParser& aItem )
+ {
+ aItem.GetNextInt( iMass );
+ _RETURN("SetMassL End", KErrNone);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::InstallWrtWidgetL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::InstallWrtWidgetL( CStifItemParser& aItem )
+ {
+ TInt ret = KErrNone;
+ TPtrC inputStr;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+ if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
+
+ // install widget
+ SwiUI::RSWInstSilentLauncher installer;
+ User::LeaveIfError( installer.Connect() );
+ CleanupClosePushL( installer );
+
+ SwiUI::TInstallReqPckg installReqPckg;
+ SwiUI::TInstallOptions options;
+ TRequestStatus status = KRequestPending;
+
+ options.iUpgrade = SwiUI::EPolicyAllowed;
+ options.iOptionalItems = SwiUI::EPolicyAllowed;
+ options.iOCSP = SwiUI::EPolicyAllowed;
+ options.iIgnoreOCSPWarnings = SwiUI::EPolicyAllowed;
+ options.iUntrusted = SwiUI::EPolicyAllowed;
+ options.iPackageInfo = SwiUI::EPolicyAllowed;
+ options.iCapabilities = SwiUI::EPolicyAllowed;
+ options.iKillApp = SwiUI::EPolicyAllowed;
+ options.iOverwrite = SwiUI::EPolicyAllowed;
+ options.iDownload = SwiUI::EPolicyAllowed;
+ options.iDrive = 'C';
+ options.iLang = User::Language();
+ options.iUsePhoneLang = ETrue;
+ options.iUpgradeData = SwiUI::EPolicyAllowed;
+
+ SwiUI::TInstallOptionsPckg optionsPkg( options );
+ installer.SilentInstall( status , inputStr, optionsPkg );
+ User::WaitForRequest( status );
+ ret = status.Int();
+ CleanupStack::PopAndDestroy( &installer );
+ _RETURN("InstallWrtWidgetL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::UninstallWrtWidgetL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::UninstallWrtWidgetL( CStifItemParser& aItem )
+ {
+ TInt ret = KErrNone;
+ TPtrC inputStr;
+ aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+ User::LeaveIfError( aItem.GetNextString( inputStr ) );
+ if ( inputStr.Length() == 0 ) User::Leave( KErrArgument );
+
+ TUid uid;
+ TLex lex( inputStr );
+ lex.SkipSpaceAndMark();
+ TPtrC mtoken = lex.MarkedToken();
+ TInt pos = mtoken.FindF( KHexPrefix );
+ if ( pos == 0 )
+ {
+ TLex lex( mtoken.Mid( KHexPrefix().Length() ) );
+ TUint id = 0;
+ ret = lex.Val( id, EHex );
+ uid = TUid::Uid( (TInt)id );
+ }
+ else
+ {
+ TInt id( 0 );
+ ret = lex.Val( id );
+ uid.iUid = id;
+ }
+
+ if ( ret == KErrNone )
+ {
+ // Uninstall widget
+ SwiUI::RSWInstSilentLauncher installer;
+ User::LeaveIfError( installer.Connect() );
+ CleanupClosePushL( installer );
+
+ TRequestStatus status = KRequestPending;
+ SwiUI::TUninstallOptions optionsUninstall;
+ optionsUninstall.iBreakDependency = SwiUI::EPolicyAllowed;
+ optionsUninstall.iKillApp = SwiUI::EPolicyAllowed;
+ SwiUI::TUninstallOptionsPckg uninstallOptionsPkg( optionsUninstall );
+
+ installer.SilentUninstall( status, uid, uninstallOptionsPkg, KWrtMime );
+ User::WaitForRequest( status );
+ CleanupStack::PopAndDestroy( &installer );
+ }
+
+ _RETURN("UninstallWrtWidgetL End", ret);
+ }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::ErrorPopup
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::ErrorPopupL( CStifItemParser& /*aItem*/ )
+ {
+ CWmResourceLoader* res = CWmResourceLoader::NewL( *CEikonEnv::Static() );
+ res->ErrorPopup(KErrNone);
+ delete res;
+ _RETURN("ErrorPopupL End", KErrNone);
+ }
+// End of File