diff -r 924385140d98 -r c2c61fdca848 appfw/apparchitecture/tef/t_clientnotifstep.cpp --- a/appfw/apparchitecture/tef/t_clientnotifstep.cpp Tue Aug 31 15:24:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,851 +0,0 @@ -// 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: -// - -/** - @file - @internalComponent - Internal Symbian test code -*/ - -#include "t_clientnotifstep.h" -#include -#include -#include "T_SisFileInstaller.h" -#include -#include - -_LIT(KSimpleAppSisFile, "z:\\apparctest\\apparctestsisfiles\\SimpleApparcTestApp.sis"); -_LIT(KSimpleAppComponent, "SimpleApparcTestApp"); - -_LIT(KTestMultipleAppsSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleApps.sis"); -_LIT(KTestMultipleAppsComponent, "TestMultipleApps"); - -_LIT(KTestMultipleAppsDowngradeSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleAppsDowngrade.sis"); -_LIT(KTestMultipleAppsDowngradeComponent, "TestMultipleApps"); - -_LIT(KTstAppStandAloneSisFile, "z:\\apparctest\\apparctestsisfiles\\TSTAPP_standalone.sis"); -_LIT(KTstAppStandAloneComponent, "TSTAPP_standalone"); - -const TUid KUidSimpleApp={0x12008ACE}; -const TUid KUidMultipleApp1={0x102032AB}; -const TUid KUidMultipleApp2={0x10208183}; -const TUid KUidMultipleApp3={0x10208184}; -const TUid KUidTstAppStandalone={10}; - -CT_ClientNotifStep::~CT_ClientNotifStep() -/** - Destructor - */ - { - } - -CT_ClientNotifStep::CT_ClientNotifStep() -/** - Constructor - */ - { - // Call base class method to set up the human readable name for logging - SetTestStepName(KT_ClientNotifStep); - } - -TVerdict CT_ClientNotifStep::doTestStepPreambleL() -/** - @return - TVerdict code - Override of base class virtual - */ - { - SetTestStepResult(EPass); - return TestStepResult(); - } - -TVerdict CT_ClientNotifStep::doTestStepPostambleL() -/** - @return - TVerdict code - Override of base class virtual - */ - { - return TestStepResult(); - } - - -TVerdict CT_ClientNotifStep::doTestStepL() -{ - RunTestCases(); - return TestStepResult(); -} - - -void CT_ClientNotifStep::RunTestCases() - { - RTestableApaLsSession ls; - User::LeaveIfError(ls.Connect()); - - TApaAppInfo info; - TUid uid = {0x12008ACE}; - TInt err = ls.GetAppInfo(info, uid); - if(err == KErrNone) - { - CSisFileInstaller sisFileInstaller; - sisFileInstaller.UninstallSisL(KSimpleAppComponent); - } - - //DONT_CHECK is used because when an application is installed the updated application - //information is added in the session objects. This causes increase of memory at server side. - //As there can be multiple applications registered with apparc for applist change notifications, - //its not possible to clear the information in all the session objects. - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifInitialApplistCreation(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifLanguageChange(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifSingleAppInstallation(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifMultipleAppInstallation(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifUpgradeApp(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifMultipleInstallations(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifWithoutSetNotify(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifOnPackageUpgrade(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestClientNotifOnPackageDowngrade(ls), NO_CLEANUP); - ls.Close(); - } - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests apparc will not provide updated application information when the application list - created first time after device bootup. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Wait till the applist got created after phone boot. - 2. Retrieve the updated application information and check it is empty. - - - @SYMTestExpectedResults Apparc will not provide updated application information. - */ -void CT_ClientNotifStep::TestClientNotifInitialApplistCreation(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestClientNotifInitialApplistCreation started............")); - - TRequestStatus applistChangeStatus; - TRequestStatus applistCreationStatus; - //Register with apparc for applist change notification - aLs.SetNotify(ETrue, applistChangeStatus); - aLs.RegisterListPopulationCompleteObserver(applistCreationStatus); - User::WaitForRequest(applistCreationStatus); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d expected: 0"), updatedAppsInfo.Count()); - TEST(updatedAppsInfo.Count() == 0); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestClientNotifInitialApplistCreation ended............")); - } - - -void CT_ClientNotifStep::ChangeLocaleL(TLanguage aLanguage) - { - _LIT(KLitLanguageLocaleDllNameBase, "elocl_lan"); - //Region and collation code values are hard coded, as the check, after changing the locale is made for the language only. - _LIT(KLitRegionLocaleDllNameBase, "elocl_reg.826"); - _LIT(KLitCollationLocaleDllNameBase, "elocl_col.001"); - _LIT(ThreeDigExt,".%03d"); - TExtendedLocale localeDll; - const TUidType uidType(TUid::Uid(0x10000079),TUid::Uid(0x100039e6)); - TBuf<16> languageLocaleDllName(KLitLanguageLocaleDllNameBase); - languageLocaleDllName.AppendFormat(ThreeDigExt, aLanguage); - TBuf<16> regionLocaleDllName(KLitRegionLocaleDllNameBase); - TBuf<16> collationLocaleDllName(KLitCollationLocaleDllNameBase); - // Try to load the locale dll - TInt error=localeDll.LoadLocale(languageLocaleDllName, regionLocaleDllName, collationLocaleDllName); - - if (error==KErrNotFound) - { - // Locale dll is not found for the asked language. - ERR_PRINTF2(_L("Failed to find the locale dll for %d"), aLanguage); - } - - User::LeaveIfError(error); - localeDll.SaveSystemSettings(); - } - - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests apparc will not provide updated application information when the application list - updated due phone language change. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Wait till the applist got updated after phone language change. - 2. Retrieve the updated application information and check it is empty. - - - @SYMTestExpectedResults Apparc will not provide updated application information. - */ -void CT_ClientNotifStep::TestClientNotifLanguageChange(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestClientNotifLanguageChange started............")); - - TRequestStatus applistChangeStatus; - aLs.SetNotify(EFalse, applistChangeStatus); - //Change language - ChangeLocaleL(ELangGerman); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - TEST(updatedAppsInfo.Count() == 0); - - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - ChangeLocaleL(ELangEnglish); - User::WaitForRequest(applistChangeStatus); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestClientNotifInitialApplistCreation ended............")); - } - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc provides updated application information when single application is installed - and uninstalled. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Installs a sis file which has single application and waits till applist is changed. - 2. Checks the updated information provided by apparc is as expected. - 3. Uninstalls the component installed in Step 1 - 4. Checks the updated information provided by apparc is as expected. - - - @SYMTestExpectedResults Apparc provides updated application information., - */ -void CT_ClientNotifStep::TestClientNotifSingleAppInstallation(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestSingleAppInstallation started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Installing single application")); - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile); - sisInstaller.InstallSisL(KSimpleAppSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 1); - TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is available in the applist. - TApaAppInfo appInfo; - TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNone); - - INFO_PRINTF1(_L("Unnstalling single application")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KSimpleAppComponent); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 1); - TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent); - - //Check the application is not available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNotFound); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestSingleAppInstallation ended............")); - } - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc provides updated application information when multiple applications are installed - and uninstalled. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Installs a sis file which has multiple applications and waits till applist is changed. - 2. Checks the updated information provided by apparc is as expected. - 3. Uninstalls the component installed in Step 1 - 4. Checks the updated information provided by apparc is as expected. - - - @SYMTestExpectedResults Apparc provides updated application information. - */ - -void CT_ClientNotifStep::TestClientNotifMultipleAppInstallation(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestMultipleAppInstallation started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Installing multiple applications")); - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile); - sisInstaller.InstallSisL(KTestMultipleAppsSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 3); - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is available in the applist. - TApaAppInfo appInfo; - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone); - - INFO_PRINTF1(_L("Uninstalling multiple applications")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KTestMultipleAppsComponent); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - TEST(updatedAppsInfo.Count()== 3); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppNotPresent); - - //Check the application is not available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestMultipleAppInstallation ended............")); - } - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc provides updated application information when an applications is - upgraded. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Checks whether upgrading application exists in applist. - 2. Installs a sis file which upgrades existing applications and waits till applist is changed. - 2. Checks the updated information provided by apparc is as expected. - 3. Uninstalls the component installed in Step 2 - 4. Checks the updated information provided by apparc is as expected. - - - @SYMTestExpectedResults Apparc provides updated application information. - */ -void CT_ClientNotifStep::TestClientNotifUpgradeApp(RTestableApaLsSession &aLs) -{ - INFO_PRINTF1(_L("TestClientNotifUpgradeApp started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Check the application is present before upgrade")); - //Check the application is available in the applist. - TApaAppInfo appInfo; - TEST(aLs.GetAppInfo(appInfo, KUidTstAppStandalone) == KErrNone); - - INFO_PRINTF1(_L("Installing upgrade application")); - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTstAppStandAloneSisFile); - sisInstaller.InstallSisL(KTstAppStandAloneSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 1); - TEST(updatedAppsInfo[0].iAppUid == KUidTstAppStandalone); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidTstAppStandalone) == KErrNone); - - INFO_PRINTF1(_L("Unnstalling upgrade application")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KTstAppStandAloneComponent); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 1); - TEST(updatedAppsInfo[0].iAppUid == KUidTstAppStandalone); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is still available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidTstAppStandalone) == KErrNone); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestClientNotifUpgradeApp ended............")); -} - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc provides updated application information when there are multiple installations - happened before the clients requests for updated application information. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Installs a sis file and waits till applist is changed. - 2. Installs another sis file and waits till applist is changed. - 3. Checks the updated information provided by apparc is as expected. - 4. Uninstalls the component installed in Step 1 and waits till applist is changed. - 5. Uninstalls the component installed in Step 2 and waits till applist is changed. - 6. Checks the updated information provided by apparc is as expected. - - - @SYMTestExpectedResults Apparc provides updated application information. - */ -void CT_ClientNotifStep::TestClientNotifMultipleInstallations(RTestableApaLsSession &aLs) -{ - INFO_PRINTF1(_L("TestClientNotifMultipleInstallations started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Installing first sis file")); - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KSimpleAppSisFile); - sisInstaller.InstallSisL(KSimpleAppSisFile); - User::WaitForRequest(applistChangeStatus); - - INFO_PRINTF1(_L("Installing second sis file")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile); - sisInstaller.InstallSisL(KTestMultipleAppsSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installations")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 4); - TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[3].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the applications is available in the applist. - TApaAppInfo appInfo; - TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone); - - INFO_PRINTF1(_L("Unnstalling first component")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KSimpleAppComponent); - User::WaitForRequest(applistChangeStatus); - - INFO_PRINTF1(_L("Unnstalling second component")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KTestMultipleAppsComponent); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 4); - TEST(updatedAppsInfo[0].iAppUid == KUidSimpleApp); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[3].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[3].iAction == TApaAppUpdateInfo::EAppNotPresent); - - //Check the applications are not available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidSimpleApp) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestClientNotifMultipleInstallations ended............")); -} - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests apparc will not provide updated application information if SetNotify is not called - on an apparc session. Apparc only maintains updated application information with the sessions - which actually requested SetNotify and not yet called UpdatedAppsInfoL API. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Installs a sis file which has single application and waits till applist is changed. - 2. Retrieves the updated applist from different apparc session and checks the list is empty. - - - @SYMTestExpectedResults Apparc provides updated application information. - */ -void CT_ClientNotifStep::TestClientNotifWithoutSetNotify(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestClientNotifWithoutSetNotify started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Installing application")); - sisInstaller.InstallSisAndWaitForAppListUpdateL(KSimpleAppSisFile); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 0); - - INFO_PRINTF1(_L("Unnstalling application")); - sisInstaller.UninstallSisAndWaitForAppListUpdateL(KSimpleAppComponent); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 0); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestClientNotifWithoutSetNotify ended............")); - } - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc provides updated application information a component is upgraded. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Installs a sis file which has 2 applications and waits till applist is changed. - 2. Checks the updated information provided by apparc is as expected. - 3. Upgrades the component which is installed in Step 1 which has one more application. - 4. Checks the updated information provided by apparc is as expected. - 3. Uninstalls the component installed in Step 3 - 4. Checks the updated information provided by apparc is as expected. - - - @SYMTestExpectedResults Apparc provides updated application information. - */ - -void CT_ClientNotifStep::TestClientNotifOnPackageUpgrade(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestClientNotifOnPackageUpgrade started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Installing sis file which has 2 applications")); - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsDowngradeSisFile); - sisInstaller.InstallSisL(KTestMultipleAppsDowngradeSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 2); - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is available in the applist. - TApaAppInfo appInfo; - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone); - - - INFO_PRINTF1(_L("Installing upgrade sis file which has 3 applications")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile); - sisInstaller.InstallSisL(KTestMultipleAppsSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 3); - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone); - - INFO_PRINTF1(_L("Uninstalling applications ............")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KTestMultipleAppsComponent); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - TEST(updatedAppsInfo.Count()== 3); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppNotPresent); - - //Check the application is not available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestMultipleAppInstallation ended............")); - } - - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc provides updated application information a component is upgraded. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - @SYMTestActions 1. Installs a sis file which has 3 applications and waits till applist is changed. - 2. Checks the updated information provided by apparc is as expected. - 3. Degrades the component which is installed in Step 1 which has only 2 applications. - 4. Checks the updated information provided by apparc is as expected. - 3. Uninstalls the component installed in Step 3 - 4. Checks the updated information provided by apparc is as expected. - - - @SYMTestExpectedResults Apparc provides updated application information. - */ - -void CT_ClientNotifStep::TestClientNotifOnPackageDowngrade(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestClientNotifOnPackageDowngrade started............")); - CSisFileInstaller sisInstaller; - TRequestStatus applistChangeStatus; - - INFO_PRINTF1(_L("Installing sis file which has 3 applications")); - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile); - sisInstaller.InstallSisL(KTestMultipleAppsSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - RArray updatedAppsInfo; - CleanupClosePushL(updatedAppsInfo); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 3); - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent); - - - //Check the application is available in the applist. - TApaAppInfo appInfo; - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone); - - - INFO_PRINTF1(_L("Installing sis file which has only 2 applications")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsDowngradeSisFile); - sisInstaller.InstallSisL(KTestMultipleAppsDowngradeSisFile); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after installation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo.Count()== 3); - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp1); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppPresent); - TEST(updatedAppsInfo[2].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[2].iAction == TApaAppUpdateInfo::EAppPresent); - - //Check the application is not available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp1) == KErrNotFound); - - //Check the application is available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNone); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNone); - - - INFO_PRINTF1(_L("Uninstalling applications")); - applistChangeStatus=KRequestPending; - aLs.SetNotify(EFalse, applistChangeStatus); - sisInstaller.UninstallSisL(KTestMultipleAppsDowngradeComponent); - User::WaitForRequest(applistChangeStatus); - - //Get the updated application information from apparc. - updatedAppsInfo.Reset(); - INFO_PRINTF1(_L("Retrieving updated application information after uninstallation")); - aLs.UpdatedAppsInfoL(updatedAppsInfo); - INFO_PRINTF2(_L("Updated application count: %d"), updatedAppsInfo.Count()); - TEST(updatedAppsInfo.Count()== 2); - - //Check the information provided by apparc is what is expected. - TEST(updatedAppsInfo[0].iAppUid == KUidMultipleApp2); - TEST(updatedAppsInfo[0].iAction == TApaAppUpdateInfo::EAppNotPresent); - TEST(updatedAppsInfo[1].iAppUid == KUidMultipleApp3); - TEST(updatedAppsInfo[1].iAction == TApaAppUpdateInfo::EAppNotPresent); - - //Check the application is not available in the applist. - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp2) == KErrNotFound); - TEST(aLs.GetAppInfo(appInfo, KUidMultipleApp3) == KErrNotFound); - - CleanupStack::PopAndDestroy(); //updatedAppsInfo - INFO_PRINTF1(_L("TestClientNotifOnPackageDowngrade ended............")); - }