• 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 <memory>
18 
19 #include "accessibility_element_info.h"
20 #include "accessibility_operator.h"
21 #include "mock_accessible_ability_channel_impl.h"
22 
23 using namespace testing;
24 using namespace testing::ext;
25 using namespace std;
26 
27 namespace OHOS {
28 namespace Accessibility {
29 class AccessibilityElementInfoUnitTest : public ::testing::Test {
30 public:
AccessibilityElementInfoUnitTest()31     AccessibilityElementInfoUnitTest() {}
~AccessibilityElementInfoUnitTest()32     ~AccessibilityElementInfoUnitTest() {}
33 
SetUpTestCase()34     static void SetUpTestCase()
35     {
36         GTEST_LOG_(INFO) << "AccessibilityElementInfoUnitTest Start";
37     }
TearDownTestCase()38     static void TearDownTestCase()
39     {
40         GTEST_LOG_(INFO) << "AccessibilityElementInfoUnitTest End";
41     }
SetUp()42     void SetUp()
43     {
44         GTEST_LOG_(INFO) << "AccessibilityElementInfoUnitTest SetUp()";
45     };
TearDown()46     void TearDown()
47     {
48         GTEST_LOG_(INFO) << "AccessibilityElementInfoUnitTest TearDown()";
49     }
50 };
51 
52 /**
53  * @tc.number: GetElementProperty_001
54  * @tc.name: Test the type property is bool/int
55  * @tc.desc: Test the type property is bool/int
56  */
57 HWTEST_F(AccessibilityElementInfoUnitTest, GetElementProperty_001, TestSize.Level1)
58 {
59     GTEST_LOG_(INFO) << "GetElementProperty_001 start";
60     AccessibilityElementInfo element {};
61     element.SetComponentId(1);
62     EXPECT_TRUE(element.GetAccessibilityId() == 1);
63 
64     element.AddChild(1);
65     EXPECT_TRUE(element.GetChildId(0) == 1);
66     EXPECT_TRUE(element.GetChildCount() == 1);
67     EXPECT_TRUE(element.GetChildIds()[0] == 1);
68 
69     element.AddChild(2);
70     EXPECT_TRUE(element.GetChildId(1) == 2);
71     EXPECT_TRUE(element.GetChildCount() == 2);
72     EXPECT_TRUE(element.GetChildIds()[0] == 1);
73     EXPECT_TRUE(element.GetChildIds()[1] == 2);
74 
75     element.RemoveChild(1);
76     EXPECT_TRUE(element.GetChildCount() == 1);
77     EXPECT_TRUE(element.GetChildIds()[0] == 2);
78 
79     AccessibleAction action(ActionType::ACCESSIBILITY_ACTION_CLICK, "test");
80     element.AddAction(action);
81     EXPECT_TRUE(element.GetActionList()[0].GetActionType() == ActionType::ACCESSIBILITY_ACTION_CLICK);
82     EXPECT_TRUE(!strcmp(element.GetActionList()[0].GetDescriptionInfo().c_str(), "test"));
83 
84     GTEST_LOG_(INFO) << "GetElementProperty_001 Delete Action start";
85     element.DeleteAction(action);
86     GTEST_LOG_(INFO) << "GetElementProperty_001 Delete Action1  end";
87     element.AddAction(action);
88     ActionType act = ActionType::ACCESSIBILITY_ACTION_CLICK;
89     EXPECT_TRUE(element.DeleteAction(act));
90     GTEST_LOG_(INFO) << "GetElementProperty_001 Delete Action2  end";
91     element.AddAction(action);
92     element.DeleteAllActions();
93     GTEST_LOG_(INFO) << "GetElementProperty_001 Delete all Action end";
94 
95     element.SetTextLengthLimit(100);
96     EXPECT_TRUE(element.GetTextLengthLimit() == 100);
97 
98     element.SetWindowId(100);
99     EXPECT_TRUE(element.GetWindowId() == 100);
100 
101     element.SetParent(100);
102     EXPECT_TRUE(element.GetParentNodeId() == 100);
103 
104     Rect bounds(1, 2, 3, 4);
105     element.SetRectInScreen(bounds);
106     EXPECT_TRUE(element.GetRectInScreen().GetLeftTopXScreenPostion() == 1);
107     EXPECT_TRUE(element.GetRectInScreen().GetLeftTopYScreenPostion() == 2);
108     EXPECT_TRUE(element.GetRectInScreen().GetRightBottomXScreenPostion() == 3);
109     EXPECT_TRUE(element.GetRectInScreen().GetRightBottomYScreenPostion() == 4);
110 
111     element.SetCheckable(true);
112     EXPECT_TRUE(element.IsCheckable());
113 
114     element.SetChecked(true);
115     EXPECT_TRUE(element.IsChecked());
116 
117     element.SetFocusable(true);
118     EXPECT_TRUE(element.IsFocusable());
119 
120     element.SetFocused(true);
121     EXPECT_TRUE(element.IsFocused());
122 
123     element.SetVisible(true);
124     EXPECT_TRUE(element.IsVisible());
125 
126     element.SetAccessibilityFocus(true);
127     EXPECT_TRUE(element.HasAccessibilityFocus());
128 
129     element.SetSelected(true);
130     EXPECT_TRUE(element.IsSelected());
131 
132     element.SetClickable(true);
133     EXPECT_TRUE(element.IsClickable());
134 
135     element.SetLongClickable(true);
136     EXPECT_TRUE(element.IsLongClickable());
137 
138     element.SetEnabled(true);
139     EXPECT_TRUE(element.IsEnabled());
140 
141     element.SetPassword(true);
142     EXPECT_TRUE(element.IsPassword());
143 
144     element.SetScrollable(true);
145     EXPECT_TRUE(element.IsScrollable());
146 
147     element.SetCurrentIndex(1);
148     EXPECT_TRUE(element.GetCurrentIndex() == 1);
149 
150     element.SetBeginIndex(1);
151     EXPECT_TRUE(element.GetBeginIndex() == 1);
152 
153     element.SetEndIndex(1);
154     EXPECT_TRUE(element.GetEndIndex() == 1);
155 
156     element.SetInputType(1);
157     EXPECT_TRUE(element.GetInputType() == 1);
158 
159     element.SetEditable(true);
160     EXPECT_TRUE(element.IsEditable());
161 
162     element.SetPluraLineSupported(true);
163     EXPECT_TRUE(element.IsPluraLineSupported());
164 
165     element.SetPopupSupported(true);
166     EXPECT_TRUE(element.IsPopupSupported());
167 
168     element.SetDeletable(true);
169     EXPECT_TRUE(element.IsDeletable());
170 
171     element.SetEssential(true);
172     EXPECT_TRUE(element.IsEssential());
173 
174     element.SetHinting(true);
175     EXPECT_TRUE(element.IsGivingHint());
176 
177     element.SetSelectedBegin(1);
178     EXPECT_TRUE(element.GetSelectedBegin() == 1);
179 
180     element.SetSelectedEnd(1);
181     EXPECT_TRUE(element.GetSelectedEnd() == 1);
182 
183     element.SetAccessibilityGroup(true);
184     EXPECT_TRUE(element.GetAccessibilityGroup());
185 
186     element.SetLiveRegion(1);
187     EXPECT_TRUE(element.GetLiveRegion() == 1);
188 
189     element.SetContentInvalid(true);
190     EXPECT_TRUE(element.GetContentInvalid());
191 
192     element.SetLabeled(1);
193     EXPECT_TRUE(element.GetLabeledAccessibilityId() == 1);
194 
195     element.SetChannelId(1);
196     EXPECT_TRUE(element.GetChannelId() == 1);
197 
198     element.SetAccessibilityId(1);
199     EXPECT_TRUE(element.GetAccessibilityId() == 1);
200 
201     RangeInfo rangeInfo(1, 5, 3);
202     element.SetRange(rangeInfo);
203     EXPECT_TRUE(element.GetRange().GetMin() == 1);
204     EXPECT_TRUE(element.GetRange().GetMax() == 5);
205     EXPECT_TRUE(element.GetRange().GetCurrent() == 3);
206 
207     GridInfo grid(2, 2, 0);
208     element.SetGrid(grid);
209     EXPECT_TRUE(element.GetGrid().GetRowCount() == 2);
210     EXPECT_TRUE(element.GetGrid().GetColumnCount() == 2);
211     EXPECT_TRUE(!element.GetGrid().GetSelectionMode());
212 
213     GridItemInfo gridItem(0, 2, 0, 2, true, true);
214     element.SetGridItem(gridItem);
215     EXPECT_TRUE(!element.GetGridItem().GetRowIndex());
216     EXPECT_TRUE(element.GetGridItem().GetRowSpan() == 2);
217     EXPECT_TRUE(!element.GetGridItem().GetColumnIndex());
218     EXPECT_TRUE(element.GetGridItem().GetColumnSpan() == 2);
219     EXPECT_TRUE(element.GetGridItem().IsHeading());
220     EXPECT_TRUE(element.GetGridItem().IsSelected());
221 
222     GTEST_LOG_(INFO) << "GetElementProperty_001 end";
223 }
224 
225 /**
226  * @tc.number: GetElementStr_001
227  * @tc.name: Test the property of string
228  * @tc.desc: Test the property of string
229  */
230 HWTEST_F(AccessibilityElementInfoUnitTest, GetElementStr_001, TestSize.Level1)
231 {
232     GTEST_LOG_(INFO) << "GetElementStr_001 start";
233     AccessibilityElementInfo element {};
234     element.SetBundleName("test");
235     EXPECT_TRUE(!strcmp(element.GetBundleName().c_str(), "test"));
236 
237     element.SetComponentType("test");
238     EXPECT_TRUE(!strcmp(element.GetComponentType().c_str(), "test"));
239 
240     element.SetContent("test");
241     EXPECT_TRUE(!strcmp(element.GetContent().c_str(), "test"));
242 
243     element.SetAccessibilityContent("test");
244     EXPECT_TRUE(!strcmp(element.GetAccessibilityContent().c_str(), "test"));
245 
246     element.SetAccessibilityDescription("test");
247     EXPECT_TRUE(!strcmp(element.GetAccessibilityDescription().c_str(), "test"));
248 
249     element.SetHint("test");
250     EXPECT_TRUE(!strcmp(element.GetHint().c_str(), "test"));
251 
252     element.SetDescriptionInfo("test");
253     EXPECT_TRUE(!strcmp(element.GetDescriptionInfo().c_str(), "test"));
254 
255     element.SetComponentResourceId("test");
256     EXPECT_TRUE(!strcmp(element.GetComponentResourceId().c_str(), "test"));
257 
258     element.SetError("test");
259     EXPECT_TRUE(!strcmp(element.GetError().c_str(), "test"));
260     GTEST_LOG_(INFO) << "GetElementStr_001 end";
261 }
262 
263 /**
264  * @tc.number: ReadFromParcel_001
265  * @tc.name: ReadFromParcel
266  * @tc.desc: Test function ReadFromParcel
267  */
268 HWTEST_F(AccessibilityElementInfoUnitTest, ReadFromParcel_001, TestSize.Level1)
269 {
270     GTEST_LOG_(INFO) << "ReadFromParcel_001 start";
271 
272     Parcel parcel;
273     AccessibilityElementInfo element {};
274     element.Marshalling(parcel);
275     EXPECT_TRUE(element.ReadFromParcel(parcel));
276 
277     AccessibleAction action {};
278     action.Marshalling(parcel);
279     EXPECT_TRUE(action.ReadFromParcel(parcel));
280 
281     RangeInfo range {};
282     range.Marshalling(parcel);
283     EXPECT_TRUE(range.ReadFromParcel(parcel));
284 
285     GridInfo grid {};
286     grid.Marshalling(parcel);
287     EXPECT_TRUE(grid.ReadFromParcel(parcel));
288 
289     GridItemInfo gridItem {};
290     gridItem.Marshalling(parcel);
291     EXPECT_TRUE(gridItem.ReadFromParcel(parcel));
292 
293     Rect rect {};
294     rect.Marshalling(parcel);
295     EXPECT_TRUE(rect.ReadFromParcel(parcel));
296     GTEST_LOG_(INFO) << "ReadFromParcel_001 end";
297 }
298 
299 /**
300  * @tc.number: Marshalling_001
301  * @tc.name: Marshalling
302  * @tc.desc: Test function Marshalling
303  */
304 HWTEST_F(AccessibilityElementInfoUnitTest, Marshalling_001, TestSize.Level1)
305 {
306     GTEST_LOG_(INFO) << "Marshalling_001 start";
307 
308     Parcel parcel;
309     AccessibilityElementInfo element {};
310     EXPECT_TRUE(element.Marshalling(parcel));
311 
312     AccessibleAction action {};
313     EXPECT_TRUE(action.Marshalling(parcel));
314 
315     RangeInfo range {};
316     EXPECT_TRUE(range.Marshalling(parcel));
317 
318     GridInfo grid {};
319     EXPECT_TRUE(grid.Marshalling(parcel));
320 
321     GridItemInfo gridItem {};
322     EXPECT_TRUE(gridItem.Marshalling(parcel));
323 
324     Rect rect {};
325     EXPECT_TRUE(rect.Marshalling(parcel));
326     GTEST_LOG_(INFO) << "Marshalling_001 end";
327 }
328 } // namespace Accessibility
329 } // namespace OHOS