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