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