1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17
18 #include "app_preloader.h"
19 #include "hilog_tag_wrapper.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace AppExecFwk {
26 class AppPreloaderTest : public testing::Test {
27 public:
28 void SetUp();
29 void TearDown();
30
31 protected:
32 std::shared_ptr<RemoteClientManager> remoteClientManager_ = nullptr;
33 };
34
SetUp()35 void AppPreloaderTest::SetUp()
36 {
37 remoteClientManager_ = std::make_shared<RemoteClientManager>();
38 auto bundleMgrHelper = std::make_shared<BundleMgrHelper>();
39 remoteClientManager_->SetBundleManagerHelper(bundleMgrHelper);
40 }
41
TearDown()42 void AppPreloaderTest::TearDown()
43 {}
44
45 /**
46 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0100
47 * @tc.desc: Test GeneratePreloadRequest works
48 * @tc.type: FUNC
49 * @tc.Function: GeneratePreloadRequest
50 * @tc.SubFunction: NA
51 * @tc.EnvConditions: NA
52 */
53 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0100, TestSize.Level0)
54 {
55 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0100 start.");
56 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
57 EXPECT_NE(manager, nullptr);
58
59 std::string bundleName = "com.acts.preloadtest";
60 int32_t userId = 100;
61 int32_t appIndex = 0;
62 PreloadRequest request;
63 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
64 EXPECT_EQ(ret, ERR_OK);
65 }
66
67 /**
68 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0200
69 * @tc.desc: Test GeneratePreloadRequest works
70 * @tc.type: FUNC
71 * @tc.Function: GeneratePreloadRequest
72 * @tc.SubFunction: NA
73 * @tc.EnvConditions: NA
74 */
75 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0200, TestSize.Level0)
76 {
77 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0200 start.");
78 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
79 EXPECT_NE(manager, nullptr);
80
81 std::string bundleName = "com.acts.preloadtest";
82 int32_t userId = 1;
83 int32_t appIndex = 0;
84 PreloadRequest request;
85 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
86 EXPECT_EQ(ret, ERR_OK);
87 }
88
89 /**
90 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0300
91 * @tc.desc: Test GeneratePreloadRequest works
92 * @tc.type: FUNC
93 * @tc.Function: GeneratePreloadRequest
94 * @tc.SubFunction: NA
95 * @tc.EnvConditions: NA
96 */
97 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0300, TestSize.Level0)
98 {
99 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0300 start.");
100 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
101 EXPECT_NE(manager, nullptr);
102
103 std::string bundleName = "com.acts.preloadtest";
104 int32_t userId = 0;
105 int32_t appIndex = 0;
106 PreloadRequest request;
107 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
108 EXPECT_EQ(ret, ERR_OK);
109 }
110
111 /**
112 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0400
113 * @tc.desc: Test GeneratePreloadRequest works
114 * @tc.type: FUNC
115 * @tc.Function: GeneratePreloadRequest
116 * @tc.SubFunction: NA
117 * @tc.EnvConditions: NA
118 */
119 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0400, TestSize.Level0)
120 {
121 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0400 start.");
122 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
123 EXPECT_NE(manager, nullptr);
124
125 std::string bundleName = "com.acts.preloadtest";
126 int32_t userId = -1;
127 int32_t appIndex = 0;
128 PreloadRequest request;
129 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
130 EXPECT_EQ(ret, ERR_OK);
131 }
132
133 /**
134 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0500
135 * @tc.desc: Test GeneratePreloadRequest works
136 * @tc.type: FUNC
137 * @tc.Function: GeneratePreloadRequest
138 * @tc.SubFunction: NA
139 * @tc.EnvConditions: NA
140 */
141 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0500, TestSize.Level0)
142 {
143 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0500 start.");
144 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
145 EXPECT_NE(manager, nullptr);
146
147 std::string bundleName = "com.acts.preloadtest";
148 int32_t userId = 100;
149 int32_t appIndex = 1;
150 PreloadRequest request;
151 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
152 EXPECT_EQ(ret, ERR_OK);
153 }
154
155 /**
156 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0500
157 * @tc.desc: Test GeneratePreloadRequest works
158 * @tc.type: FUNC
159 * @tc.Function: GeneratePreloadRequest
160 * @tc.SubFunction: NA
161 * @tc.EnvConditions: NA
162 */
163 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0600, TestSize.Level0)
164 {
165 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0600 start.");
166 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
167 EXPECT_NE(manager, nullptr);
168
169 std::string bundleName = "com.acts.preloadtest";
170 int32_t userId = 1;
171 int32_t appIndex = 1;
172 PreloadRequest request;
173 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
174 EXPECT_EQ(ret, ERR_OK);
175 }
176
177 /**
178 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0700
179 * @tc.desc: Test GeneratePreloadRequest works
180 * @tc.type: FUNC
181 * @tc.Function: GeneratePreloadRequest
182 * @tc.SubFunction: NA
183 * @tc.EnvConditions: NA
184 */
185 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0700, TestSize.Level0)
186 {
187 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0700 start.");
188 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
189 EXPECT_NE(manager, nullptr);
190
191 std::string bundleName = "com.acts.preloadtest";
192 int32_t userId = 0;
193 int32_t appIndex = 1;
194 PreloadRequest request;
195 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
196 EXPECT_EQ(ret, ERR_OK);
197 }
198
199 /**
200 * @tc.number: AppPreloaderTest_GeneratePreloadRequest_0800
201 * @tc.desc: Test GeneratePreloadRequest works
202 * @tc.type: FUNC
203 * @tc.Function: GeneratePreloadRequest
204 * @tc.SubFunction: NA
205 * @tc.EnvConditions: NA
206 */
207 HWTEST_F(AppPreloaderTest, AppPreloaderTest_GeneratePreloadRequest_0800, TestSize.Level0)
208 {
209 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_GeneratePreloadRequest_0800 start.");
210 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
211 EXPECT_NE(manager, nullptr);
212
213 std::string bundleName = "com.acts.preloadtest";
214 int32_t userId = 0;
215 int32_t appIndex = -1;
216 PreloadRequest request;
217 auto ret = manager->GeneratePreloadRequest(bundleName, userId, appIndex, request);
218 EXPECT_EQ(ret, ERR_OK);
219 }
220
221 /**
222 * @tc.number: AppPreloaderTest_PreCheck_0100
223 * @tc.desc: Test PreCheck works
224 * @tc.type: FUNC
225 * @tc.Function: GeneratePreloadRequest
226 * @tc.SubFunction: NA
227 * @tc.EnvConditions: NA
228 */
229 HWTEST_F(AppPreloaderTest, AppPreloaderTest_PreCheck_0100, TestSize.Level0)
230 {
231 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_PreCheck_0100 start.");
232 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
233 EXPECT_NE(manager, nullptr);
234
235 std::string bundleName = "com.acts.testxxxx";
236 auto ret = manager->PreCheck(bundleName, PreloadMode::PRE_MAKE);
237 EXPECT_EQ(ret, true);
238 }
239
240 /**
241 * @tc.number: AppPreloaderTest_PreCheck_0200
242 * @tc.desc: Test PreCheck works
243 * @tc.type: FUNC
244 * @tc.Function: GeneratePreloadRequest
245 * @tc.SubFunction: NA
246 * @tc.EnvConditions: NA
247 */
248 HWTEST_F(AppPreloaderTest, AppPreloaderTest_PreCheck_0200, TestSize.Level0)
249 {
250 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_PreCheck_0200 start.");
251 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
252 EXPECT_NE(manager, nullptr);
253
254 std::string bundleName = "";
255 auto ret = manager->PreCheck(bundleName, PreloadMode::PRE_MAKE);
256 EXPECT_EQ(ret, true);
257 }
258
259 /**
260 * @tc.number: AppPreloaderTest_PreCheck_0300
261 * @tc.desc: Test PreCheck works
262 * @tc.type: FUNC
263 * @tc.Function: GeneratePreloadRequest
264 * @tc.SubFunction: NA
265 * @tc.EnvConditions: NA
266 */
267 HWTEST_F(AppPreloaderTest, AppPreloaderTest_PreCheck_0300, TestSize.Level0)
268 {
269 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_PreCheck_0300 start.");
270 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
271 EXPECT_NE(manager, nullptr);
272
273 std::string bundleName = "com.acts.testxxxx";
274 auto ret = manager->PreCheck(bundleName, PreloadMode::PRESS_DOWN);
275 EXPECT_EQ(ret, false);
276 }
277
278 /**
279 * @tc.number: AppPreloaderTest_PreCheck_0400
280 * @tc.desc: Test PreCheck works
281 * @tc.type: FUNC
282 * @tc.Function: GeneratePreloadRequest
283 * @tc.SubFunction: NA
284 * @tc.EnvConditions: NA
285 */
286 HWTEST_F(AppPreloaderTest, AppPreloaderTest_PreCheck_0400, TestSize.Level0)
287 {
288 TAG_LOGD(AAFwkTag::TEST, "AppPreloaderTest_PreCheck_0400 start.");
289 auto manager = std::make_shared<AppPreloader>(remoteClientManager_);
290 EXPECT_NE(manager, nullptr);
291
292 std::string bundleName = "com.acts.testxxxx";
293 auto ret = manager->PreCheck(bundleName, PreloadMode::PRESS_DOWN);
294 EXPECT_EQ(ret, false);
295 }
296 } // namespace AppExecFwk
297 } // namespace OHOS
298