1 /*
2 * Copyright (c) 2022 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 <gtest/gtest.h>
16
17 #include "accessibility_ability_utils.h"
18
19 using namespace OHOS;
20 using namespace OHOS::AAFwk;
21 using namespace OHOS::Accessibility;
22 using namespace testing::ext;
23
24 class AccessibilityAbilityUtilsTest : public testing::Test {
25 public:
26 static void SetUpTestCase();
27 static void TearDownTestCase();
28 void SetUp() override;
29 void TearDown() override;
30 };
31
SetUpTestCase()32 void AccessibilityAbilityUtilsTest::SetUpTestCase()
33 {}
34
TearDownTestCase()35 void AccessibilityAbilityUtilsTest::TearDownTestCase()
36 {}
37
SetUp()38 void AccessibilityAbilityUtilsTest::SetUp()
39 {}
40
TearDown()41 void AccessibilityAbilityUtilsTest::TearDown()
42 {}
43
44 /**
45 * @tc.number: GetStaticCapabilityNames_0100
46 * @tc.name: GetStaticCapabilityNames
47 * @tc.desc: Get StaticCapabilityNames Failed
48 */
49 HWTEST_F(AccessibilityAbilityUtilsTest, GetStaticCapabilityNames_0100, Function | MediumTest | Level1)
50 {
51 AccessibilityAbilityInitParams params;
52 AccessibilityAbilityInfo abilityInfo(params);
53 auto result = AccessibilityUtils::GetStaticCapabilityNames(abilityInfo);
54 EXPECT_EQ(result, "");
55 }
56
57 /**
58 * @tc.number: GetStaticCapabilityNames_0200
59 * @tc.name: GetStaticCapabilityNames
60 * @tc.desc: Get StaticCapabilityNames Success
61 */
62 HWTEST_F(AccessibilityAbilityUtilsTest, GetStaticCapabilityNames_0200, Function | MediumTest | Level1)
63 {
64 AccessibilityAbilityInitParams params;
65 params.staticCapabilities = 0x0001;
66 AccessibilityAbilityInfo abilityInfo(params);
67 auto result = AccessibilityUtils::GetStaticCapabilityNames(abilityInfo);
68 EXPECT_EQ(result, "r");
69 }
70
71 /**
72 * @tc.number: GetStaticCapabilityNames_0300
73 * @tc.name: GetStaticCapabilityNames
74 * @tc.desc: Get StaticCapabilityNames Success
75 */
76 HWTEST_F(AccessibilityAbilityUtilsTest, GetStaticCapabilityNames_0300, Function | MediumTest | Level1)
77 {
78 AccessibilityAbilityInitParams params;
79 params.staticCapabilities = 0x0010;
80 AccessibilityAbilityInfo abilityInfo(params);
81 auto result = AccessibilityUtils::GetStaticCapabilityNames(abilityInfo);
82 EXPECT_EQ(result, "z");
83 }
84
85 /**
86 * @tc.number: FormatAbilityInfos_0100
87 * @tc.name: FormatAbilityInfos
88 * @tc.desc: Format AbilityInfos Failed
89 */
90 HWTEST_F(AccessibilityAbilityUtilsTest, FormatAbilityInfos_0100, Function | MediumTest | Level1)
91 {
92 std::vector<Accessibility::AccessibilityAbilityInfo> installedAbilities;
93 std::stringstream headerStream;
94 headerStream << std::left << std::setw(10) << "NO"
95 << std::left << std::setw(50) << "bundleName"
96 << std::left << std::setw(30) << "abilityName"
97 << std::left << std::setw(20) << "capabilities-abbr" << std::endl;
98 auto result = AccessibilityUtils::FormatAbilityInfos(installedAbilities);
99 EXPECT_EQ(result, headerStream.str());
100 }
101
102 /**
103 * @tc.number: FormatAbilityInfos_0200
104 * @tc.name: FormatAbilityInfos
105 * @tc.desc: Format AbilityInfos Success
106 */
107 HWTEST_F(AccessibilityAbilityUtilsTest, FormatAbilityInfos_0200, Function | MediumTest | Level1)
108 {
109 std::vector<AccessibilityAbilityInfo> installedAbilities;
110 AccessibilityAbilityInitParams params;
111 params.name = "myapplication";
112 params.staticCapabilities = 10;
113 AccessibilityAbilityInfo abilityInfo(params);
114 std::string bundleName = "com.example.myapplication";
115 abilityInfo.SetPackageName(bundleName);
116 installedAbilities.emplace_back(abilityInfo);
117 auto result = AccessibilityUtils::FormatAbilityInfos(installedAbilities);
118 std::string resultstring = "";
119 std::stringstream headerStream;
120 headerStream << std::left << std::setw(10) << "NO"
121 << std::left << std::setw(50) << "bundleName"
122 << std::left << std::setw(30) << "abilityName"
123 << std::left << std::setw(20) << "capabilities-abbr" << std::endl;
124 resultstring.append(headerStream.str());
125
126 std::stringstream lineStream;
127 std::string capabilityNames = AccessibilityUtils::GetStaticCapabilityNames(abilityInfo);
128 lineStream << std::left << std::setw(10) << std::to_string(1)
129 << std::left << std::setw(50) << bundleName
130 << std::left << std::setw(30) << params.name
131 << std::left << capabilityNames << std::endl;
132 resultstring.append(lineStream.str());
133 EXPECT_EQ(result, resultstring);
134 }
135
136 /**
137 * @tc.number: GetCapabilityValue_0100
138 * @tc.name: GetCapabilityValue
139 * @tc.desc: Get Capability Value Success
140 */
141 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0100, Function | MediumTest | Level1)
142 {
143 auto result = AccessibilityUtils::GetCapabilityValue("r");
144 EXPECT_EQ(result, 0x0001);
145 }
146
147 /**
148 * @tc.number: GetCapabilityValue_0200
149 * @tc.name: GetCapabilityValue
150 * @tc.desc: Get Capability Value Success
151 */
152 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0200, Function | MediumTest | Level1)
153 {
154 auto result = AccessibilityUtils::GetCapabilityValue("k");
155 EXPECT_EQ(result, 0x0008);
156 }
157
158 /**
159 * @tc.number: GetCapabilityValue_0300
160 * @tc.name: GetCapabilityValue
161 * @tc.desc: Get Capability Value Success
162 */
163 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0300, Function | MediumTest | Level1)
164 {
165 auto result = AccessibilityUtils::GetCapabilityValue("z");
166 EXPECT_EQ(result, 0x0010);
167 }
168
169 /**
170 * @tc.number: GetCapabilityValue_0400
171 * @tc.name: GetCapabilityValue
172 * @tc.desc: Get Capability Value Failed
173 */
174 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0400, Function | MediumTest | Level1)
175 {
176 auto result = AccessibilityUtils::GetCapabilityValue("a");
177 std::uint32_t i = 0;
178 EXPECT_EQ(result, i);
179 }
180
181 /**
182 * @tc.number: GetCapabilityValue_0500
183 * @tc.name: GetCapabilityValue
184 * @tc.desc: Get CapabilityValue Failed
185 */
186 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0500, Function | MediumTest | Level1)
187 {
188 auto result = AccessibilityUtils::GetCapabilityValue("");
189 std::uint32_t i = 0;
190 EXPECT_EQ(result, i);
191 }
192
193 /**
194 * @tc.number: GetCapabilityValue_0600
195 * @tc.name: GetCapabilityValue
196 * @tc.desc: Get Capability Value Success
197 */
198 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0600, Function | MediumTest | Level1)
199 {
200 auto result = AccessibilityUtils::GetCapabilityValue("zr");
201 EXPECT_EQ(result, 0x0001|0x0010);
202 }
203
204 /**
205 * @tc.number: GetCapabilityValue_0700
206 * @tc.name: GetCapabilityValue
207 * @tc.desc: Get Capability Value Success
208 */
209 HWTEST_F(AccessibilityAbilityUtilsTest, GetCapabilityValue_0700, Function | MediumTest | Level1)
210 {
211 auto result = AccessibilityUtils::GetCapabilityValue("rtz");
212 EXPECT_EQ(result, 0x0001|0x0002|0x0010);
213 }
214
215 /**
216 * @tc.number: GetInvalidCapabilityNames_0100
217 * @tc.name: GetInvalidCapabilityNames
218 * @tc.desc: Get Invalid Capability Names Success
219 */
220 HWTEST_F(AccessibilityAbilityUtilsTest, GetInvalidCapabilityNames_0100, Function | MediumTest | Level1)
221 {
222 auto result = AccessibilityUtils::GetInvalidCapabilityNames("asdfg", "zxcvb");
223 EXPECT_EQ(result, "asdfg");
224 }
225
226 /**
227 * @tc.number: GetInvalidCapabilityNames_0200
228 * @tc.name: GetInvalidCapabilityNames
229 * @tc.desc: Get Invalid Capability Names Success
230 */
231 HWTEST_F(AccessibilityAbilityUtilsTest, GetInvalidCapabilityNames_0200, Function | MediumTest | Level1)
232 {
233 auto result = AccessibilityUtils::GetInvalidCapabilityNames("asdfg", "axcvb");
234 EXPECT_EQ(result, "sdfg");
235 }
236
237 /**
238 * @tc.number: GetInvalidCapabilityNames_0300
239 * @tc.name: GetInvalidCapabilityNames
240 * @tc.desc: Get Invalid Capability Names Success
241 */
242 HWTEST_F(AccessibilityAbilityUtilsTest, GetInvalidCapabilityNames_0300, Function | MediumTest | Level1)
243 {
244 auto result = AccessibilityUtils::GetInvalidCapabilityNames("asdfg", "axdvb");
245 EXPECT_EQ(result, "sfg");
246 }
247
248 /**
249 * @tc.number: GetInvalidCapabilityNames_0400
250 * @tc.name: GetInvalidCapabilityNames
251 * @tc.desc: Get Invalid Capability Names Success
252 */
253 HWTEST_F(AccessibilityAbilityUtilsTest, GetInvalidCapabilityNames_0400, Function | MediumTest | Level1)
254 {
255 auto result = AccessibilityUtils::GetInvalidCapabilityNames("asdfb", "axdvb");
256 EXPECT_EQ(result, "sf");
257 }
258
259 /**
260 * @tc.number: GetInvalidCapabilityNames_0500
261 * @tc.name: GetInvalidCapabilityNames
262 * @tc.desc: Get Invalid Capability Names Failed
263 */
264 HWTEST_F(AccessibilityAbilityUtilsTest, GetInvalidCapabilityNames_0500, Function | MediumTest | Level1)
265 {
266 auto result = AccessibilityUtils::GetInvalidCapabilityNames("asdfb", "asdfb");
267 EXPECT_EQ(result, "");
268 }
269
270 /**
271 * @tc.number: GetUnknownArgumentsMsg_0100
272 * @tc.name: GetUnknownArgumentsMsg
273 * @tc.desc: Get UnknownArguments Msg Failed
274 */
275 HWTEST_F(AccessibilityAbilityUtilsTest, GetUnknownArgumentsMsg_0100, Function | MediumTest | Level1)
276 {
277 std::vector<std::string> unknownArguments;
278 auto result = AccessibilityUtils::GetUnknownArgumentsMsg(unknownArguments);
279 EXPECT_EQ(result, "");
280 }
281
282 /**
283 * @tc.number: GetUnknownArgumentsMsg_0200
284 * @tc.name: GetUnknownArgumentsMsg
285 * @tc.desc: Get UnknownArguments Msg Success
286 */
287 HWTEST_F(AccessibilityAbilityUtilsTest, GetUnknownArgumentsMsg_0200, Function | MediumTest | Level1)
288 {
289 std::vector<std::string> unknownArguments;
290 unknownArguments.emplace_back("abilityInfo");
291 auto result = AccessibilityUtils::GetUnknownArgumentsMsg(unknownArguments);
292 EXPECT_EQ(result, "abilityInfo ");
293 }
294
295 /**
296 * @tc.number: GetUnknownArgumentsMsg_0300
297 * @tc.name: GetUnknownArgumentsMsg
298 * @tc.desc: Get UnknownArguments Msg Success
299 */
300 HWTEST_F(AccessibilityAbilityUtilsTest, GetUnknownArgumentsMsg_0300, Function | MediumTest | Level1)
301 {
302 std::vector<std::string> unknownArguments;
303 unknownArguments.emplace_back("abilityInfo");
304 unknownArguments.emplace_back("bundleInfo");
305 auto result = AccessibilityUtils::GetUnknownArgumentsMsg(unknownArguments);
306 EXPECT_EQ(result, "abilityInfo bundleInfo ");
307 }
308
309 /**
310 * @tc.number: IsValidStateString_0100
311 * @tc.name: IsValidStateString
312 * @tc.desc: Is Valid State String
313 */
314 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidStateString_0100, Function | MediumTest | Level1)
315 {
316 std::string unknownArguments = " 0 ";
317 auto result = AccessibilityUtils::IsValidStateString(unknownArguments);
318 EXPECT_TRUE(result);
319 }
320
321 /**
322 * @tc.number: IsValidStateString_0200
323 * @tc.name: IsValidStateString
324 * @tc.desc: Is Valid State String
325 */
326 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidStateString_0200, Function | MediumTest | Level1)
327 {
328 std::string unknownArguments = " 1 ";
329 auto result = AccessibilityUtils::IsValidStateString(unknownArguments);
330 EXPECT_TRUE(result);
331 }
332
333 /**
334 * @tc.number: IsValidStateString_0300
335 * @tc.name: IsValidStateString
336 * @tc.desc: Is Not ValidState String
337 */
338 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidStateString_0300, Function | MediumTest | Level1)
339 {
340 std::string unknownArguments = " a ";
341 auto result = AccessibilityUtils::IsValidStateString(unknownArguments);
342 EXPECT_FALSE(result);
343 }
344
345 /**
346 * @tc.number: IsValidStateString_0400
347 * @tc.name: IsValidStateString
348 * @tc.desc: Is Not Valid State String
349 */
350 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidStateString_0400, Function | MediumTest | Level1)
351 {
352 std::string unknownArguments;
353 auto result = AccessibilityUtils::IsValidStateString(unknownArguments);
354 EXPECT_FALSE(result);
355 }
356
357 /**
358 * @tc.number: IsValidIntString_0100
359 * @tc.name: IsValidIntString
360 * @tc.desc: Is Not Valid Int String
361 */
362 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0100, Function | MediumTest | Level1)
363 {
364 std::string unknownArguments;
365 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 0);
366 EXPECT_FALSE(result);
367 }
368
369 /**
370 * @tc.number: IsValidIntString_0200
371 * @tc.name: IsValidIntString
372 * @tc.desc: Is Not Valid Int String
373 */
374 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0200, Function | MediumTest | Level1)
375 {
376 std::string unknownArguments = "-1111";
377 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 0);
378 EXPECT_FALSE(result);
379 }
380
381 /**
382 * @tc.number: IsValidIntString_0300
383 * @tc.name: IsValidIntString
384 * @tc.desc: Is Not Valid Int String
385 */
386 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0300, Function | MediumTest | Level1)
387 {
388 std::string unknownArguments = "+1111";
389 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 0);
390 EXPECT_FALSE(result);
391 }
392
393 /**
394 * @tc.number: IsValidIntString_0400
395 * @tc.name: IsValidIntString
396 * @tc.desc: Is Not Valid Int String
397 */
398 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0400, Function | MediumTest | Level1)
399 {
400 std::string unknownArguments = "+3";
401 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 0);
402 EXPECT_FALSE(result);
403 }
404
405 /**
406 * @tc.number: IsValidIntString_0500
407 * @tc.name: IsValidIntString
408 * @tc.desc: Is Valid Int String
409 */
410 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0500, Function | MediumTest | Level1)
411 {
412 std::string unknownArguments = "+3";
413 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 1000);
414 EXPECT_TRUE(result);
415 }
416
417 /**
418 * @tc.number: IsValidIntString_0600
419 * @tc.name: IsValidIntString
420 * @tc.desc: Is Valid Int String
421 */
422 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0600, Function | MediumTest | Level1)
423 {
424 std::string unknownArguments = "+";
425 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 1000);
426 EXPECT_TRUE(result);
427 }
428
429 /**
430 * @tc.number: IsValidIntString_0700
431 * @tc.name: IsValidIntString
432 * @tc.desc: Is Valid Int String
433 */
434 HWTEST_F(AccessibilityAbilityUtilsTest, IsValidIntString_0700, Function | MediumTest | Level1)
435 {
436 std::string unknownArguments = "-0";
437 auto result = AccessibilityUtils::IsValidIntString(unknownArguments, 0, 1000);
438 EXPECT_TRUE(result);
439 }
440
441 /**
442 * @tc.number: Trim_0100
443 * @tc.name: Trim
444 * @tc.desc: Trim Null String
445 */
446 HWTEST_F(AccessibilityAbilityUtilsTest, Trim_0100, Function | MediumTest | Level1)
447 {
448 std::string inputStr = "";
449 auto result = AccessibilityUtils::Trim(inputStr);
450 EXPECT_EQ(result, "");
451 }
452
453 /**
454 * @tc.number: Trim_0200
455 * @tc.name: Trim
456 * @tc.desc: Trim String Success
457 */
458 HWTEST_F(AccessibilityAbilityUtilsTest, Trim_0200, Function | MediumTest | Level1)
459 {
460 std::string inputStr = " 12121";
461 auto result = AccessibilityUtils::Trim(inputStr);
462 EXPECT_EQ(result, "12121");
463 }
464
465 /**
466 * @tc.number: Trim_0300
467 * @tc.name: Trim
468 * @tc.desc: Trim String Success
469 */
470 HWTEST_F(AccessibilityAbilityUtilsTest, Trim_0300, Function | MediumTest | Level1)
471 {
472 std::string inputStr = " 12121 ";
473 auto result = AccessibilityUtils::Trim(inputStr);
474 EXPECT_EQ(result, "12121");
475 }
476
477 /**
478 * @tc.number: Trim_0400
479 * @tc.name: Trim
480 * @tc.desc: Trim String Success
481 */
482 HWTEST_F(AccessibilityAbilityUtilsTest, Trim_0400, Function | MediumTest | Level1)
483 {
484 std::string inputStr = " 121 21 ";
485 auto result = AccessibilityUtils::Trim(inputStr);
486 EXPECT_EQ(result, "121 21");
487 }
488
489 /**
490 * @tc.number: AddPermission_0100
491 * @tc.name: AddPermission
492 * @tc.desc: Add Permission Success
493 */
494 HWTEST_F(AccessibilityAbilityUtilsTest, AddPermission_0100, Function | MediumTest | Level1)
495 {
496 auto result = AccessibilityUtils::AddPermission();
497 EXPECT_EQ(result, 0);
498 }
499