--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/appfw/apparchitecture/tef/t_updateapplist.cpp Tue Aug 31 15:24:25 2010 +0300
@@ -0,0 +1,159 @@
+// Copyright (c) 2005-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:
+// Tests UpdateAppList API of RApaLsSession class.
+//
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <apgcli.h>
+#include "T_UpdateAppList.h"
+#include "T_SisFileInstaller.h"
+
+_LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
+_LIT(KApparcTestAppComponent, "TApparcTestApp");
+
+_LIT(KTestMultipleAppsSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleApps.sis");
+_LIT(KTestMultipleAppsComponent, "TestMultipleApps");
+
+
+CT_TestUpdateAppListStep::CT_TestUpdateAppListStep()
+ {
+ }
+
+CT_TestUpdateAppListStep::~CT_TestUpdateAppListStep()
+ {
+ iApaLsSession.Close();
+ delete iScheduler;
+ }
+
+
+void CT_TestUpdateAppListStep::TestUpdateAppListWithInvalidArgumentsL()
+ {
+ TApaAppInfo appInfo;
+ TUid uid = {0x10003A3F};
+ TInt ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNotFound);
+
+ RArray<TApaAppUpdateInfo> updateAppInfo;
+ CleanupClosePushL(updateAppInfo);
+ updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppPresent));
+ iApaLsSession.UpdateAppListL(updateAppInfo);
+ User::After(1000000);
+ ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNotFound);
+
+ updateAppInfo.Reset();
+ updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppNotPresent));
+ iApaLsSession.UpdateAppListL(updateAppInfo);
+ User::After(1000000);
+ ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNotFound);
+
+ updateAppInfo.Reset();
+ updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppInfoChanged));
+ iApaLsSession.UpdateAppListL(updateAppInfo);
+ User::After(3000000);
+ ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNotFound);
+ CleanupStack::PopAndDestroy(&updateAppInfo);
+ }
+
+
+void CT_TestUpdateAppListStep::TestAppInstallAndUninstallationL()
+ {
+ TApaAppInfo appInfo;
+ TUid uid = {0x100048F3};
+ TInt ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNotFound);
+
+ //Install app
+ CSisFileInstaller sisFileInstaller;
+ INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
+ TRAPD(err, sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile));
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNone);
+
+ //Uninstall app
+ TRAP(err, sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KApparcTestAppComponent));
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid);
+ TEST(ret==KErrNotFound);
+
+ }
+
+
+void CT_TestUpdateAppListStep::TestMultipleAppInstallAndUninstallationL()
+ {
+ TApaAppInfo appInfo;
+ TUid uid1 = {0x102032AB};
+ TUid uid2 = {0x10208183};
+ TUid uid3 = {0x10208184};
+
+ TInt ret = iApaLsSession.GetAppInfo(appInfo,uid1);
+ TEST(ret==KErrNotFound);
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid2);
+ TEST(ret==KErrNotFound);
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid3);
+ TEST(ret==KErrNotFound);
+
+ //Install applications
+ CSisFileInstaller sisFileInstaller;
+ INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
+ sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTestMultipleAppsSisFile);
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid1);
+ TEST(ret==KErrNone);
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid2);
+ TEST(ret==KErrNone);
+
+ //uninstall applications
+ sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KTestMultipleAppsComponent);
+
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid1);
+ TEST(ret==KErrNotFound);
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid2);
+ TEST(ret==KErrNotFound);
+
+ ret = iApaLsSession.GetAppInfo(appInfo,uid3);
+ TEST(ret==KErrNotFound);
+ }
+
+
+TVerdict CT_TestUpdateAppListStep::doTestStepL()
+ {
+ INFO_PRINTF1(_L("Test T_UpdateAppList Started"));
+
+ // start an active scheduler
+ iScheduler=new(ELeave) CActiveScheduler();
+ CActiveScheduler::Install(iScheduler);
+
+ // Connect to RApaLsSession
+ User::LeaveIfError(iApaLsSession.Connect());
+
+ HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestUpdateAppListWithInvalidArgumentsL(), NO_CLEANUP);
+ HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestAppInstallAndUninstallationL(), NO_CLEANUP);
+ HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestMultipleAppInstallAndUninstallationL(), NO_CLEANUP);
+
+ INFO_PRINTF1(_L("Test Finished"));
+ return TestStepResult();
+ }