• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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