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