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