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_common_helper.h"
20 #include "accessibility_constants.h"
21 #include "accessibility_element_operator_proxy.h"
22 #include "accessibility_element_operator_stub.h"
23 #include "accessibility_ut_helper.h"
24 #include "accessible_ability_manager_service.h"
25 #include "mock_accessibility_element_operator_proxy.h"
26 #include "mock_accessibility_element_operator_stub.h"
27 #include "mock_accessible_ability_client_stub_impl.h"
28 #include "mock_accessible_ability_connection.h"
29 #include "mock_accessible_ability_manager_service_config_observer_proxy.h"
30 #include "mock_accessible_ability_manager_service_config_observer_stub.h"
31 #include "mock_accessible_ability_manager_service_state_observer_proxy.h"
32 #include "mock_accessible_ability_manager_service_state_observer_stub.h"
33 #include "utils.h"
34
35 using namespace testing;
36 using namespace testing::ext;
37
38 namespace OHOS {
39 namespace Accessibility {
40 namespace {
41 constexpr uint32_t SLEEP_TIME_1 = 1;
42 constexpr size_t IMPORTANT_ABILITIES_SIZE = 1;
43 } // namespace
44
45 class AccessibilityAccountDataTest : public testing::Test {
46 public:
AccessibilityAccountDataTest()47 AccessibilityAccountDataTest()
48 {}
~AccessibilityAccountDataTest()49 ~AccessibilityAccountDataTest()
50 {}
51
52 static void SetUpTestCase();
53 static void TearDownTestCase();
54 void SetUp() override;
55 void TearDown() override;
56 };
57
SetUpTestCase()58 void AccessibilityAccountDataTest::SetUpTestCase()
59 {
60 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest SetUpTestCase";
61 Singleton<AccessibleAbilityManagerService>::GetInstance().OnStart();
62 Singleton<AccessibleAbilityManagerService>::GetInstance().SwitchedUser(AccessibilityAbilityHelper::accountId_);
63 }
64
TearDownTestCase()65 void AccessibilityAccountDataTest::TearDownTestCase()
66 {
67 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest TearDownTestCase";
68 Singleton<AccessibleAbilityManagerService>::GetInstance().OnStop();
69 }
70
SetUp()71 void AccessibilityAccountDataTest::SetUp()
72 {
73 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest SetUp";
74 }
75
TearDown()76 void AccessibilityAccountDataTest::TearDown()
77 {
78 GTEST_LOG_(INFO) << "AccessibilityAccountDataTest TearDown";
79 }
80
81 /**
82 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState001
83 * @tc.name: GetAccessibilityState
84 * @tc.desc: Check the get accessibility state.
85 */
86 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState001, TestSize.Level1)
87 {
88 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState001 start";
89 int32_t accountId = 1;
90 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
91 /* Initial state */
92
93 accountData->Init();
94 accountData->GetConfig()->SetTouchGuideState(true);
95 uint32_t stateType = accountData->GetAccessibilityState();
96 uint32_t stateTypeTest = Accessibility::STATE_EXPLORATION_ENABLED;
97 EXPECT_EQ(stateTypeTest, stateType);
98 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState001 end";
99 }
100
101 /**
102 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState002
103 * @tc.name: GetAccessibilityState
104 * @tc.desc: Check the get accessibility state.
105 */
106 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState002, TestSize.Level1)
107 {
108 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState_002 start";
109 const int32_t accountId = 1;
110 int32_t connectCounter = 0;
111 AccessibilityAbilityInitParams initParams;
112 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
113
114 sptr<AccessibleAbilityConnection> connection =
115 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
116 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
117 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
118 /* add connected ability */
119 accountData->AddConnectedAbility(connection);
120 const std::string elementName = Utils::GetUri(connection->GetElementName());
121 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
122 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
123
124 accountData->Init();
125 uint32_t stateType = accountData->GetAccessibilityState();
126 EXPECT_EQ(stateType, Accessibility::STATE_ACCESSIBILITY_ENABLED);
127 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState_002 end";
128 }
129
130 /**
131 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState003
132 * @tc.name: GetAccessibilityState
133 * @tc.desc: Check the get accessibility state.
134 */
135 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState003, TestSize.Level1)
136 {
137 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState_003 start";
138 const int32_t accountId = 1;
139 int32_t connectCounter = 0;
140 AccessibilityAbilityInitParams initParams;
141 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
142 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
143 sptr<AccessibleAbilityConnection> connection =
144 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
145 const std::string bundleName = "bbb";
146 EXPECT_FALSE(accountData->GetConnectingA11yAbility(bundleName));
147 /* add connecting A11y ability */
148
149 accountData->AddConnectingA11yAbility(bundleName, connection);
150 EXPECT_TRUE(accountData->GetConnectingA11yAbility(bundleName));
151
152 accountData->Init();
153 accountData->GetConfig()->SetKeyEventObserverState(true);
154
155 uint32_t stateType = accountData->GetAccessibilityState();
156 EXPECT_EQ(stateType, Accessibility::STATE_ACCESSIBILITY_ENABLED | Accessibility::STATE_KEYEVENT_ENABLED);
157 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState_003 end";
158 }
159
160 /**
161 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityState004
162 * @tc.name: GetAccessibilityState
163 * @tc.desc: Check the get accessibility state.
164 */
165 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityState004, TestSize.Level1)
166 {
167 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState_004 start";
168 const int32_t accountId = 1;
169 int32_t connectCounter = 0;
170 AccessibilityAbilityInitParams initParams;
171 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
172 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
173 sptr<AccessibleAbilityConnection> connection =
174 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
175 /* add connected ability */
176 accountData->AddConnectedAbility(connection);
177 /* add connecting A11y ability */
178
179 const std::string bundleName = "bbb";
180 accountData->AddConnectingA11yAbility(bundleName, connection);
181
182 accountData->Init();
183 accountData->GetConfig()->SetGestureState(true);
184
185 uint32_t stateType = accountData->GetAccessibilityState();
186 EXPECT_EQ(stateType, Accessibility::STATE_ACCESSIBILITY_ENABLED | Accessibility::STATE_GESTURE_ENABLED);
187
188 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityState_004 end";
189 }
190
191 /**
192 * @tc.number: AccessibilityAccountData_Unittest_AddConnectedAbility001
193 * @tc.name: AddConnectedAbility
194 * @tc.desc: Check the add connected ability.
195 */
196 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddConnectedAbility001, TestSize.Level1)
197 {
198 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectedAbility_001 start";
199 const int32_t accountId = 1;
200 int32_t connectCounter = 0;
201 AccessibilityAbilityInitParams initParams;
202 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
203 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
204 sptr<AccessibleAbilityConnection> connection =
205 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
206 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
207 /* add connected ability */
208 accountData->AddConnectedAbility(connection);
209 const std::string elementName = Utils::GetUri(connection->GetElementName());
210 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
211 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
212
213 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectedAbility_001 end";
214 }
215
216 /**
217 * @tc.number: AccessibilityAccountData_Unittest_RemoveConnectedAbility001
218 * @tc.name: RemoveConnectedAbility
219 * @tc.desc: Check the remove connected ability.
220 */
221 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveConnectedAbility001, TestSize.Level1)
222 {
223 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectedAbility001 start";
224 const int32_t accountId = 1;
225 int32_t connectCounter = 0;
226 AccessibilityAbilityInitParams initParams;
227 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
228 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
229 sptr<AccessibleAbilityConnection> connection =
230 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
231 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
232 /* add */
233 accountData->AddConnectedAbility(connection);
234 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
235 const std::string elementName = Utils::GetUri(connection->GetElementName());
236 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
237 /* remove */
238 accountData->RemoveConnectedAbility(connection->GetElementName());
239 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
240
241 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectedAbility001 end";
242 }
243
244 /**
245 * @tc.number: AccessibilityAccountData_Unittest_AbilityDisconnected001
246 * @tc.name: AbilityDisconnected
247 * @tc.desc: Check the ability disconnected.
248 */
249 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AbilityDisconnected001, TestSize.Level1)
250 {
251 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AbilityDisconnected001 start";
252 const int32_t accountId = 1;
253 int32_t connectCounter = 0;
254 AccessibilityAbilityInitParams initParams;
255 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
256 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
257 sptr<AccessibleAbilityConnection> connection =
258 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
259 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
260 /* add */
261 accountData->AddConnectedAbility(connection);
262 const std::string elementNameURI = Utils::GetUri(connection->GetElementName());
263 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
264 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementNameURI));
265
266 EXPECT_FALSE(accountData->GetConnectingA11yAbility(elementNameURI));
267 /* disconnect */
268 accountData->RemoveConnectedAbility(connection->GetElementName());
269 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
270 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AbilityDisconnected001 end";
271 }
272
273 /**
274 * @tc.number: AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001
275 * @tc.name: RemoveConnectingA11yAbility
276 * @tc.desc: Check the remove connecting A11y ability.GetAccessibilityWindows
277 */
278 HWTEST_F(
279 AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001, TestSize.Level1)
280 {
281 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001 start";
282 const int32_t accountId = 1;
283 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
284 const std::string bundleName = "bbb";
285 EXPECT_FALSE(accountData->GetConnectingA11yAbility(bundleName));
286 /* add connecting A11y ability */
287
288 AccessibilityAbilityInitParams initParams;
289 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
290 sptr<AccessibleAbilityConnection> connection =
291 new MockAccessibleAbilityConnection(accountId, 0, *abilityInfo);
292 accountData->AddConnectingA11yAbility(bundleName, connection);
293 EXPECT_TRUE(accountData->GetConnectingA11yAbility(bundleName));
294 /* remove */
295 accountData->RemoveConnectingA11yAbility(bundleName);
296 EXPECT_FALSE(accountData->GetConnectingA11yAbility(bundleName));
297
298 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveConnectingA11yAbility001 end";
299 }
300
301 /**
302 * @tc.number: AccessibilityAccountData_Unittest_AddEnabledAbility001
303 * @tc.name: AddEnabledAbility
304 * @tc.desc: Check the add enable ability.
305 */
306 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddEnabledAbility001, TestSize.Level1)
307 {
308 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddEnabledAbility001 start";
309 const int32_t accountId = 1;
310 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
311 const std::string bundleName = "/bbb";
312 accountData->Init();
313 EXPECT_EQ(0, (int)accountData->GetConfig()->GetEnabledAbilityInfos().size());
314 /* add */
315 AccessibilityAbilityInitParams initParams;
316 initParams.name = "bbb";
317 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
318 abilityInfo->SetCapabilityValues(1);
319 accountData->AddInstalledAbility(*abilityInfo);
320 accountData->AddEnabledAbility(bundleName);
321 accountData->AddEnabledAbility(bundleName);
322 EXPECT_EQ(1, (int)accountData->GetEnabledAbilities().size());
323 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddEnabledAbility001 end";
324 }
325
326 /**
327 * @tc.number: AccessibilityAccountData_Unittest_RemoveEnabledAbility001
328 * @tc.name: RemoveEnabledAbility
329 * @tc.desc: Check the remove enable ability.
330 */
331 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveEnabledAbility001, TestSize.Level1)
332 {
333 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility001 start";
334 const int32_t accountId = 1;
335 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
336 const std::string bundleName = "/bbb";
337 accountData->Init();
338 EXPECT_EQ(0, (int)accountData->GetConfig()->GetEnabledAbilityInfos().size());
339
340 /* remove */
341 accountData->RemoveEnabledAbility(bundleName);
342 EXPECT_EQ(0, (int)accountData->GetEnabledAbilities().size());
343
344 /* add */
345 AccessibilityAbilityInitParams initParams;
346 initParams.name = "bbb";
347 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
348 abilityInfo->SetCapabilityValues(1);
349 accountData->AddInstalledAbility(*abilityInfo);
350
351 accountData->AddEnabledAbility(bundleName);
352 EXPECT_EQ(1, (int)accountData->GetEnabledAbilities().size());
353
354 /* remove */
355 accountData->RemoveEnabledAbility(bundleName);
356 EXPECT_EQ(0, (int)accountData->GetEnabledAbilities().size());
357
358 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility001 end";
359 }
360
361 /**
362 * @tc.number: AccessibilityAccountData_Unittest_AddInstalledAbility001
363 * @tc.name: AddInstalledAbility
364 * @tc.desc: Check the add install ability.
365 */
366 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddInstalledAbility001, TestSize.Level1)
367 {
368 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddInstalledAbility001 start";
369 const int32_t accountId = 1;
370 AccessibilityAbilityInitParams initParams;
371 initParams.bundleName = "TEST_BUNDLE_NAME";
372 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
373 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
374 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
375 /* add */
376 accountData->AddInstalledAbility(*abilityInfo);
377 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
378
379 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddInstalledAbility001 end";
380 }
381
382 /**
383 * @tc.number: AccessibilityAccountData_Unittest_RemoveInstalledAbility001
384 * @tc.name: RemoveInstalledAbility
385 * @tc.desc: Check the remove install ability.
386 */
387 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveInstalledAbility001, TestSize.Level1)
388 {
389 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveInstalledAbility001 start";
390 const int32_t accountId = 1;
391 AccessibilityAbilityInitParams initParams;
392 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
393 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
394 accountData->Init();
395 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
396 /* add */
397 accountData->AddInstalledAbility(*abilityInfo);
398 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
399 /* remove */
400 accountData->RemoveInstalledAbility(abilityInfo->GetPackageName());
401 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
402
403 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveInstalledAbility001 end";
404 }
405
406 /**
407 * @tc.number: AccessibilityAccountData_Unittest_ClearInstalledAbility001
408 * @tc.name: ClearInstalledAbility
409 * @tc.desc: Check the clear install ability.
410 */
411 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ClearInstalledAbility001, TestSize.Level1)
412 {
413 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility001 start";
414 const int32_t accountId = 1;
415 AccessibilityAbilityInitParams initParams;
416 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
417 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
418 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
419 /* add */
420 accountData->AddInstalledAbility(*abilityInfo);
421 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
422 /* clear */
423 accountData->ClearInstalledAbility();
424 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
425
426 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility001 end";
427 }
428
429 /**
430 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001
431 * @tc.name: GetAccessibleAbilityConnection
432 * @tc.desc: Check the get accessibility connection.
433 */
434 HWTEST_F(
435 AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001, TestSize.Level1)
436 {
437 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001 start";
438 const int32_t accountId = 1;
439 int32_t connectCounter = 0;
440 AccessibilityAbilityInitParams initParams;
441 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
442 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
443 sptr<AccessibleAbilityConnection> connection =
444 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
445 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
446 std::string elementName = Utils::GetUri(connection->GetElementName());
447 EXPECT_FALSE(accountData->GetAccessibleAbilityConnection(elementName));
448 accountData->AddConnectedAbility(connection);
449 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
450 /* get */
451 EXPECT_EQ(connection, accountData->GetAccessibleAbilityConnection(elementName));
452 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection001 end";
453 }
454
455 /**
456 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002
457 * @tc.name: GetAccessibleAbilityConnection
458 * @tc.desc: Check the get accessibility connection.
459 */
460 HWTEST_F(
461 AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002, TestSize.Level1)
462 {
463 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002 start";
464 const int32_t accountId = 1;
465 int32_t connectCounter = 0;
466 AccessibilityAbilityInitParams initParams;
467 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
468 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
469 sptr<AccessibleAbilityConnection> connection =
470 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
471 accountData->AddConnectedAbility(connection);
472 const std::string elementName = "111name";
473 /* get */
474 EXPECT_EQ(nullptr, accountData->GetAccessibleAbilityConnection(elementName));
475 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibleAbilityConnection002 end";
476 }
477
478 /**
479 * @tc.number: AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001
480 * @tc.name: GetConnectedA11yAbilities
481 * @tc.desc: Check the get connected abilities.
482 */
483 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001, TestSize.Level1)
484 {
485 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001 start";
486 const int32_t accountId = 1;
487 int32_t connectCounter = 0;
488 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
489 AccessibilityAbilityInitParams initParams;
490 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
491 sptr<AccessibleAbilityConnection> connection =
492 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
493 /* get */
494 size_t size = accountData->GetConnectedA11yAbilities().size();
495 EXPECT_EQ(0, size);
496 /* add */
497 accountData->AddConnectedAbility(connection);
498 /* get */
499 EXPECT_EQ(1, accountData->GetConnectedA11yAbilities().size());
500
501 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetConnectedA11yAbilities001 end";
502 }
503
504 /**
505 * @tc.number: AccessibilityAccountData_Unittest_GetAsacConnections001
506 * @tc.name: GetAsacConnections
507 * @tc.desc: Check the get asac connections.
508 */
509 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAsacConnections001, TestSize.Level1)
510 {
511 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAsacConnections001 start";
512 const int32_t accountId = 1;
513 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
514 /* get */
515 size_t size = accountData->GetAsacConnections().size();
516 EXPECT_EQ(0, size);
517
518 const int32_t windowId = 1;
519 sptr<AccessibilityElementOperatorStub> operationStub = new MockAccessibilityElementOperatorStub();
520 sptr<IAccessibilityElementOperator> operation = new MockAccessibilityElementOperatorProxy(operationStub);
521 sptr<AccessibilityWindowConnection> operationConnection =
522 new AccessibilityWindowConnection(windowId, operation, accountId);
523 /* add asacConnections */
524 accountData->AddAccessibilityWindowConnection(windowId, operationConnection);
525 /* get */
526 EXPECT_EQ(1, accountData->GetAsacConnections().size());
527
528 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAsacConnections001 end";
529 }
530
531 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetEnabled, TestSize.Level1)
532 {
533 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetEnabled start";
534 const int32_t accountId = 1;
535 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
536
537 accountData->Init();
538 bool state = true;
539 bool test = accountData->GetConfig()->SetEnabled(state);
540 EXPECT_TRUE(test);
541
542 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetEnabled end";
543 }
544
545 /**
546 * @tc.number: AccessibilityAccountData_Unittest_GetAbilitiesByState001
547 * @tc.name: GetAbilitiesByState
548 * @tc.desc: Check the get ability state.
549 */
550 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAbilitiesByState001, TestSize.Level1)
551 {
552 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState001 start";
553 const int32_t accountId = 1;
554 int32_t connectCounter = 0;
555 AccessibilityAbilityInitParams initParams;
556 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
557 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
558 sptr<AccessibleAbilityConnection> connection =
559 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
560 /* add connected ability */
561 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
562 accountData->AddConnectedAbility(connection);
563 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
564 /* ABILITY_STATE_ENABLE */
565 AbilityStateType state = AbilityStateType::ABILITY_STATE_ENABLE;;
566 /* get ability */
567 std::vector<AccessibilityAbilityInfo> enabledAbilities;
568 accountData->GetAbilitiesByState(state, enabledAbilities);
569 EXPECT_EQ(1, (int)enabledAbilities.size());
570 EXPECT_EQ(connection->GetAbilityInfo().GetPackageName(), enabledAbilities.begin()->GetPackageName());
571
572 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState001 end";
573 }
574
575 /**
576 * @tc.number: AccessibilityAccountData_Unittest_GetAbilitiesByState003
577 * @tc.name: GetAbilitiesByState
578 * @tc.desc: Check the get ability state.
579 */
580 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAbilitiesByState003, TestSize.Level1)
581 {
582 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState003 start";
583 const int32_t accountId = 1;
584 int32_t connectCounter = 0;
585
586 AccessibilityAbilityInitParams initParamsDefault;
587 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo =
588 std::make_shared<AccessibilityAbilityInfo>(initParamsDefault);
589 AccessibilityAbilityInitParams initParams;
590 initParams.name = "TEST_ABILITY_NAME";
591 initParams.bundleName = "TEST_BUNDLE_NAME";
592 std::shared_ptr<AccessibilityAbilityInfo> installAbilityInfo =
593 std::make_shared<AccessibilityAbilityInfo>(initParams);
594 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
595 sptr<AccessibleAbilityConnection> connection =
596 new MockAccessibleAbilityConnection(accountId, connectCounter++, *abilityInfo);
597
598 EXPECT_NE(abilityInfo->GetId(), installAbilityInfo->GetId());
599
600 /* add connected ability */
601 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
602 accountData->AddConnectedAbility(connection);
603 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
604
605 /* add install ability */
606 EXPECT_EQ(0, (int)accountData->GetInstalledAbilities().size());
607 accountData->AddInstalledAbility(*installAbilityInfo);
608 EXPECT_EQ(1, (int)accountData->GetInstalledAbilities().size());
609 sleep(SLEEP_TIME_1);
610
611 /* ABILITY_STATE_DISABLE */
612 AbilityStateType state = AbilityStateType::ABILITY_STATE_DISABLE;
613
614 /* get ability */
615 std::vector<AccessibilityAbilityInfo> disabledAbilities;
616 accountData->GetAbilitiesByState(state, disabledAbilities);
617 EXPECT_EQ(1, (int)disabledAbilities.size());
618 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAbilitiesByState003 end";
619 }
620
621 /**
622 * @tc.number: AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001
623 * @tc.name: AddAccessibilityWindowConnection
624 * @tc.desc: Check the add accessibility interaction connection.
625 */
626 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001,
627 TestSize.Level1)
628 {
629 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001 star";
630 const int32_t accountId = 1;
631 const int32_t windowId = 1;
632 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
633 sptr<AccessibilityElementOperatorStub> stub = new MockAccessibilityElementOperatorStub();
634 sptr<IAccessibilityElementOperator> operation = new MockAccessibilityElementOperatorProxy(stub);
635 sptr<AccessibilityWindowConnection> connection = new AccessibilityWindowConnection(windowId, operation, accountId);
636 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
637 /* add */
638 accountData->AddAccessibilityWindowConnection(windowId, connection);
639 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
640 /* get */
641 EXPECT_EQ(connection, accountData->GetAccessibilityWindowConnection(windowId));
642
643 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddAccessibilityWindowConnection001 end";
644 }
645
646 /**
647 * @tc.number: AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001
648 * @tc.name: GetAccessibilityWindowConnection
649 * @tc.desc: Check the get accessibility interaction connection.
650 */
651 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001,
652 TestSize.Level1)
653 {
654 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001 star";
655 const int32_t accountId = 1;
656 const int32_t windowId = 1;
657 const int32_t windowIdTest = 2;
658 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
659 sptr<AccessibilityElementOperatorStub> stub = new MockAccessibilityElementOperatorStub();
660 sptr<IAccessibilityElementOperator> operation = new MockAccessibilityElementOperatorProxy(stub);
661 sptr<AccessibilityWindowConnection> connection = new AccessibilityWindowConnection(windowId, operation, accountId);
662 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
663 /* add */
664 accountData->AddAccessibilityWindowConnection(windowId, connection);
665 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
666 /* get */
667 EXPECT_EQ(nullptr, accountData->GetAccessibilityWindowConnection(windowIdTest));
668
669 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetAccessibilityWindowConnection001 end";
670 }
671
672 /**
673 * @tc.number: AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001
674 * @tc.name: RemoveAccessibilityWindowConnection
675 * @tc.desc: Check the remove accessibility interaction connection.
676 */
677 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001,
678 TestSize.Level1)
679 {
680 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001 star";
681 const int32_t accountId = 1;
682 const int32_t windowId = 1;
683 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
684 sptr<AccessibilityElementOperatorStub> stub = new MockAccessibilityElementOperatorStub();
685 sptr<IAccessibilityElementOperator> operation = new MockAccessibilityElementOperatorProxy(stub);
686 sptr<AccessibilityWindowConnection> connection = new AccessibilityWindowConnection(windowId, operation, accountId);
687 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
688 /* add */
689 accountData->AddAccessibilityWindowConnection(windowId, connection);
690 EXPECT_EQ(1, (int)accountData->GetAsacConnections().size());
691 /* remove */
692 accountData->RemoveAccessibilityWindowConnection(windowId);
693 EXPECT_EQ(0, (int)accountData->GetAsacConnections().size());
694
695 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAccessibilityWindowConnection001 end";
696 }
697
698 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetCaptionState, TestSize.Level1)
699 {
700 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionState start";
701 const int32_t accountId = 1;
702 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
703
704 accountData->Init();
705 bool state = true;
706 accountData->GetConfig()->SetCaptionState(state);
707
708 bool result = accountData->GetConfig()->GetCaptionState();
709 EXPECT_TRUE(result);
710
711 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionState end";
712 }
713
714 /**
715 * @tc.number: AccessibilityAccountData_Unittest_OnAccountSwitched001
716 * @tc.name: OnAccountSwitched
717 * @tc.desc: Check the account switched.
718 */
719 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_OnAccountSwitched001, TestSize.Level1)
720 {
721 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_OnAccountSwitched001 start";
722 // new accountData
723 auto accountData = Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
724 accountData->Init();
725 // new abilityInfo
726 AccessibilityAbilityInitParams initParams;
727 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
728 abilityInfo->SetCapabilityValues(CAPABILITY_RETRIEVE | CAPABILITY_TOUCH_GUIDE | CAPABILITY_GESTURE |
729 CAPABILITY_KEY_EVENT_OBSERVER | CAPABILITY_ZOOM);
730 // new AAconnection
731 sptr<AccessibleAbilityConnection> AAConnection =
732 new AccessibleAbilityConnection(accountData->GetAccountId(), 0, *abilityInfo);
733 // new aastub
734 sptr<AccessibleAbilityClientStub> aastub = new MockAccessibleAbilityClientStubImpl();
735 GTEST_LOG_(INFO) << "OnAbilityConnectDoneSync start !!!!!";
736 const AppExecFwk::ElementName elementName("aaa", "bbb", "ccc");
737 AAConnection->OnAbilityConnectDoneSync(elementName, aastub);
738 GTEST_LOG_(INFO) << "add connected A11y Ability";
739 EXPECT_EQ(1, (int)accountData->GetConnectedA11yAbilities().size());
740 /* CapabilityValues */
741 accountData->UpdateAccountCapabilities();
742 EXPECT_TRUE(accountData->GetGesturesSimulationFlag());
743 EXPECT_TRUE(accountData->GetFilteringKeyEventsFlag());
744 EXPECT_TRUE(accountData->GetEventTouchGuideStateFlag());
745 EXPECT_TRUE(accountData->GetScreenMagnificationFlag());
746 /* Account Switched */
747 GTEST_LOG_(INFO) << "OnAccountSwitched";
748 accountData->OnAccountSwitched();
__anon18cbfe7c0202() 749 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([=]() -> bool {
750 if (AccessibilityAbilityHelper::GetInstance().GetTestChannelId() == INVALID_CHANNEL_ID) {
751 return true;
752 } else {
753 return false;
754 }
755 }), 1);
756 EXPECT_TRUE(ret);
757 accountData->UpdateAccountCapabilities();
758 /* initialization */
759 EXPECT_EQ(0, (int)accountData->GetConnectedA11yAbilities().size());
760 EXPECT_FALSE(accountData->GetGesturesSimulationFlag());
761 EXPECT_FALSE(accountData->GetFilteringKeyEventsFlag());
762 EXPECT_FALSE(accountData->GetEventTouchGuideStateFlag());
763 EXPECT_FALSE(accountData->GetScreenMagnificationFlag());
764 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_OnAccountSwitched001 end";
765 }
766
767 /**
768 * @tc.number: AccessibilityAccountData_Unittest_AddConnectingA11yAbility001
769 * @tc.name: AddConnectingA11yAbility
770 * @tc.desc: Check the add connecting A11y ability.
771 */
772 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddConnectingA11yAbility001, TestSize.Level1)
773 {
774 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectingA11yAbility001 start";
775 const int32_t accountId = 1;
776 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
777 const std::string bundleName = "bbb";
778 EXPECT_FALSE(accountData->GetConnectingA11yAbility(bundleName));
779 /* add connecting A11y ability */
780 AccessibilityAbilityInitParams initParams;
781 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
782 sptr<AccessibleAbilityConnection> connection = new MockAccessibleAbilityConnection(accountId, 0, *abilityInfo);
783 accountData->AddConnectingA11yAbility(bundleName, connection);
784 accountData->AddConnectingA11yAbility(bundleName, connection);
785 EXPECT_TRUE(accountData->GetConnectingA11yAbility(bundleName));
786 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddConnectingA11yAbility001 end";
787 }
788
789 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetTouchGuideState, TestSize.Level1)
790 {
791 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetTouchGuideState start";
792 const int32_t accountId = 1;
793 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
794
795 accountData->Init();
796 bool state = true;
797 bool test = accountData->GetConfig()->SetTouchGuideState(state);
798 EXPECT_TRUE(test);
799
800 bool result = accountData->GetConfig()->GetTouchGuideState();
801 EXPECT_TRUE(result);
802
803 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetTouchGuideState end";
804 }
805
806 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetGestureState, TestSize.Level1)
807 {
808 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetGestureState start";
809 const int32_t accountId = 1;
810 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
811
812 accountData->Init();
813 bool state = false;
814 bool test = accountData->GetConfig()->SetGestureState(state);
815 EXPECT_TRUE(test);
816
817 bool result = accountData->GetConfig()->GetGestureState();
818 EXPECT_FALSE(result);
819
820 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetGestureState end";
821 }
822
823 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetKeyEventObserverState, TestSize.Level1)
824 {
825 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetKeyEventObserverState start";
826 const int32_t accountId = 1;
827 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
828
829 accountData->Init();
830 bool state = true;
831 bool test = accountData->GetConfig()->SetKeyEventObserverState(state);
832 EXPECT_TRUE(test);
833
834 bool result = accountData->GetConfig()->GetKeyEventObserverState();
835 EXPECT_TRUE(result);
836
837 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetKeyEventObserverState end";
838 }
839
840 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_SetCaptionProperty, TestSize.Level1)
841 {
842 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionProperty start";
843 const int32_t accountId = 1;
844 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
845
846 AccessibilityConfig::CaptionProperty caption;
847 accountData->Init();
848 accountData->GetConfig()->SetCaptionProperty(caption);
849
850 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_SetCaptionProperty end";
851 }
852
853 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ClearInstalledAbility, TestSize.Level1)
854 {
855 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility start";
856 const int32_t accountId = 1;
857 AccessibilityAbilityInitParams initParams;
858 initParams.bundleName = "TEST_BUNDLE_NAME";
859 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
860 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
861
862 accountData->AddInstalledAbility(*abilityInfo);
863 accountData->ClearInstalledAbility();
864 EXPECT_NE(accountData.GetRefPtr(), nullptr);
865 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ClearInstalledAbility end";
866 }
867
868 /**
869 * @tc.number: AccessibilityAccountData_Unittest_RemoveEnabledAbility
870 * @tc.name: RemoveEnabledAbility
871 * @tc.desc: Remove the enabled ability.
872 */
873 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveEnabledAbility, TestSize.Level1)
874 {
875 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility start";
876 const int32_t accountId = 1;
877 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
878
879 const std::string bundleName = "bbb";
880 accountData->Init();
881 accountData->RemoveEnabledAbility(bundleName);
882 EXPECT_NE(accountData.GetRefPtr(), nullptr);
883 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveEnabledAbility end";
884 }
885
886 /**
887 * @tc.number: AccessibilityAccountData_Unittest_EnableAbility_001
888 * @tc.name: EnableAbility
889 * @tc.desc: Enable specified ability with no capability
890 */
891 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_EnableAbility_001, TestSize.Level1)
892 {
893 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_001 start";
894 const int32_t accountId = 1;
895 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(accountId);
896 accountData->Init();
897
898 AccessibilityAbilityInitParams initParams;
899 initParams.bundleName = "bundle";
900 initParams.name = "ability";
901 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
902 accountData->AddInstalledAbility(*abilityInfo);
903
904 const std::string name = "bundle/ability";
905 uint32_t capabilities = 0;
906 RetError test = accountData->EnableAbility(name, capabilities);
907 EXPECT_EQ(test, RET_ERR_NO_CAPABILITY);
908 ASSERT_EQ(0, (int)accountData->GetConfig()->GetEnabledAbilityInfos().size());
909
910 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_001 end";
911 }
912
913 /**
914 * @tc.number: AccessibilityAccountData_Unittest_EnableAbility_002
915 * @tc.name: EnableAbility
916 * @tc.desc: Enable specified ability which is already enabled.
917 */
918 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_EnableAbility_002, TestSize.Level1)
919 {
920 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_002 start";
921 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
922 accountData->Init();
923
924 AccessibilityAbilityInitParams initParams;
925 initParams.bundleName = "bundle";
926 initParams.name = "ability";
927 initParams.staticCapabilities = CAPABILITY_RETRIEVE;
928 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
929 accountData->AddInstalledAbility(*abilityInfo);
930 std::string name = "bundle/ability";
931 accountData->AddEnabledAbility(name);
932 EXPECT_EQ(RET_ERR_CONNECTION_EXIST, accountData->EnableAbility(name, CAPABILITY_RETRIEVE));
933
934 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_002 end";
935 }
936
937 /**
938 * @tc.number: AccessibilityAccountData_Unittest_EnableAbility_003
939 * @tc.name: EnableAbility
940 * @tc.desc: Enable specified ability successfully.
941 */
942 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_EnableAbility_003, TestSize.Level1)
943 {
944 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_003 start";
945 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
946 accountData->Init();
947
948 AccessibilityAbilityInitParams initParams;
949 initParams.bundleName = "bundle";
950 initParams.name = "ability";
951 initParams.staticCapabilities = CAPABILITY_RETRIEVE;
952 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
953 accountData->AddInstalledAbility(*abilityInfo);
954 const std::string name = "bundle/ability";
955 EXPECT_EQ(RET_OK, accountData->EnableAbility(name, CAPABILITY_RETRIEVE));
956
957 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_003 end";
958 }
959
960 /**
961 * @tc.number: AccessibilityAccountData_Unittest_EnableAbility_004
962 * @tc.name: EnableAbility
963 * @tc.desc: Enable specified ability which is not installed.
964 */
965 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_EnableAbility_004, TestSize.Level1)
966 {
967 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_004 start";
968 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
969 EXPECT_EQ(RET_ERR_NOT_INSTALLED, accountData->EnableAbility("bundle/ability", 0));
970 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbility_004 end";
971 }
972
973 /**
974 * @tc.number: AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_001
975 * @tc.name: GetImportantEnabledAbilities
976 * @tc.desc: Get important enabled abilities when there is no installed ability.
977 */
978 HWTEST_F(AccessibilityAccountDataTest,
979 AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_001, TestSize.Level1)
980 {
981 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_001 start";
982 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
983 std::map<std::string, uint32_t> abilities;
984 accountData->GetImportantEnabledAbilities(abilities);
985 EXPECT_EQ(0, static_cast<int>(abilities.size()));
986 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_001 end";
987 }
988
989 /**
990 * @tc.number: AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_002
991 * @tc.name: GetImportantEnabledAbilities
992 * @tc.desc: Get important enabled abilities when there is no enabled ability.
993 */
994 HWTEST_F(AccessibilityAccountDataTest,
995 AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_002, TestSize.Level1)
996 {
997 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_002 start";
998 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
999 AccessibilityAbilityInitParams initParams;
1000 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
1001 accountData->AddInstalledAbility(*abilityInfo);
1002
1003 std::map<std::string, uint32_t> abilities;
1004 accountData->GetImportantEnabledAbilities(abilities);
1005 EXPECT_EQ(0, static_cast<int>(abilities.size()));
1006 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_002 end";
1007 }
1008
1009 /**
1010 * @tc.number: AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_003
1011 * @tc.name: GetImportantEnabledAbilities
1012 * @tc.desc: Get important enabled abilities.
1013 */
1014 HWTEST_F(AccessibilityAccountDataTest,
1015 AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_003, TestSize.Level1)
1016 {
1017 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_003 start";
1018 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1019
1020 AccessibilityAbilityInitParams initParams;
1021 initParams.bundleName = "testBundle1";
1022 initParams.name = "testAbility1";
1023 initParams.isImportant = false;
1024 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
1025 accountData->AddInstalledAbility(*abilityInfo);
1026
1027 initParams.bundleName = "testBundle2";
1028 initParams.name = "testAbility2";
1029 initParams.isImportant = true;
1030 std::shared_ptr<AccessibilityAbilityInfo> importantAbilityInfo =
1031 std::make_shared<AccessibilityAbilityInfo>(initParams);
1032 accountData->AddInstalledAbility(*importantAbilityInfo);
1033
1034 accountData->AddEnabledAbility("testBundle1/testAbility1");
1035 accountData->AddEnabledAbility("testBundle2/testAbility2");
1036
1037 std::map<std::string, uint32_t> abilities;
1038 accountData->GetImportantEnabledAbilities(abilities);
1039 EXPECT_EQ(IMPORTANT_ABILITIES_SIZE, abilities.size());
1040 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_GetImportantEnabledAbilities_003 end";
1041 }
1042
1043 /**
1044 * @tc.number: AccessibilityAccountData_Unittest_UpdateImportantEnabledAbilities
1045 * @tc.name: UpdateImportantEnabledAbilities
1046 * @tc.desc: Update important enabled abilities.
1047 */
1048 HWTEST_F(AccessibilityAccountDataTest,
1049 AccessibilityAccountData_Unittest_UpdateImportantEnabledAbilities, TestSize.Level1)
1050 {
1051 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateImportantEnabledAbilities start";
1052 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1053
1054 std::map<std::string, uint32_t> abilities;
1055 accountData->UpdateImportantEnabledAbilities(abilities);
1056
1057 abilities.emplace(std::make_pair("testBundle/testAbility", CAPABILITY_RETRIEVE));
1058 accountData->UpdateImportantEnabledAbilities(abilities);
1059
1060 AccessibilityAbilityInitParams initParams;
1061 initParams.bundleName = "testBundle";
1062 initParams.name = "testAbility";
1063 initParams.isImportant = true;
1064 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
1065 abilityInfo->SetCapabilityValues(CAPABILITY_RETRIEVE | CAPABILITY_GESTURE);
1066 accountData->AddInstalledAbility(*abilityInfo);
1067
1068 accountData->UpdateImportantEnabledAbilities(abilities);
1069 ASSERT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1070 EXPECT_EQ(accountData->GetInstalledAbilities().front().GetCapabilityValues(), CAPABILITY_RETRIEVE);
1071 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateImportantEnabledAbilities end";
1072 }
1073
1074 /**
1075 * @tc.number: AccessibilityAccountData_Unittest_UpdateAbilities_001
1076 * @tc.name: UpdateAbilities
1077 * @tc.desc: Update all abilities when there is an installed ability which is connecting.
1078 */
1079 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_UpdateAbilities_001, TestSize.Level1)
1080 {
1081 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_001 start";
1082 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1083
1084 AccessibilityAbilityInitParams initParams;
1085 initParams.bundleName = "connectingBundle";
1086 initParams.name = "connectingAbility";
1087 std::shared_ptr<AccessibilityAbilityInfo> connectingAbilityInfo =
1088 std::make_shared<AccessibilityAbilityInfo>(initParams);
1089 accountData->AddInstalledAbility(*connectingAbilityInfo);
1090
1091 sptr<AccessibleAbilityConnection> connection = new MockAccessibleAbilityConnection(0, 0, *connectingAbilityInfo);
1092 accountData->AddConnectingA11yAbility("connectingBundle/connectingAbility", connection);
1093 accountData->UpdateAbilities();
1094 EXPECT_TRUE(accountData->GetConnectingA11yAbility("connectingBundle/connectingAbility"));
1095 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_001 end";
1096 }
1097
1098 /**
1099 * @tc.number: AccessibilityAccountData_Unittest_UpdateAbilities_002
1100 * @tc.name: UpdateAbilities
1101 * @tc.desc: Update all abilities when there is an ability which is already connected.
1102 */
1103 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_UpdateAbilities_002, TestSize.Level1)
1104 {
1105 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_002 start";
1106 auto accountData = Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
1107
1108 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>();
1109 accountData->AddInstalledAbility(*abilityInfo);
1110
1111 AppExecFwk::ElementName elementName("testDeviceId", "testBundle", "testAbility");
1112 sptr<AccessibleAbilityConnection> connection =
1113 new MockAccessibleAbilityConnection(accountData->GetAccountId(), 0, *abilityInfo);
1114 accountData->AddEnabledAbility(Utils::GetUri(connection->GetElementName()));
1115
1116 connection->Connect(elementName);
1117 accountData->AddConnectedAbility(connection);
1118 EXPECT_TRUE(accountData->GetAccessibleAbilityConnection(Utils::GetUri(connection->GetElementName())));
1119
1120 accountData->UpdateAbilities();
1121 EXPECT_TRUE(accountData->GetAccessibleAbilityConnection(Utils::GetUri(connection->GetElementName())));
1122 accountData->OnAccountSwitched();
1123 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_002 end";
1124 }
1125
1126 /**
1127 * @tc.number: AccessibilityAccountData_Unittest_UpdateAbilities_003
1128 * @tc.name: UpdateAbilities
1129 * @tc.desc: Update all abilities when there is an enabled ability which is no connected.
1130 */
1131 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_UpdateAbilities_003, TestSize.Level1)
1132 {
1133 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_003 start";
1134 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1135
1136 AccessibilityAbilityInitParams initParams;
1137 initParams.bundleName = "testBundle";
1138 initParams.name = "testAbility";
1139 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo =
1140 std::make_shared<AccessibilityAbilityInfo>(initParams);
1141 accountData->AddInstalledAbility(*abilityInfo);
1142
1143 accountData->AddEnabledAbility("testBundle/testAbility");
1144
1145 accountData->UpdateAbilities();
1146 EXPECT_TRUE(accountData->GetConnectingA11yAbility("testBundle/testAbility"));
1147 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_003 end";
1148 }
1149
1150 /**
1151 * @tc.number: AccessibilityAccountData_Unittest_UpdateAbilities_004
1152 * @tc.name: UpdateAbilities
1153 * @tc.desc: Update all abilities when there is an connected ability which is no enabled.
1154 */
1155 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_UpdateAbilities_004, TestSize.Level1)
1156 {
1157 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_004 start";
1158 auto accountData = Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
1159
1160 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>();
1161 accountData->AddInstalledAbility(*abilityInfo);
1162
1163 sptr<AccessibleAbilityConnection> connection =
1164 new MockAccessibleAbilityConnection(accountData->GetAccountId(), 0, *abilityInfo);
1165 AppExecFwk::ElementName elementName("testDeviceId", "testBundle", "testAbility");
1166 connection->Connect(elementName);
1167 accountData->AddConnectedAbility(connection);
1168 EXPECT_TRUE(accountData->GetAccessibleAbilityConnection(Utils::GetUri(connection->GetElementName())));
1169
1170 AccessibilityAbilityHelper::GetInstance().SetTestChannelId(0);
1171 EXPECT_EQ(AccessibilityAbilityHelper::GetInstance().GetTestChannelId(), 0);
1172
1173 accountData->UpdateAbilities();
1174 EXPECT_EQ(AccessibilityAbilityHelper::GetInstance().GetTestChannelId(), -1);
1175 accountData->OnAccountSwitched();
1176 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_UpdateAbilities_004 end";
1177 }
1178
1179 /**
1180 * @tc.number: AccessibilityAccountData_Unittest_RemoveAbility_001
1181 * @tc.name: RemoveAbility
1182 * @tc.desc: Remove ability when there is no ability
1183 */
1184 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveAbility_001, TestSize.Level1)
1185 {
1186 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAbility_001 start";
1187 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1188 EXPECT_FALSE(accountData->RemoveAbility("bundle"));
1189 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAbility_001 end";
1190 }
1191
1192 /**
1193 * @tc.number: AccessibilityAccountData_Unittest_RemoveAbility_002
1194 * @tc.name: RemoveAbility
1195 * @tc.desc: Remove ability successfully
1196 */
1197 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveAbility_002, TestSize.Level1)
1198 {
1199 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAbility_002 start";
1200 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1201
1202 AccessibilityAbilityInitParams initParams;
1203 initParams.bundleName = "testBundle";
1204 initParams.name = "testAbility";
1205 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo =
1206 std::make_shared<AccessibilityAbilityInfo>(initParams);
1207 accountData->AddInstalledAbility(*abilityInfo);
1208
1209 accountData->AddEnabledAbility("testBundle/testAbility");
1210
1211 sptr<AccessibleAbilityConnection> connection = new MockAccessibleAbilityConnection(0, 0, *abilityInfo);
1212 accountData->AddConnectedAbility(connection);
1213
1214 EXPECT_TRUE(accountData->RemoveAbility("testBundle"));
1215 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveAbility_002 end";
1216 }
1217
1218 /**
1219 * @tc.number: AccessibilityAccountData_Unittest_ChangeAbility_001
1220 * @tc.name: ChangeAbility
1221 * @tc.desc: Change ability when there is no ability
1222 */
1223 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ChangeAbility_001, TestSize.Level1)
1224 {
1225 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ChangeAbility_001 start";
1226 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1227 accountData->ChangeAbility("bundle");
1228 EXPECT_EQ(0, static_cast<int>(accountData->GetInstalledAbilities().size()));
1229 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ChangeAbility_001 end";
1230 }
1231
1232 /**
1233 * @tc.number: AccessibilityAccountData_Unittest_ChangeAbility_002
1234 * @tc.name: ChangeAbility
1235 * @tc.desc: Change ability which is not installed.
1236 */
1237 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ChangeAbility_002, TestSize.Level1)
1238 {
1239 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ChangeAbility_002 start";
1240 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1241
1242 AccessibilityAbilityInitParams initParams;
1243 initParams.bundleName = "testBundle";
1244 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo =
1245 std::make_shared<AccessibilityAbilityInfo>(initParams);
1246 accountData->AddInstalledAbility(*abilityInfo);
1247 EXPECT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1248
1249 accountData->ChangeAbility("test");
1250 EXPECT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1251 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ChangeAbility_002 end";
1252 }
1253
1254 /**
1255 * @tc.number: AccessibilityAccountData_Unittest_AddUITestClient
1256 * @tc.name: AddUITestClient
1257 * @tc.desc: Add ui test client
1258 */
1259 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_AddUITestClient, TestSize.Level1)
1260 {
1261 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddUITestClient start";
1262 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1263 accountData->AddUITestClient(nullptr, "uitestBundle", "uitestAbility");
1264 EXPECT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1265 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_AddUITestClient end";
1266 }
1267
1268 /**
1269 * @tc.number: AccessibilityAccountData_Unittest_RemoveUITestClient_001
1270 * @tc.name: RemoveUITestClient
1271 * @tc.desc: Remove ui test client failed.
1272 */
1273 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveUITestClient_001, TestSize.Level1)
1274 {
1275 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveUITestClient_001 start";
1276 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1277 accountData->AddUITestClient(nullptr, "uitestBundle", "uitestAbility");
1278 EXPECT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1279
1280 sptr<AccessibleAbilityConnection> connection = nullptr;
1281 accountData->RemoveUITestClient(connection, "uitestBundle");
1282 EXPECT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1283 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveUITestClient_001 end";
1284 }
1285
1286 /**
1287 * @tc.number: AccessibilityAccountData_Unittest_RemoveUITestClient_002
1288 * @tc.name: RemoveUITestClient
1289 * @tc.desc: Remove ui test client successfully.
1290 */
1291 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_RemoveUITestClient_002, TestSize.Level1)
1292 {
1293 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveUITestClient_002 start";
1294 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1295
1296 AccessibilityAbilityInitParams initParams;
1297 initParams.bundleName = "uitestBundle";
1298 initParams.name = "uitestAbility";
1299 std::shared_ptr<AccessibilityAbilityInfo> abilityInfo = std::make_shared<AccessibilityAbilityInfo>(initParams);
1300 sptr<AccessibleAbilityConnection> connection = new MockAccessibleAbilityConnection(0, 0, *abilityInfo);
1301
1302 accountData->AddUITestClient(nullptr, "uitestBundle", "uitestAbility");
1303 EXPECT_EQ(1, static_cast<int>(accountData->GetInstalledAbilities().size()));
1304
1305 accountData->RemoveUITestClient(connection, "uitestBundle");
1306 EXPECT_EQ(0, static_cast<int>(accountData->GetInstalledAbilities().size()));
1307 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_RemoveUITestClient_002 end";
1308 }
1309
1310 /**
1311 * @tc.number: AccessibilityAccountData_Unittest_CaptionPropertyCallback
1312 * @tc.name: CaptionPropertyCallback
1313 * @tc.desc: Check the functions of AddCaptionPropertyCallback and RemoveCaptionPropertyCallback.
1314 */
1315 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_CaptionPropertyCallback, TestSize.Level1)
1316 {
1317 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_CaptionPropertyCallback start";
1318 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1319 sptr<AccessibleAbilityManagerCaptionObserverStub> stub = new MockAccessibleAbilityManagerCaptionObserverStub();
1320 sptr<IAccessibleAbilityManagerCaptionObserver> caption =
1321 new MockAccessibleAbilityManagerCaptionObserverProxy(stub);
1322 EXPECT_EQ(0, static_cast<int>(accountData->GetCaptionPropertyCallbacks().size()));
1323
1324 accountData->AddCaptionPropertyCallback(caption);
1325 EXPECT_EQ(1, static_cast<int>(accountData->GetCaptionPropertyCallbacks().size()));
1326
1327 accountData->RemoveCaptionPropertyCallback(caption->AsObject());
1328 EXPECT_EQ(0, static_cast<int>(accountData->GetCaptionPropertyCallbacks().size()));
1329
1330 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_CaptionPropertyCallback end";
1331 }
1332
1333 /**
1334 * @tc.number: AccessibilityAccountData_Unittest_EnableAbilityListsObserver
1335 * @tc.name: EnableAbilityListsObserver
1336 * @tc.desc: Check the functions of AddEnableAbilityListsObserver and RemoveEnableAbilityListsObserver.
1337 */
1338 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_EnableAbilityListsObserver, TestSize.Level1)
1339 {
1340 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbilityListsObserver start";
1341 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1342 sptr<AccessibilityEnableAbilityListsObserverStub> stub = new MockAccessibilityEnableAbilityListsObserverStub();
1343 sptr<IAccessibilityEnableAbilityListsObserver> observer =
1344 new MockAccessibilityEnableAbilityListsObserverProxy(stub);
1345
1346 accountData->AddEnableAbilityListsObserver(observer);
1347 accountData->AddEnableAbilityListsObserver(observer);
1348 accountData->RemoveEnableAbilityListsObserver(observer->AsObject());
1349 EXPECT_NE(accountData.GetRefPtr(), nullptr);
1350 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_EnableAbilityListsObserver end";
1351 }
1352
1353 /**
1354 * @tc.number: AccessibilityAccountData_Unittest_ConfigCallback
1355 * @tc.name: ConfigCallback
1356 * @tc.desc: Check the functions of AddConfigCallback and RemoveConfigCallback.
1357 */
1358 HWTEST_F(AccessibilityAccountDataTest, AccessibilityAccountData_Unittest_ConfigCallback, TestSize.Level1)
1359 {
1360 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ConfigCallback start";
1361 sptr<AccessibilityAccountData> accountData = new AccessibilityAccountData(0);
1362 sptr<AccessibleAbilityManagerConfigObserverStub> stub = new MockAccessibleAbilityManagerConfigObserverStub();
1363 sptr<IAccessibleAbilityManagerConfigObserver> observer = new MockAccessibleAbilityManagerConfigObserverProxy(stub);
1364 EXPECT_EQ(0, static_cast<int>(accountData->GetConfigCallbacks().size()));
1365
1366 accountData->AddConfigCallback(observer);
1367 EXPECT_EQ(1, static_cast<int>(accountData->GetConfigCallbacks().size()));
1368
1369 accountData->RemoveConfigCallback(observer->AsObject());
1370 EXPECT_EQ(0, static_cast<int>(accountData->GetConfigCallbacks().size()));
1371
1372 GTEST_LOG_(INFO) << "AccessibilityAccountData_Unittest_ConfigCallback end";
1373 }
1374 } // namespace Accessibility
1375 } // namespace OHOS