|
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 } |