• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 #include <gmock/gmock.h>
16 #include <gtest/gtest.h>
17 
18 #include "fuse_manager.cpp"
19 
20 #include "data_helper_mock.h"
21 #include "data_sync_const.h"
22 #include "dfs_error.h"
23 #include "setting_data_helper.h"
24 
25 namespace OHOS::FileManagement::CloudFile {
26 using namespace std;
27 using namespace testing;
28 using namespace testing::ext;
29 using namespace OHOS::DataShare;
30 
31 class SettingDataHelperTest : public testing::Test {
32 public:
33     static void SetUpTestCase(void);
34     static void TearDownTestCase(void);
35     void SetUp();
36     void TearDown();
37     static inline shared_ptr<DataHelperMock> mock_ = nullptr;
38 };
39 
SetUpTestCase(void)40 void SettingDataHelperTest::SetUpTestCase(void)
41 {
42     GTEST_LOG_(INFO) << "SetUpTestCase";
43 }
44 
TearDownTestCase(void)45 void SettingDataHelperTest::TearDownTestCase(void)
46 {
47     GTEST_LOG_(INFO) << "TearDownTestCase";
48 }
49 
SetUp(void)50 void SettingDataHelperTest::SetUp(void)
51 {
52     GTEST_LOG_(INFO) << "SetUp";
53     mock_ = make_shared<DataHelperMock>();
54     DataHelperMock::ins = mock_;
55 }
56 
TearDown(void)57 void SettingDataHelperTest::TearDown(void)
58 {
59     GTEST_LOG_(INFO) << "TearDown";
60     DataHelperMock::ins = nullptr;
61     mock_ = nullptr;
62 }
63 
64 /**
65  * @tc.name: GetInstanceTest
66  * @tc.desc: Verify the GetInstance function
67  * @tc.type: FUNC
68  */
69 HWTEST_F(SettingDataHelperTest, GetInstanceTest, TestSize.Level1)
70 {
71     GTEST_LOG_(INFO) << "GetInstanceTest start";
72     try {
73         SettingDataHelper::GetInstance();
74         EXPECT_TRUE(true);
75     } catch (...) {
76         EXPECT_TRUE(false);
77         GTEST_LOG_(INFO) << "GetInstanceTest failed";
78     }
79     GTEST_LOG_(INFO) << "GetInstanceTest end";
80 }
81 
82 /**
83  * @tc.name: SetUserDataTest
84  * @tc.desc: Verify the SetUserData function
85  * @tc.type: FUNC
86  */
87 HWTEST_F(SettingDataHelperTest, SetUserDataTest, TestSize.Level1)
88 {
89     GTEST_LOG_(INFO) << "SetUserDataTest start";
90     try {
91         SettingDataHelper::GetInstance().SetUserData(nullptr);
92         EXPECT_EQ(SettingDataHelper::GetInstance().data_, nullptr);
93     } catch (...) {
94         EXPECT_TRUE(false);
95         GTEST_LOG_(INFO) << "SetUserDataTest failed";
96     }
97     GTEST_LOG_(INFO) << "SetUserDataTest end";
98 }
99 
100 
101 /**
102  * @tc.name: IsDataShareReadyTest001
103  * @tc.desc: Verify the IsDataShareReady function
104  * @tc.type: FUNC
105  */
106 HWTEST_F(SettingDataHelperTest, IsDataShareReadyTest001, TestSize.Level1)
107 {
108     GTEST_LOG_(INFO) << "IsDataShareReadyTest001 start";
109     try {
110         SettingDataHelper::GetInstance().isDataShareReady_ = true;
111         bool ret = SettingDataHelper::GetInstance().IsDataShareReady();
112         EXPECT_EQ(ret, true);
113     } catch (...) {
114         EXPECT_TRUE(false);
115         GTEST_LOG_(INFO) << "IsDataShareReadyTest001 failed";
116     }
117     GTEST_LOG_(INFO) << "IsDataShareReadyTest001 end";
118 }
119 
120 /**
121  * @tc.name: IsDataShareReadyTest002
122  * @tc.desc: Verify the IsDataShareReady function
123  * @tc.type: FUNC
124  */
125 HWTEST_F(SettingDataHelperTest, IsDataShareReadyTest002, TestSize.Level1)
126 {
127     GTEST_LOG_(INFO) << "IsDataShareReadyTest002 start";
128     try {
129         EXPECT_CALL(*mock_, Create()).WillOnce(Return(make_pair(DataShare::E_DATA_SHARE_NOT_READY, nullptr)));
130         SettingDataHelper::GetInstance().isDataShareReady_ = false;
131         bool ret = SettingDataHelper::GetInstance().IsDataShareReady();
132         EXPECT_EQ(ret, false);
133     } catch (...) {
134         EXPECT_TRUE(false);
135         GTEST_LOG_(INFO) << "IsDataShareReadyTest002 failed";
136     }
137     GTEST_LOG_(INFO) << "IsDataShareReadyTest002 end";
138 }
139 
140 /**
141  * @tc.name: IsDataShareReadyTest003
142  * @tc.desc: Verify the IsDataShareReady function
143  * @tc.type: FUNC
144  */
145 HWTEST_F(SettingDataHelperTest, IsDataShareReadyTest003, TestSize.Level1)
146 {
147     GTEST_LOG_(INFO) << "IsDataShareReadyTest003 start";
148     try {
149         EXPECT_CALL(*mock_, Create()).WillOnce(Return(make_pair(DataShare::E_OK, nullptr)));
150         SettingDataHelper::GetInstance().isDataShareReady_ = false;
151         bool ret = SettingDataHelper::GetInstance().IsDataShareReady();
152         EXPECT_EQ(ret, true);
153     } catch (...) {
154         EXPECT_TRUE(false);
155         GTEST_LOG_(INFO) << "IsDataShareReadyTest003 failed";
156     }
157     GTEST_LOG_(INFO) << "IsDataShareReadyTest003 end";
158 }
159 
160 /**
161  * @tc.name: IsDataShareReadyTest004
162  * @tc.desc: Verify the IsDataShareReady function
163  * @tc.type: FUNC
164  */
165 HWTEST_F(SettingDataHelperTest, IsDataShareReadyTest004, TestSize.Level1)
166 {
167     GTEST_LOG_(INFO) << "IsDataShareReadyTest004 start";
168     try {
169         shared_ptr<DataShareHelperMock> helper =  std::make_shared<DataShareHelperMock>();;
170         EXPECT_CALL(*helper, Release()).WillOnce(Return(true));
171         EXPECT_CALL(*mock_, Create()).WillOnce(Return(make_pair(DataShare::E_OK, helper)));
172         SettingDataHelper::GetInstance().isDataShareReady_ = false;
173         bool ret = SettingDataHelper::GetInstance().IsDataShareReady();
174         EXPECT_EQ(ret, true);
175     } catch (...) {
176         EXPECT_TRUE(false);
177         GTEST_LOG_(INFO) << "IsDataShareReadyTest004 failed";
178     }
179     GTEST_LOG_(INFO) << "IsDataShareReadyTest004 end";
180 }
181 
182 /**
183  * @tc.name: IsDataShareReadyTest005
184  * @tc.desc: Verify the IsDataShareReady function
185  * @tc.type: FUNC
186  */
187 HWTEST_F(SettingDataHelperTest, IsDataShareReadyTest005, TestSize.Level1)
188 {
189     GTEST_LOG_(INFO) << "IsDataShareReadyTest005 start";
190     try {
191         EXPECT_CALL(*mock_, Create()).WillOnce(Return(make_pair(DataShare::E_ERROR, nullptr)));
192         SettingDataHelper::GetInstance().isDataShareReady_ = false;
193         bool ret = SettingDataHelper::GetInstance().IsDataShareReady();
194         EXPECT_EQ(ret, true);
195     } catch (...) {
196         EXPECT_TRUE(false);
197         GTEST_LOG_(INFO) << "IsDataShareReadyTest005 failed";
198     }
199     GTEST_LOG_(INFO) << "IsDataShareReadyTest005 end";
200 }
201 
202 /**
203  * @tc.name: GetSwitchStatus001
204  * @tc.desc: Verify the GetSwitchStatus function
205  * @tc.type: FUNC
206  */
207 HWTEST_F(SettingDataHelperTest, GetSwitchStatus001, TestSize.Level1)
208 {
209     GTEST_LOG_(INFO) << "GetSwitchStatus001 start";
210     try {
211         EXPECT_CALL(*mock_, GetSwitchStatus()).WillOnce(Return(AI_FAMILY));
212         string bundle = SettingDataHelper::GetInstance().GetActiveBundle();
213         EXPECT_EQ(bundle, HDC_BUNDLE_NAME);
214     } catch (...) {
215         EXPECT_TRUE(false);
216         GTEST_LOG_(INFO) << "GetSwitchStatus001 failed";
217     }
218     GTEST_LOG_(INFO) << "GetSwitchStatus001 end";
219 }
220 
221 /**
222  * @tc.name: GetSwitchStatus002
223  * @tc.desc: Verify the GetSwitchStatus function
224  * @tc.type: FUNC
225  */
226 HWTEST_F(SettingDataHelperTest, GetSwitchStatus002, TestSize.Level1)
227 {
228     GTEST_LOG_(INFO) << "GetSwitchStatus002 start";
229     try {
230         EXPECT_CALL(*mock_, GetSwitchStatus()).WillOnce(Return(CLOUD_SPACE));
231         string bundle = SettingDataHelper::GetInstance().GetActiveBundle();
232         EXPECT_EQ(bundle, GALLERY_BUNDLE_NAME);
233     } catch (...) {
234         EXPECT_TRUE(false);
235         GTEST_LOG_(INFO) << "GetSwitchStatus002 failed";
236     }
237     GTEST_LOG_(INFO) << "GetSwitchStatus002 end";
238 }
239 
240 /**
241  * @tc.name: GetSwitchStatus003
242  * @tc.desc: Verify the GetSwitchStatus function
243  * @tc.type: FUNC
244  */
245 HWTEST_F(SettingDataHelperTest, GetSwitchStatus003, TestSize.Level1)
246 {
247     GTEST_LOG_(INFO) << "GetSwitchStatus003 start";
248     try {
249         EXPECT_CALL(*mock_, GetSwitchStatus()).WillOnce(Return(SwitchStatus::NONE));
250         string bundle = SettingDataHelper::GetInstance().GetActiveBundle();
251         EXPECT_EQ(bundle, GALLERY_BUNDLE_NAME);
252     } catch (...) {
253         EXPECT_TRUE(false);
254         GTEST_LOG_(INFO) << "GetSwitchStatus003 failed";
255     }
256     GTEST_LOG_(INFO) << "GetSwitchStatus003 end";
257 }
258 
259 /**
260  * @tc.name: InitActiveBundle001
261  * @tc.desc: Verify the InitActiveBundle function
262  * @tc.type: FUNC
263  */
264 HWTEST_F(SettingDataHelperTest, InitActiveBundle001, TestSize.Level1)
265 {
266     GTEST_LOG_(INFO) << "InitActiveBundle001 start";
267     try {
268         SettingDataHelper::GetInstance().isBundleInited_ = true;
269         bool ret = SettingDataHelper::GetInstance().InitActiveBundle();
270         EXPECT_EQ(ret, true);
271     } catch (...) {
272         EXPECT_TRUE(false);
273         GTEST_LOG_(INFO) << "InitActiveBundle001 failed";
274     }
275     GTEST_LOG_(INFO) << "InitActiveBundle001 end";
276 }
277 
278 /**
279  * @tc.name: InitActiveBundle002
280  * @tc.desc: Verify the InitActiveBundle function
281  * @tc.type: FUNC
282  */
283 HWTEST_F(SettingDataHelperTest, InitActiveBundle002, TestSize.Level1)
284 {
285     GTEST_LOG_(INFO) << "InitActiveBundle002 start";
286     try {
287         SettingDataHelper::GetInstance().isBundleInited_ = false;
288         SettingDataHelper::GetInstance().isDataShareReady_ = false;
289 
290         EXPECT_CALL(*mock_, Create()).WillOnce(Return(make_pair(DataShare::E_DATA_SHARE_NOT_READY, nullptr)));
291 
292         bool ret = SettingDataHelper::GetInstance().InitActiveBundle();
293         EXPECT_EQ(ret, false);
294     } catch (...) {
295         EXPECT_TRUE(false);
296         GTEST_LOG_(INFO) << "InitActiveBundle002 failed";
297     }
298     GTEST_LOG_(INFO) << "InitActiveBundle002 end";
299 }
300 
301 /**
302  * @tc.name: InitActiveBundle003
303  * @tc.desc: Verify the InitActiveBundle function
304  * @tc.type: FUNC
305  */
306 HWTEST_F(SettingDataHelperTest, InitActiveBundle003, TestSize.Level1)
307 {
308     GTEST_LOG_(INFO) << "InitActiveBundle003 start";
309     try {
310         SettingDataHelper::GetInstance().isBundleInited_ = false;
311         SettingDataHelper::GetInstance().isDataShareReady_ = false;
312 
313         shared_ptr<DataShareHelperMock> helper =  std::make_shared<DataShareHelperMock>();
314         EXPECT_CALL(*helper, Release()).WillOnce(Return(true));
315         EXPECT_CALL(*mock_, Create()).WillOnce(Return(make_pair(DataShare::E_OK, helper)));
316         EXPECT_CALL(*mock_, GetSwitchStatus()).WillOnce(Return(CLOUD_SPACE));
317 
318         bool ret = SettingDataHelper::GetInstance().InitActiveBundle();
319         EXPECT_EQ(ret, true);
320     } catch (...) {
321         EXPECT_TRUE(false);
322         GTEST_LOG_(INFO) << "InitActiveBundle003 failed";
323     }
324     GTEST_LOG_(INFO) << "InitActiveBundle003 end";
325 }
326 
327 /**
328  * @tc.name: UpdateActiveBundle001
329  * @tc.desc: Verify the UpdateActiveBundle function
330  * @tc.type: FUNC
331  */
332 HWTEST_F(SettingDataHelperTest, UpdateActiveBundle001, TestSize.Level1)
333 {
334     GTEST_LOG_(INFO) << "UpdateActiveBundle001 start";
335     try {
336         EXPECT_CALL(*mock_, GetSwitchStatus()).WillOnce(Return(CLOUD_SPACE));
337 
338         SettingDataHelper::GetInstance().UpdateActiveBundle();
339     } catch (...) {
340         EXPECT_TRUE(false);
341         GTEST_LOG_(INFO) << "UpdateActiveBundle001 failed";
342     }
343     GTEST_LOG_(INFO) << "UpdateActiveBundle001 end";
344 }
345 
346 /**
347  * @tc.name: RegisterObserver001
348  * @tc.desc: Verify the RegisterObserver function
349  * @tc.type: FUNC
350  */
351 HWTEST_F(SettingDataHelperTest, RegisterObserver001, TestSize.Level1)
352 {
353     GTEST_LOG_(INFO) << "RegisterObserver001 start";
354     try {
355         SettingDataHelper::GetInstance().RegisterObserver();
356     } catch (...) {
357         EXPECT_TRUE(false);
358         GTEST_LOG_(INFO) << "RegisterObserver001 failed";
359     }
360     GTEST_LOG_(INFO) << "RegisterObserver001 end";
361 }
362 
363 /**
364  * @tc.name: SetActiveBundle001
365  * @tc.desc: Verify the SetActiveBundle function
366  * @tc.type: FUNC
367  */
368 HWTEST_F(SettingDataHelperTest, SetActiveBundle001, TestSize.Level1)
369 {
370     GTEST_LOG_(INFO) << "SetActiveBundle001 start";
371     try {
372         SettingDataHelper::GetInstance().data_ = nullptr;
373         SettingDataHelper::GetInstance().SetActiveBundle(GALLERY_BUNDLE_NAME);
374     } catch (...) {
375         EXPECT_TRUE(false);
376         GTEST_LOG_(INFO) << "SetActiveBundle001 failed";
377     }
378     GTEST_LOG_(INFO) << "SetActiveBundle001 end";
379 }
380 
381 /**
382  * @tc.name: SetActiveBundle002
383  * @tc.desc: Verify the SetActiveBundle function
384  * @tc.type: FUNC
385  */
386 HWTEST_F(SettingDataHelperTest, SetActiveBundle002, TestSize.Level1)
387 {
388     GTEST_LOG_(INFO) << "SetActiveBundle002 start";
389     try {
390         struct FuseData data;
391         data.activeBundle = GALLERY_BUNDLE_NAME;
392         SettingDataHelper::GetInstance().data_ = &data;
393         SettingDataHelper::GetInstance().SetActiveBundle(HDC_BUNDLE_NAME);
394     } catch (...) {
395         EXPECT_TRUE(false);
396         GTEST_LOG_(INFO) << "SetActiveBundle002 failed";
397     }
398     GTEST_LOG_(INFO) << "SetActiveBundle002 end";
399 }
400 
401 /**
402  * @tc.name: SetActiveBundle003
403  * @tc.desc: Verify the SetActiveBundle function
404  * @tc.type: FUNC
405  */
406 HWTEST_F(SettingDataHelperTest, SetActiveBundle003, TestSize.Level1)
407 {
408     GTEST_LOG_(INFO) << "SetActiveBundle003 start";
409     try {
410         struct FuseData data;
411         data.activeBundle = GALLERY_BUNDLE_NAME;
412         SettingDataHelper::GetInstance().data_ = &data;
413         SettingDataHelper::GetInstance().SetActiveBundle(GALLERY_BUNDLE_NAME);
414     } catch (...) {
415         EXPECT_TRUE(false);
416         GTEST_LOG_(INFO) << "SetActiveBundle003 failed";
417     }
418     GTEST_LOG_(INFO) << "SetActiveBundle003 end";
419 }
420 } // namespace OHOS::FileManagement::CloudFile