appfw/apparchitecture/tef/t_updateapplist.cpp
branchRCL_3
changeset 62 924385140d98
--- /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();
+    }