• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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