appfw/apparchitecture/tef/t_clientnotifstep.cpp
branchRCL_3
changeset 20 c2c61fdca848
parent 19 924385140d98
child 21 9af619316cbf
--- 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 <e32base.h>
-#include <e32cmn.h>
-#include "T_SisFileInstaller.h"
-#include <apgtask.h>
-#include <apgnotif.h>
-
-_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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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<TApaAppUpdateInfo> 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............"));    
-    }