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 #include "network/softbus/softbus_handler_asset.h"
16
17 #include <fcntl.h>
18 #include <gmock/gmock.h>
19 #include "gtest/gtest.h"
20 #include <memory>
21 #include <string>
22
23 #include "device_manager_impl_mock.h"
24 #include "dfs_error.h"
25 #include "network/softbus/softbus_session_pool.h"
26 #include "socket_mock.h"
27
28 namespace OHOS {
29 namespace Storage {
30 namespace DistributedFile {
31 namespace Test {
32 using namespace OHOS::FileManagement;
33 using namespace std;
34 using namespace testing;
35 using namespace testing::ext;
36
37 DistributedHardware::DmDeviceInfo deviceInfo = {
38 .deviceId = "testdevid",
39 .deviceName = "testdevname",
40 .deviceTypeId = 1,
41 .networkId = "testNetWork",
42 .authForm = DmAuthForm::ACROSS_ACCOUNT,
43 };
44
45 class SoftBusHandlerAssetTest : public testing::Test {
46 public:
47 static void SetUpTestCase(void);
48 static void TearDownTestCase(void);
49 void SetUp();
50 void TearDown();
51 static inline shared_ptr<SocketMock> socketMock_ = nullptr;
52 static inline shared_ptr<DeviceManagerImplMock> deviceManagerImplMock_ = nullptr;
53 };
54
SetUpTestCase(void)55 void SoftBusHandlerAssetTest::SetUpTestCase(void)
56 {
57 GTEST_LOG_(INFO) << "SetUpTestCase";
58 socketMock_ = make_shared<SocketMock>();
59 SocketMock::dfsSocket = socketMock_;
60 deviceManagerImplMock_ = make_shared<DeviceManagerImplMock>();
61 DeviceManagerImplMock::dfsDeviceManagerImpl = deviceManagerImplMock_;
62 }
63
TearDownTestCase(void)64 void SoftBusHandlerAssetTest::TearDownTestCase(void)
65 {
66 GTEST_LOG_(INFO) << "TearDownTestCase";
67 SocketMock::dfsSocket = nullptr;
68 socketMock_ = nullptr;
69 DeviceManagerImplMock::dfsDeviceManagerImpl = nullptr;
70 deviceManagerImplMock_ = nullptr;
71 }
72
SetUp(void)73 void SoftBusHandlerAssetTest::SetUp(void)
74 {
75 GTEST_LOG_(INFO) << "SetUp";
76 }
77
TearDown(void)78 void SoftBusHandlerAssetTest::TearDown(void)
79 {
80 GTEST_LOG_(INFO) << "TearDown";
81 }
82
83 /**
84 * @tc.name: SoftBusHandlerAssetTest_CreateAssetLocalSessionServer_0100
85 * @tc.desc: Verify the CreateAssetLocalSessionServe function.
86 * @tc.type: FUNC
87 * @tc.require: I9JXPR
88 */
89 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_CreateAssetLocalSessionServer_0100, TestSize.Level1)
90 {
91 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_CreateAssetLocalSessionServer_0100 start";
92 std::string sessionName = SoftBusHandlerAsset::ASSET_LOCAL_SESSION_NAME;
93 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
94 softBusHandlerAsset.serverIdMap_.clear();
95 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(-1));
96 softBusHandlerAsset.CreateAssetLocalSessionServer();
97 EXPECT_EQ(softBusHandlerAsset.serverIdMap_.size(), 0);
98
99 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(0));
100 EXPECT_CALL(*socketMock_, Listen(_, _, _, _)).WillOnce(Return(-1));
101 softBusHandlerAsset.CreateAssetLocalSessionServer();
102 EXPECT_EQ(softBusHandlerAsset.serverIdMap_.size(), 0);
103
104 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(0));
105 EXPECT_CALL(*socketMock_, Listen(_, _, _, _)).WillOnce(Return(0));
106 softBusHandlerAsset.CreateAssetLocalSessionServer();
107 if (softBusHandlerAsset.serverIdMap_.find(sessionName) != softBusHandlerAsset.serverIdMap_.end()) {
108 EXPECT_TRUE(true);
109 } else {
110 EXPECT_TRUE(false);
111 }
112 SoftBusSessionPool::SessionInfo sessionInfo;
113 bool flag = SoftBusSessionPool::GetInstance().GetSessionInfo(sessionName, sessionInfo);
114 EXPECT_EQ(flag, true);
115 softBusHandlerAsset.CreateAssetLocalSessionServer();
116 EXPECT_EQ(softBusHandlerAsset.serverIdMap_.size(), 1);
117
118 softBusHandlerAsset.serverIdMap_.clear();
119 SoftBusSessionPool::GetInstance().DeleteSessionInfo(sessionName);
120 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_CreateAssetLocalSessionServer_0100 end";
121 }
122
123 /**
124 * @tc.name: SoftBusHandlerAssetTest_DeleteAssetLocalSessionServer_0100
125 * @tc.desc: Verify the DeleteAssetLocalSessionServer function.
126 * @tc.type: FUNC
127 * @tc.require: I9JXPR
128 */
129 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_DeleteAssetLocalSessionServer_0100, TestSize.Level1)
130 {
131 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_DeleteAssetLocalSessionServer_0100 start";
132 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
133 softBusHandlerAsset.DeleteAssetLocalSessionServer();
134 std::string sessionName = SoftBusHandlerAsset::ASSET_LOCAL_SESSION_NAME;
135 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(0));
136 EXPECT_CALL(*socketMock_, Listen(_, _, _, _)).WillOnce(Return(0));
137 softBusHandlerAsset.CreateAssetLocalSessionServer();
138 if (softBusHandlerAsset.serverIdMap_.find(sessionName) != softBusHandlerAsset.serverIdMap_.end()) {
139 EXPECT_TRUE(true);
140 } else {
141 EXPECT_TRUE(false);
142 }
143
144 softBusHandlerAsset.serverIdMap_.insert(make_pair("test", 0));
145 SoftBusSessionPool::SessionInfo sessionInfo;
146 bool flag = SoftBusSessionPool::GetInstance().GetSessionInfo(sessionName, sessionInfo);
147 EXPECT_EQ(flag, true);
148 softBusHandlerAsset.DeleteAssetLocalSessionServer();
149 EXPECT_EQ(softBusHandlerAsset.serverIdMap_.size(), 1);
150 flag = SoftBusSessionPool::GetInstance().GetSessionInfo(sessionName, sessionInfo);
151 EXPECT_EQ(flag, false);
152
153 softBusHandlerAsset.DeleteAssetLocalSessionServer();
154 EXPECT_EQ(softBusHandlerAsset.serverIdMap_.size(), 1);
155 softBusHandlerAsset.serverIdMap_.clear();
156 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_DeleteAssetLocalSessionServer_0100 end";
157 }
158
159 /**
160 * @tc.name: SoftBusHandlerAssetTest_AssetBind_0100
161 * @tc.desc: Verify the AssetBind function.
162 * @tc.type: FUNC
163 * @tc.require: I9JXPR
164 */
165 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_AssetBind_0100, TestSize.Level1)
166 {
167 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_AssetBind_0100 start";
168 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
169 int32_t socketId = 0;
170 EXPECT_EQ(softBusHandlerAsset.AssetBind("", socketId), E_OPEN_SESSION);
171
172 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillOnce(Return(0));
173 EXPECT_EQ(softBusHandlerAsset.AssetBind("test", socketId), E_OPEN_SESSION);
174
175 std::vector<DmDeviceInfo> deviceList;
176 deviceInfo.authForm = DmAuthForm::IDENTICAL_ACCOUNT;
177 deviceList.push_back(deviceInfo);
178 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
179 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
180 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(-1));
181 EXPECT_EQ(softBusHandlerAsset.AssetBind("testNetWork", socketId), E_OPEN_SESSION);
182
183 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
184 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
185 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(E_OK));
186 EXPECT_CALL(*socketMock_, Bind(_, _, _, _)).WillOnce(Return(-1));
187 EXPECT_EQ(softBusHandlerAsset.AssetBind("testNetWork", socketId), -1);
188
189 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
190 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
191 EXPECT_CALL(*socketMock_, Socket(_)).WillOnce(Return(E_OK));
192 EXPECT_CALL(*socketMock_, Bind(_, _, _, _)).WillOnce(Return(E_OK));
193 EXPECT_EQ(softBusHandlerAsset.AssetBind("testNetWork", socketId), E_OK);
194 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_AssetBind_0100 end";
195 }
196
197 /**
198 * @tc.name: SoftBusHandlerAssetTest_IsSameAccount_0100
199 * @tc.desc: Verify the IsSameAccount function.
200 * @tc.type: FUNC
201 * @tc.require: I9JXPR
202 */
203 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_IsSameAccount_0100, TestSize.Level1)
204 {
205 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_IsSameAccount_0100 start";
206 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
207 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillOnce(Return(0));
208 bool flag = softBusHandlerAsset.IsSameAccount("test");
209 EXPECT_EQ(flag, false);
210
211 std::vector<DmDeviceInfo> deviceList;
212 deviceList.push_back(deviceInfo);
213 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
214 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
215 flag = softBusHandlerAsset.IsSameAccount("test");
216 EXPECT_EQ(flag, false);
217
218 deviceList.clear();
219 deviceInfo.authForm = DmAuthForm::ACROSS_ACCOUNT;
220 deviceList.push_back(deviceInfo);
221 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
222 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
223 flag = softBusHandlerAsset.IsSameAccount("testNetWork");
224 EXPECT_EQ(flag, false);
225
226 deviceList.clear();
227 deviceInfo.authForm = DmAuthForm::IDENTICAL_ACCOUNT;
228 deviceList.push_back(deviceInfo);
229 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
230 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
231 flag = softBusHandlerAsset.IsSameAccount("testNetWork");
232 EXPECT_EQ(flag, true);
233 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_IsSameAccount_0100 end";
234 }
235
236 /**
237 * @tc.name: SoftBusHandlerAssetTest_OnAssetRecvBind_0100
238 * @tc.desc: Verify the OnAssetRecvBind function.
239 * @tc.type: FUNC
240 * @tc.require: I9JXPR
241 */
242 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_OnAssetRecvBind_0100, TestSize.Level1)
243 {
244 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_OnAssetRecvBind_0100 start";
245 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
246 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillOnce(Return(0));
247 softBusHandlerAsset.OnAssetRecvBind(0, "test");
248 auto iter = softBusHandlerAsset.clientInfoMap_.find(0);
249 if (iter == softBusHandlerAsset.clientInfoMap_.end()) {
250 EXPECT_TRUE(true);
251 } else {
252 EXPECT_TRUE(false);
253 }
254 EXPECT_EQ(softBusHandlerAsset.GetClientInfo(0), "");
255
256 std::vector<DmDeviceInfo> deviceList;
257 deviceInfo.authForm = DmAuthForm::IDENTICAL_ACCOUNT;
258 deviceList.push_back(deviceInfo);
259 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
260 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
261 softBusHandlerAsset.OnAssetRecvBind(0, deviceInfo.networkId);
262 EXPECT_EQ(softBusHandlerAsset.GetClientInfo(0), deviceInfo.networkId);
263
264 softBusHandlerAsset.RemoveClientInfo(0);
265 EXPECT_EQ(softBusHandlerAsset.GetClientInfo(0), "");
266 iter = softBusHandlerAsset.clientInfoMap_.find(0);
267 if (iter == softBusHandlerAsset.clientInfoMap_.end()) {
268 EXPECT_TRUE(true);
269 } else {
270 EXPECT_TRUE(false);
271 }
272 softBusHandlerAsset.RemoveClientInfo(0);
273 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_OnAssetRecvBind_0100 end";
274 }
275
276 /**
277 * @tc.name: SoftBusHandlerAssetTest_AddAssetObj_0100
278 * @tc.desc: Verify the OnAssetRecvBind function.
279 * @tc.type: FUNC
280 * @tc.require: I9JXPR
281 */
282 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_AddAssetObj_0100, TestSize.Level1)
283 {
284 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_AddAssetObj_0100 start";
285 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
286 sptr<AssetObj> assetObj (new (std::nothrow) AssetObj());
287 softBusHandlerAsset.AddAssetObj(0, assetObj);
288 softBusHandlerAsset.AddAssetObj(0, assetObj);
289 auto iter = softBusHandlerAsset.assetObjMap_.find(0);
290 if (iter != softBusHandlerAsset.assetObjMap_.end()) {
291 EXPECT_TRUE(true);
292 } else {
293 EXPECT_TRUE(false);
294 }
295
296 EXPECT_EQ(softBusHandlerAsset.GetAssetObj(0), assetObj);
297
298 softBusHandlerAsset.RemoveAssetObj(0);
299 EXPECT_EQ(softBusHandlerAsset.GetAssetObj(0), nullptr);
300 iter = softBusHandlerAsset.assetObjMap_.find(0);
301 if (iter == softBusHandlerAsset.assetObjMap_.end()) {
302 EXPECT_TRUE(true);
303 } else {
304 EXPECT_TRUE(false);
305 }
306
307 softBusHandlerAsset.RemoveAssetObj(0);
308 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_AddAssetObj_0100 end";
309 }
310
311 /**
312 * @tc.name: SoftBusHandlerAssetTest_GetDstFile_0100
313 * @tc.desc: Verify the GetDstFile function.
314 * @tc.type: FUNC
315 * @tc.require: I9JXPR
316 */
317 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_GetDstFile_0100, TestSize.Level1)
318 {
319 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GetDstFile_0100 start";
320 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
321 string file = "test123";
322 auto rlt = softBusHandlerAsset.GetDstFile(file, "demoA", "demoB", "0", true);
323 EXPECT_EQ(rlt, "");
324
325 file = "demoA/test";
326 rlt = softBusHandlerAsset.GetDstFile(file, "demoA", "demoB", "0", true);
327 string execptRlt = "demoB/ASSET_TEMP/test.asset_single?srcBundleName=demoA&sessionId=0";
328 EXPECT_EQ(rlt, execptRlt);
329
330 execptRlt = "demoB/ASSET_TEMP/test.asset_zip?srcBundleName=demoA&sessionId=0";
331 rlt = softBusHandlerAsset.GetDstFile(file, "demoA", "demoB", "0", false);
332 EXPECT_EQ(rlt, execptRlt);
333 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GetDstFile_0100 end";
334 }
335
336 /**
337 * @tc.name: SoftBusHandlerAssetTest_AssetSendFile_0100
338 * @tc.desc: Verify the AssetSendFile function.
339 * @tc.type: FUNC
340 * @tc.require: I9JXPR
341 */
342 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_AssetSendFile_0100, TestSize.Level1)
343 {
344 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_AssetSendFile_0100 start";
345 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
346 string file = "test123";
347 EXPECT_EQ(softBusHandlerAsset.AssetSendFile(0, file, true), ERR_BAD_VALUE);
348
349 sptr<AssetObj> assetObj (new (std::nothrow) AssetObj());
350 softBusHandlerAsset.AddAssetObj(0, assetObj);
351 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _)).WillOnce(Return(0));
352 EXPECT_EQ(softBusHandlerAsset.AssetSendFile(0, file, true), ERR_BAD_VALUE);
353
354 softBusHandlerAsset.RemoveAssetObj(0);
355 assetObj->dstNetworkId_ = "testNetWork";
356 assetObj->srcBundleName_ = "demoA";
357 assetObj->dstBundleName_ = "demoB";
358 assetObj->sessionId_ = "0";
359 softBusHandlerAsset.AddAssetObj(0, assetObj);
360
361 std::vector<DmDeviceInfo> deviceList;
362 deviceInfo.authForm = DmAuthForm::IDENTICAL_ACCOUNT;
363 deviceList.push_back(deviceInfo);
364 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
365 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
366 EXPECT_EQ(softBusHandlerAsset.AssetSendFile(0, file, true), ERR_BAD_VALUE);
367
368 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
369 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
370 EXPECT_CALL(*socketMock_, SendFile(_, _, _, _)).WillOnce(Return(-1));
371 file = "demoA/test";
372 EXPECT_EQ(softBusHandlerAsset.AssetSendFile(0, file, true), -1);
373
374 EXPECT_CALL(*deviceManagerImplMock_, GetTrustedDeviceList(_, _, _))
375 .WillOnce(DoAll(SetArgReferee<2>(deviceList), Return(0)));
376 EXPECT_CALL(*socketMock_, SendFile(_, _, _, _)).WillOnce(Return(E_OK));
377 EXPECT_EQ(softBusHandlerAsset.AssetSendFile(0, file, true), E_OK);
378 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_AssetSendFile_0100 end";
379 }
380
381 /**
382 * @tc.name: SoftBusHandlerAssetTest_GetLocalNetworkId_0100
383 * @tc.desc: Verify the GetLocalNetworkId function.
384 * @tc.type: FUNC
385 * @tc.require: I9JXPR
386 */
387 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_GetLocalNetworkId_0100, TestSize.Level1)
388 {
389 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GetLocalNetworkId_0100 start";
390 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
391 EXPECT_CALL(*deviceManagerImplMock_, GetLocalNodeDeviceInfo(_, _)).WillOnce(Return(-1));
392 string ret = softBusHandlerAsset.GetLocalNetworkId();
393 EXPECT_EQ(ret, "");
394
395 EXPECT_CALL(*deviceManagerImplMock_, GetLocalNodeDeviceInfo(_, _)).WillOnce(Return(0));
396 ret = softBusHandlerAsset.GetLocalNetworkId();
397 EXPECT_EQ(ret, "100");
398 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GetLocalNetworkId_0100 end";
399 }
400
401 /**
402 * @tc.name: SoftBusHandlerAssetTest_GenerateAssetObjInfo_0100
403 * @tc.desc: Verify the GenerateAssetObjInfo function.
404 * @tc.type: FUNC
405 * @tc.require: I9JXPR
406 */
407 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_GenerateAssetObjInfo_0100, TestSize.Level1)
408 {
409 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GenerateAssetObjInfo_0100 start";
410 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
411 sptr<AssetObj> assetObj (new (std::nothrow) AssetObj());
412 string fileName = "test";
413 auto ret = softBusHandlerAsset.GenerateAssetObjInfo(0, fileName, assetObj);
414 EXPECT_EQ(ret, ERR_BAD_VALUE);
415
416 fileName = "/account/device_view/local/data/test";
417 ret = softBusHandlerAsset.GenerateAssetObjInfo(0, fileName, assetObj);
418 EXPECT_EQ(ret, ERR_BAD_VALUE);
419
420 fileName = "/account/device_view/local/data/test/";
421 ret = softBusHandlerAsset.GenerateAssetObjInfo(0, fileName, assetObj);
422 EXPECT_EQ(ret, ERR_BAD_VALUE);
423
424 fileName = "/account/device_view/local/data/test/sessionId=20";
425 ret = softBusHandlerAsset.GenerateAssetObjInfo(0, fileName, assetObj);
426 EXPECT_EQ(ret, ERR_BAD_VALUE);
427
428 fileName = "/account/device_view/local/data/test/sessionId=20&srcBundleName=demoA";
429 EXPECT_CALL(*deviceManagerImplMock_, GetLocalNodeDeviceInfo(_, _)).WillOnce(Return(-1));
430 ret = softBusHandlerAsset.GenerateAssetObjInfo(0, fileName, assetObj);
431 EXPECT_EQ(ret, ERR_BAD_VALUE);
432
433 fileName = "/account/device_view/local/data/test/sessionId=20&srcBundleName=demoA";
434 EXPECT_CALL(*deviceManagerImplMock_, GetLocalNodeDeviceInfo(_, _)).WillOnce(Return(0));
435 ret = softBusHandlerAsset.GenerateAssetObjInfo(0, fileName, assetObj);
436 EXPECT_EQ(ret, E_OK);
437 EXPECT_EQ(assetObj->dstBundleName_, "test");
438 EXPECT_EQ(assetObj->sessionId_, "20");
439 EXPECT_EQ(assetObj->srcBundleName_, "demoA");
440 EXPECT_EQ(assetObj->dstNetworkId_, "100");
441 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GenerateAssetObjInfo_0100 end";
442 }
443
444 /**
445 * @tc.name: SoftBusHandlerAssetTest_GenerateUris_0100
446 * @tc.desc: Verify the GenerateUris function.
447 * @tc.type: FUNC
448 * @tc.require: I9JXPR
449 */
450 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_GenerateUris_0100, TestSize.Level1)
451 {
452 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GenerateUris_0100 start";
453 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
454 string fileName = "test";
455 vector<string> fileList;
456 fileList.push_back(fileName);
457 auto rlt = softBusHandlerAsset.GenerateUris(fileList, "demoB", true);
458 EXPECT_EQ(rlt.size(), 0);
459
460 fileList[0].clear();
461 fileList[0] = "demoB/ASSET_TEMP";
462 rlt = softBusHandlerAsset.GenerateUris(fileList, "demoB", true);
463 EXPECT_EQ(rlt.size(), 0);
464
465 fileList[0].clear();
466 fileList[0] = "demoB/ASSET_TEMP/test.asset_single?";
467 rlt = softBusHandlerAsset.GenerateUris(fileList, "demoB", true);
468 EXPECT_EQ(rlt.size(), 1);
469 EXPECT_EQ(rlt[0], "file://demoB/data/storage/el2/distributedfiles/test");
470 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GenerateUris_0100 end";
471 }
472
473 /**
474 * @tc.name: SoftBusHandlerAssetTest_GenerateUris_0200
475 * @tc.desc: Verify the GenerateUris function.
476 * @tc.type: FUNC
477 * @tc.require: I9JXPR
478 */
479 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_GenerateUris_0200, TestSize.Level1)
480 {
481 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GenerateUris_0200 start";
482 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
483 string fileName = "test";
484 vector<string> fileList;
485 fileList.push_back(fileName);
486 auto rlt = softBusHandlerAsset.GenerateUris(fileList, "demoB", false);
487 EXPECT_EQ(rlt.size(), 0);
488
489 fileList[0].clear();
490 fileList[0] = "demoB/ASSET_TEMP/test1";
491 fileList.push_back("demoB/ASSET_TEMP/test2");
492 rlt = softBusHandlerAsset.GenerateUris(fileList, "demoB", false);
493 EXPECT_EQ(rlt.size(), 2);
494 EXPECT_EQ(rlt[0], "file://demoB/data/storage/el2/distributedfiles/test1");
495 EXPECT_EQ(rlt[1], "file://demoB/data/storage/el2/distributedfiles/test2");
496 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_GenerateUris_0200 end";
497 }
498
499 /**
500 * @tc.name: SoftBusHandlerAssetTest_IsDir_0100
501 * @tc.desc: Verify the IsDir function.
502 * @tc.type: FUNC
503 * @tc.require: I9JXPR
504 */
505 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_IsDir_0100, TestSize.Level1)
506 {
507 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_IsDir_0100 start";
508 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
509 string fileName = "/data/test/";
510 auto rlt = softBusHandlerAsset.IsDir(fileName);
511 EXPECT_EQ(rlt, true);
512
513 fileName.clear();
514 fileName = "/data/test/test.txt";
515 int32_t fd = open(fileName.c_str(), O_RDWR | O_CREAT);
516 ASSERT_TRUE(fd != -1) << "SoftBusHandlerAssetTest_IsDir_0100 Create File Failed!";
517 close(fd);
518 rlt = softBusHandlerAsset.IsDir(fileName);
519 EXPECT_EQ(rlt, false);
520
521 softBusHandlerAsset.RemoveFile(fileName, true);
522 rlt = softBusHandlerAsset.IsDir(fileName);
523 EXPECT_EQ(rlt, false);
524 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_IsDir_0100 end";
525 }
526
527 /**
528 * @tc.name: SoftBusHandlerAssetTest_RemoveFile_0100
529 * @tc.desc: Verify the RemoveFile function.
530 * @tc.type: FUNC
531 * @tc.require: I9JXPR
532 */
533 HWTEST_F(SoftBusHandlerAssetTest, SoftBusHandlerAssetTest_RemoveFile_0100, TestSize.Level1)
534 {
535 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_RemoveFile_0100 start";
536 string fileName = "/data/test/test.txt";
537 int32_t fd = open(fileName.c_str(), O_RDWR | O_CREAT);
538 ASSERT_TRUE(fd != -1) << "SoftBusHandlerAssetTest_RemoveFile_0100 Create File Failed!";
539 close(fd);
540
541 auto &&softBusHandlerAsset = SoftBusHandlerAsset::GetInstance();
542 softBusHandlerAsset.RemoveFile(fileName, false);
543 auto ret = access(fileName.c_str(), F_OK);
544 EXPECT_EQ(ret, 0);
545
546 softBusHandlerAsset.RemoveFile(fileName, true);
547 ret = access(fileName.c_str(), F_OK);
548 EXPECT_NE(ret, 0);
549 softBusHandlerAsset.RemoveFile(fileName, true);
550 GTEST_LOG_(INFO) << "SoftBusHandlerAssetTest_RemoveFile_0100 end";
551 }
552 } // namespace Test
553 } // namespace DistributedFile
554 } // namespace Storage
555 } // namespace OHOS
556