1 /*
2 * Copyright (c) 2022-2023 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 <cstdio>
17 #include <gtest/gtest.h>
18 #include <string>
19
20 #include "b_error/b_error.h"
21 #include "b_json/b_json_entity_ext_manage.h"
22 #include "ext_extension_mock.h"
23 #include "file_ex.h"
24 #include "module_ipc/service.h"
25 #include "module_ipc/svc_session_manager.h"
26 #include "service_reverse_mock.h"
27 #include "test_manager.h"
28
29 namespace OHOS::FileManagement::Backup {
30 using namespace testing;
31 using namespace std;
32
33 namespace {
34 const string BUNDLE_NAME = "com.example.app2backup";
35 const string MANAGE_JSON = "manage.json";
36 const string FILE_NAME = "1.tar";
37 constexpr int32_t SERVICE_ID = 5203;
38 constexpr int32_t CLIENT_TOKEN_ID = 100;
39 } // namespace
40
41 class SvcSessionManagerTest : public testing::Test {
42 public:
43 static void SetUpTestCase(void);
44 static void TearDownTestCase(void);
SetUp()45 void SetUp() override {};
TearDown()46 void TearDown() override {};
47 void Init(IServiceReverse::Scenario scenario);
48
49 static inline sptr<SvcSessionManager> sessionManagerPtr_ = nullptr;
50 static inline sptr<ServiceReverseMock> remote_ = nullptr;
51 static inline sptr<Service> servicePtr_ = nullptr;
52 };
53
SetUpTestCase(void)54 void SvcSessionManagerTest::SetUpTestCase(void)
55 {
56 GTEST_LOG_(INFO) << "SetUpTestCase enter";
57 remote_ = sptr(new ServiceReverseMock());
58 servicePtr_ = sptr(new Service(SERVICE_ID));
59 sessionManagerPtr_ = sptr<SvcSessionManager>(new SvcSessionManager(wptr(servicePtr_)));
60 }
61
TearDownTestCase(void)62 void SvcSessionManagerTest::TearDownTestCase(void)
63 {
64 GTEST_LOG_(INFO) << "TearDownTestCase enter";
65 sessionManagerPtr_ = nullptr;
66 servicePtr_ = nullptr;
67 remote_ = nullptr;
68 }
69
Init(IServiceReverse::Scenario scenario)70 void SvcSessionManagerTest::Init(IServiceReverse::Scenario scenario)
71 {
72 vector<string> bundleNames;
73 map<string, BackupExtInfo> backupExtNameMap;
74 bundleNames.emplace_back(BUNDLE_NAME);
75 sessionManagerPtr_->Active(
76 {.clientToken = CLIENT_TOKEN_ID, .scenario = scenario, .backupExtNameMap = {}, .clientProxy = remote_});
77 sessionManagerPtr_->IsOnAllBundlesFinished();
78 sessionManagerPtr_->AppendBundles(bundleNames);
79 sessionManagerPtr_->Finish();
80 sessionManagerPtr_->IsOnAllBundlesFinished();
81 }
82
83 /**
84 * @tc.number: SUB_backup_sa_session_VerifyCallerAndScenario_0100
85 * @tc.name: SUB_backup_sa_session_VerifyCallerAndScenario_0100
86 * @tc.desc: 测试 VerifyCallerAndScenario 是否是有效的
87 * @tc.size: MEDIUM
88 * @tc.type: FUNC
89 * @tc.level Level 1
90 * @tc.require: I6F3GV
91 */
92 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_VerifyCallerAndScenario_0100, testing::ext::TestSize.Level1)
93 {
94 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_VerifyCallerAndScenario_0100";
95 try {
96 Init(IServiceReverse::Scenario::RESTORE);
97 sessionManagerPtr_->VerifyCallerAndScenario(CLIENT_TOKEN_ID, IServiceReverse::Scenario::RESTORE);
98 } catch (...) {
99 EXPECT_TRUE(false);
100 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by VerifyCallerAndScenario.";
101 }
102 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_VerifyCallerAndScenario_0100";
103 }
104
105 /**
106 * @tc.number: SUB_backup_sa_session_VerifyBundleName_0100
107 * @tc.name: SUB_backup_sa_session_VerifyBundleName_0100
108 * @tc.desc: 测试 VerifyBundleName 检验调用者给定的bundleName是否是有效的
109 * @tc.size: MEDIUM
110 * @tc.type: FUNC
111 * @tc.level Level 1
112 * @tc.require: I6F3GV
113 */
114 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_VerifyBundleName_0100, testing::ext::TestSize.Level1)
115 {
116 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_VerifyBundleName_0100";
117 try {
118 string bundleName = BUNDLE_NAME;
119 sessionManagerPtr_->VerifyBundleName(bundleName);
120 } catch (...) {
121 EXPECT_TRUE(false);
122 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by VerifyBundleName.";
123 }
124 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_VerifyBundleName_0100";
125 }
126
127 /**
128 * @tc.number: SUB_backup_sa_session_GetServiceReverseProxy_0100
129 * @tc.name: SUB_backup_sa_session_GetServiceReverseProxy_0100
130 * @tc.desc: 测试 GetServiceReverseProxy
131 * @tc.size: MEDIUM
132 * @tc.type: FUNC
133 * @tc.level Level 1
134 * @tc.require: I6F3GV
135 */
136 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetServiceReverseProxy_0100, testing::ext::TestSize.Level1)
137 {
138 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetServiceReverseProxy_0100";
139 try {
140 auto proxy = sessionManagerPtr_->GetServiceReverseProxy();
141 EXPECT_NE(proxy, nullptr);
142 } catch (...) {
143 EXPECT_TRUE(false);
144 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetServiceReverseProxy.";
145 }
146 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetServiceReverseProxy_0100";
147 }
148
149 /**
150 * @tc.number: SUB_backup_sa_session_getscenario_0100
151 * @tc.name: SUB_backup_sa_session_getscenario_0100
152 * @tc.desc: 测试 GetScenario 接口
153 * @tc.size: MEDIUM
154 * @tc.type: FUNC
155 * @tc.level Level 1
156 * @tc.require: I6F3GV
157 */
158 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_getscenario_0100, testing::ext::TestSize.Level1)
159 {
160 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_getscenario_0100";
161 try {
162 IServiceReverse::Scenario scenario = sessionManagerPtr_->GetScenario();
163 EXPECT_EQ(scenario, IServiceReverse::Scenario::RESTORE);
164 } catch (...) {
165 EXPECT_TRUE(false);
166 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by getscenario.";
167 }
168 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_getscenario_0100";
169 }
170
171 /**
172 * @tc.number: SUB_backup_sa_session_onbunlefileready_0100
173 * @tc.name: SUB_backup_sa_session_onbunlefileready_0100
174 * @tc.desc: 测试 OnBunleFileReady 接口 restroe流程
175 * @tc.size: MEDIUM
176 * @tc.type: FUNC
177 * @tc.level Level 1
178 * @tc.require: I6F3GV
179 */
180 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_onbunlefileready_0100, testing::ext::TestSize.Level1)
181 {
182 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_onbunlefileready_0100";
183 try {
184 bool condition = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME);
185 EXPECT_TRUE(condition);
186 } catch (...) {
187 EXPECT_TRUE(false);
188 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by onbunlefileready.";
189 }
190 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_onbunlefileready_0100";
191 }
192
193 /**
194 * @tc.number: SUB_backup_sa_session_GetExtFileNameRequest_0100
195 * @tc.name: SUB_backup_sa_session_GetExtFileNameRequest_0100
196 * @tc.desc: 测试 GetExtFileNameRequest 获取暂存真实文件请求
197 * @tc.size: MEDIUM
198 * @tc.type: FUNC
199 * @tc.level Level 1
200 * @tc.require: I6F3GV
201 */
202 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetExtFileNameRequest_0100, testing::ext::TestSize.Level1)
203 {
204 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetExtFileNameRequest_0100";
205 try {
206 sessionManagerPtr_->SetExtFileNameRequest(BUNDLE_NAME, FILE_NAME);
207 auto fileNameVec = sessionManagerPtr_->GetExtFileNameRequest(BUNDLE_NAME);
208 for (auto &fileName : fileNameVec) {
209 EXPECT_EQ(fileName, FILE_NAME);
210 }
211 } catch (...) {
212 EXPECT_TRUE(false);
213 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetExtFileNameRequest.";
214 }
215 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetExtFileNameRequest_0100";
216 }
217
218 /**
219 * @tc.number: SUB_backup_sa_session_GetExtConnection_0100
220 * @tc.name: SUB_backup_sa_session_GetExtConnection_0100
221 * @tc.desc: 测试 GetExtConnection 接口
222 * @tc.size: MEDIUM
223 * @tc.type: FUNC
224 * @tc.level Level 1
225 * @tc.require: I6F3GV
226 */
227 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetExtConnection_0100, testing::ext::TestSize.Level1)
228 {
229 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetExtConnection_0100";
230 try {
231 auto backupCon = sessionManagerPtr_->GetExtConnection(BUNDLE_NAME);
232 EXPECT_NE(backupCon, nullptr);
233 sptr<BackupExtExtensionMock> mock = sptr(new BackupExtExtensionMock());
234 backupCon->OnAbilityConnectDone({}, mock->AsObject(), 0);
235 backupCon->OnAbilityDisconnectDone({}, 0);
236 } catch (...) {
237 EXPECT_TRUE(false);
238 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetExtConnection.";
239 }
240 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetExtConnection_0100";
241 }
242
243 /**
244 * @tc.number: SUB_backup_sa_session_DumpInfo_0100
245 * @tc.name: SUB_backup_sa_session_DumpInfo_0100
246 * @tc.desc: 测试 DumpInfo 接口
247 * @tc.size: MEDIUM
248 * @tc.type: FUNC
249 * @tc.level Level 1
250 * @tc.require: I6F3GV
251 */
252 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_DumpInfo_0100, testing::ext::TestSize.Level1)
253 {
254 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_DumpInfo_0100";
255 try {
256 TestManager tm("SvcSessionManagerTest_GetFd_0100");
257 string filePath = tm.GetRootDirCurTest().append(FILE_NAME);
258 UniqueFd fd(open(filePath.data(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR));
259 sessionManagerPtr_->DumpInfo(fd, {});
260 } catch (...) {
261 EXPECT_TRUE(false);
262 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by DumpInfo.";
263 }
264 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_DumpInfo_0100";
265 }
266
267 /**
268 * @tc.number: SUB_backup_sa_session_GetSchedBundleName_0100
269 * @tc.name: SUB_backup_sa_session_GetSchedBundleName_0100
270 * @tc.desc: 测试 GetSchedBundleName 调度器获取所需要的调度信息
271 * @tc.size: MEDIUM
272 * @tc.type: FUNC
273 * @tc.level Level 1
274 * @tc.require: I6F3GV
275 */
276 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetSchedBundleName_0100, testing::ext::TestSize.Level1)
277 {
278 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetSchedBundleName_0100";
279 try {
280 string bundleName;
281 bool condition = sessionManagerPtr_->GetSchedBundleName(bundleName);
282 EXPECT_EQ(bundleName, BUNDLE_NAME);
283 EXPECT_TRUE(condition);
284 GTEST_LOG_(INFO) << "SvcSessionManagerTest-GetSchedBundleName Branches";
285 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::START);
286 condition = sessionManagerPtr_->GetSchedBundleName(bundleName);
287 EXPECT_FALSE(condition);
288 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::START);
289 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::START);
290 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::START);
291 condition = sessionManagerPtr_->GetSchedBundleName(bundleName);
292 EXPECT_FALSE(condition);
293 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::WAIT);
294 } catch (...) {
295 EXPECT_TRUE(false);
296 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetSchedBundleName.";
297 }
298 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetSchedBundleName_0100";
299 }
300
301 /**
302 * @tc.number: SUB_backup_sa_session_GetServiceSchedAction_0100
303 * @tc.name: SUB_backup_sa_session_GetServiceSchedAction_0100
304 * @tc.desc: 测试 GetServiceSchedAction 获取状态
305 * @tc.size: MEDIUM
306 * @tc.type: FUNC
307 * @tc.level Level 1
308 * @tc.require: I6F3GV
309 */
310 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetServiceSchedAction_0100, testing::ext::TestSize.Level1)
311 {
312 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetServiceSchedAction_0100";
313 try {
314 auto action = sessionManagerPtr_->GetServiceSchedAction(BUNDLE_NAME);
315 EXPECT_EQ(action, BConstants::ServiceSchedAction::WAIT);
316
317 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::START);
318 action = sessionManagerPtr_->GetServiceSchedAction(BUNDLE_NAME);
319 EXPECT_EQ(action, BConstants::ServiceSchedAction::START);
320 GTEST_LOG_(INFO) << "SvcSessionManagerTest-SetServiceSchedAction Branches";
321 sessionManagerPtr_->SetServiceSchedAction(BUNDLE_NAME, BConstants::ServiceSchedAction::FINISH);
322 } catch (...) {
323 EXPECT_TRUE(false);
324 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetServiceSchedAction.";
325 }
326 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetServiceSchedAction_0100";
327 }
328
329 /**
330 * @tc.number: SUB_backup_sa_session_GetBackupExtName_0100
331 * @tc.name: SUB_backup_sa_session_GetBackupExtName_0100
332 * @tc.desc: 测试 GetBackupExtName 接口
333 * @tc.size: MEDIUM
334 * @tc.type: FUNC
335 * @tc.level Level 1
336 * @tc.require: I6F3GV
337 */
338 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetBackupExtName_0100, testing::ext::TestSize.Level1)
339 {
340 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetBackupExtName_0100";
341 try {
342 string extName = sessionManagerPtr_->GetBackupExtName(BUNDLE_NAME);
343 EXPECT_EQ(extName, BUNDLE_NAME);
344 } catch (...) {
345 EXPECT_TRUE(false);
346 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetBackupExtName.";
347 }
348 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetBackupExtName_0100";
349 }
350
351 /**
352 * @tc.number: SUB_backup_sa_session_GetInstallState_0100
353 * @tc.name: SUB_backup_sa_session_GetInstallState_0100
354 * @tc.desc: 测试 GetInstallState 接口
355 * @tc.size: MEDIUM
356 * @tc.type: FUNC
357 * @tc.level Level 1
358 * @tc.require: I6VA38
359 */
360 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetInstallState_0100, testing::ext::TestSize.Level1)
361 {
362 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetInstallState_0100";
363 try {
364 sessionManagerPtr_->SetInstallState(BUNDLE_NAME, "OK");
365 auto ret = sessionManagerPtr_->GetInstallState(BUNDLE_NAME);
366 EXPECT_EQ(ret, "OK");
367 } catch (...) {
368 EXPECT_TRUE(false);
369 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetInstallState.";
370 }
371 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetInstallState_0100";
372 }
373
374 /**
375 * @tc.number: SUB_backup_sa_session_GetNeedToInstall_0100
376 * @tc.name: SUB_backup_sa_session_GetNeedToInstall_0100
377 * @tc.desc: 测试 GetNeedToInstall 接口
378 * @tc.size: MEDIUM
379 * @tc.type: FUNC
380 * @tc.level Level 1
381 * @tc.require: I6VA38
382 */
383 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_GetNeedToInstall_0100, testing::ext::TestSize.Level1)
384 {
385 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_GetNeedToInstall_0100";
386 try {
387 sessionManagerPtr_->SetNeedToInstall(BUNDLE_NAME, true);
388 auto ret = sessionManagerPtr_->GetNeedToInstall(BUNDLE_NAME);
389 EXPECT_EQ(ret, true);
390 } catch (...) {
391 EXPECT_TRUE(false);
392 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by GetNeedToInstall.";
393 }
394 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_GetNeedToInstall_0100";
395 }
396
397 /**
398 * @tc.number: SUB_backup_sa_session_NeedToUnloadService_0100
399 * @tc.name: SUB_backup_sa_session_NeedToUnloadService_0100
400 * @tc.desc: 测试 NeedToUnloadService 接口
401 * @tc.size: MEDIUM
402 * @tc.type: FUNC
403 * @tc.level Level 1
404 * @tc.require: I6VA38
405 */
406 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_NeedToUnloadService_0100, testing::ext::TestSize.Level1)
407 {
408 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_NeedToUnloadService_0100";
409 try {
410 auto ret = sessionManagerPtr_->NeedToUnloadService();
411 EXPECT_EQ(ret, false);
412 } catch (...) {
413 EXPECT_TRUE(false);
414 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by NeedToUnloadService.";
415 }
416 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_NeedToUnloadService_0100";
417 }
418
419 /**
420 * @tc.number: SUB_backup_sa_session_removeextinfo_0100
421 * @tc.name: SUB_backup_sa_session_removeextinfo_0100
422 * @tc.desc: 测试 RemoveExtInfo 移除bundleName是否是有效的
423 * @tc.size: MEDIUM
424 * @tc.type: FUNC
425 * @tc.level Level 1
426 * @tc.require: I6F3GV
427 */
428 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_removeextinfo_0100, testing::ext::TestSize.Level1)
429 {
430 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_removeextinfo_0100";
431 try {
432 sessionManagerPtr_->RemoveExtInfo(BUNDLE_NAME);
433 GTEST_LOG_(INFO) << "SvcSessionManagerTest-RemoveExtInfo Branches";
434 sessionManagerPtr_->RemoveExtInfo(BUNDLE_NAME);
435 } catch (...) {
436 EXPECT_TRUE(false);
437 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by RemoveExtInfo.";
438 }
439 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_removeextinfo_0100";
440 }
441
442 /**
443 * @tc.number: SUB_backup_sa_session_Deactive_0100
444 * @tc.name: SUB_backup_sa_session_Deactive_0100
445 * @tc.desc: 测试 Deactive
446 * @tc.size: MEDIUM
447 * @tc.type: FUNC
448 * @tc.level Level 1
449 * @tc.require: I6F3GV
450 */
451 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_Deactive_0100, testing::ext::TestSize.Level1)
452 {
453 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_Deactive_0100";
454 try {
455 sessionManagerPtr_->Deactive(nullptr, true);
456 GTEST_LOG_(INFO) << "SvcSessionManagerTest-Deactive Branches One";
457 sessionManagerPtr_->Deactive(nullptr, true);
458 GTEST_LOG_(INFO) << "SvcSessionManagerTest-Deactive Branches Two";
459 Init(IServiceReverse::Scenario::BACKUP);
460 sessionManagerPtr_->Deactive(remote_, false);
461 GTEST_LOG_(INFO) << "SvcSessionManagerTest-Deactive Branches Three";
462 Init(IServiceReverse::Scenario::BACKUP);
463 sessionManagerPtr_->Deactive(remote_, true);
464 } catch (...) {
465 EXPECT_TRUE(false);
466 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by Deactive.";
467 }
468 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_Deactive_0100";
469 }
470
471 /**
472 * @tc.number: SUB_backup_sa_session_OnBunleExtManageInfo_0100
473 * @tc.name: SUB_backup_sa_session_OnBunleExtManageInfo_0100
474 * @tc.desc: 测试 OnBunleExtManageInfo
475 * @tc.size: MEDIUM
476 * @tc.type: FUNC
477 * @tc.level Level 1
478 * @tc.require: I6F3GV
479 */
480 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_OnBunleExtManageInfo_0100, testing::ext::TestSize.Level1)
481 {
482 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_OnBunleExtManageInfo_0100";
483 try {
484 Init(IServiceReverse::Scenario::BACKUP);
485 GTEST_LOG_(INFO) << "SvcSessionManagerTest-OnBunleFileReady Branches";
486 auto ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, FILE_NAME);
487 EXPECT_FALSE(ret);
488 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, FILE_NAME);
489 EXPECT_FALSE(ret);
490 GTEST_LOG_(INFO) << "SvcSessionManagerTest-OnBunleFileReady Branches End";
491 TestManager tm("SvcSessionManagerTest_GetFd_0100");
492 string filePath = tm.GetRootDirCurTest().append(MANAGE_JSON);
493 SaveStringToFile(filePath, R"({"fileName" : "1.tar"})");
494 UniqueFd fd(open(filePath.data(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR));
495 sessionManagerPtr_->OnBunleExtManageInfo(BUNDLE_NAME, move(fd));
496 GTEST_LOG_(INFO) << "SvcSessionManagerTest-OnBunleFileReady Branches";
497 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, FILE_NAME);
498 EXPECT_FALSE(ret);
499 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME);
500 EXPECT_FALSE(ret);
501 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, MANAGE_JSON);
502 EXPECT_FALSE(ret);
503 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, FILE_NAME);
504 EXPECT_TRUE(ret);
505 GTEST_LOG_(INFO) << "SvcSessionManagerTest-OnBunleFileReady Branches End";
506 } catch (...) {
507 EXPECT_TRUE(false);
508 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by OnBunleExtManageInfo.";
509 }
510 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_OnBunleExtManageInfo_0100";
511 }
512
513 /**
514 * @tc.number: SUB_backup_sa_session_OnBunleFileReady_0200
515 * @tc.name: SUB_backup_sa_session_OnBunleFileReady_0200
516 * @tc.desc: 测试 OnBunleFileReady
517 * @tc.size: MEDIUM
518 * @tc.type: FUNC
519 * @tc.level Level 1
520 * @tc.require: I6F3GV
521 */
522 HWTEST_F(SvcSessionManagerTest, SUB_backup_sa_session_OnBunleFileReady_0200, testing::ext::TestSize.Level1)
523 {
524 GTEST_LOG_(INFO) << "SvcSessionManagerTest-begin SUB_backup_sa_session_OnBunleFileReady_0200";
525 try {
526 sessionManagerPtr_->Deactive(nullptr, true);
527 Init(IServiceReverse::Scenario::BACKUP);
528 auto ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, MANAGE_JSON);
529 EXPECT_FALSE(ret);
530 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, FILE_NAME);
531 EXPECT_FALSE(ret);
532 ret = sessionManagerPtr_->OnBunleFileReady(BUNDLE_NAME, FILE_NAME);
533 EXPECT_FALSE(ret);
534 } catch (...) {
535 EXPECT_TRUE(false);
536 GTEST_LOG_(INFO) << "SvcSessionManagerTest-an exception occurred by OnBunleFileReady.";
537 }
538 GTEST_LOG_(INFO) << "SvcSessionManagerTest-end SUB_backup_sa_session_OnBunleFileReady_0200";
539 }
540 } // namespace OHOS::FileManagement::Backup