appfw/apparchitecture/tef/t_updateapplist.cpp
branchRCL_3
changeset 19 924385140d98
equal deleted inserted replaced
18:0818dd463d41 19:924385140d98
       
     1 // Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Tests UpdateAppList API of RApaLsSession class.
       
    15 //
       
    16 
       
    17 /**
       
    18  @file
       
    19  @internalComponent - Internal Symbian test code
       
    20 */
       
    21 
       
    22 #include <apgcli.h>
       
    23 #include "T_UpdateAppList.h"
       
    24 #include "T_SisFileInstaller.h"
       
    25 
       
    26 _LIT(KApparcTestAppSisFile, "z:\\apparctest\\apparctestsisfiles\\TApparcTestApp.sis");
       
    27 _LIT(KApparcTestAppComponent, "TApparcTestApp");
       
    28 
       
    29 _LIT(KTestMultipleAppsSisFile, "z:\\apparctest\\apparctestsisfiles\\TestMultipleApps.sis");
       
    30 _LIT(KTestMultipleAppsComponent, "TestMultipleApps");
       
    31 
       
    32 
       
    33 CT_TestUpdateAppListStep::CT_TestUpdateAppListStep()
       
    34     {
       
    35     }
       
    36 
       
    37 CT_TestUpdateAppListStep::~CT_TestUpdateAppListStep()
       
    38     {
       
    39     iApaLsSession.Close();
       
    40     delete iScheduler;    
       
    41     }
       
    42 
       
    43 
       
    44 void CT_TestUpdateAppListStep::TestUpdateAppListWithInvalidArgumentsL()
       
    45     {
       
    46     TApaAppInfo appInfo;
       
    47     TUid uid = {0x10003A3F};
       
    48     TInt ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    49     TEST(ret==KErrNotFound);
       
    50     
       
    51     RArray<TApaAppUpdateInfo> updateAppInfo;
       
    52     CleanupClosePushL(updateAppInfo);
       
    53     updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppPresent));
       
    54     iApaLsSession.UpdateAppListL(updateAppInfo);
       
    55     User::After(1000000);
       
    56     ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    57     TEST(ret==KErrNotFound);
       
    58 
       
    59     updateAppInfo.Reset();
       
    60     updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppNotPresent));
       
    61     iApaLsSession.UpdateAppListL(updateAppInfo);
       
    62     User::After(1000000);
       
    63     ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    64     TEST(ret==KErrNotFound);
       
    65 
       
    66     updateAppInfo.Reset();
       
    67     updateAppInfo.AppendL(TApaAppUpdateInfo(uid, TApaAppUpdateInfo::EAppInfoChanged));
       
    68     iApaLsSession.UpdateAppListL(updateAppInfo);
       
    69     User::After(3000000);
       
    70     ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    71     TEST(ret==KErrNotFound);
       
    72     CleanupStack::PopAndDestroy(&updateAppInfo);
       
    73     }
       
    74 
       
    75 
       
    76 void CT_TestUpdateAppListStep::TestAppInstallAndUninstallationL()
       
    77     {
       
    78     TApaAppInfo appInfo;
       
    79     TUid uid = {0x100048F3};
       
    80     TInt ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    81     TEST(ret==KErrNotFound);
       
    82 
       
    83     //Install app
       
    84     CSisFileInstaller sisFileInstaller;
       
    85     INFO_PRINTF2(_L("Installing sis file from -> %S"), &KApparcTestAppSisFile);
       
    86     TRAPD(err, sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KApparcTestAppSisFile));
       
    87     
       
    88     ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    89     TEST(ret==KErrNone);
       
    90 
       
    91     //Uninstall app
       
    92     TRAP(err, sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KApparcTestAppComponent));
       
    93     
       
    94     ret = iApaLsSession.GetAppInfo(appInfo,uid);
       
    95     TEST(ret==KErrNotFound);
       
    96     
       
    97     }
       
    98 
       
    99 
       
   100 void CT_TestUpdateAppListStep::TestMultipleAppInstallAndUninstallationL()
       
   101     {
       
   102     TApaAppInfo appInfo;
       
   103     TUid uid1 = {0x102032AB};
       
   104     TUid uid2 = {0x10208183};  
       
   105     TUid uid3 = {0x10208184};  
       
   106     
       
   107     TInt ret = iApaLsSession.GetAppInfo(appInfo,uid1);
       
   108     TEST(ret==KErrNotFound);
       
   109 
       
   110     ret = iApaLsSession.GetAppInfo(appInfo,uid2);
       
   111     TEST(ret==KErrNotFound);
       
   112 
       
   113     ret = iApaLsSession.GetAppInfo(appInfo,uid3);
       
   114     TEST(ret==KErrNotFound);
       
   115 
       
   116     //Install applications
       
   117     CSisFileInstaller sisFileInstaller;
       
   118     INFO_PRINTF2(_L("Installing sis file from -> %S"), &KTestMultipleAppsSisFile);
       
   119     sisFileInstaller.InstallSisAndWaitForAppListUpdateL(KTestMultipleAppsSisFile);
       
   120     
       
   121     ret = iApaLsSession.GetAppInfo(appInfo,uid1);
       
   122     TEST(ret==KErrNone);
       
   123    
       
   124     ret = iApaLsSession.GetAppInfo(appInfo,uid2);
       
   125     TEST(ret==KErrNone);
       
   126 
       
   127     //uninstall applications
       
   128     sisFileInstaller.UninstallSisAndWaitForAppListUpdateL(KTestMultipleAppsComponent);
       
   129     
       
   130    
       
   131     ret = iApaLsSession.GetAppInfo(appInfo,uid1);
       
   132     TEST(ret==KErrNotFound);
       
   133 
       
   134     ret = iApaLsSession.GetAppInfo(appInfo,uid2);
       
   135     TEST(ret==KErrNotFound);
       
   136     
       
   137     ret = iApaLsSession.GetAppInfo(appInfo,uid3);
       
   138     TEST(ret==KErrNotFound);
       
   139     }
       
   140 
       
   141 
       
   142 TVerdict CT_TestUpdateAppListStep::doTestStepL()
       
   143     {
       
   144     INFO_PRINTF1(_L("Test T_UpdateAppList Started"));
       
   145     
       
   146     // start an active scheduler
       
   147     iScheduler=new(ELeave) CActiveScheduler();
       
   148     CActiveScheduler::Install(iScheduler);
       
   149     
       
   150     // Connect to RApaLsSession
       
   151     User::LeaveIfError(iApaLsSession.Connect());
       
   152     
       
   153     HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestUpdateAppListWithInvalidArgumentsL(), NO_CLEANUP);
       
   154     HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestAppInstallAndUninstallationL(), NO_CLEANUP);
       
   155     HEAP_TEST_LS_SESSION(iApaLsSession, 0, DONT_CHECK, TestMultipleAppInstallAndUninstallationL(), NO_CLEANUP);    
       
   156     
       
   157     INFO_PRINTF1(_L("Test Finished"));  
       
   158     return TestStepResult();
       
   159     }