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
16 #include <gtest/gtest.h>
17 #include "accessibility_ability_info.h"
18 #include "accessibility_account_data.h"
19 #include "accessibility_element_operator_proxy.h"
20 #include "accessibility_element_operator_stub.h"
21 #include "accessibility_system_ability_client.h"
22 #include "accessible_ability_client_stub_impl.h"
23 #include "accessible_ability_manager_service_state_proxy.h"
24 #include "accessible_ability_manager_service_state_stub.h"
25
26 using namespace testing;
27 using namespace testing::ext;
28 using namespace std;
29
30 namespace OHOS {
31 namespace Accessibility {
32 class AccessibilityAccountDataTest : public testing::Test {
33 public:
AccessibilityAccountDataTest()34 AccessibilityAccountDataTest() {}
~AccessibilityAccountDataTest()35 ~AccessibilityAccountDataTest() {}
36
37 static void SetUpTestCase();
38 static void TearDownTestCase();
39 void SetUp() override;
40 void TearDown() override;
41 };
42
SetUpTestCase()43 void AccessibilityAccountDataTest::SetUpTestCase()
44 {
45 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest SetUpTestCase";
46 }
47
TearDownTestCase()48 void AccessibilityAccountDataTest::TearDownTestCase()
49 {
50 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest TearDownTestCase";
51 }
52
SetUp()53 void AccessibilityAccountDataTest::SetUp()
54 {
55 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest SetUp";
56 }
57
TearDown()58 void AccessibilityAccountDataTest::TearDown()
59 {
60 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest TearDown";
61 }
62
63 /**
64 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState001
65 * @tc.name: GetAccessibilityState
66 * @tc.desc: Check the get accessibility state.
67 */
68 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState001, TestSize.Level1)
69 {
70 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState001 start";
71 int accountId = 1;
72 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
73 /* Initial state */
74 accountData->SetTouchGuideState(true);
75 int stateType = accountData->GetAccessibilityState();
76 int stateTypeTest = AccessibilitySystemAbilityClient::STATE_EXPLORATION_ENABLED;
77 EXPECT_EQ(stateTypeTest, stateType);
78 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState001 end";
79 }
80
81 /**
82 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState002
83 * @tc.name: GetAccessibilityState
84 * @tc.desc: Check the get accessibility state.
85 */
86 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState002, TestSize.Level1)
87 {
88 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState002 start";
89 const int accountId = 1;
90 int connectCounter = 0;
91 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
92 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
93 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
94 *abilityInfo);
95 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
96 /* add connected ability */
97 accountData->AddConnectedAbility(connection);
98 const std::string elementName = connection->GetElementName().GetURI();
99 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
100 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
101
102 accountData->SetCaptionState(true);
103 int stateType = accountData->GetAccessibilityState();
104 int stateTypeTest = AccessibilitySystemAbilityClient::STATE_ACCESSIBILITY_ENABLED |
105 AccessibilitySystemAbilityClient::STATE_CAPTION_ENABLED;
106 EXPECT_EQ(stateTypeTest, stateType);
107
108 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState002 end";
109 }
110
111 /**
112 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState003
113 * @tc.name: GetAccessibilityState
114 * @tc.desc: Check the get accessibility state.
115 */
116 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState003, TestSize.Level1)
117 {
118 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState003 start";
119 const int accountId = 1;
120 int connectCounter = 0;
121 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
122 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
123 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
124 *abilityInfo);
125 EXPECT_EQ(0, (int)accountData->GetConnectingA11yAbilities().size());
126 /* add connecting A11y ability */
127 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
128 accountData->AddConnectingA11yAbility(elementName);
129 bool test = accountData->GetConnectingA11yAbilities().find(elementName.GetURI()) !=
130 accountData->GetConnectingA11yAbilities().end();
131 EXPECT_TRUE(test);
132 EXPECT_EQ(1, (int)accountData->GetConnectingA11yAbilities().size());
133
134 accountData->SetKeyEventObserverState(true);
135
136 int stateType = accountData->GetAccessibilityState();
137 int stateTypeTest = AccessibilitySystemAbilityClient::STATE_ACCESSIBILITY_ENABLED |
138 AccessibilitySystemAbilityClient::STATE_KEYEVENT_ENABLED;
139 EXPECT_EQ(stateTypeTest, stateType);
140
141 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState003 end";
142 }
143
144 /**
145 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState004
146 * @tc.name: GetAccessibilityState
147 * @tc.desc: Check the get accessibility state.
148 */
149 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState004, TestSize.Level1)
150 {
151 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState004 start";
152 const int accountId = 1;
153 int connectCounter = 0;
154 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
155 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
156 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
157 *abilityInfo);
158 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
159 /* add connected ability */
160 accountData->AddConnectedAbility(connection);
161 /* add connecting A11y ability */
162 accountData->AddConnectingA11yAbility(elementName);
163
164 accountData->SetGestureState(true);
165
166 int stateType = accountData->GetAccessibilityState();
167 int stateTypeTest = AccessibilitySystemAbilityClient::STATE_ACCESSIBILITY_ENABLED |
168 AccessibilitySystemAbilityClient::STATE_GESTURE_ENABLED;
169 EXPECT_EQ(stateTypeTest, stateType);
170
171 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState004 end";
172 }
173
174 /**
175 * @tc.number: AccessibilityAccountData_Unittest_AddConnectedAbility001
176 * @tc.name: AddConnectedAbility
177 * @tc.desc: Check the add connected ability.
178 */
179 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddConnectedAbility001, TestSize.Level1)
180 {
181 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectedAbility001 start";
182 const int accountId = 1;
183 int connectCounter = 0;
184 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
185 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
186 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
187 *abilityInfo);
188 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
189 /* add connected ability */
190 accountData->AddConnectedAbility(connection);
191 const std::string elementName = connection->GetElementName().GetURI();
192 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
193 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
194
195 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectedAbility001 end";
196 }
197
198 /**
199 * @tc.number: AccessibilityAccountData_Unittest_RemoveConnectedAbility001
200 * @tc.name: RemoveConnectedAbility
201 * @tc.desc: Check the remove connected ability.
202 */
203 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveConnectedAbility001, TestSize.Level1)
204 {
205 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectedAbility001 start";
206 const int accountId = 1;
207 int connectCounter = 0;
208 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
209 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
210 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
211 *abilityInfo);
212 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
213 /* add */
214 accountData->AddConnectedAbility(connection);
215 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
216 const std::string elementName = connection->GetElementName().GetURI();
217 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
218 /* remove */
219 accountData->RemoveConnectedAbility(connection);
220 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
221
222 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectedAbility001 end";
223 }
224
225 /**
226 * @tc.number: AccessibilityAccountData_Unittest_AbilityDisconnected001
227 * @tc.name: AbilityDisconnected
228 * @tc.desc: Check the ability disconnected.
229 */
230 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AbilityDisconnected001, TestSize.Level1)
231 {
232 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AbilityDisconnected001 start";
233 const int accountId = 1;
234 int connectCounter = 0;
235 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
236 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
237 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
238 *abilityInfo);
239 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
240 /* add */
241 accountData->AddConnectedAbility(connection);
242 const std::string elementNameURI = connection->GetElementName().GetURI();
243 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
244 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementNameURI));
245
246 EXPECT_EQ(0, (int)accountData->GetConnectingA11yAbilities().size());
247 /* disconnect */
248 accountData->RemoveConnectedAbility(connection);
249 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
250 AppExecFwk::ElementName& elementName = connection->GetElementName();
251 bool test = accountData->GetConnectingA11yAbilities().find(elementName.GetURI()) !=
252 accountData->GetConnectingA11yAbilities().end();
253 EXPECT_TRUE(test);
254
255 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AbilityDisconnected001 end";
256 }
257
258 /**
259 * @tc.number: AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001
260 * @tc.name: RemoveConnectingA11yAbility
261 * @tc.desc: Check the remove connecting A11y ability.GetAccessibilityWindows
262 */
263 HWTEST_F(AccessibilityAccountDataTest,
264 AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001, TestSize.Level1)
265 {
266 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001 start";
267 const int accountId = 1;
268 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
269 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
270 EXPECT_EQ(0, (int)accountData->GetConnectingA11yAbilities().size());
271 /* add connecting A11y ability */
272 accountData->AddConnectingA11yAbility(elementName);
273 EXPECT_EQ(1, (int)accountData->GetConnectingA11yAbilities().size());
274 bool test = accountData->GetConnectingA11yAbilities().find(elementName.GetURI()) !=
275 accountData->GetConnectingA11yAbilities().end();
276 EXPECT_TRUE(test);
277 /* remove */
278 accountData->RemoveConnectingA11yAbility(elementName);
279 EXPECT_EQ(0, (int)accountData->GetConnectingA11yAbilities().size());
280
281 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001 end";
282 }
283
284 /**
285 * @tc.number: AccessibilityAccountData_Unittest_AddEnabledAbility001
286 * @tc.name: AddEnabledAbility
287 * @tc.desc: Check the add enable ability.
288 */
289 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddEnabledAbility001, TestSize.Level1)
290 {
291 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddEnabledAbility001 start";
292 const int accountId = 1;
293 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
294 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
295 EXPECT_EQ(0, (int)accountData->GetEnabledAbilities().size());
296 /* add */
297 accountData->AddEnabledAbility(elementName);
298 EXPECT_EQ(1, (int)accountData->GetEnabledAbilities().size());
299 bool test =
300 accountData->GetEnabledAbilities().find(elementName.GetURI()) != accountData->GetEnabledAbilities().end();
301 EXPECT_TRUE(test);
302
303 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddEnabledAbility001 end";
304 }
305
306 /**
307 * @tc.number: AccessibilityAccountData_Unittest_RemoveEnabledAbility001
308 * @tc.name: RemoveEnabledAbility
309 * @tc.desc: Check the remove enable ability.
310 */
311 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveEnabledAbility001, TestSize.Level1)
312 {
313 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility001 start";
314 const int accountId = 1;
315 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
316 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
317 EXPECT_EQ(0, (int)accountData->GetEnabledAbilities().size());
318 /* add */
319 accountData->AddEnabledAbility(elementName);
320 EXPECT_EQ(1, (int)accountData->GetEnabledAbilities().size());
321 bool test =
322 accountData->GetEnabledAbilities().find(elementName.GetURI()) != accountData->GetEnabledAbilities().end();
323 EXPECT_TRUE(test);
324 /* remove */
325 accountData->RemoveEnabledAbility(elementName);
326 EXPECT_EQ(0, (int)accountData->GetEnabledAbilities().size());
327
328 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility001 end";
329 }
330
331 /**
332 * @tc.number: AccessibilityAccountData_Unittest_AddInstalledAbility001
333 * @tc.name: AddInstalledAbility
334 * @tc.desc: Check the add install ability.
335 */
336 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddInstalledAbility001, TestSize.Level1)
337 {
338 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddInstalledAbility001 start";
339 const int accountId = 1;
340 AppExecFwk::ExtensionAbilityInfo info;
341 info.bundleName = "TEST_BUNDLE_NAME";
342 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo(info);
343 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
344 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
345 /* add */
346 accountData->AddInstalledAbility(*abilityInfo);
347 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
348
349 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddInstalledAbility001 end";
350 }
351
352 /**
353 * @tc.number: AccessibilityAccountData_Unittest_RemoveInstalledAbility001
354 * @tc.name: RemoveInstalledAbility
355 * @tc.desc: Check the remove install ability.
356 */
357 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveInstalledAbility001, TestSize.Level1)
358 {
359 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveInstalledAbility001 start";
360 const int accountId = 1;
361 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
362 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
363 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
364 /* add */
365 accountData->AddInstalledAbility(*abilityInfo);
366 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
367 /* remove */
368 accountData->RemoveInstalledAbility(abilityInfo->GetPackageName());
369 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
370
371 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveInstalledAbility001 end";
372 }
373
374 /**
375 * @tc.number: AccessibilityAccountData_Unittest_ClearInstalledAbility001
376 * @tc.name: ClearInstalledAbility
377 * @tc.desc: Check the clear install ability.
378 */
379 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ClearInstalledAbility001, TestSize.Level1)
380 {
381 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility001 start";
382 const int accountId = 1;
383 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
384 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
385 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
386 /* add */
387 accountData->AddInstalledAbility(*abilityInfo);
388 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
389 /* clear */
390 accountData->ClearInstalledAbility();
391 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
392
393 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility001 end";
394 }
395
396 /**
397 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001
398 * @tc.name: GetAccessibleAbilityConnection
399 * @tc.desc: Check the get accessibility connection.
400 */
401 HWTEST_F(AccessibilityAccountDataTest,
402 AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001, TestSize.Level1)
403 {
404 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001 start";
405 const int accountId = 1;
406 int connectCounter = 0;
407 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
408 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
409 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
410 *abilityInfo);
411 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
412 accountData->AddConnectedAbility(connection);
413 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
414 const std::string elementName = connection->GetElementName().GetURI();
415 /* get */
416 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
417 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001 end";
418 }
419
420 /**
421 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002
422 * @tc.name: GetAccessibleAbilityConnection
423 * @tc.desc: Check the get accessibility connection.
424 */
425 HWTEST_F(AccessibilityAccountDataTest,
426 AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002, TestSize.Level1)
427 {
428 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002 start";
429 const int accountId = 1;
430 int connectCounter = 0;
431 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
432 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
433 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
434 *abilityInfo);
435 accountData->AddConnectedAbility(connection);
436 const std::string elementName = "111name";
437 /* get */
438 EXPECT_EQ(nullptr, accountData->GetAccessibleAbilityConnection(elementName));
439 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002 end";
440 }
441
442 /**
443 * @tc.number: AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001
444 * @tc.name: GetConnectedA11yAbilities
445 * @tc.desc: Check the get connected abilities.
446 */
447 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001, TestSize.Level1)
448 {
449 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001 start";
450 const int accountId = 1;
451 int connectCounter = 0;
452 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
453 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
454 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
455 *abilityInfo);
456 /* get */
457 int size = accountData->GetConnectedA11yAbilities().size();
458 EXPECT_EQ(0, size);
459 /* add */
460 accountData->AddConnectedAbility(connection);
461 /* get */
462 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
463
464 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001 end";
465 }
466
467 /**
468 * @tc.number: AccessibilityAccountData_Unittest_GetStateCallbacks001
469 * @tc.name: GetStateCallbacks
470 * @tc.desc: Check the get state callbacks.
471 */
472 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetStateCallbacks001, TestSize.Level1)
473 {
474 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetStateCallbacks001 start";
475 const int accountId = 1;
476 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
477 sptr<AccessibleAbilityManagerServiceStateStub> stub = new AccessibleAbilityManagerServiceStateStub();
478 const sptr<IAccessibleAbilityManagerServiceState> state = new AccessibleAbilityManagerServiceStateProxy(stub);
479 /* get */
480 int size = accountData->GetStateCallbacks().size();
481 EXPECT_EQ(0, size);
482 /* add */
483 accountData->AddStateCallback(state);
484 /* get */
485 EXPECT_EQ(1, (int)accountData->GetStateCallbacks().size());
486
487 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetStateCallbacks001 end";
488 }
489
490 /**
491 * @tc.number: AccessibilityAccountData_Unittest_GetAsacConnections001
492 * @tc.name: GetAsacConnections
493 * @tc.desc: Check the get asac connections.
494 */
495 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAsacConnections001, TestSize.Level1)
496 {
497 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAsacConnections001 start";
498 const int accountId = 1;
499 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
500 /* get */
501 int size = accountData->GetAsacConnections().size();
502 EXPECT_EQ(0, size);
503
504 const int windowId = 1;
505 sptr<AccessibilityElementOperatorStub> operationStub = new AccessibilityElementOperatorStub();
506 sptr<IAccessibilityElementOperator> operation = new AccessibilityElementOperatorProxy(operationStub);
507 sptr<AccessibilityWindowConnection> operationConnection = new AccessibilityWindowConnection(windowId,
508 operation, accountId);
509 /* add asacConnections */
510 accountData->AddAccessibilityWindowConnection(windowId, operationConnection);
511 /* get */
512 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
513
514 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAsacConnections001 end";
515 }
516
517 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetEnabled, TestSize.Level1)
518 {
519 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetEnabled start";
520 const int accountId = 1;
521 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
522
523 bool state = true;
524 bool test = accountData->SetEnabled(state);
525 EXPECT_TRUE(test);
526
527 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetEnabled end";
528 }
529
530 /**
531 * @tc.number: AccessibilityAccountData_Unittest_GetAbilitiesByState001
532 * @tc.name: GetAbilitiesByState
533 * @tc.desc: Check the get ability state.
534 */
535 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAbilitiesByState001, TestSize.Level1)
536 {
537 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState001 start";
538 const int accountId = 1;
539 int connectCounter = 0;
540 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
541 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
542 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
543 *abilityInfo);
544 /* add connected ability */
545 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
546 accountData->AddConnectedAbility(connection);
547 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
548 /* ABILITY_STATE_ENABLE */
549 int stateType = AbilityStateType::ABILITY_STATE_ENABLE;
550 AbilityStateType state = static_cast<AbilityStateType>(stateType);
551 /* get ability */
552 std::vector<AccessibilityAbilityInfo> enabledAbilities = accountData->GetAbilitiesByState(state);
553 EXPECT_EQ(1, (int)enabledAbilities.size());
554 EXPECT_EQ(connection->GetAbilityInfo().GetPackageName(), enabledAbilities.begin()->GetPackageName());
555
556 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState001 end";
557 }
558
559 /**
560 * @tc.number: AccessibilityAccountData_Unittest_GetAbilitiesByState003
561 * @tc.name: GetAbilitiesByState
562 * @tc.desc: Check the get ability state.
563 */
564 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAbilitiesByState003, TestSize.Level1)
565 {
566 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState003 start";
567 const int accountId = 1;
568 int connectCounter = 0;
569 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo();
570 AppExecFwk::ExtensionAbilityInfo info;
571 info.name = "TEST_ABILITY_NAME";
572 info.bundleName = "TEST_BUNDLE_NAME";
573 sptr<AccessibilityAbilityInfo> installAbilityInfo = new AccessibilityAbilityInfo(info);
574 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
575 sptr<AccessibleAbilityConnection> connection = new AccessibleAbilityConnection(accountData, connectCounter++,
576 *abilityInfo);
577 EXPECT_NE(abilityInfo->GetId(), installAbilityInfo->GetId());
578 /* add connected ability */
579 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
580 accountData->AddConnectedAbility(connection);
581 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
582 /* add install ability */
583 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
584 accountData->AddInstalledAbility(*installAbilityInfo);
585 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
586 /* ABILITY_STATE_DISABLE */
587 int stateType = AbilityStateType::ABILITY_STATE_DISABLE;
588 AbilityStateType state = static_cast<AbilityStateType>(stateType);
589 /* get ability */
590 std::vector<AccessibilityAbilityInfo> disabledAbilities = accountData->GetAbilitiesByState(state);
591 EXPECT_EQ(1, (int)disabledAbilities.size());
592
593 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState003 end";
594 }
595
596 /**
597 * @tc.number: AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001
598 * @tc.name: AddAccessibilityWindowConnection
599 * @tc.desc: Check the add accessibility interaction connection.
600 */
601 HWTEST_F(AccessibilityAccountDataTest,
602 AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001, TestSize.Level1)
603 {
604 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001 star";
605 const int accountId = 1;
606 const int windowId = 1;
607 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
608 sptr<AccessibilityElementOperatorStub> stub = new AccessibilityElementOperatorStub();
609 sptr<IAccessibilityElementOperator> operation = new AccessibilityElementOperatorProxy(stub);
610 sptr<AccessibilityWindowConnection> connection = new AccessibilityWindowConnection(windowId,
611 operation, accountId);
612 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
613 /* add */
614 accountData->AddAccessibilityWindowConnection(windowId, connection);
615 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
616 /* get */
617 EXPECT_EQ(connection, accountData->GetAccessibilityWindowConnection(windowId));
618
619 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001 end";
620 }
621
622 /**
623 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001
624 * @tc.name: GetAccessibilityWindowConnection
625 * @tc.desc: Check the get accessibility interaction connection.
626 */
627 HWTEST_F(AccessibilityAccountDataTest,
628 AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001, TestSize.Level1)
629 {
630 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001 star";
631 const int accountId = 1;
632 const int windowId = 1;
633 const int windowIdTest = 2;
634 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
635 sptr<AccessibilityElementOperatorStub> stub = new AccessibilityElementOperatorStub();
636 sptr<IAccessibilityElementOperator> operation = new AccessibilityElementOperatorProxy(stub);
637 sptr<AccessibilityWindowConnection> connection = new AccessibilityWindowConnection(windowId,
638 operation, accountId);
639 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
640 /* add */
641 accountData->AddAccessibilityWindowConnection(windowId, connection);
642 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
643 /* get */
644 EXPECT_EQ(nullptr, accountData->GetAccessibilityWindowConnection(windowIdTest));
645
646 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001 end";
647 }
648
649 /**
650 * @tc.number: AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001
651 * @tc.name: RemoveAccessibilityWindowConnection
652 * @tc.desc: Check the remove accessibility interaction connection.
653 */
654 HWTEST_F(AccessibilityAccountDataTest,
655 AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001, TestSize.Level1)
656 {
657 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001 star";
658 const int accountId = 1;
659 const int windowId = 1;
660 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
661 sptr<AccessibilityElementOperatorStub> stub = new AccessibilityElementOperatorStub();
662 sptr<IAccessibilityElementOperator> operation = new AccessibilityElementOperatorProxy(stub);
663 sptr<AccessibilityWindowConnection> connection = new AccessibilityWindowConnection(windowId,
664 operation, accountId);
665 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
666 /* add */
667 accountData->AddAccessibilityWindowConnection(windowId, connection);
668 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
669 /* remove */
670 accountData->RemoveAccessibilityWindowConnection(windowId);
671 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
672
673 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001 end";
674 }
675
676 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetCaptionState, TestSize.Level1)
677 {
678 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionState start";
679 const int accountId = 1;
680 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
681
682 bool state = true;
683 bool test = accountData->SetCaptionState(state);
684 EXPECT_TRUE(test);
685
686 bool result = accountData->GetCaptionState();
687 EXPECT_TRUE(result);
688
689 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionState end";
690 }
691
692 /**
693 * @tc.number: AccessibilityAccountData_Unittest_OnAccountSwitched001
694 * @tc.name: OnAccountSwitched
695 * @tc.desc: Check the account switched.
696 */
697 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_OnAccountSwitched001, TestSize.Level1)
698 {
699 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_OnAccountSwitched001 start";
700 // new accountData
701 const int accountId = 101;
702 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
703 // new abilityInfo
704 AppExecFwk::ExtensionAbilityInfo info;
705 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo(info);
706 abilityInfo->SetCapabilityValues(
707 CAPABILITY_RETRIEVE | CAPABILITY_TOUCH_GUIDE | CAPABILITY_GESTURE |
708 CAPABILITY_KEY_EVENT_OBSERVER | CAPABILITY_ZOOM);
709 // new AAconnection
710 sptr<AccessibleAbilityConnection> AAConnection = new AccessibleAbilityConnection(accountData, 0, *abilityInfo);
711 // new aastub
712 sptr<AccessibleAbilityClientStubImpl> aastub = new AccessibleAbilityClientStubImpl();
713 GTEST_LOG_(INFO) << "OnAbilityConnectDone start !!!!!";
714 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
715 AAConnection->OnAbilityConnectDone(elementName, aastub, 0);
716 GTEST_LOG_(INFO) << "add connected A11y Ability";
717 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
718 /* CapabilityValues */
719 accountData->UpdateAccountCapabilities();
720 bool test1 = accountData->GetGesturesSimulationFlag();
721 EXPECT_TRUE(test1);
722 bool test2 = accountData->GetFilteringKeyEventsFlag();
723 EXPECT_TRUE(test2);
724 bool test3 = accountData->GetEventTouchGuideStateFlag();
725 EXPECT_TRUE(test3);
726 bool test4 = accountData->GetScreenMagnificationFlag();
727 EXPECT_TRUE(test4);
728 /* Account Switched */
729 GTEST_LOG_(INFO) << "OnAccountSwitched";
730 accountData->OnAccountSwitched();
731 /* initialization */
732 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
733 bool test5 = accountData->GetGesturesSimulationFlag();
734 EXPECT_FALSE(test5);
735 bool test6 = accountData->GetFilteringKeyEventsFlag();
736 EXPECT_FALSE(test6);
737 bool test7 = accountData->GetEventTouchGuideStateFlag();
738 EXPECT_FALSE(test7);
739 bool test8 = accountData->GetScreenMagnificationFlag();
740 EXPECT_FALSE(test8);
741 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_OnAccountSwitched001 end";
742 }
743
744 /**
745 * @tc.number: AccessibilityAccountData_Unittest_AddConnectingA11yAbility001
746 * @tc.name: AddConnectingA11yAbility
747 * @tc.desc: Check the add connecting A11y ability.
748 */
749 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddConnectingA11yAbility001, TestSize.Level1)
750 {
751 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectingA11yAbility001 start";
752 const int accountId = 1;
753 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
754 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
755 EXPECT_EQ(0, (int)accountData->GetConnectingA11yAbilities().size());
756 /* add connecting A11y ability */
757 accountData->AddConnectingA11yAbility(elementName);
758 EXPECT_EQ(1, (int)accountData->GetConnectingA11yAbilities().size());
759 bool test = accountData->GetConnectingA11yAbilities().find(elementName.GetURI()) !=
760 accountData->GetConnectingA11yAbilities().end();
761 EXPECT_TRUE(test);
762
763 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectingA11yAbility001 end";
764 }
765
766 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetTouchGuideState, TestSize.Level1)
767 {
768 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetTouchGuideState start";
769 const int accountId = 1;
770 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
771
772 bool state = true;
773 bool test = accountData->SetTouchGuideState(state);
774 EXPECT_TRUE(test);
775
776 bool result = accountData->GetTouchGuideState();
777 EXPECT_TRUE(result);
778
779 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetTouchGuideState end";
780 }
781
782 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetGestureState, TestSize.Level1)
783 {
784 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetGestureState start";
785 const int accountId = 1;
786 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
787
788 bool state = false;
789 bool test = accountData->SetGestureState(state);
790 EXPECT_TRUE(test);
791
792 bool result = accountData->GetGestureState();
793 EXPECT_FALSE(result);
794
795 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetGestureState end";
796 }
797
798 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetKeyEventObserverState, TestSize.Level1)
799 {
800 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetKeyEventObserverState start";
801 const int accountId = 1;
802 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
803
804 bool state = true;
805 bool test = accountData->SetKeyEventObserverState(state);
806 EXPECT_TRUE(test);
807
808 bool result = accountData->GetKeyEventObserverState();
809 EXPECT_TRUE(result);
810
811 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetKeyEventObserverState end";
812 }
813
814 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetCaptionProperty, TestSize.Level1)
815 {
816 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionProperty start";
817 const int accountId = 1;
818 AppExecFwk::ExtensionAbilityInfo info;
819 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo(info);
820 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
821
822 CaptionProperty caption;
823 bool test = accountData->SetCaptionProperty(caption);
824 EXPECT_TRUE(test);
825
826 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionProperty end";
827 }
828
829 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ClearInstalledAbility, TestSize.Level1)
830 {
831 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility start";
832 const int accountId = 1;
833 AppExecFwk::ExtensionAbilityInfo info;
834 info.bundleName = "TEST_BUNDLE_NAME";
835 sptr<AccessibilityAbilityInfo> abilityInfo = new AccessibilityAbilityInfo(info);
836 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
837
838 accountData->AddInstalledAbility(*abilityInfo);
839 accountData->ClearInstalledAbility();
840
841 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility end";
842 }
843
844 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveEnabledAbility, TestSize.Level1)
845 {
846 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility start";
847 const int accountId = 1;
848 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
849
850 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
851 accountData->RemoveEnabledAbility(elementName);
852
853 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility end";
854 }
855
856 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetEnabledObj, TestSize.Level1)
857 {
858 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetEnabledObj start";
859 const int accountId = 1;
860 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
861
862 const AppExecFwk::ElementName elementName("aaa", "TEST_BUNDLE_NAME", "ccc");
863
864 /* add */
865 accountData->AddEnabledAbility(elementName);
866 /* get */
867 EXPECT_EQ(1, (int)accountData->GetEnabledAbilities().size());
868
869 bool test = accountData->SetEnabledObj(accountData->GetEnabledAbilities());
870 EXPECT_TRUE(test);
871
872 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetEnabledObj end";
873 }
874 } // namespace Accessibility
875 } // namespace OHOS