1 /*
2 * Copyright (c) 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 "file_uri.h"
17
18 #include <gmock/gmock.h>
19 #include <gtest/gtest.h>
20 #include <fcntl.h>
21
22 #include "accesstoken_kit.h"
23 #include "ipc_skeleton.h"
24 #include "parameter.h"
25 #include "uri.h"
26
27 #include "common_func.h"
28 #include "file_share.h"
29 #include "log.h"
30
31 using namespace std;
32 using namespace OHOS::Security::AccessToken;
33 using namespace OHOS::AppFileService;
34
35 namespace {
36 const string BUNDLE_A = "com.example.filesharea";
37 const string FULL_MOUNT_ENABLE_PARAMETER = "const.filemanager.full_mount.enable";
38 }
39
GetSelfBundleName()40 string CommonFunc::GetSelfBundleName()
41 {
42 return BUNDLE_A;
43 }
44
CheckFileManagerFullMountEnable()45 static bool CheckFileManagerFullMountEnable()
46 {
47 char value[] = "false";
48 int retSystem = GetParameter(FULL_MOUNT_ENABLE_PARAMETER.c_str(), "false", value, sizeof(value));
49 if ((retSystem > 0) && (string_view(value) == "true")) {
50 return true;
51 }
52 LOGE("Not supporting all mounts");
53 return false;
54 }
55
56 namespace OHOS::AppFileService::ModuleFileUri {
57 const string PATH_SHARE = "/data/storage/el2/share";
58 const string MODE_RW = "/rw/";
59 const string MODE_R = "/r/";
60 const int E_OK = 0;
61
62 class FileUriTest : public testing::Test {
63 public:
SetUpTestCase(void)64 static void SetUpTestCase(void) {};
TearDownTestCase()65 static void TearDownTestCase() {};
SetUp()66 void SetUp() {};
TearDown()67 void TearDown() {};
68 };
69
70 /**
71 * @tc.name: file_uri_test_0000
72 * @tc.desc: Test function of ToString() interface for SUCCESS.
73 * @tc.size: MEDIUM
74 * @tc.type: FUNC
75 * @tc.level Level 1
76 * @tc.require: I7LW57
77 */
78 HWTEST_F(FileUriTest, File_uri_ToString_0000, testing::ext::TestSize.Level1)
79 {
80 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_ToString_0000";
81
82 string fileStr = "/data/storage/el2/base/files/test.txt";
83 string uri = "file://" + BUNDLE_A + fileStr;
84 FileUri fileUri(fileStr);
85 EXPECT_EQ(fileUri.ToString(), uri);
86
87 FileUri fileUri2(uri);
88 EXPECT_EQ(fileUri2.ToString(), uri);
89 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_ToString_0000";
90 }
91
92 /**
93 * @tc.name: file_uri_test_0001
94 * @tc.desc: Test function of GetName() interface for SUCCESS.
95 * @tc.size: MEDIUM
96 * @tc.type: FUNC
97 * @tc.level Level 1
98 * @tc.require: I7LW57
99 */
100 HWTEST_F(FileUriTest, File_uri_GetName_0000, testing::ext::TestSize.Level1)
101 {
102 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetName_0000";
103
104 string fileStr = "/data/storage/el2/base/files/test.txt";
105 string uri = "file://" + BUNDLE_A + fileStr;
106 FileUri fileUri(fileStr);
107 string name = fileUri.GetName();
108 EXPECT_EQ(name, "test.txt");
109
110 string fileStr2 = "/data/storage/el2/base/files/test.txt/";
111 string uri2 = "file://" + BUNDLE_A + fileStr;
112 FileUri fileUri2(fileStr2);
113 EXPECT_EQ(fileUri2.GetName(), "");
114 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetName_0000";
115 }
116
117 /**
118 * @tc.name: file_uri_test_0002
119 * @tc.desc: Test function of GetPath() interface for SUCCESS.
120 * @tc.size: MEDIUM
121 * @tc.type: FUNC
122 * @tc.level Level 1
123 * @tc.require: I7LW57
124 */
125 HWTEST_F(FileUriTest, File_uri_GetPath_0000, testing::ext::TestSize.Level1)
126 {
127 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0000";
128 string fileStr = "/data/storage/el2/base/files/test.txt";
129 string uri = "file://" + BUNDLE_A + fileStr;
130 FileUri fileUri(uri);
131 string path = fileUri.GetPath();
132 EXPECT_EQ(path, fileStr);
133
134 string uri2 = "file://media/Photo/12/IMG_12345_999999/test.jpg";
135 FileUri fileUri2(uri2);
136 path = fileUri2.GetPath();
137 EXPECT_EQ(path, "/Photo/12/IMG_12345_999999");
138
139 string uri4 = "file://media/Photo/12/IMG_12345_999999";
140 FileUri fileUri4(uri4);
141 EXPECT_EQ(fileUri2.GetPath(), "/Photo/12/IMG_12345_999999");
142 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0000";
143 }
144
145 /**
146 * @tc.name: file_uri_test_0003
147 * @tc.desc: Test function of GetPath() interface for SUCCESS.
148 * @tc.size: MEDIUM
149 * @tc.type: FUNC
150 * @tc.level Level 1
151 * @tc.require: I7LW57
152 */
153 HWTEST_F(FileUriTest, File_uri_GetPath_0001, testing::ext::TestSize.Level1)
154 {
155 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0001";
156 string fileStr = "/Documents/test.txt";
157 string uri = "file://" + BUNDLE_A + fileStr;
158 FileUri fileUri(uri);
159 string path = fileUri.GetRealPath();
160 EXPECT_EQ(path, fileStr);
161
162 string fileStrPath = "docs/storage/Users/currentUser/Documents/1.txt";
163 string fileStrRealPath = "/storage/Users/currentUser/Documents/1.txt";
164 string uri2 = "file://" + fileStrPath;
165 FileUri fileUri2(uri2);
166 path.clear();
167 path = fileUri2.GetRealPath();
168 if (CheckFileManagerFullMountEnable()) {
169 EXPECT_EQ(path, fileStrRealPath);
170 } else {
171 EXPECT_EQ(path, PATH_SHARE + MODE_R + fileStrPath);
172 };
173 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0001";
174 }
175
176 /**
177 * @tc.name: file_uri_test_0004
178 * @tc.desc: Test function of GetPath() interface for SUCCESS.
179 * @tc.size: MEDIUM
180 * @tc.type: FUNC
181 * @tc.level Level 1
182 * @tc.require: I7LW57
183 */
184 HWTEST_F(FileUriTest, File_uri_GetPath_0002, testing::ext::TestSize.Level1)
185 {
186 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0002";
187 string fileStr = "/data/storage/el2/base/files/test.txt";
188 string bundleB = "com.demo.b";
189 string uri = "file://" + bundleB + fileStr;
190 string rltStr = PATH_SHARE + MODE_R + bundleB + fileStr;
191 FileUri fileUri(uri);
192 string path = fileUri.GetRealPath();
193 EXPECT_EQ(path, rltStr);
194 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0002";
195 }
196
197 /**
198 * @tc.name: file_uri_test_0005
199 * @tc.desc: Test function of GetPath() interface for SUCCESS.
200 * @tc.size: MEDIUM
201 * @tc.type: FUNC
202 * @tc.level Level 1
203 * @tc.require: I7LW57
204 */
205 HWTEST_F(FileUriTest, File_uri_GetPath_0003, testing::ext::TestSize.Level1)
206 {
207 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0003";
208 int32_t uid = 100;
209 string bundleB = "com.example.fileshareb";
210 string fileStr = "/data/app/el2/" + to_string(uid) + "/base/" + bundleB + "/files/test.txt";
211 int32_t fd = open(fileStr.c_str(), O_RDWR | O_CREAT);
212 ASSERT_TRUE(fd != -1) << "FileShareTest Create File Failed!";
213
214 string actStr = "/data/storage/el2/base/files/test.txt";
215 string uri = "file://" + bundleB + actStr;
216 uint32_t tokenId = AccessTokenKit::GetHapTokenID(uid, BUNDLE_A, 0);
217
218 int32_t flag = 3;
219 vector<string> uriList(1, uri);
220 vector<int32_t> retList;
221 int32_t ret = FileShare::CreateShareFile(uriList, tokenId, flag, retList);
222 EXPECT_EQ(ret, E_OK);
223
224 string rltStr = PATH_SHARE + MODE_R + bundleB + actStr;
225 FileUri fileUri(uri);
226 string path = fileUri.GetRealPath();
227 EXPECT_EQ(path, rltStr);
228
229 vector<string> sharePathList;
230 sharePathList.push_back(uri);
231 ret = FileShare::DeleteShareFile(tokenId, sharePathList);
232 EXPECT_EQ(ret, E_OK);
233 close(fd);
234 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0003";
235 }
236
237 /**
238 * @tc.name: file_uri_test_0006
239 * @tc.desc: Test function of GetPath() interface for SUCCESS.
240 * @tc.size: MEDIUM
241 * @tc.type: FUNC
242 * @tc.level Level 1
243 * @tc.require: I7LW57
244 */
245 HWTEST_F(FileUriTest, File_uri_GetPath_0004, testing::ext::TestSize.Level1)
246 {
247 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0004";
248 string fileStr = "/data/storage/el2/base/files/test.txt";
249 string uri = "file://" + fileStr;
250 FileUri fileUri(uri);
251 EXPECT_EQ(fileUri.ToString(), uri);
252 EXPECT_EQ(fileUri.GetName(), "test.txt");
253 EXPECT_EQ(fileUri.GetPath(), fileStr);
254 EXPECT_EQ(fileUri.GetRealPath(), fileStr);
255 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0004";
256 }
257
258 /**
259 * @tc.name: file_uri_test_0005
260 * @tc.desc: Test function of GetPath() interface for SUCCESS.
261 * @tc.size: MEDIUM
262 * @tc.type: FUNC
263 * @tc.level Level 1
264 * @tc.require: I7LW57
265 */
266 HWTEST_F(FileUriTest, File_uri_GetPath_0005, testing::ext::TestSize.Level1)
267 {
268 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0005";
269 string fileStr = "/data/storage/el2/media/Photo/12/IMG_12345_999999/test.jpg";
270 string uri = "file://media/Photo/12/IMG_12345_999999/test.jpg";
271 FileUri fileUri(uri);
272 EXPECT_EQ(fileUri.GetRealPath(), fileStr);
273 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0005";
274 }
275 /**
276 * @tc.name: file_uri_test_00011
277 * @tc.desc: Test function of GetPath() interface for SUCCESS.
278 * @tc.size: MEDIUM
279 * @tc.type: FUNC
280 * @tc.level Level 1
281 * @tc.require: I7LW57
282 */
283 HWTEST_F(FileUriTest, File_uri_GetPath_0009, testing::ext::TestSize.Level1)
284 {
285 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0009";
286 string uri = "file://docs/storage/Users/currentUser/Documents/1.txt?networkid=***";
287 string fileStr = "/data/storage/el2/share/r/***/docs/storage/Users/currentUser/Documents/1.txt";
288 FileUri fileUri(uri);
289 EXPECT_EQ(fileUri.GetRealPath(), fileStr);
290 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0009";
291 }
292 /**
293 * @tc.name: file_uri_test_00012
294 * @tc.desc: Test function of GetPath() interface for SUCCESS.
295 * @tc.size: MEDIUM
296 * @tc.type: FUNC
297 * @tc.level Level 1
298 * @tc.require: I7LW57
299 */
300 HWTEST_F(FileUriTest, File_uri_GetPath_0010, testing::ext::TestSize.Level1)
301 {
302 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0010";
303 string uri = "file://docs/storage/Users/currentUser/Documents/1.txt?networkid=";
304 string fileStr = "/data/storage/el2/share/r/docs/storage/Users/currentUser/Documents/1.txt";
305 FileUri fileUri(uri);
306 EXPECT_EQ(fileUri.GetRealPath(), fileStr);
307 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPath_0010";
308 }
309
310 /**
311 * @tc.name: File_uri_GetPathBySA_0001
312 * @tc.desc: Test function of GetPath() interface for SUCCESS.
313 * @tc.size: MEDIUM
314 * @tc.type: FUNC
315 * @tc.level Level 1
316 * @tc.require: I7LW57
317 */
318 HWTEST_F(FileUriTest, File_uri_GetPathBySA_0001, testing::ext::TestSize.Level1)
319 {
320 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0001";
321 string fileStr = "";
322 string uri = "file://com.example.demoa/data/storage/el2/base%()test.jpg";
323 FileUri fileUri(uri);
324 EXPECT_EQ(fileUri.GetRealPathBySA(), fileStr);
325 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0001";
326 }
327
328 /**
329 * @tc.name: File_uri_GetPathBySA_0002
330 * @tc.desc: Test function of GetPath() interface for SUCCESS.
331 * @tc.size: MEDIUM
332 * @tc.type: FUNC
333 * @tc.level Level 1
334 * @tc.require: I7LW57
335 */
336 HWTEST_F(FileUriTest, File_uri_GetPathBySA_0002, testing::ext::TestSize.Level1)
337 {
338 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0002";
339 string fileStr = "";
340 string uri = "file://com.example.demoa/data/storage/el2/base/files/%你好test.jpg";
341 FileUri fileUri(uri);
342 EXPECT_EQ(fileUri.GetRealPathBySA(), fileStr);
343 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0002";
344 }
345
346 /**
347 * @tc.name: File_uri_GetPathBySA_0003
348 * @tc.desc: Test function of GetPath() interface for SUCCESS.
349 * @tc.size: MEDIUM
350 * @tc.type: FUNC
351 * @tc.level Level 1
352 * @tc.require: I7LW57
353 */
354 HWTEST_F(FileUriTest, File_uri_GetPathBySA_0003, testing::ext::TestSize.Level1)
355 {
356 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0003";
357 string fileStr = "";
358 string uri = "file://com.example.demoa/data/storage/el2%/base/files/test.jpg";
359 FileUri fileUri(uri);
360 EXPECT_EQ(fileUri.GetRealPathBySA(), fileStr);
361 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0003";
362 }
363
364 /**
365 * @tc.name: File_uri_GetPathBySA_0004
366 * @tc.desc: Test function of GetPath() interface for SUCCESS.
367 * @tc.size: MEDIUM
368 * @tc.type: FUNC
369 * @tc.level Level 1
370 * @tc.require: I7LW57
371 */
372 HWTEST_F(FileUriTest, File_uri_GetPathBySA_0004, testing::ext::TestSize.Level1)
373 {
374 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0004";
375 string fileStr = "";
376 string uri = "file://com.example.demoa/data/storage/el2/base%#files/test.jpg";
377 FileUri fileUri(uri);
378 EXPECT_EQ(fileUri.GetRealPathBySA(), fileStr);
379 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetPathBySA_0004";
380 }
381
382 /**
383 * @tc.name: file_uri_test_0007
384 * @tc.desc: Test function of GetFullDirectoryUri() interface for SUCCESS.
385 * @tc.size: MEDIUM
386 * @tc.type: FUNC
387 * @tc.level Level 1
388 * @tc.require:
389 */
390 HWTEST_F(FileUriTest, File_uri_GetFullDirectoryUri_0000, testing::ext::TestSize.Level1)
391 {
392 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetFullDirectoryUri_0000";
393 string fileStr = "/data/test/remote_file_share_test.txt";
394 FileUri fileUriObject(fileStr);
395 string fileDirectoryUri = "file://" + BUNDLE_A + "/data/test";
396 EXPECT_EQ(fileUriObject.GetFullDirectoryUri(), fileDirectoryUri);
397 string folderStr = "/data/test";
398 string folderUri = "file://" + BUNDLE_A + folderStr;
399 FileUri folderUriObject(folderUri);
400 string folderDirectoryUri = "file://" + BUNDLE_A + folderStr;
401 EXPECT_EQ(folderUriObject.GetFullDirectoryUri(), folderDirectoryUri);
402 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0000";
403 }
404
405 /**
406 * @tc.name: file_uri_test_0008
407 * @tc.desc: Test function of GetFullDirectoryUri() interface for SUCCESS.
408 * @tc.size: MEDIUM
409 * @tc.type: FUNC
410 * @tc.level Level 1
411 * @tc.require:
412 */
413 HWTEST_F(FileUriTest, File_uri_GetFullDirectoryUri_0001, testing::ext::TestSize.Level1)
414 {
415 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetFullDirectoryUri_0001";
416 std::string fileUri0 = "file://docs/storage/Users/currentUser/../test../test1";
417 std::string fileUri1 = "file://docs/storage/Users/currentUser/test../../test";
418 std::string fileUri2 = "file://docs/storage/Users/currentUser/test../../";
419 std::string fileUri3 = "file://docs/storage/Users/currentUser/test../test../..";
420 std::string fileUri4 = "file://docs/storage/Users/currentUser/test/..test/..";
421 FileUri fileUriObject0(fileUri0);
422 EXPECT_EQ(fileUriObject0.GetFullDirectoryUri(), "");
423 FileUri fileUriObject1(fileUri1);
424 EXPECT_EQ(fileUriObject1.GetFullDirectoryUri(), "");
425 FileUri fileUriObject2(fileUri2);
426 EXPECT_EQ(fileUriObject2.GetFullDirectoryUri(), "");
427 FileUri fileUriObject3(fileUri3);
428 EXPECT_EQ(fileUriObject3.GetFullDirectoryUri(), "");
429 FileUri fileUriObject4(fileUri4);
430 EXPECT_EQ(fileUriObject4.GetFullDirectoryUri(), "");
431 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0001";
432 }
433
434 /**
435 * @tc.name: file_uri_test_0009
436 * @tc.desc: Test function of CheckUriFormat() interface for SUCCESS.
437 * @tc.size: MEDIUM
438 * @tc.type: FUNC
439 * @tc.level Level 1
440 * @tc.require:
441 */
442 HWTEST_F(FileUriTest, File_uri_CheckUriFormat_0000, testing::ext::TestSize.Level1)
443 {
444 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_CheckUriFormat_0000";
445 std::string fileUri0 = "file://docs/storage/Users/currentUser/../test../test1";
446 std::string fileUri1 = "file://docs/storage/Users/currentUser/test../../test";
447 std::string fileUri2 = "file://docs/storage/Users/currentUser/test../../";
448 std::string fileUri3 = "file://docs/storage/Users/currentUser/test../test../..";
449 std::string fileUri4 = "file://docs/storage/Users/currentUser/test/..test/..";
450 std::string fileUri5 = "file://docs/storage/Users/currentUser/test/test../test";
451 std::string fileUri6 = "file://docs/storage/Users/currentUser/test../test../test";
452 std::string fileUri7 = "file://docs/storage/Users/currentUser/test../test../test../..test";
453 FileUri fileUriObject0(fileUri0);
454 EXPECT_FALSE(fileUriObject0.CheckUriFormat(fileUri0));
455 FileUri fileUriObject1(fileUri1);
456 EXPECT_FALSE(fileUriObject1.CheckUriFormat(fileUri1));
457 FileUri fileUriObject2(fileUri2);
458 EXPECT_FALSE(fileUriObject2.CheckUriFormat(fileUri2));
459 FileUri fileUriObject3(fileUri3);
460 EXPECT_FALSE(fileUriObject3.CheckUriFormat(fileUri3));
461 FileUri fileUriObject4(fileUri4);
462 EXPECT_FALSE(fileUriObject4.CheckUriFormat(fileUri4));
463 FileUri fileUriObject5(fileUri5);
464 EXPECT_TRUE(fileUriObject5.CheckUriFormat(fileUri5));
465 FileUri fileUriObject6(fileUri6);
466 EXPECT_TRUE(fileUriObject6.CheckUriFormat(fileUri6));
467 FileUri fileUriObject7(fileUri7);
468 EXPECT_TRUE(fileUriObject7.CheckUriFormat(fileUri7));
469 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_CheckUriFormat_0000";
470 }
471
472 /**
473 * @tc.name: file_uri_test_0010
474 * @tc.desc: Test function of GetUriFromPath() interface for SUCCESS.
475 * @tc.size: MEDIUM
476 * @tc.type: FUNC
477 * @tc.level Level 1
478 * @tc.require:
479 */
480 HWTEST_F(FileUriTest, File_uri_GetUriFromPath_0010, testing::ext::TestSize.Level1)
481 {
482 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetUriFromPath_0010";
483 std::string fileUri0 = "/storage/Users/currentUser/../test../test1";
484 std::string fileUri1 = "/storage/Users/currentUser/test../../test";
485 std::string fileUri2 = "/storage/Users/currentUser/test../../";
486 std::string fileUri3 = "/storage/Users/currentUser/test../test../..";
487 std::string fileUri4 = "/storage/Users/currentUser/test/..test/..";
488 std::string fileUri5 = "/storage/Users/currentUser/test/test../test";
489 std::string fileUri6 = "/storage/Users/currentUser/test../test../test";
490 std::string fileUri7 = "/storage/Users/currentUser/test../test../test../..test";
491 FileUri fileUriObject0(fileUri0);
492 EXPECT_EQ(fileUriObject0.ToString(), "");
493 FileUri fileUriObject1(fileUri1);
494 EXPECT_EQ(fileUriObject1.ToString(), "");
495 FileUri fileUriObject2(fileUri2);
496 EXPECT_EQ(fileUriObject2.ToString(), "");
497 FileUri fileUriObject3(fileUri3);
498 EXPECT_EQ(fileUriObject3.ToString(), "");
499 FileUri fileUriObject4(fileUri4);
500 EXPECT_EQ(fileUriObject4.ToString(), "");
501 FileUri fileUriObject5(fileUri5);
502 EXPECT_EQ(fileUriObject5.ToString(), "file://docs/storage/Users/currentUser/test/test../test");
503 FileUri fileUriObject6(fileUri6);
504 EXPECT_EQ(fileUriObject6.ToString(), "file://docs/storage/Users/currentUser/test../test../test");
505 FileUri fileUriObject7(fileUri7);
506 EXPECT_EQ(fileUriObject7.ToString(), "file://docs/storage/Users/currentUser/test../test../test../..test");
507 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetUriFromPath_0010";
508 }
509 /**
510 * @tc.name: File_uri_IsRemoteUri_0000
511 * @tc.desc: Test function of IsRemoteUri() interface for SUCCESS.
512 * @tc.size: MEDIUM
513 * @tc.type: FUNC
514 * @tc.level Level 1
515 * @tc.require:
516 */
517 HWTEST_F(FileUriTest, File_uri_IsRemoteUri_0000, testing::ext::TestSize.Level1)
518 {
519 GTEST_LOG_(INFO) << "FileUriTest-begin File_uri_GetFullDirectoryUri_0000";
520 string fileStr = "file://" + BUNDLE_A + "/data/test";
521 FileUri fileUriObject(fileStr);
522 EXPECT_EQ(fileUriObject.IsRemoteUri(), false);
523
524 string fileStr2 = "file://" + BUNDLE_A + "/data/test?networkid=";
525 FileUri fileUriObject2(fileStr2);
526 EXPECT_EQ(fileUriObject2.IsRemoteUri(), false);
527
528 string fileStr3 = "file://" + BUNDLE_A + "/data/test?networkid=123456/";
529 FileUri fileUriObject3(fileStr3);
530 EXPECT_EQ(fileUriObject3.IsRemoteUri(), false);
531
532 string fileStr4 = "file://" + BUNDLE_A + "/data/test?networkid=123456";
533 FileUri fileUriObject4(fileStr4);
534 EXPECT_EQ(fileUriObject4.IsRemoteUri(), true);
535 GTEST_LOG_(INFO) << "FileUriTest-end File_uri_GetPath_0000";
536 }
537 }