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_account_data.h"
18 #include "accessibility_common_helper.h"
19 #include "accessibility_element_operator_proxy.h"
20 #include "accessibility_ut_helper.h"
21 #include "accessibility_window_manager.h"
22 #include "accessible_ability_manager_service.h"
23 #include "iservice_registry.h"
24 #include "mock_accessible_ability_manager_service.h"
25 #include "mock_accessibility_element_operator_proxy.h"
26 #include "mock_accessibility_element_operator_stub.h"
27 #include "mock_bundle_manager.h"
28
29 using namespace testing;
30 using namespace testing::ext;
31
32 namespace OHOS {
33 namespace Accessibility {
34 namespace {
35 constexpr int RETRY_TIMES = 10;
36 constexpr int WINDOW_ID = 2;
37 constexpr int WINDOWS_SIZE = 2;
38 constexpr int SEND_EVENT_TIMES = 2;
39 constexpr int32_t ACCOUNT_ID = 100;
40 } // namespace
41
42 class AccessibilityWindowManagerTest : public testing::Test {
43 public:
AccessibilityWindowManagerTest()44 AccessibilityWindowManagerTest()
45 {}
~AccessibilityWindowManagerTest()46 ~AccessibilityWindowManagerTest()
47 {}
48
49 static void SetUpTestCase();
50 static void TearDownTestCase();
51 void SetUp() override;
52 void TearDown() override;
53 };
54
SetUpTestCase()55 void AccessibilityWindowManagerTest::SetUpTestCase()
56 {
57 GTEST_LOG_(INFO) << "AccessibilityWindowManagerTest SetUpTestCase";
58 Singleton<AccessibleAbilityManagerService>::GetInstance().OnStart();
59 }
60
TearDownTestCase()61 void AccessibilityWindowManagerTest::TearDownTestCase()
62 {
63 GTEST_LOG_(INFO) << "AccessibilityWindowManagerTest TearDownTestCase";
64 Singleton<AccessibleAbilityManagerService>::GetInstance().OnStop();
65 }
66
SetUp()67 void AccessibilityWindowManagerTest::SetUp()
68 {
69 GTEST_LOG_(INFO) << "AccessibilityWindowManagerTest SetUp";
70 AccessibilityAbilityHelper::GetInstance().ClearSendEventTimes();
71 }
72
TearDown()73 void AccessibilityWindowManagerTest::TearDown()
74 {
75 GTEST_LOG_(INFO) << "AccessibilityWindowManagerTest TearDown";
76 }
77
GetRosenWindowInfo(Rosen::WindowType windowType)78 sptr<Rosen::AccessibilityWindowInfo> GetRosenWindowInfo(Rosen::WindowType windowType)
79 {
80 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
81 if (rosen_winInfo != nullptr) {
82 rosen_winInfo->type_ = windowType;
83 rosen_winInfo->wid_ = 1;
84 rosen_winInfo->windowRect_.width_ = 1;
85 rosen_winInfo->windowRect_.height_ = 1;
86 rosen_winInfo->windowRect_.posX_ = 1;
87 rosen_winInfo->windowRect_.posY_ = 1;
88 rosen_winInfo->focused_ = true;
89 }
90 return rosen_winInfo;
91 }
92
93 /**
94 * @tc.number: AccessibilityWindowManager_Unittest_ConvertToRealWindowId001
95 * @tc.name: ConvertToRealWindowId
96 * @tc.desc: Test function ConvertToRealWindowId
97 */
98 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_ConvertToRealWindowId001, TestSize.Level1)
99 {
100 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ConvertToRealWindowId001 start";
101 int32_t windowId = ACTIVE_WINDOW_ID;
102 int32_t focusType = 0;
103 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
104 int32_t realId = mgr.ConvertToRealWindowId(windowId, focusType);
105
106 EXPECT_EQ(mgr.activeWindowId_, realId);
107 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ConvertToRealWindowId001 end";
108 }
109
110 /**
111 * @tc.number: AccessibilityWindowManager_Unittest_ConvertToRealWindowId002
112 * @tc.name: ConvertToRealWindowId
113 * @tc.desc: Test function ConvertToRealWindowId
114 */
115 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_ConvertToRealWindowId002, TestSize.Level1)
116 {
117 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ConvertToRealWindowId002 start";
118 int32_t windowId = ANY_WINDOW_ID;
119 int32_t focusType = FOCUS_TYPE_ACCESSIBILITY;
120 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
121 int32_t realId = mgr.ConvertToRealWindowId(windowId, focusType);
122
123 EXPECT_EQ(mgr.a11yFocusedWindowId_, realId);
124 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ConvertToRealWindowId002 end";
125 }
126
127 /**
128 * @tc.number: AccessibilityWindowManager_Unittest_ConvertToRealWindowId003
129 * @tc.name: ConvertToRealWindowId
130 * @tc.desc: Test function ConvertToRealWindowId
131 */
132 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_ConvertToRealWindowId003, TestSize.Level1)
133 {
134 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ConvertToRealWindowId003 start";
135 int32_t windowId = ANY_WINDOW_ID;
136 int32_t focusType = FOCUS_TYPE_INPUT;
137 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
138 int32_t realId = mgr.ConvertToRealWindowId(windowId, focusType);
139
140 EXPECT_EQ(mgr.activeWindowId_, realId);
141 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ConvertToRealWindowId003 end";
142 }
143
144 /**
145 * @tc.number: AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo001
146 * @tc.name: CreateAccessibilityWindowInfo
147 * @tc.desc: Test function CreateAccessibilityWindowInfo
148 */
149 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo001,
150 TestSize.Level1)
151 {
152 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo001 start";
153 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(Rosen::WindowType::APP_MAIN_WINDOW_BASE);
154 EXPECT_TRUE(rosen_winInfo != nullptr);
155
156 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
157 infos.emplace_back(rosen_winInfo);
158
159 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
160 AccessibilityWindowInfo info = windowInfoManager.CreateAccessibilityWindowInfo(rosen_winInfo);
161
162 EXPECT_EQ(TYPE_APPLICATION, info.GetAccessibilityWindowType());
163 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo001 end";
164 }
165
166 /**
167 * @tc.number: AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo002
168 * @tc.name: CreateAccessibilityWindowInfo
169 * @tc.desc: Test function CreateAccessibilityWindowInfo
170 */
171 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo002,
172 TestSize.Level1)
173 {
174 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo002 start";
175 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
176 Rosen::WindowType::WINDOW_TYPE_LAUNCHER_RECENT);
177 EXPECT_TRUE(rosen_winInfo != nullptr);
178
179 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
180 infos.emplace_back(rosen_winInfo);
181
182 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
183 AccessibilityWindowInfo info = windowInfoManager.CreateAccessibilityWindowInfo(rosen_winInfo);
184
185 EXPECT_EQ(TYPE_SYSTEM, info.GetAccessibilityWindowType());
186 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo002 end";
187 }
188
189 /**
190 * @tc.number: AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo003
191 * @tc.name: CreateAccessibilityWindowInfo
192 * @tc.desc: Test function CreateAccessibilityWindowInfo
193 */
194 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo003,
195 TestSize.Level1)
196 {
197 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo003 start";
198
199 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
200 static_cast<OHOS::Rosen::WindowType>(0xFFFFFFFF));
201 EXPECT_TRUE(rosen_winInfo != nullptr);
202
203 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
204 infos.emplace_back(rosen_winInfo);
205
206 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
207 AccessibilityWindowInfo info = windowInfoManager.CreateAccessibilityWindowInfo(rosen_winInfo);
208
209 EXPECT_EQ(TYPE_WINDOW_INVALID, info.GetAccessibilityWindowType());
210 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_CreateAccessibilityWindowInfo003 end";
211 }
212
213 /**
214 * @tc.number: AccessibilityWindowManager_Unittest_RegisterWindowListener001
215 * @tc.name: RegisterWindowListener
216 * @tc.desc: Test function RegisterWindowListener
217 */
218 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_RegisterWindowListener001,
219 TestSize.Level1)
220 {
221 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_RegisterWindowListener001 start";
222
223 Singleton<AccessibilityWindowManager>::GetInstance().RegisterWindowListener(nullptr);
224
225 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_RegisterWindowListener001 end";
226 }
227
228 /**
229 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange001
230 * @tc.name: OnWindowChange
231 * @tc.desc: Test function OnWindowChange
232 */
233 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange001, TestSize.Level1)
234 {
235 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange001 start";
236 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(Rosen::WindowType::APP_WINDOW_BASE);
237 EXPECT_TRUE(rosen_winInfo != nullptr);
238 rosen_winInfo->focused_ = false;
239
240 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
241 infos.emplace_back(rosen_winInfo);
242
243 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
244 windowInfoManager.a11yWindows_.clear();
245 EXPECT_TRUE(!windowInfoManager.a11yWindows_.size());
246
247 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_ADDED);
248 int retryCount = 0;
249 while (retryCount < RETRY_TIMES) {
250 sleep(1);
251 int counts = AccessibilityAbilityHelper::GetInstance().GetSendEventTimes();
252 GTEST_LOG_(INFO) << "The counts of send event is : " << counts;
253 if (counts == 1) {
254 GTEST_LOG_(INFO) << "update window successful";
255 break;
256 }
257 retryCount++;
258 }
259 EXPECT_TRUE(windowInfoManager.a11yWindows_.size() == 1);
260 EXPECT_TRUE(windowInfoManager.a11yWindows_.count(rosen_winInfo->wid_));
261 windowInfoManager.a11yWindows_.clear();
262 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange001 end";
263 }
264
265 /**
266 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange002
267 * @tc.name: OnWindowChange
268 * @tc.desc: Test function OnWindowchange
269 */
270 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange002, TestSize.Level1)
271 {
272 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange002 start";
273 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();;
274 EXPECT_TRUE(rosen_winInfo != nullptr);
275 rosen_winInfo->type_ = Rosen::WindowType::APP_WINDOW_BASE;
276 rosen_winInfo->wid_ = 1;
277 rosen_winInfo->focused_ = true;
278
279 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
280 infos.emplace_back(rosen_winInfo);
281
282 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
283 windowInfoManager.a11yWindows_.clear();
284 EXPECT_TRUE(!windowInfoManager.a11yWindows_.size());
285 EXPECT_EQ(windowInfoManager.activeWindowId_, INVALID_WINDOW_ID);
286
287 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_ACTIVE);
288 int retryCount = 0;
289 while (retryCount < RETRY_TIMES) {
290 sleep(1);
291 int counts = AccessibilityAbilityHelper::GetInstance().GetSendEventTimes();
292 GTEST_LOG_(INFO) << "The counts of send event is : " << counts;
293 if (counts == 1) {
294 GTEST_LOG_(INFO) << "update window successful";
295 break;
296 }
297 retryCount++;
298 }
299 EXPECT_TRUE(windowInfoManager.a11yWindows_.size() == 1);
300 EXPECT_TRUE(windowInfoManager.a11yWindows_.count(rosen_winInfo->wid_));
301 EXPECT_EQ(windowInfoManager.activeWindowId_, rosen_winInfo->wid_);
302 windowInfoManager.a11yWindows_.clear();
303 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange002 end";
304 }
305
306 /**
307 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange003
308 * @tc.name: OnWindowChange
309 * @tc.desc: Test function OnWindowChange
310 */
311 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange003, TestSize.Level1)
312 {
313 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange003 start";
314 // Clear window data
315 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
316 windowInfoManager.a11yWindows_.clear();
317 EXPECT_TRUE(!windowInfoManager.a11yWindows_.size());
318
319 // Add a window
320 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfoFirst = new Rosen::AccessibilityWindowInfo();
321 rosenWinInfoFirst->type_ = Rosen::WindowType::WINDOW_TYPE_APP_MAIN_WINDOW;
322 rosenWinInfoFirst->wid_ = 1;
323 rosenWinInfoFirst->focused_ = false;
324 Rosen::Rect rect;
325 rect.posX_ = 1;
326 rect.posY_ = 1;
327 rect.width_ = 1;
328 rect.height_ = 1;
329 rosenWinInfoFirst->windowRect_ = rect;
330 rosenWinInfoFirst->mode_ = Rosen::WindowMode::WINDOW_MODE_PIP;
331 rosenWinInfoFirst->isDecorEnable_ = false;
332 rosenWinInfoFirst->displayId_ = 0;
333 windowInfoManager.a11yWindows_.insert(std::make_pair(rosenWinInfoFirst->wid_,
334 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfoFirst)));
335 EXPECT_EQ(windowInfoManager.a11yWindows_.size(), 1);
336
337 // Add another window
338 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfoSecond = new Rosen::AccessibilityWindowInfo();
339 rosenWinInfoSecond->type_ = Rosen::WindowType::APP_WINDOW_BASE;
340 rosenWinInfoSecond->wid_ = WINDOW_ID;
341 rosenWinInfoSecond->focused_ = false;
342 rosenWinInfoSecond->windowRect_ = rect;
343 rosenWinInfoSecond->mode_ = Rosen::WindowMode::WINDOW_MODE_PIP;
344 rosenWinInfoSecond->isDecorEnable_ = false;
345 rosenWinInfoSecond->displayId_ = 0;
346 windowInfoManager.a11yWindows_.insert(std::make_pair(rosenWinInfoSecond->wid_,
347 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfoSecond)));
348 EXPECT_EQ(windowInfoManager.a11yWindows_.size(), WINDOWS_SIZE);
349
350 // Remove the first window
351 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
352 infos.emplace_back(rosenWinInfoFirst);
353 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_REMOVED);
354
355 int retryCount = 0;
356 while (retryCount < RETRY_TIMES) {
357 sleep(1);
358 int counts = AccessibilityAbilityHelper::GetInstance().GetSendEventTimes();
359 GTEST_LOG_(INFO) << "The counts of send event is : " << counts;
360 if (counts == 1) {
361 GTEST_LOG_(INFO) << "update window successful";
362 break;
363 }
364 retryCount++;
365 }
366 EXPECT_TRUE(windowInfoManager.a11yWindows_.size() == 1);
367 EXPECT_FALSE(windowInfoManager.a11yWindows_.count(rosenWinInfoFirst->wid_));
368 EXPECT_TRUE(windowInfoManager.a11yWindows_.count(rosenWinInfoSecond->wid_));
369 windowInfoManager.a11yWindows_.clear();
370 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange003 end";
371 }
372
373 /**
374 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange004
375 * @tc.name: OnWindowChange
376 * @tc.desc: Test function OnWindowChange
377 */
378 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange004, TestSize.Level1)
379 {
380 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange004 start";
381 // Clear window data
382 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
383 windowInfoManager.a11yWindows_.clear();
384 EXPECT_TRUE(!windowInfoManager.a11yWindows_.size());
385 EXPECT_EQ(windowInfoManager.activeWindowId_, INVALID_WINDOW_ID);
386
387 // Add an active window
388 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfoFirst = new Rosen::AccessibilityWindowInfo();
389 rosenWinInfoFirst->type_ = Rosen::WindowType::WINDOW_TYPE_APP_MAIN_WINDOW;
390 rosenWinInfoFirst->wid_ = 1;
391 rosenWinInfoFirst->focused_ = false;
392 Rosen::Rect rect;
393 rect.posX_ = 1;
394 rect.posY_ = 1;
395 rect.width_ = 1;
396 rect.height_ = 1;
397 rosenWinInfoFirst->windowRect_ = rect;
398 rosenWinInfoFirst->mode_ = Rosen::WindowMode::WINDOW_MODE_PIP;
399 rosenWinInfoFirst->isDecorEnable_ = false;
400 rosenWinInfoFirst->displayId_ = 0;
401 windowInfoManager.a11yWindows_.insert(std::make_pair(rosenWinInfoFirst->wid_,
402 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfoFirst)));
403 EXPECT_EQ(windowInfoManager.a11yWindows_.size(), 1);
404 windowInfoManager.SetActiveWindow(rosenWinInfoFirst->wid_);
405 EXPECT_EQ(windowInfoManager.activeWindowId_, rosenWinInfoFirst->wid_);
406
407 // Add another normal window
408 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfoSecond = new Rosen::AccessibilityWindowInfo();
409 rosenWinInfoSecond->type_ = Rosen::WindowType::APP_WINDOW_BASE;
410 rosenWinInfoSecond->wid_ = WINDOW_ID;
411 rosenWinInfoSecond->focused_ = false;
412 rosenWinInfoSecond->windowRect_ = rect;
413 rosenWinInfoSecond->mode_ = Rosen::WindowMode::WINDOW_MODE_PIP;
414 rosenWinInfoSecond->isDecorEnable_ = false;
415 rosenWinInfoSecond->displayId_ = 0;
416 windowInfoManager.a11yWindows_.insert(std::make_pair(rosenWinInfoSecond->wid_,
417 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfoSecond)));
418 EXPECT_EQ(windowInfoManager.a11yWindows_.size(), WINDOWS_SIZE);
419
420 // Remove the active window
421 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
422 infos.emplace_back(rosenWinInfoFirst);
423 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_REMOVED);
424
425 int retryCount = 0;
426 while (retryCount < RETRY_TIMES) {
427 sleep(1);
428 int counts = AccessibilityAbilityHelper::GetInstance().GetSendEventTimes();
429 GTEST_LOG_(INFO) << "The counts of send event is : " << counts;
430 if (counts == SEND_EVENT_TIMES) {
431 GTEST_LOG_(INFO) << "update window successful";
432 break;
433 }
434 retryCount++;
435 }
436 EXPECT_TRUE(windowInfoManager.a11yWindows_.size() == 1);
437 EXPECT_FALSE(windowInfoManager.a11yWindows_.count(rosenWinInfoFirst->wid_));
438 EXPECT_TRUE(windowInfoManager.a11yWindows_.count(rosenWinInfoSecond->wid_));
439 EXPECT_EQ(windowInfoManager.activeWindowId_, INVALID_WINDOW_ID);
440 windowInfoManager.a11yWindows_.clear();
441 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange004 end";
442 }
443
444 /**
445 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange005
446 * @tc.name: OnWindowChange
447 * @tc.desc: Test function OnWindowChange(WindowUpdateBounds fail)
448 */
449 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange005, TestSize.Level1)
450 {
451 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange005 start";
452
453 AccessibilityAbilityHelper::GetInstance().SetEventWindowChangeType(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED);
454 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
455 infos.emplace_back(nullptr);
456 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
457 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_BOUNDS);
458 sleep(1);
459 EXPECT_EQ(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED,
460 AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType());
461 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange005 end";
462 }
463
464 /**
465 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange006
466 * @tc.name: OnWindowChange
467 * @tc.desc: Test function OnWindowChange(WindowUpdateBounds success)
468 */
469 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange006, TestSize.Level1)
470 {
471 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange006 start";
472
473 AccessibilityAbilityHelper::GetInstance().SetEventWindowChangeType(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED);
474 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
475 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
476 infos.emplace_back(winInfo);
477 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
478 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_BOUNDS);
__anon6a16ce6a0202() 479 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([]() -> bool {
480 if (AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType() == WINDOW_UPDATE_BOUNDS) {
481 return true;
482 } else {
483 return false;
484 }
485 }), 1);
486 EXPECT_TRUE(ret);
487 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange006 end";
488 }
489
490 /**
491 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange007
492 * @tc.name: OnWindowChange
493 * @tc.desc: Test function OnWindowChange(WindowUpdateFocused fail)
494 */
495 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange007, TestSize.Level1)
496 {
497 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange007 start";
498
499 AccessibilityAbilityHelper::GetInstance().SetEventWindowChangeType(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED);
500 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
501 infos.emplace_back(nullptr);
502 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
503 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_FOCUSED);
504 sleep(1);
505 EXPECT_EQ(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED,
506 AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType());
507 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange007 end";
508 }
509
510 /**
511 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange008
512 * @tc.name: OnWindowChange
513 * @tc.desc: Test function OnWindowChange(WindowUpdateFocused success(a11yWindows_ is not null))
514 */
515 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange008, TestSize.Level1)
516 {
517 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange008 start";
518
519 AccessibilityAbilityHelper::GetInstance().SetEventWindowChangeType(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED);
520 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
521 // Add a window
522 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
523 rosenWinInfo->wid_ = 1;
524 windowInfoManager.a11yWindows_.insert(std::make_pair(1,
525 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
526 EXPECT_EQ(windowInfoManager.a11yWindows_.size(), 1);
527
528 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
529 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
530 winInfo->wid_ = 1;
531 infos.emplace_back(winInfo);
532 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_FOCUSED);
__anon6a16ce6a0302() 533 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([]() -> bool {
534 if (AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType() == WINDOW_UPDATE_FOCUSED) {
535 return true;
536 } else {
537 return false;
538 }
539 }), 1);
540 EXPECT_TRUE(ret);
541 windowInfoManager.a11yWindows_.clear();
542 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange008 end";
543 }
544
545 /**
546 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange009
547 * @tc.name: OnWindowChange
548 * @tc.desc: Test function OnWindowChange(WindowUpdateFocused success(a11yWindows_ is null))
549 */
550 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange009, TestSize.Level1)
551 {
552 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange009 start";
553
554 AccessibilityAbilityHelper::GetInstance().SetEventWindowChangeType(WINDOW_UPDATE_ACCESSIBILITY_FOCUSED);
555 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
556 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
557 winInfo->wid_ = 1;
558 infos.emplace_back(winInfo);
559 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
560 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_FOCUSED);
__anon6a16ce6a0402() 561 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([]() -> bool {
562 if (AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType() == WINDOW_UPDATE_FOCUSED) {
563 return true;
564 } else {
565 return false;
566 }
567 }), 1);
568 EXPECT_TRUE(ret);
569 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange009 end";
570 }
571
572 /**
573 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange010
574 * @tc.name: OnWindowChange
575 * @tc.desc: Test function OnWindowChange(WindowUpdateProperty fail)
576 */
577 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange010, TestSize.Level1)
578 {
579 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange010 start";
580
581 // Add window
582 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
583 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
584 rosenWinInfo->wid_ = WINDOW_ID;
585 rosenWinInfo->focused_ = false;
586 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
587 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
588
589 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
590 infos.emplace_back(nullptr);
591 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_PROPERTY);
592 sleep(1);
593 EXPECT_TRUE(!windowInfoManager.a11yWindows_[WINDOW_ID].IsFocused());
594 windowInfoManager.a11yWindows_.clear();
595 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange010 end";
596 }
597
598 /**
599 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange011
600 * @tc.name: OnWindowChange
601 * @tc.desc: Test function OnWindowChange(WindowUpdateProperty fail)
602 */
603 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange011, TestSize.Level1)
604 {
605 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange011 start";
606
607 // Add window
608 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
609 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
610 rosenWinInfo->wid_ = WINDOW_ID;
611 rosenWinInfo->focused_ = false;
612 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
613 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
614 EXPECT_EQ(1, windowInfoManager.a11yWindows_.size());
615
616 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
617 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
618 winInfo->wid_ = 1;
619 winInfo->focused_ = true;
620 infos.emplace_back(winInfo);
621 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_PROPERTY);
622 sleep(1);
623 EXPECT_TRUE(!windowInfoManager.a11yWindows_[WINDOW_ID].IsFocused());
624 windowInfoManager.a11yWindows_.clear();
625 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange011 end";
626 }
627
628 /**
629 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange012
630 * @tc.name: OnWindowChange
631 * @tc.desc: Test function OnWindowChange(WindowUpdateProperty success)
632 */
633 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange012, TestSize.Level1)
634 {
635 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange012 start";
636
637 // Add window
638 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
639 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
640 rosenWinInfo->wid_ = WINDOW_ID;
641 rosenWinInfo->focused_ = false;
642 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
643 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
644 EXPECT_EQ(1, windowInfoManager.a11yWindows_.size());
645
646 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
647 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
648 winInfo->wid_ = WINDOW_ID;
649 winInfo->focused_ = true;
650 infos.emplace_back(winInfo);
651 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_PROPERTY);
__anon6a16ce6a0502() 652 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([]() -> bool {
653 if (Singleton<AccessibilityWindowManager>::GetInstance().a11yWindows_[WINDOW_ID].IsFocused()) {
654 return true;
655 } else {
656 return false;
657 }
658 }), 1);
659 EXPECT_TRUE(ret);
660 windowInfoManager.a11yWindows_.clear();
661 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange012 end";
662 }
663
664 /**
665 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange013
666 * @tc.name: OnWindowChange
667 * @tc.desc: Test function OnWindowChange(size of parameter(infos) is 0)
668 */
669 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange013, TestSize.Level1)
670 {
671 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange013 start";
672
673 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
674 windowInfoManager.a11yWindows_.clear();
675 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
676 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_ADDED);
677 EXPECT_EQ(0, windowInfoManager.a11yWindows_.size());
678 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange013 end";
679 }
680
681 /**
682 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange014
683 * @tc.name: OnWindowChange
684 * @tc.desc: Test function OnWindowChange(WindowUpdateAdded fail)
685 */
686 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange014, TestSize.Level1)
687 {
688 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange014 start";
689
690 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
691 windowInfoManager.a11yWindows_.clear();
692 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
693 infos.emplace_back(nullptr);
694 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_ADDED);
695 sleep(1);
696 EXPECT_EQ(0, windowInfoManager.a11yWindows_.size());
697 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange014 end";
698 }
699
700 /**
701 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange015
702 * @tc.name: OnWindowChange
703 * @tc.desc: Test function OnWindowChange(WindowUpdateAdded success)
704 */
705 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange015, TestSize.Level1)
706 {
707 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange015 start";
708
709 // Add window
710 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
711 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo1 = new Rosen::AccessibilityWindowInfo();
712 rosenWinInfo1->wid_ = WINDOW_ID;
713 rosenWinInfo1->focused_ = false;
714 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
715 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo1)));
716
717 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo2 = new Rosen::AccessibilityWindowInfo();
718 rosenWinInfo2->wid_ = 1;
719 rosenWinInfo2->focused_ = false;
720 windowInfoManager.a11yWindows_.insert(std::make_pair(1,
721 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo2)));
722 windowInfoManager.activeWindowId_ = 1;
723
724 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
725 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
726 winInfo->wid_ = WINDOW_ID;
727 winInfo->focused_ = true;
728 infos.emplace_back(winInfo);
729 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_ADDED);
__anon6a16ce6a0602() 730 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([]() -> bool {
731 if (AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType() == WINDOW_UPDATE_ACTIVE) {
732 return true;
733 } else {
734 return false;
735 }
736 }), 1);
737 EXPECT_TRUE(ret);
738 windowInfoManager.a11yWindows_.clear();
739 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange015 end";
740 }
741
742 /**
743 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange016
744 * @tc.name: OnWindowChange
745 * @tc.desc: Test function OnWindowChange(WindowUpdateRemoved fail)
746 */
747 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange016, TestSize.Level1)
748 {
749 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange016 start";
750
751 // Add window
752 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
753 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
754 rosenWinInfo->wid_ = WINDOW_ID;
755 rosenWinInfo->focused_ = false;
756 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
757 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
758 EXPECT_EQ(1, windowInfoManager.a11yWindows_.size());
759
760 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
761 infos.emplace_back(nullptr);
762 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_REMOVED);
763 sleep(1);
764 EXPECT_EQ(1, windowInfoManager.a11yWindows_.size());
765 windowInfoManager.a11yWindows_.clear();
766 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange016 end";
767 }
768
769 /**
770 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange017
771 * @tc.name: OnWindowChange
772 * @tc.desc: Test function OnWindowChange(WindowUpdateRemoved success)
773 */
774 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange017, TestSize.Level1)
775 {
776 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange017 start";
777
778 // Add window
779 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
780 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
781 rosenWinInfo->wid_ = WINDOW_ID;
782 rosenWinInfo->focused_ = false;
783 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
784 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
785 EXPECT_EQ(1, windowInfoManager.a11yWindows_.size());
786 windowInfoManager.a11yFocusedWindowId_ = WINDOW_ID;
787
788 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
789 sptr<Rosen::AccessibilityWindowInfo> winInfo = new(std::nothrow) Rosen::AccessibilityWindowInfo();
790 winInfo->wid_ = WINDOW_ID;
791 winInfo->focused_ = true;
792 infos.emplace_back(winInfo);
793 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_REMOVED);
__anon6a16ce6a0702() 794 bool ret = AccessibilityCommonHelper::GetInstance().WaitForLoop(std::bind([]() -> bool {
795 if (AccessibilityAbilityHelper::GetInstance().GetEventWindowChangeType() == WINDOW_UPDATE_REMOVED) {
796 return true;
797 } else {
798 return false;
799 }
800 }), 1);
801 EXPECT_TRUE(ret);
802 EXPECT_EQ(0, windowInfoManager.a11yWindows_.size());
803 windowInfoManager.a11yWindows_.clear();
804 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange017 end";
805 }
806
807 /**
808 * @tc.number: AccessibilityWindowManager_Unittest_OnWindowChange018
809 * @tc.name: OnWindowChange
810 * @tc.desc: Test function OnWindowChange(WindowUpdateActive fail)
811 */
812 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_OnWindowChange018, TestSize.Level1)
813 {
814 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange018 start";
815
816 // Add window
817 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
818 sptr<Rosen::AccessibilityWindowInfo> rosenWinInfo = new Rosen::AccessibilityWindowInfo();
819 rosenWinInfo->wid_ = WINDOW_ID;
820 rosenWinInfo->focused_ = false;
821 windowInfoManager.a11yWindows_.insert(std::make_pair(WINDOW_ID,
822 windowInfoManager.CreateAccessibilityWindowInfo(rosenWinInfo)));
823 EXPECT_EQ(1, windowInfoManager.a11yWindows_.size());
824 windowInfoManager.activeWindowId_ = WINDOW_ID;
825
826 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
827 infos.emplace_back(nullptr);
828 windowInfoManager.OnWindowUpdate(infos, Rosen::WindowUpdateType::WINDOW_UPDATE_ACTIVE);
829 sleep(1);
830 EXPECT_EQ(WINDOW_ID, windowInfoManager.activeWindowId_);
831 windowInfoManager.a11yWindows_.clear();
832 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_OnWindowChange018 end";
833 }
834
835 /**
836 * @tc.number: AccessibilityWindowManager_Unittest_SetActiveWindow001
837 * @tc.name: SetActiveWindow
838 * @tc.desc: Test function SetActiveWindow
839 */
840 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetActiveWindow001, TestSize.Level1)
841 {
842 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow001 start";
843 /* map insert value */
844 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
845 AccessibilityWindowInfo info;
846 mgr.activeWindowId_ = ACTIVE_WINDOW_ID;
847 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
848 mgr.a11yWindows_.insert(std::make_pair(ANY_WINDOW_ID, info));
849 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
850 /* SetActiveWindow */
851 int32_t windowId = INVALID_WINDOW_ID;
852 mgr.SetActiveWindow(windowId);
853 /* test */
854 bool test1 = false;
855 if (mgr.a11yWindows_.count(ACTIVE_WINDOW_ID)) {
856 test1 = true;
857 }
858 EXPECT_FALSE(test1);
859 EXPECT_EQ(INVALID_WINDOW_ID, mgr.activeWindowId_);
860
861 mgr.a11yWindows_.clear();
862 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow001 end";
863 }
864
865 /**
866 * @tc.number: AccessibilityWindowManager_Unittest_SetActiveWindow002
867 * @tc.name: SetActiveWindow
868 * @tc.desc: Test function SetActiveWindow
869 */
870 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetActiveWindow002, TestSize.Level1)
871 {
872 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow002 start";
873 /* map insert value */
874 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
875 AccessibilityWindowInfo info;
876 mgr.activeWindowId_ = ACTIVE_WINDOW_ID;
877 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
878 mgr.a11yWindows_.insert(std::make_pair(ACTIVE_WINDOW_ID, info));
879 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
880 /* SetActiveWindow */
881 int32_t windowId = INVALID_WINDOW_ID;
882 mgr.SetActiveWindow(windowId);
883 /* test */
884 bool test1 = false;
885 if (mgr.a11yWindows_.count(ACTIVE_WINDOW_ID)) {
886 test1 = true;
887 }
888 EXPECT_TRUE(test1);
889 bool test2 = mgr.a11yWindows_[ACTIVE_WINDOW_ID].IsActive();
890 EXPECT_FALSE(test2);
891 EXPECT_EQ(INVALID_WINDOW_ID, mgr.activeWindowId_);
892
893 mgr.a11yWindows_.clear();
894 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow002 end";
895 }
896
897 /**
898 * @tc.number: AccessibilityWindowManager_Unittest_SetActiveWindow003
899 * @tc.name: SetActiveWindow
900 * @tc.desc: Test function SetActiveWindow
901 */
902 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetActiveWindow003, TestSize.Level1)
903 {
904 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow003 start";
905 /* map insert value */
906 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
907 AccessibilityWindowInfo info;
908 mgr.activeWindowId_ = ACTIVE_WINDOW_ID;
909 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
910 mgr.a11yWindows_.insert(std::make_pair(ANY_WINDOW_ID, info));
911 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
912 /* SetActiveWindow */
913 int32_t windowId = ACTIVE_WINDOW_ID;
914 mgr.SetActiveWindow(windowId);
915 /* test */
916 bool test1 = false;
917 if (mgr.a11yWindows_.count(windowId)) {
918 test1 = true;
919 }
920 EXPECT_FALSE(test1);
921 EXPECT_EQ(ACTIVE_WINDOW_ID, mgr.activeWindowId_);
922
923 mgr.a11yWindows_.clear();
924 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow003 end";
925 }
926
927 /**
928 * @tc.number: AccessibilityWindowManager_Unittest_SetActiveWindow004
929 * @tc.name: SetActiveWindow
930 * @tc.desc: Test function SetActiveWindow
931 */
932 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetActiveWindow004, TestSize.Level1)
933 {
934 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow004 start";
935 /* map insert value */
936 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
937 AccessibilityWindowInfo info1;
938 AccessibilityWindowInfo info2;
939 mgr.activeWindowId_ = ACTIVE_WINDOW_ID;
940 int32_t windowId = ANY_WINDOW_ID;
941 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
942 mgr.a11yWindows_.insert(std::make_pair(ACTIVE_WINDOW_ID, info1));
943 mgr.a11yWindows_.insert(std::make_pair(windowId, info2));
944 EXPECT_EQ(2, (int)mgr.a11yWindows_.size());
945 /* SetActiveWindow */
946 mgr.SetActiveWindow(windowId);
947 /* test */
948 bool test1 = false;
949 if (mgr.a11yWindows_.count(ACTIVE_WINDOW_ID)) {
950 test1 = true;
951 }
952 EXPECT_TRUE(test1);
953 bool test2 = mgr.a11yWindows_[ACTIVE_WINDOW_ID].IsActive();
954 EXPECT_FALSE(test2);
955 EXPECT_EQ(ANY_WINDOW_ID, mgr.activeWindowId_);
956 bool test3 = mgr.a11yWindows_[mgr.activeWindowId_].IsActive();
957 EXPECT_TRUE(test3);
958
959 mgr.a11yWindows_.clear();
960 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow004 end";
961 }
962
963 /**
964 * @tc.number: AccessibilityWindowManager_Unittest_SetActiveWindow005
965 * @tc.name: SetActiveWindow
966 * @tc.desc: Test function SetActiveWindow
967 */
968 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetActiveWindow005, TestSize.Level1)
969 {
970 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow005 start";
971 /* map insert value */
972 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
973 AccessibilityWindowInfo info1;
974 AccessibilityWindowInfo info2;
975 mgr.activeWindowId_ = ACTIVE_WINDOW_ID;
976 mgr.a11yFocusedWindowId_ = ACTIVE_WINDOW_ID;
977 int32_t windowId = ANY_WINDOW_ID;
978 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
979 mgr.a11yWindows_.insert(std::make_pair(ACTIVE_WINDOW_ID, info1));
980 mgr.a11yWindows_.insert(std::make_pair(windowId, info2));
981 EXPECT_EQ(2, (int)mgr.a11yWindows_.size());
982 /* SetActiveWindow */
983 mgr.SetActiveWindow(windowId);
984 /* test */
985 EXPECT_EQ(INVALID_WINDOW_ID, mgr.a11yFocusedWindowId_);
986 mgr.a11yWindows_.clear();
987 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetActiveWindow005 end";
988 }
989
990 /**
991 * @tc.number: AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow001
992 * @tc.name: SetAccessibilityFocusedWindow
993 * @tc.desc: Test function SetAccessibilityFocusedWindow
994 */
995 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow001,
996 TestSize.Level1)
997 {
998 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow001 start";
999 /* map insert value */
1000 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1001 AccessibilityWindowInfo info;
1002 mgr.a11yFocusedWindowId_ = ANY_WINDOW_ID;
1003 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1004 mgr.a11yWindows_.insert(std::make_pair(ACTIVE_WINDOW_ID, info));
1005 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1006 /* SetAccessibilityFocusedWindow */
1007 int32_t windowId = INVALID_WINDOW_ID;
1008 mgr.SetAccessibilityFocusedWindow(windowId);
1009 /* test */
1010 bool test1 = false;
1011 if (mgr.a11yWindows_.count(ANY_WINDOW_ID)) {
1012 test1 = true;
1013 }
1014 EXPECT_FALSE(test1);
1015 EXPECT_EQ(INVALID_WINDOW_ID, mgr.a11yFocusedWindowId_);
1016
1017 mgr.a11yWindows_.clear();
1018 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow001 end";
1019 }
1020
1021 /**
1022 * @tc.number: AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow002
1023 * @tc.name: SetAccessibilityFocusedWindow
1024 * @tc.desc: Test function SetAccessibilityFocusedWindow
1025 */
1026 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow002,
1027 TestSize.Level1)
1028 {
1029 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow002 start";
1030 /* map insert value */
1031 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1032 AccessibilityWindowInfo info;
1033 mgr.a11yFocusedWindowId_ = ANY_WINDOW_ID;
1034 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1035 mgr.a11yWindows_.insert(std::make_pair(ANY_WINDOW_ID, info));
1036 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1037 /* SetAccessibilityFocusedWindow */
1038 int32_t windowId = INVALID_WINDOW_ID;
1039 mgr.SetAccessibilityFocusedWindow(windowId);
1040 /* test */
1041 bool test1 = false;
1042 if (mgr.a11yWindows_.count(ANY_WINDOW_ID)) {
1043 test1 = true;
1044 }
1045 EXPECT_TRUE(test1);
1046 bool test2 = mgr.a11yWindows_[ANY_WINDOW_ID].IsAccessibilityFocused();
1047 EXPECT_FALSE(test2);
1048 EXPECT_EQ(INVALID_WINDOW_ID, mgr.a11yFocusedWindowId_);
1049
1050 mgr.a11yWindows_.clear();
1051 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow002 end";
1052 }
1053
1054 /**
1055 * @tc.number: AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow003
1056 * @tc.name: SetAccessibilityFocusedWindow
1057 * @tc.desc: Test function SetAccessibilityFocusedWindow
1058 */
1059 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow003,
1060 TestSize.Level1)
1061 {
1062 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow003 start";
1063 /* map insert value */
1064 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1065 AccessibilityWindowInfo info;
1066 mgr.a11yFocusedWindowId_ = ACTIVE_WINDOW_ID;
1067 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1068 mgr.a11yWindows_.insert(std::make_pair(ANY_WINDOW_ID, info));
1069 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1070 /* SetAccessibilityFocusedWindow */
1071 int32_t windowId = ACTIVE_WINDOW_ID;
1072 mgr.SetAccessibilityFocusedWindow(windowId);
1073 /* test */
1074 bool test1 = false;
1075 if (mgr.a11yWindows_.count(windowId)) {
1076 test1 = true;
1077 }
1078 EXPECT_FALSE(test1);
1079 EXPECT_EQ(ACTIVE_WINDOW_ID, mgr.a11yFocusedWindowId_);
1080
1081 mgr.a11yWindows_.clear();
1082 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow003 end";
1083 }
1084
1085 /**
1086 * @tc.number: AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow004
1087 * @tc.name: SetAccessibilityFocusedWindow
1088 * @tc.desc: Test function SetAccessibilityFocusedWindow
1089 */
1090 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow004,
1091 TestSize.Level1)
1092 {
1093 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow004 start";
1094 /* map insert value */
1095 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1096 AccessibilityWindowInfo info1;
1097 AccessibilityWindowInfo info2;
1098 mgr.a11yFocusedWindowId_ = ANY_WINDOW_ID;
1099 int32_t windowId = ACTIVE_WINDOW_ID;
1100 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1101 mgr.a11yWindows_.insert(std::make_pair(ANY_WINDOW_ID, info1));
1102 mgr.a11yWindows_.insert(std::make_pair(windowId, info2));
1103 EXPECT_EQ(2, (int)mgr.a11yWindows_.size());
1104 /* SetAccessibilityFocusedWindow */
1105 mgr.SetAccessibilityFocusedWindow(windowId);
1106 /* test */
1107 bool test1 = false;
1108 if (mgr.a11yWindows_.count(ANY_WINDOW_ID)) {
1109 test1 = true;
1110 }
1111 EXPECT_TRUE(test1);
1112 bool test2 = mgr.a11yWindows_[ANY_WINDOW_ID].IsAccessibilityFocused();
1113 EXPECT_FALSE(test2);
1114 EXPECT_EQ(ACTIVE_WINDOW_ID, mgr.a11yFocusedWindowId_);
1115 bool test3 = mgr.a11yWindows_[mgr.a11yFocusedWindowId_].IsAccessibilityFocused();
1116 EXPECT_TRUE(test3);
1117
1118 mgr.a11yWindows_.clear();
1119 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetAccessibilityFocusedWindow004 end";
1120 }
1121
1122 /**
1123 * @tc.number: AccessibilityWindowManager_Unittest_GetAccessibilityWindows001
1124 * @tc.name: GetAccessibilityWindows
1125 * @tc.desc: Test function GetAccessibilityWindows
1126 */
1127 HWTEST_F(
1128 AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_GetAccessibilityWindows001, TestSize.Level1)
1129 {
1130 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_GetAccessibilityWindows001 start";
1131 /* map insert value */
1132 int32_t windowId = ANY_WINDOW_ID;
1133
1134 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
1135 Rosen::WindowType::BELOW_APP_SYSTEM_WINDOW_BASE);
1136 EXPECT_TRUE(rosen_winInfo != nullptr);
1137
1138 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
1139 infos.emplace_back(rosen_winInfo);
1140
1141 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1142 AccessibilityWindowInfo info = mgr.CreateAccessibilityWindowInfo(rosen_winInfo);
1143 info.SetAccessibilityWindowType(AccessibilityWindowType::TYPE_APPLICATION);
1144 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1145 mgr.a11yWindows_.insert(std::make_pair(windowId, info));
1146 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1147
1148 /* SetAccessibilityFocusedWindow */
1149 mgr.SetAccessibilityFocusedWindow(windowId);
1150
1151 /* GetAccessibilityWindows */
1152 std::vector<AccessibilityWindowInfo> windows = mgr.GetAccessibilityWindows();
1153 ASSERT_EQ(1, (int)windows.size());
1154 static Accessibility::AccessibilityWindowType type = windows.begin()->GetAccessibilityWindowType();
1155 EXPECT_EQ(AccessibilityWindowType::TYPE_APPLICATION, type);
1156
1157 mgr.a11yWindows_.clear();
1158 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_GetAccessibilityWindows001 end";
1159 }
1160
1161 /**
1162 * @tc.number: AccessibilityWindowManager_Unittest_GetAccessibilityWindow001
1163 * @tc.name: GetAccessibilityWindow
1164 * @tc.desc: Test function GetAccessibilityWindow
1165 */
1166 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_GetAccessibilityWindow001, TestSize.Level1)
1167 {
1168 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_GetAccessibilityWindow001 start";
1169 /* map insert value */
1170 int32_t windowId = ANY_WINDOW_ID;
1171
1172 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
1173 Rosen::WindowType::BELOW_APP_SYSTEM_WINDOW_BASE);
1174 EXPECT_TRUE(rosen_winInfo != nullptr);
1175
1176 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
1177 infos.emplace_back(rosen_winInfo);
1178
1179 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1180 AccessibilityWindowInfo info = mgr.CreateAccessibilityWindowInfo(rosen_winInfo);
1181 info.SetAccessibilityWindowType(AccessibilityWindowType::TYPE_APPLICATION);
1182 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1183 mgr.a11yWindows_.insert(std::make_pair(windowId, info));
1184 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1185
1186 /* GetAccessibilityWindow */
1187 bool window = mgr.GetAccessibilityWindow(windowId, info);
1188 EXPECT_TRUE(window);
1189
1190 mgr.a11yWindows_.clear();
1191 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_GetAccessibilityWindow001 end";
1192 }
1193
1194 /**
1195 * @tc.number: AccessibilityWindowManager_Unittest_GetAccessibilityWindow002
1196 * @tc.name: GetAccessibilityWindow
1197 * @tc.desc: Test function GetAccessibilityWindow
1198 */
1199 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_GetAccessibilityWindow002, TestSize.Level1)
1200 {
1201 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_GetAccessibilityWindow002 start";
1202 /* map insert value */
1203 int32_t windowId = ANY_WINDOW_ID;
1204
1205 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
1206 Rosen::WindowType::BELOW_APP_SYSTEM_WINDOW_BASE);
1207 EXPECT_TRUE(rosen_winInfo != nullptr);
1208
1209 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
1210 infos.emplace_back(rosen_winInfo);
1211
1212 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1213 AccessibilityWindowInfo info = mgr.CreateAccessibilityWindowInfo(rosen_winInfo);
1214 info.SetAccessibilityWindowType(AccessibilityWindowType::TYPE_APPLICATION);
1215 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1216 mgr.a11yWindows_.insert(std::make_pair(windowId, info));
1217 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1218
1219 /* GetAccessibilityWindow */
1220 bool window = mgr.GetAccessibilityWindow(-1, info);
1221 EXPECT_FALSE(window);
1222
1223 mgr.a11yWindows_.clear();
1224 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_GetAccessibilityWindow002 end";
1225 }
1226
1227 /**
1228 * @tc.number: AccessibilityWindowManager_Unittest_IsValidWindow001
1229 * @tc.name: IsValidWindow
1230 * @tc.desc: Test function IsValidWindow
1231 */
1232 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_IsValidWindow001, TestSize.Level1)
1233 {
1234 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_IsValidWindow001 start";
1235 /* map insert value */
1236 int32_t windowId = ANY_WINDOW_ID;
1237
1238 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
1239 Rosen::WindowType::BELOW_APP_SYSTEM_WINDOW_BASE);
1240 EXPECT_TRUE(rosen_winInfo != nullptr);
1241
1242 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
1243 infos.emplace_back(rosen_winInfo);
1244
1245 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1246 AccessibilityWindowInfo info = mgr.CreateAccessibilityWindowInfo(rosen_winInfo);
1247 info.SetAccessibilityWindowType(AccessibilityWindowType::TYPE_APPLICATION);
1248 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1249 mgr.a11yWindows_.insert(std::make_pair(windowId, info));
1250 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1251
1252 /* IsValidWindow */
1253 bool window = mgr.IsValidWindow(windowId);
1254 EXPECT_TRUE(window);
1255
1256 mgr.a11yWindows_.clear();
1257 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_IsValidWindow001 end";
1258 }
1259
1260 /**
1261 * @tc.number: AccessibilityWindowManager_Unittest_IsValidWindow002
1262 * @tc.name: IsValidWindow
1263 * @tc.desc: Test function IsValidWindow
1264 */
1265 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_IsValidWindow002, TestSize.Level1)
1266 {
1267 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_IsValidWindow002 start";
1268 /* map insert value */
1269 int32_t windowId = ANY_WINDOW_ID;
1270
1271 sptr<Rosen::AccessibilityWindowInfo> rosen_winInfo = GetRosenWindowInfo(
1272 Rosen::WindowType::BELOW_APP_SYSTEM_WINDOW_BASE);
1273 EXPECT_TRUE(rosen_winInfo != nullptr);
1274
1275 std::vector<sptr<Rosen::AccessibilityWindowInfo>> infos;
1276 infos.emplace_back(rosen_winInfo);
1277
1278 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1279 AccessibilityWindowInfo info = mgr.CreateAccessibilityWindowInfo(rosen_winInfo);
1280 info.SetAccessibilityWindowType(AccessibilityWindowType::TYPE_APPLICATION);
1281 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1282 mgr.a11yWindows_.insert(std::make_pair(windowId, info));
1283 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1284
1285 /* IsValidWindow */
1286 bool window = mgr.IsValidWindow(0);
1287 EXPECT_FALSE(window);
1288
1289 mgr.a11yWindows_.clear();
1290 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_IsValidWindow002 end";
1291 }
1292
1293 /**
1294 * @tc.number: AccessibilityWindowManager_Unittest_SetWindowSize001
1295 * @tc.name: SetActiveWindow
1296 * @tc.desc: Test function SetActiveWindow
1297 */
1298 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_SetWindowSize001, TestSize.Level1)
1299 {
1300 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetWindowSize001 start";
1301 /* map insert value */
1302 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1303 int32_t windowId = ANY_WINDOW_ID;
1304 AccessibilityWindowInfo info;
1305 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1306 mgr.a11yWindows_.insert(std::make_pair(windowId, info));
1307 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1308
1309 /* SetWindowSize */
1310 Rect rect(1, 2, 3, 4);
1311 mgr.SetWindowSize(windowId, rect);
1312 AccessibilityWindowInfo mapInfo;
1313 for (auto& window : mgr.a11yWindows_) {
1314 mapInfo = window.second;
1315 }
1316 EXPECT_EQ(rect.GetLeftTopXScreenPostion(), mapInfo.GetRectInScreen().GetLeftTopXScreenPostion());
1317 EXPECT_EQ(rect.GetRightBottomXScreenPostion(), mapInfo.GetRectInScreen().GetRightBottomXScreenPostion());
1318
1319 mgr.a11yWindows_.clear();
1320 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_SetWindowSize001 end";
1321 }
1322
1323 /**
1324 * @tc.number: AccessibilityWindowManager_Unittest_ClearAccessibilityFocused001
1325 * @tc.name: ClearAccessibilityFocused
1326 * @tc.desc: Test function ClearAccessibilityFocused
1327 */
1328 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_ClearAccessibilityFocused001,
1329 TestSize.Level1)
1330 {
1331 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ClearAccessibilityFocused001 start";
1332 /* map insert value */
1333 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1334 AccessibilityWindowInfo info1;
1335 mgr.a11yFocusedWindowId_ = ACTIVE_WINDOW_ID;
1336 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1337 mgr.a11yWindows_.insert(std::make_pair(ACTIVE_WINDOW_ID, info1));
1338
1339 AccessibilityAbilityHelper::GetInstance().SetNeedAccountDataNullFlag(true);
1340 /* ClearAccessibilityFocused */
1341 mgr.ClearAccessibilityFocused();
1342 AccessibilityAbilityHelper::GetInstance().SetNeedAccountDataNullFlag(false);
1343 /* test */
1344 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1345 mgr.a11yWindows_.clear();
1346 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ClearAccessibilityFocused001 end";
1347 }
1348
1349 /**
1350 * @tc.number: AccessibilityWindowManager_Unittest_ClearAccessibilityFocused002
1351 * @tc.name: ClearAccessibilityFocused
1352 * @tc.desc: Test function ClearAccessibilityFocused
1353 */
1354 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_ClearAccessibilityFocused002,
1355 TestSize.Level1)
1356 {
1357 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ClearAccessibilityFocused002 start";
1358 /* map insert value */
1359 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1360 AccessibilityWindowInfo info1;
1361 mgr.a11yFocusedWindowId_ = ACTIVE_WINDOW_ID;
1362 EXPECT_EQ(0, (int)mgr.a11yWindows_.size());
1363 mgr.a11yWindows_.insert(std::make_pair(ACTIVE_WINDOW_ID, info1));
1364 sptr<AccessibilityAccountData> accountData =
1365 Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
1366 if (!accountData) {
1367 GTEST_LOG_(INFO) << "accountData is null";
1368 return;
1369 }
1370 sptr<AccessibilityWindowConnection> windowConnection =
1371 new(std::nothrow) AccessibilityWindowConnection(ACTIVE_WINDOW_ID, nullptr, ACCOUNT_ID);
1372 accountData->RemoveAccessibilityWindowConnection(ACTIVE_WINDOW_ID);
1373 accountData->AddAccessibilityWindowConnection(ACTIVE_WINDOW_ID, windowConnection);
1374 /* ClearAccessibilityFocused */
1375 mgr.ClearAccessibilityFocused();
1376 /* test */
1377 EXPECT_EQ(1, (int)mgr.a11yWindows_.size());
1378 mgr.a11yWindows_.clear();
1379 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ClearAccessibilityFocused002 end";
1380 }
1381
1382 /**
1383 * @tc.number: AccessibilityWindowManager_Unittest_ClearAccessibilityFocused003
1384 * @tc.name: ClearAccessibilityFocused
1385 * @tc.desc: Test function ClearAccessibilityFocused
1386 */
1387 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_ClearAccessibilityFocused003,
1388 TestSize.Level1)
1389 {
1390 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ClearAccessibilityFocused003 start";
1391 AccessibilityWindowManager& mgr = Singleton<AccessibilityWindowManager>::GetInstance();
1392 mgr.a11yFocusedWindowId_ = ACTIVE_WINDOW_ID;
1393 sptr<AccessibilityAccountData> accountData =
1394 Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
1395 if (!accountData) {
1396 GTEST_LOG_(INFO) << "accountData is null";
1397 return;
1398 }
1399 sptr<IAccessibilityElementOperator> proxy = new(std::nothrow) AccessibilityElementOperatorProxy(nullptr);
1400 sptr<AccessibilityWindowConnection> windowConnection =
1401 new(std::nothrow) AccessibilityWindowConnection(ACTIVE_WINDOW_ID, proxy, ACCOUNT_ID);
1402 accountData->RemoveAccessibilityWindowConnection(ACTIVE_WINDOW_ID);
1403 accountData->AddAccessibilityWindowConnection(ACTIVE_WINDOW_ID, windowConnection);
1404 /* ClearAccessibilityFocused */
1405 mgr.ClearAccessibilityFocused();
1406 /* test */
1407 EXPECT_EQ(ACTIVE_WINDOW_ID, AccessibilityAbilityHelper::GetInstance().GetEventWindowId());
1408 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_ClearAccessibilityFocused003 end";
1409 }
1410
1411 /**
1412 * @tc.number: AccessibilityWindowManager_Unittest_DeregisterWindowListener001
1413 * @tc.name: RegisterWindowListener
1414 * @tc.desc: Test function RegisterWindowListener
1415 */
1416 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_DeregisterWindowListener001,
1417 TestSize.Level1)
1418 {
1419 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_DeregisterWindowListener001 start";
1420
1421 Singleton<AccessibilityWindowManager>::GetInstance().DeregisterWindowListener();
1422
1423 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_DeregisterWindowListener001 end";
1424 }
1425
1426 /**
1427 * @tc.number: AccessibilityWindowManager_Unittest_DeInit001
1428 * @tc.name: DeInit
1429 * @tc.desc: Test function DeInit
1430 */
1431 HWTEST_F(AccessibilityWindowManagerTest, AccessibilityWindowManager_Unittest_DeInit001, TestSize.Level1)
1432 {
1433 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_DeInit001 start";
1434 AccessibilityWindowManager& windowInfoManager = Singleton<AccessibilityWindowManager>::GetInstance();
1435 int32_t windowId = WINDOW_ID;
1436 AccessibilityWindowInfo winInfo;
1437
1438 windowInfoManager.activeWindowId_ = windowId;
1439 windowInfoManager.a11yFocusedWindowId_ = windowId;
1440 windowInfoManager.a11yWindows_.emplace(windowId, winInfo);
1441 windowInfoManager.DeInit();
1442
1443 EXPECT_EQ(windowInfoManager.activeWindowId_, INVALID_WINDOW_ID);
1444 EXPECT_EQ(windowInfoManager.a11yFocusedWindowId_, INVALID_WINDOW_ID);
1445 EXPECT_TRUE(!windowInfoManager.a11yWindows_.size());
1446 GTEST_LOG_(INFO) << "AccessibilityWindowManager_Unittest_DeInit001 end";
1447 }
1448 } // namespace Accessibility
1449 } // namespace OHOS