• 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 <memory>
17 #include <gtest/gtest.h>
18 #include "accessibility_event_info.h"
19 #include "accessibility_operator.h"
20 #include "accessible_ability_channel_proxy.h"
21 #include "accessible_ability_channel_stub.h"
22 #include "mock_accessible_ability_channel_impl.h"
23 
24 using namespace testing;
25 using namespace testing::ext;
26 using namespace std;
27 
28 namespace OHOS {
29 namespace Accessibility {
30 class AccessibilityOperatorUnitTest : public ::testing::Test {
31 public:
AccessibilityOperatorUnitTest()32     AccessibilityOperatorUnitTest() {}
~AccessibilityOperatorUnitTest()33     ~AccessibilityOperatorUnitTest() {}
34 
SetUpTestCase()35     static void SetUpTestCase()
36     {
37         GTEST_LOG_(INFO) << "AccessibilityOperatorUnitTest Start";
38     }
TearDownTestCase()39     static void TearDownTestCase()
40     {
41         GTEST_LOG_(INFO) << "AccessibilityOperatorUnitTest End";
42     }
SetUp()43     void SetUp()
44     {
45         GTEST_LOG_(INFO) << "AccessibilityOperatorUnitTest SetUp()";
46     };
TearDown()47     void TearDown()
48     {
49         GTEST_LOG_(INFO) << "AccessibilityOperatorUnitTest TearDown()";
50     }
51 };
52 
53 /**
54  * @tc.number: AccessibilityOperator_001
55  * @tc.name: Test the function wrapper only in asac.
56  * @tc.desc: Test the function wrapper only in asac.
57  */
58 HWTEST_F(AccessibilityOperatorUnitTest, AccessibilityOperator_001, TestSize.Level1)
59 {
60     GTEST_LOG_(INFO) << "GetChannel_001 start";
61     sptr<IAccessibleAbilityChannel> service = new MockAccessibleAbilityChannel();
62     AccessibilityOperator &instance = AccessibilityOperator::GetInstance();
63 
64     GTEST_LOG_(INFO) << "AddChannel 1";
65     instance.AddChannel(1, service);
66     GTEST_LOG_(INFO) << "AddChannel OK";
67 
68     GTEST_LOG_(INFO) << "GetChannel start";
69     EXPECT_TRUE(instance.GetChannel(1) != nullptr);
70 
71     GTEST_LOG_(INFO) << "AddChannel 2";
72     instance.AddChannel(2, service);
73 
74     GTEST_LOG_(INFO) << "RemoveChannel 2";
75     instance.RemoveChannel(2);
76 
77     GTEST_LOG_(INFO) << "SetSearchElementInfoByAccessibilityIdResult start";
78     std::vector<AccessibilityElementInfo> infos;
79     AccessibilityElementInfo info {};
80     info.SetWindowId(100);
81     infos.push_back(info);
82     instance.SetSearchElementInfoByAccessibilityIdResult(infos, 1);
83 
84     GTEST_LOG_(INFO) << "SetOnKeyPressEventResult start";
85     instance.SetOnKeyPressEventResult(1, true, 1);
86 
87     GTEST_LOG_(INFO) << "GetDisplayResizeScale start";
88     instance.GetDisplayResizeScale(1, 1);
89 
90     GTEST_LOG_(INFO) << "GetDisplayResizeCenterX start";
91     instance.GetDisplayResizeCenterX(1, 1);
92 
93     GTEST_LOG_(INFO) << "GetDisplayResizeCenterY start";
94     instance.GetDisplayResizeCenterY(1, 1);
95 
96     GTEST_LOG_(INFO) << "GetDisplayResizeRect start";
97     instance.GetDisplayResizeRect(1, 1);
98 
99     GTEST_LOG_(INFO) << "ResetDisplayResize start";
100     instance.ResetDisplayResize(1, 1, true);
101 
102     GTEST_LOG_(INFO) << "SetDisplayResizeScaleAndCenter start";
103     instance.SetDisplayResizeScaleAndCenter(1, 1, 1, 1, 1, true);
104 
105     GTEST_LOG_(INFO) << "SendSimulateGesture start";
106     std::vector<GesturePathDefine> gestureSteps {};
107     instance.SendSimulateGesture(1, 1, gestureSteps);
108 }
109 
110 /**
111  * @tc.number: AccessibilityOperator_002
112  * @tc.name: aams interaction for node info function,
113  * @tc.desc: aams interaction for node info function,include element/eventInfo/window
114  */
115 HWTEST_F(AccessibilityOperatorUnitTest, AccessibilityOperator_002, TestSize.Level1)
116 {
117     GTEST_LOG_(INFO) << "GetChannel_001 start";
118     sptr<IAccessibleAbilityChannel> service = new MockAccessibleAbilityChannel();
119     AccessibilityOperator *instance = &AccessibilityOperator::GetInstance();
120 
121     if (!instance) {
122         GTEST_LOG_(INFO) << "Cann't get  AccessibilityOperator instance";
123         return;
124     }
125 
126     GTEST_LOG_(INFO) << "AddChannel 1";
127     instance->AddChannel(1, service);
128     GTEST_LOG_(INFO) << "AddChannel OK";
129 
130     GTEST_LOG_(INFO) << "GetChannel start";
131     EXPECT_TRUE(instance->GetChannel(1) != nullptr);
132 
133     GTEST_LOG_(INFO) << "SetSearchElementInfoByAccessibilityIdResult start";
134     std::vector<AccessibilityElementInfo> infos;
135     AccessibilityElementInfo info {};
136     infos.push_back(info);
137     instance->SetSearchElementInfoByAccessibilityIdResult(infos, 1);
138 
139     GTEST_LOG_(INFO) << "GetRoot start";
140     instance->GetRoot(1, info);
141     GTEST_LOG_(INFO) << "GetRoot end";
142 
143     GTEST_LOG_(INFO) << "GetWindows start";
144     instance->GetWindows(1);
145 
146     GTEST_LOG_(INFO) << "SetSearchElementInfoByTextResult start";
147     instance->SetSearchElementInfoByTextResult(infos, 2);
148 
149     GTEST_LOG_(INFO) << "SearchElementInfosByText start";
150     instance->SearchElementInfosByText(1, 1, 1, "test", infos);
151 
152     GTEST_LOG_(INFO) << "SetFindFocusedElementInfoResult start";
153     instance->SetFindFocusedElementInfoResult(info, 3);
154 
155     GTEST_LOG_(INFO) << "FindFocusedElementInfo start";
156     instance->FindFocusedElementInfo(1, 1, 1, 1, info);
157 
158     GTEST_LOG_(INFO) << "SetFocusMoveSearchResult start";
159     instance->SetFocusMoveSearchResult(info, 4);
160 
161     GTEST_LOG_(INFO) << "FocusMoveSearch start";
162     instance->FocusMoveSearch(1, 1, 1, 1, info);
163 
164     std::map<std::string, std::string> actionArguments;
165     GTEST_LOG_(INFO) << "SetExecuteActionResult start";
166     instance->SetExecuteActionResult(true, 5);
167 
168     GTEST_LOG_(INFO) << "ExecuteAction start";
169     instance->ExecuteAction(1, 1, 1, 1, actionArguments);
170 
171     EXPECT_TRUE(instance->ExecuteCommonAction(1, 1));
172 
173     // Dont' remove the instance
174     GTEST_LOG_(INFO) << "GetSource_001 start";
175     AccessibilityMemo record {};
176     record.SetChannelId(1);
177     record.GetSource(info);
178     GTEST_LOG_(INFO) << "GetSource_001 end";
179 
180     AccessibilityElementInfo element {};
181     element.SetChannelId(1);
182 
183     // Dont' remove the instance
184     GTEST_LOG_(INFO) << "GetFocus start";
185     element.GetFocus(1, info);
186     GTEST_LOG_(INFO) << "GetFocus end";
187 
188     // Dont' remove the instance
189     GTEST_LOG_(INFO) << "GetNext start";
190     FocusMoveDirection direction = FocusMoveDirection::UP;
191     element.GetNext(direction, info);
192     GTEST_LOG_(INFO) << "GetNext end";
193 
194     // Dont' remove the instance
195     GTEST_LOG_(INFO) << "GetByContent start";
196     string str = "text";
197     element.GetByContent(str, infos);
198     GTEST_LOG_(INFO) << "GetByContent end";
199 
200     // Dont' remove the instance
201     GTEST_LOG_(INFO) << "GetParent start";
202     element.GetParent(element);
203     GTEST_LOG_(INFO) << "GetParent end";
204 
205     // Dont' remove the instance
206     GTEST_LOG_(INFO) << "GetLabeled start";
207     element.GetLabeled(element);
208     GTEST_LOG_(INFO) << "GetLabeled end";
209 
210     // Dont' remove the instance
211     AccessibilityWindowInfo window {};
212     window.SetChannelId(1);
213     GTEST_LOG_(INFO) << "GetRootAccessibilityInfo start";
214     window.GetRootAccessibilityInfo(element);
215     GTEST_LOG_(INFO) << "GetRootAccessibilityInfo end";
216 
217     // Dont' remove the instance
218     GTEST_LOG_(INFO) << "GetAnchor start";
219     window.GetAnchor(element);
220     GTEST_LOG_(INFO) << "GetAnchor end";
221 
222     // Dont' remove the instance
223     GTEST_LOG_(INFO) << "GetParent start";
224     window.GetParent();
225     GTEST_LOG_(INFO) << "GetParent end";
226 
227     GTEST_LOG_(INFO) << "Operator_001 end";
228 }
229 } // namespace Accessibility
230 } // namespace OHOS