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 #include <cstdint>
16 
17 #include "medialibrary_common_utils_test.h"
18 #include "medialibrary_errno.h"
19 #include "thumbnail_utils.h"
20 #define private public
21 #include "medialibrary_common_utils.h"
22 #undef private
23 
24 using namespace std;
25 using namespace OHOS;
26 using namespace testing::ext;
27 
28 namespace OHOS {
29 namespace Media {
SetUpTestCase(void)30 void MediaLibraryCommonUtilsTest::SetUpTestCase(void) {}
31 
TearDownTestCase(void)32 void MediaLibraryCommonUtilsTest::TearDownTestCase(void) {}
33 
34 // SetUp:Execute before each test case
SetUp()35 void MediaLibraryCommonUtilsTest::SetUp() {}
36 
TearDown(void)37 void MediaLibraryCommonUtilsTest::TearDown(void) {}
38 
39 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_GenKeySHA256_test_001, TestSize.Level0)
40 {
41     vector<uint8_t> input;
42     string key = "";
43     int32_t ret = MediaLibraryCommonUtils::GenKeySHA256(input, key);
44     EXPECT_EQ(ret, -EINVAL);
45 }
46 
47 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_GenKeySHA256_test_002, TestSize.Level0)
48 {
49     string input = "";
50     string key = "";
51     int32_t ret = MediaLibraryCommonUtils::GenKeySHA256(input, key);
52     EXPECT_EQ(ret, -EINVAL);
53 }
54 
55 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_CheckWhereClause_test_001, TestSize.Level0)
56 {
57     string whereClause = "";
58     bool ret = MediaLibraryCommonUtils::CheckWhereClause(whereClause);
59     EXPECT_EQ(ret, true);
60     string whereClauseTest = "CheckWhereClause";
61     ret = MediaLibraryCommonUtils::CheckWhereClause(whereClauseTest);
62     EXPECT_EQ(ret, false);
63     string where = "CheckWhereClause;";
64     ret = MediaLibraryCommonUtils::CheckWhereClause(where);
65     EXPECT_EQ(ret, false);
66 }
67 
68 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_AppendSelections_test_001, TestSize.Level0)
69 {
70     string selections = "";
71     MediaLibraryCommonUtils::AppendSelections(selections);
72     selections = "AppendSelections";
73     MediaLibraryCommonUtils::AppendSelections(selections);
74     EXPECT_EQ(selections, "(AppendSelections)");
75 }
76 
77 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_Char2Hex_test_001, TestSize.Level0)
78 {
79     unsigned char hash[64] = "";
80     size_t len = 2;
81     string hexStr = "";
82     MediaLibraryCommonUtils::Char2Hex(hash, len, hexStr);
83     EXPECT_NE(hexStr, "");
84 }
85 
86 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_GenKey_test_001, TestSize.Level0)
87 {
88     unsigned char hash[64] = "";
89     size_t len = 0;
90     string key = "";
91     int32_t ret = MediaLibraryCommonUtils::GenKey(hash, len, key);
92     EXPECT_EQ(ret, -EINVAL);
93     size_t lenTest = 2;
94     ret = MediaLibraryCommonUtils::GenKey(hash, lenTest, key);
95     EXPECT_EQ(ret, E_OK);
96 }
97 
98 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_CheckIllegalCharacter_test_001, TestSize.Level0)
99 {
100     string strCondition = "";
101     bool ret = MediaLibraryCommonUtils::CheckIllegalCharacter(strCondition);
102     EXPECT_EQ(ret, true);
103     string strConditionTest = ";";
104     ret = MediaLibraryCommonUtils::CheckIllegalCharacter(strConditionTest);
105     EXPECT_EQ(ret, false);
106 }
107 
108 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_CheckKeyWord_test_001, TestSize.Level0)
109 {
110     string strCondition = "";
111     bool ret = MediaLibraryCommonUtils::CheckKeyWord(strCondition);
112     EXPECT_EQ(ret, true);
113     string strConditionTest = "|\\s*insert\\s*|\\s*delete\\s*";
114     ret = MediaLibraryCommonUtils::CheckKeyWord(strConditionTest);
115     EXPECT_EQ(ret, false);
116 }
117 
118 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_SeprateSelection_test_001, TestSize.Level0)
119 {
120     string strCondition = "SeprateSelection";
121     vector<string> sepratedStr;
122     MediaLibraryCommonUtils::SeprateSelection(strCondition, sepratedStr);
123     EXPECT_NE(sepratedStr.size(), 0);
124 }
125 
126 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_CheckExpressValidation_test_001, TestSize.Level0)
127 {
128     vector<string> sepratedStr;
129     bool ret = MediaLibraryCommonUtils::CheckExpressValidation(sepratedStr);
130     EXPECT_EQ(ret, true);
131     sepratedStr.push_back(">=");
132     ret = MediaLibraryCommonUtils::CheckExpressValidation(sepratedStr);
133     EXPECT_EQ(ret, true);
134     sepratedStr.push_back("CheckExpressValidation");
135     ret = MediaLibraryCommonUtils::CheckExpressValidation(sepratedStr);
136     EXPECT_EQ(ret, false);
137 }
138 
139 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_CheckExpressValidation_test_002, TestSize.Level0)
140 {
141     vector<string> sepratedStr;
142     sepratedStr.push_back("parent");
143     bool ret = MediaLibraryCommonUtils::CheckExpressValidation(sepratedStr);
144     EXPECT_EQ(ret, true);
145     sepratedStr.push_back(">=date_added ");
146     ret = MediaLibraryCommonUtils::CheckExpressValidation(sepratedStr);
147     EXPECT_EQ(ret, true);
148     sepratedStr.push_back(" date_added>=");
149     ret = MediaLibraryCommonUtils::CheckExpressValidation(sepratedStr);
150     EXPECT_EQ(ret, true);
151 }
152 
153 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_CheckWhiteList_test_001, TestSize.Level0)
154 {
155     string express = "";
156     bool ret = MediaLibraryCommonUtils::CheckWhiteList(express);
157     EXPECT_EQ(ret, false);
158     string expressTest = "date_added";
159     ret = MediaLibraryCommonUtils::CheckWhiteList(expressTest);
160     EXPECT_EQ(ret, true);
161 }
162 
163 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_ExtractKeyWord_test_001, TestSize.Level0)
164 {
165     string str = "";
166     MediaLibraryCommonUtils::ExtractKeyWord(str);
167     str = ">=";
168     MediaLibraryCommonUtils::ExtractKeyWord(str);
169     EXPECT_EQ(str, "");
170     str = ">=date_added";
171     MediaLibraryCommonUtils::ExtractKeyWord(str);
172     EXPECT_EQ(str, "date_added");
173     str = "date_added>=";
174     MediaLibraryCommonUtils::ExtractKeyWord(str);
175     EXPECT_EQ(str, "date_added");
176 }
177 
178 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_RemoveSpecialCondition_test_001, TestSize.Level0)
179 {
180     string hacker = "";
181     MediaLibraryCommonUtils::RemoveSpecialCondition(hacker);
182     hacker = "RemoveSpecialConditionnot between ? and ?";
183     MediaLibraryCommonUtils::RemoveSpecialCondition(hacker);
184     EXPECT_EQ(hacker, "RemoveSpecialCondition ");
185 }
186 
187 HWTEST_F(MediaLibraryCommonUtilsTest, medialib_RemoveSpecialCondition_test_002, TestSize.Level0)
188 {
189     string hacker = "";
190     string pattern = "?";
191     MediaLibraryCommonUtils::RemoveSpecialCondition(hacker, pattern);
192     hacker = "RemoveSpecialCondition?";
193     MediaLibraryCommonUtils::RemoveSpecialCondition(hacker, pattern);
194     EXPECT_EQ(hacker, "RemoveSpecialCondition ");
195 }
196 } // namespace Media
197 } // namespace OHOS