homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/t_hsuninstallitemstate.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/t_hsuninstallitemstate.cpp Mon Oct 04 00:07:25 2010 +0300
@@ -0,0 +1,170 @@
+/*
+* 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: Main test class for hsHomeScreenStatePlugin library.
+*
+*/
+
+#include<hbmessagebox.h>
+#include<hbaction.h>
+
+#ifdef Q_OS_SYMBIAN
+#include <usif/sif/sif.h>
+#include <usif/scr/scr.h>
+#endif//Q_OS_SYMBIAN
+
+#include "hsuninstallitemstate.h"
+#include "t_hsmenuworkerstateplugin.h"
+#include "hscontentservice.h"
+#include "hsshortcutservice.h"
+#include "hsmenueventfactory.h"
+#include "hsmenuevent.h"
+#include "hsmenuitemmodel.h"
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
+void MenuStatesTest::HsUninstallItemState_construction()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+ __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ QState parentState1;
+ parentState1.setObjectName(tr("testName1"));
+
+ HsUninstallItemState uni1(&parentState1);
+ QString s1 = uni1.objectName();
+ QVERIFY(s1 == tr("testName1/UninstallItemState"));
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+ __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+
+
+void MenuStatesTest::HsUninstallItemState_onEntry()
+{
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+ __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+ {
+ QState parentState3;
+ parentState3.setObjectName(tr("testName3"));
+ HsUninstallItemState uni3(&parentState3);
+
+ int SomeAppId = 14; ////app to uninst
+
+ QVariantMap params;
+ params.insert(Hs::itemIdKey, SomeAppId);
+
+ QEvent *e = new HsMenuEvent(HsMenuEvent::UninstallApplication, params);
+
+ QString s3 = uni3.objectName();
+ QCOMPARE(s3, tr("testName3/UninstallItemState"));
+
+ uni3.onEntry( e );
+ checkDialogController();
+
+ QCOMPARE(uni3.mEntry->id(), SomeAppId);
+
+ uni3.cleanUp();
+
+ QVERIFY(uni3.mEntry.isNull());
+
+ }
+#ifdef Q_OS_SYMBIAN
+#ifdef UT_MEMORY_CHECK
+ __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+#endif//Q_OS_SYMBIAN
+}
+
+#ifdef Q_OS_SYMBIAN
+void MenuStatesTest::HsUninstallItemState_getApplicationsNames()
+{
+#ifdef UT_MEMORY_CHECK
+ __UHEAP_MARK;
+#endif//UT_MEMORY_CHECK
+ {
+
+ static const char javaUid[] = "270437153"; //in DS_Snow
+
+ Usif::RSoftwareInstall sif;
+ CleanupClosePushL( sif );
+ User::LeaveIfError( sif.Connect() );
+
+ // Install the component
+ _LIT16( KDsSnowJadPath, "c:\\testing\\data\\t_hsmenuworkerstateplugin\\installs\\DS_Snow.jad" );
+ Usif::COpaqueNamedParams* arguments = NULL;
+ Usif::COpaqueNamedParams* results = NULL;
+ arguments = Usif::COpaqueNamedParams::NewLC();
+ results = Usif::COpaqueNamedParams::NewLC();
+ arguments->AddIntL( Usif::KSifInParam_InstallSilently, 1 );
+ TRequestStatus status;
+ sif.Install( KDsSnowJadPath, *arguments, *results, status, EFalse );
+ User::WaitForRequest( status );
+ User::LeaveIfError( status.Int() );
+
+ CleanupStack::PopAndDestroy( results );
+ CleanupStack::PopAndDestroy( arguments );
+
+ // Disconnect from the SIF server
+ CleanupStack::PopAndDestroy( &sif );
+
+
+ QSharedPointer<CaService> service = CaService::instance();
+ CaQuery query;
+ query.setAttribute(Hs::applicationUidEntryKey, javaUid);
+ QList< QSharedPointer<CaEntry> > entries = service->getEntries(query);
+ QCOMPARE(entries.length(), 1);
+ QSharedPointer<CaEntry> entry = entries[0];
+
+ HsUninstallItemState state;
+
+ QVariantMap params;
+ params.insert(Hs::itemIdKey, entry->id());
+
+ QEvent *e = new HsMenuEvent(HsMenuEvent::UninstallApplication, params);
+ state.onEntry( e );
+
+ QCOMPARE(state.mEntry->id(), entry->id());
+
+
+ QString componentName;
+ QStringList appNames;
+ QString confirmationMessage;
+
+ bool result = state.getApplicationsNames(componentName,
+ appNames, confirmationMessage);
+ QVERIFY(result);
+ QCOMPARE(componentName, QString("DS_Snow"));
+ QCOMPARE(appNames.length(), 0); //in DS_Snow
+
+ const QString remove("remove");
+ service->executeCommand(entry->id(), remove);
+
+ state.cleanUp();
+ QVERIFY(state.mEntry.isNull());
+ }
+#ifdef UT_MEMORY_CHECK
+ __UHEAP_MARKEND;
+#endif//UT_MEMORY_CHECK
+}
+#endif // Q_OS_SYMBIAN