• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
16 #include "ringtone_file_utils_test.h"
17 
18 #include <algorithm>
19 
20 #include "ringtone_db_const.h"
21 #include "ringtone_errno.h"
22 #include "ringtone_file_utils.h"
23 #include "ringtone_log.h"
24 #include "ringtone_type.h"
25 
26 using std::string;
27 using namespace testing::ext;
28 
29 namespace OHOS {
30 namespace Media {
31 const string PATH = "ringtone/audio";
32 const string DEFAULT_STR = "";
33 
SetUpTestCase()34 void RingtoneFileUtilsTest::SetUpTestCase() {}
TearDownTestCase()35 void RingtoneFileUtilsTest::TearDownTestCase() {}
SetUp()36 void RingtoneFileUtilsTest::SetUp()
37 {
38     system("mkdir /data/local/tmp/test");
39 }
TearDown(void)40 void RingtoneFileUtilsTest::TearDown(void)
41 {
42     system("rm -rf /data/local/tmp/test");
43 }
44 
45 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_SplitByChar_Test_001, TestSize.Level0)
46 {
47     const char SLASH_CHAR = '/';
48     auto str = RingtoneFileUtils::SplitByChar(PATH, SLASH_CHAR);
49     ASSERT_EQ(str, "audio");
50 }
51 
52 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_SplitByChar_Test_002, TestSize.Level0)
53 {
54     const char star = '*';
55     auto str = RingtoneFileUtils::SplitByChar(PATH, star);
56     ASSERT_EQ(str, DEFAULT_STR);
57 }
58 
59 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_GetExtensionFromPath_Test_001, TestSize.Level0)
60 {
61     const string path = "ringtone/audio.mp3";
62     const string extension = "mp3";
63     auto str = RingtoneFileUtils::GetExtensionFromPath(path);
64     ASSERT_EQ(str, extension);
65 }
66 
67 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_GetExtensionFromPath_Test_002, TestSize.Level0)
68 {
69     auto str = RingtoneFileUtils::GetExtensionFromPath(PATH);
70     ASSERT_EQ(str, DEFAULT_STR);
71 }
72 
73 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_OpenFile_Test_001, TestSize.Level0)
74 {
75     const string path = "/storage/media/100";
76     auto ret = RingtoneFileUtils::OpenFile(path, RINGTONE_FILEMODE_WRITEONLY);
77     ASSERT_EQ(ret, E_INVALID_PATH);
78     ret = RingtoneFileUtils::OpenFile(path, "v");
79     ASSERT_EQ(ret, E_INVALID_PATH);
80     const int32_t count = 5200;
81     string filePath = string(count, 'a') + ".ogg";
82     ret = RingtoneFileUtils::OpenFile(filePath, RINGTONE_FILEMODE_WRITEONLY);
83     ASSERT_EQ(ret, E_ERR);
84     filePath = "ringtoneFileUtils_OpenFile_Test_001.ogg";
85     ret = RingtoneFileUtils::OpenFile(filePath, "z");
86     ASSERT_EQ(ret, E_ERR);
87 }
88 
89 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_MilliSecond_Test_001, TestSize.Level0)
90 {
91     struct timespec t;
92     clock_gettime(CLOCK_REALTIME, &t);
93     int64_t MilliSecondTime = RingtoneFileUtils::Timespec2Millisecond(t);
94     ASSERT_EQ(MilliSecondTime, RingtoneFileUtils::UTCTimeMilliSeconds());
95 }
96 
97 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_StartsWith_Test_001, TestSize.Level0)
98 {
99     const std::string prefix = "audio";
100     auto str = RingtoneFileUtils::StartsWith(PATH, prefix);
101     ASSERT_EQ(str, false);
102 }
103 
104 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_StartsWith_Test_002, TestSize.Level0)
105 {
106     const std::string prefix = "ringtone/audio";
107     auto str = RingtoneFileUtils::StartsWith(PATH, prefix);
108     ASSERT_EQ(str, true);
109 }
110 
111 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_IsFileExists_Test_001, TestSize.Level0)
112 {
113     const string filePath = "/data/test/isfileexists_001";
114     EXPECT_EQ(RingtoneFileUtils::IsFileExists(filePath), false);
115 }
116 
117 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_CreateFile_Test_001, TestSize.Level0)
118 {
119     const string filePath = "/data/local/tmp/test/createfile_001.ogg";
120     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_SUCCESS);
121 }
122 
123 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_CreateFile_Test_002, TestSize.Level0)
124 {
125     string filePath = DEFAULT_STR;
126     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_VIOLATION_PARAMETERS);
127     filePath = "/data/local/tmp/test/createfile_002.pcm";
128     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_INVALID_PATH);
129 }
130 
131 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_CreateFile_Test_003, TestSize.Level0)
132 {
133     const string filePath = "/data/local/tmp/test/createfile_003.ogg";
134     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_SUCCESS);
135     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_FILE_EXIST);
136 }
137 
138 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_CreateFile_Test_004, TestSize.Level0)
139 {
140     const string filePath = "/data/local/tmp/test/test/test/test/createfile_004.ogg";
141     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_ERR);
142 }
143 
144 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_GetFileNameFromPath_Test_001, TestSize.Level0)
145 {
146     string filePath = "/ringtoneFileUtils_GetFileNameFromPath_Test_001/createfile_001.ogg";
147     auto ret = RingtoneFileUtils::GetFileNameFromPath(filePath);
148     EXPECT_EQ(ret, "createfile_001.ogg");
149     filePath = "/";
150     ret = RingtoneFileUtils::GetFileNameFromPath(filePath);
151     EXPECT_EQ(ret, "");
152     filePath = "";
153     ret = RingtoneFileUtils::GetFileNameFromPath(filePath);
154     EXPECT_EQ(ret, "");
155 }
156 
157 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_GetBaseNameFromPath_Test_001, TestSize.Level0)
158 {
159     string filePath = "data/createfile_001.";
160     auto ret = RingtoneFileUtils::GetBaseNameFromPath(filePath);
161     EXPECT_EQ(ret, "createfile_001");
162     filePath = "createfile_001./";
163     ret = RingtoneFileUtils::GetBaseNameFromPath(filePath);
164     EXPECT_EQ(ret, "");
165 }
166 
167 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_IsSameFile_Test_001, TestSize.Level0)
168 {
169     const string srcPath = "/data/local/tmp/test/createfile_Test_001.ogg";
170     const string dstPath = "/data/local/tmp/test/createfile_Test_001.ogg";
171     auto ret = RingtoneFileUtils::IsSameFile(srcPath, dstPath);
172     EXPECT_EQ(ret, false);
173     EXPECT_EQ(RingtoneFileUtils::CreateFile(srcPath), E_SUCCESS);
174     ret = RingtoneFileUtils::IsSameFile(srcPath, dstPath);
175     EXPECT_EQ(ret, true);
176 }
177 
178 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_RemoveDirectory_Test_001, TestSize.Level0)
179 {
180     const string filePath = "/data/local/tmp/test/createfile_003.ogg";
181     EXPECT_EQ(RingtoneFileUtils::CreateFile(filePath), E_SUCCESS);
182     auto ret = RingtoneFileUtils::RemoveDirectory(filePath);
183     EXPECT_EQ(ret, E_SUCCESS);
184 }
185 
186 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_Mkdir_Test_001, TestSize.Level0)
187 {
188     const string path = "ringtoneFileUtils_RemoveDirectory_Test_001";
189     std::shared_ptr<int> errCodePtr;
190     auto ret = RingtoneFileUtils::Mkdir(path);
191     EXPECT_EQ(ret, true);
192 }
193 
194 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_IsDirectory_Test_001, TestSize.Level0)
195 {
196     const string path = "ringtoneFileUtils_RemoveDirectory_Test_001";
197     std::shared_ptr<int> errCodePtr;
198     auto ret = RingtoneFileUtils::IsDirectory(path, errCodePtr);
199     EXPECT_EQ(ret, true);
200     const string pathDir = "/data/ringtone/ringtoneFileUtils_RemoveDirectory_Test_001";
201     ret = RingtoneFileUtils::IsDirectory(pathDir, errCodePtr);
202     EXPECT_EQ(ret, false);
203     std::shared_ptr<int> errCode = std::make_shared<int>(1);
204     ret = RingtoneFileUtils::IsDirectory(pathDir, errCode);
205     EXPECT_EQ(ret, false);
206 }
207 
208 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_CreateDirectory_Test_001, TestSize.Level0)
209 {
210     string dirPath = "/data/test/isdirempty_002";
211     string subPath = dirPath + "/isdirempty_002";
212     EXPECT_EQ(RingtoneFileUtils::CreateDirectory(subPath), true);
213 }
214 
215 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_MoveFile_Test_001, TestSize.Level0)
216 {
217     string oldPath = "/data/local/tmp/test/movefile_001.ogg";
218     string newPath = "/data/local/tmp/test/movefile_001_move.ogg";
219     EXPECT_EQ(RingtoneFileUtils::CreateFile(oldPath), E_SUCCESS);
220     EXPECT_EQ(RingtoneFileUtils::MoveFile(oldPath, newPath), true);
221 }
222 
223 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_CopyFileUtil_Test_001, TestSize.Level0)
224 {
225     string oldPath = "/data/local/tmp/test/movefile_001.ogg";
226     string newPath = "/data/local/tmp/test/movefile_001_move.ogg";
227     EXPECT_EQ(RingtoneFileUtils::CreateFile(oldPath), E_SUCCESS);
228     EXPECT_EQ(RingtoneFileUtils::CopyFileUtil(oldPath, newPath), true);
229     const string filePath("a", 5200);
230     RingtoneFileUtils::CopyFileUtil(filePath, newPath);
231 }
232 
233 HWTEST_F(RingtoneFileUtilsTest, ringtoneFileUtils_GetSanboxPath_Test_001, TestSize.Level0)
234 {
235     string uri1 = "/data/app/el2/100/base/com.ohos.ringtonelibrary.ringtonelibrarydata/files/Ringtone";
236     string uri2 = "/data/local/tmp/test";
237     int32_t result = GetAppSandboxPathFromUri(uri1);
238     EXPECT_EQ(result, E_OK);
239     result = GetAppSandboxPathFromUri(uri2);
240     EXPECT_EQ(result, E_INVALID_URI);
241 }
242 } // namespace Media
243 } // namespace OHOS
244