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