diff -r 0818dd463d41 -r 924385140d98 appfw/apparchitecture/tef/t_updateapplist.cpp --- /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 +#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 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(); + }