• 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 <map>
18 #include <memory>
19 #include "accessibility_common_helper.h"
20 #include "accessibility_mouse_autoclick.h"
21 #include "accessibility_ut_helper.h"
22 #include "accessible_ability_manager_service.h"
23 
24 using namespace testing;
25 using namespace testing::ext;
26 
27 namespace OHOS {
28 namespace Accessibility {
29 namespace {
30     constexpr int32_t DELAY_TIME = 100;
31 } // namespace
32 
33 class AccessibilityMouseAutoclickUnitTest : public ::testing::Test {
34 public:
AccessibilityMouseAutoclickUnitTest()35     AccessibilityMouseAutoclickUnitTest()
36     {}
~AccessibilityMouseAutoclickUnitTest()37     ~AccessibilityMouseAutoclickUnitTest()
38     {}
39 
40     static void SetUpTestCase();
41     static void TearDownTestCase();
42     void SetUp() override;
43     void TearDown() override;
44 
45     std::shared_ptr<AccessibilityMouseAutoclick> mouseAutoclick_ = nullptr;
46 };
47 
SetUpTestCase()48 void AccessibilityMouseAutoclickUnitTest::SetUpTestCase()
49 {
50     GTEST_LOG_(INFO) << "###################### AccessibilityMouseAutoclickUnitTest Start ######################";
51     Singleton<AccessibleAbilityManagerService>::GetInstance().OnStart();
52     AccessibilityCommonHelper::GetInstance().WaitForServicePublish();
53 }
54 
TearDownTestCase()55 void AccessibilityMouseAutoclickUnitTest::TearDownTestCase()
56 {
57     GTEST_LOG_(INFO) << "###################### AccessibilityMouseAutoclickUnitTest End ######################";
58     Singleton<AccessibleAbilityManagerService>::GetInstance().OnStop();
59 }
60 
SetUp()61 void AccessibilityMouseAutoclickUnitTest::SetUp()
62 {
63     GTEST_LOG_(INFO) << "SetUp";
64     mouseAutoclick_ = std::make_shared<AccessibilityMouseAutoclick>();
65 }
66 
TearDown()67 void AccessibilityMouseAutoclickUnitTest::TearDown()
68 {
69     GTEST_LOG_(INFO) << "TearDown";
70     mouseAutoclick_ = nullptr;
71 }
72 
73 /**
74  * @tc.number: AccessibilityMouseAutoclick_Unittest_OnPointerEvent_001
75  * @tc.name: OnPointerEvent
76  * @tc.desc: Test function OnPointerEvent
77  * @tc.require: issueI5NTXC
78  */
79 HWTEST_F(AccessibilityMouseAutoclickUnitTest, AccessibilityMouseAutoclick_Unittest_OnPointerEvent_001, TestSize.Level1)
80 {
81     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_001 start";
82     if (!mouseAutoclick_) {
83         return;
84     }
85     std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create();
86     if (!event) {
87         return;
88     }
89     sptr<AccessibilityAccountData> accountData =
90         Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
91     if (!accountData) {
92         return;
93     }
94     accountData->GetConfig()->SetMouseAutoClick(DELAY_TIME);
95     event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE);
96     event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE);
97     MMI::PointerEvent::PointerItem item;
98     event->AddPointerItem(item);
99     mouseAutoclick_->OnPointerEvent(*event);
100     sleep(2);
101 
102     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_001 end";
103 }
104 
105 /**
106  * @tc.number: AccessibilityMouseAutoclick_Unittest_OnPointerEvent_002
107  * @tc.name: OnPointerEvent
108  * @tc.desc: Test function OnPointerEvent
109  * @tc.require: issueI5NTXC
110  */
111 HWTEST_F(AccessibilityMouseAutoclickUnitTest, AccessibilityMouseAutoclick_Unittest_OnPointerEvent_002, TestSize.Level1)
112 {
113     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_002 start";
114     if (!mouseAutoclick_) {
115         return;
116     }
117     std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create();
118     if (!event) {
119         return;
120     }
121     sptr<AccessibilityAccountData> accountData =
122         Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
123     if (!accountData) {
124         return;
125     }
126     accountData->GetConfig()->SetMouseAutoClick(DELAY_TIME);
127     event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE);
128     event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE);
129     event->SetPointerId(1);
130     MMI::PointerEvent::PointerItem item;
131     item.SetPointerId(1);
132     event->AddPointerItem(item);
133     mouseAutoclick_->OnPointerEvent(*event);
134 
135     MMI::PointerEvent::PointerItem item1;
136     item1.SetPointerId(1);
137     item1.SetDisplayX(1);
138     item1.SetDisplayY(1);
139     event->UpdatePointerItem(1, item1);
140     mouseAutoclick_->OnPointerEvent(*event);
141     sleep(2);
142 
143     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_002 end";
144 }
145 
146 /**
147  * @tc.number: AccessibilityMouseAutoclick_Unittest_OnPointerEvent_003
148  * @tc.name: OnPointerEvent
149  * @tc.desc: Test function OnPointerEvent
150  * @tc.require: issueI5NTXC
151  */
152 HWTEST_F(AccessibilityMouseAutoclickUnitTest, AccessibilityMouseAutoclick_Unittest_OnPointerEvent_003, TestSize.Level1)
153 {
154     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_003 start";
155     if (!mouseAutoclick_) {
156         return;
157     }
158     std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create();
159     if (!event) {
160         return;
161     }
162     sptr<AccessibilityAccountData> accountData =
163         Singleton<AccessibleAbilityManagerService>::GetInstance().GetCurrentAccountData();
164     if (!accountData) {
165         return;
166     }
167     accountData->GetConfig()->SetMouseAutoClick(DELAY_TIME);
168     event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_MOUSE);
169     event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_MOVE);
170     event->SetPointerId(1);
171     MMI::PointerEvent::PointerItem item;
172     item.SetPointerId(1);
173     event->AddPointerItem(item);
174     mouseAutoclick_->OnPointerEvent(*event);
175     mouseAutoclick_->OnPointerEvent(*event);
176     sleep(2);
177 
178     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_003 end";
179 }
180 
181 /**
182  * @tc.number: AccessibilityMouseAutoclick_Unittest_OnPointerEvent_004
183  * @tc.name: OnPointerEvent
184  * @tc.desc: Test function OnPointerEvent
185  * @tc.require: issueI5NTXC
186  */
187 HWTEST_F(AccessibilityMouseAutoclickUnitTest, AccessibilityMouseAutoclick_Unittest_OnPointerEvent_004, TestSize.Level1)
188 {
189     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_004 start";
190     if (!mouseAutoclick_) {
191         return;
192     }
193     std::shared_ptr<MMI::PointerEvent> event = MMI::PointerEvent::Create();
194     if (!event) {
195         return;
196     }
197     event->SetSourceType(MMI::PointerEvent::SOURCE_TYPE_TOUCHSCREEN);
198     event->SetPointerAction(MMI::PointerEvent::POINTER_ACTION_UP);
199     MMI::PointerEvent::PointerItem item;
200     event->AddPointerItem(item);
201     mouseAutoclick_->OnPointerEvent(*event);
202 
203     GTEST_LOG_(INFO) << "AccessibilityMouseAutoclick_Unittest_OnPointerEvent_004 end";
204 }
205 } // namespace Accessibility
206 } // namespace OHOS