1 /* 2 * Copyright (c) 2024 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 18 #include "device.h" 19 #include "device_manager.h" 20 #include "devicestatus_define.h" 21 #include "fi_log.h" 22 23 #undef LOG_TAG 24 #define LOG_TAG "DeviceTest" 25 26 namespace OHOS { 27 namespace Msdp { 28 namespace DeviceStatus { 29 using namespace testing::ext; 30 31 DeviceManager devmg_; 32 const std::string devNode_ = { "event0" }; 33 const std::string devPath_ = { "/dev/input/event0" }; 34 constexpr int32_t INDEX_TWO { 2 }; 35 constexpr int32_t INDEX_THREE { 3 }; 36 constexpr int32_t INDEX_NINE { 9 }; 37 constexpr int32_t INDEX_TWELVE { 12 }; 38 constexpr int32_t INDEX_TWENTY_THREE { 23 }; 39 constexpr int32_t NUM_ONE { 1 }; 40 constexpr int32_t NUM_SIXTY_FOUR { 64 }; 41 constexpr int32_t NUM_HUNDRED_TWENTY_EIGHT { 128 }; 42 constexpr int32_t NUM_THIRTY_TWO { 32 }; 43 constexpr int32_t NUM_TWO { 2 }; 44 int32_t deviceId_ = devmg_.ParseDeviceId(devNode_); 45 46 class DeviceTest : public testing::Test { 47 public: SetUpTestCase()48 static void SetUpTestCase() {}; TearDownTestCase()49 static void TearDownTestCase() {}; SetUp()50 void SetUp() {}; TearDown()51 void TearDown() {}; 52 }; 53 54 /** 55 * @tc.name: OpenTest001 56 * @tc.desc: Test func named open device 57 * @tc.type: FUNC 58 */ 59 HWTEST_F(DeviceTest, OpenTest001, TestSize.Level0) 60 { 61 CALL_TEST_DEBUG; 62 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 63 Device *dev = new Device(deviceId); 64 CHKPV(dev); 65 dev->SetDevPath(devPath_); 66 int32_t ret = dev->Open(); 67 EXPECT_EQ(ret, RET_OK); 68 dev->Close(); 69 } 70 71 /** 72 * @tc.name: OpenTest002 73 * @tc.desc: Test func named open device 74 * @tc.type: FUNC 75 */ 76 HWTEST_F(DeviceTest, OpenTest002, TestSize.Level0) 77 { 78 CALL_TEST_DEBUG; 79 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 80 Device *dev = new Device(deviceId); 81 CHKPV(dev); 82 int32_t ret = dev->Open(); 83 EXPECT_EQ(ret, RET_ERR); 84 } 85 86 /** 87 * @tc.name: CloseTest001 88 * @tc.desc: Test func named close device 89 * @tc.type: FUNC 90 */ 91 HWTEST_F(DeviceTest, CloseTest001, TestSize.Level0) 92 { 93 CALL_TEST_DEBUG; 94 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 95 Device *dev = new Device(deviceId); 96 CHKPV(dev); 97 ASSERT_NO_FATAL_FAILURE(dev->Close()); 98 } 99 100 /** 101 * @tc.name: QueryDeviceInfoTest001 102 * @tc.desc: Test func named QueryDeviceInfo 103 * @tc.type: FUNC 104 */ 105 HWTEST_F(DeviceTest, QueryDeviceInfoTest001, TestSize.Level0) 106 { 107 CALL_TEST_DEBUG; 108 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 109 Device *dev = new Device(deviceId); 110 CHKPV(dev); 111 ASSERT_NO_FATAL_FAILURE(dev->QueryDeviceInfo()); 112 delete dev; 113 dev = nullptr; 114 } 115 116 /** 117 * @tc.name: CheckAbsTest001 118 * @tc.desc: Test func named CheckAbs 119 * @tc.type: FUNC 120 */ 121 HWTEST_F(DeviceTest, CheckAbsTest001, TestSize.Level0) 122 { 123 CALL_TEST_DEBUG; 124 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 125 Device *dev = new Device(deviceId); 126 CHKPV(dev); 127 ASSERT_NO_FATAL_FAILURE(dev->CheckAbs()); 128 delete dev; 129 dev = nullptr; 130 } 131 132 /** 133 * @tc.name: CheckMtTest001 134 * @tc.desc: Test func named CheckMt 135 * @tc.type: FUNC 136 */ 137 HWTEST_F(DeviceTest, CheckMtTest001, TestSize.Level0) 138 { 139 CALL_TEST_DEBUG; 140 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 141 Device *dev = new Device(deviceId); 142 CHKPV(dev); 143 ASSERT_NO_FATAL_FAILURE(dev->CheckMt()); 144 delete dev; 145 dev = nullptr; 146 } 147 148 /** 149 * @tc.name: ReadConfigFileTest001 150 * @tc.desc: Test func named ReadConfigFile 151 * @tc.type: FUNC 152 */ 153 HWTEST_F(DeviceTest, ReadConfigFileTest001, TestSize.Level0) 154 { 155 CALL_TEST_DEBUG; 156 const std::string filePath = { "/system/etc/device_status/drag_icon/Copy_Drag.svg" }; 157 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 158 Device *dev = new Device(deviceId); 159 CHKPV(dev); 160 int32_t ret = dev->ReadConfigFile(filePath); 161 EXPECT_EQ(ret, RET_ERR); 162 delete dev; 163 dev = nullptr; 164 } 165 166 /** 167 * @tc.name: ReadConfigFileTest002 168 * @tc.desc: Test func named ReadConfigFile 169 * @tc.type: FUNC 170 */ 171 HWTEST_F(DeviceTest, ReadConfigFileTest002, TestSize.Level0) 172 { 173 CALL_TEST_DEBUG; 174 const std::string filePath = ""; 175 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 176 Device *dev = new Device(deviceId); 177 CHKPV(dev); 178 int32_t ret = dev->ReadConfigFile(filePath); 179 EXPECT_EQ(ret, RET_ERR); 180 delete dev; 181 dev = nullptr; 182 } 183 184 /** 185 * @tc.name: ConfigItemSwitchTest001 186 * @tc.desc: Test func named ConfigItemSwitch 187 * @tc.type: FUNC 188 */ 189 HWTEST_F(DeviceTest, ConfigItemSwitchTest001, TestSize.Level0) 190 { 191 CALL_TEST_DEBUG; 192 std::string configItem = "123456"; 193 std::string value = "123456"; 194 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 195 Device *dev = new Device(deviceId); 196 CHKPV(dev); 197 int32_t ret = dev->ConfigItemSwitch(configItem, value); 198 EXPECT_EQ(ret, RET_OK); 199 delete dev; 200 dev = nullptr; 201 } 202 203 /** 204 * @tc.name: ConfigItemSwitchTest002 205 * @tc.desc: Test func named ConfigItemSwitch 206 * @tc.type: FUNC 207 */ 208 HWTEST_F(DeviceTest, ConfigItemSwitchTest002, TestSize.Level0) 209 { 210 CALL_TEST_DEBUG; 211 std::string configItem = ""; 212 std::string value = "123456"; 213 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 214 Device *dev = new Device(deviceId); 215 CHKPV(dev); 216 int32_t ret = dev->ConfigItemSwitch(configItem, value); 217 EXPECT_EQ(ret, RET_ERR); 218 delete dev; 219 dev = nullptr; 220 } 221 222 /** 223 * @tc.name: ConfigItemSwitchTest003 224 * @tc.desc: Test func named ConfigItemSwitch 225 * @tc.type: FUNC 226 */ 227 HWTEST_F(DeviceTest, ConfigItemSwitchTest003, TestSize.Level0) 228 { 229 CALL_TEST_DEBUG; 230 std::string configItem = "1234567"; 231 std::string value = ""; 232 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 233 Device *dev = new Device(deviceId); 234 CHKPV(dev); 235 int32_t ret = dev->ConfigItemSwitch(configItem, value); 236 EXPECT_EQ(ret, RET_ERR); 237 delete dev; 238 dev = nullptr; 239 } 240 241 /** 242 * @tc.name: ReadTomlFileTest001 243 * @tc.desc: Test func named ReadTomlFile 244 * @tc.type: FUNC 245 */ 246 HWTEST_F(DeviceTest, ReadTomlFileTest001, TestSize.Level0) 247 { 248 CALL_TEST_DEBUG; 249 const std::string filePath = { "/system/etc/device_status/drag_icon/Copy_Drag.svg" }; 250 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 251 Device *dev = new Device(deviceId); 252 CHKPV(dev); 253 int32_t ret = dev->ReadTomlFile(filePath); 254 EXPECT_EQ(ret, RET_ERR); 255 delete dev; 256 dev = nullptr; 257 } 258 259 /** 260 * @tc.name: HasRelCoordTest001 261 * @tc.desc: Test func named HasRelCoord 262 * @tc.type: FUNC 263 */ 264 HWTEST_F(DeviceTest, HasRelCoordTest001, TestSize.Level0) 265 { 266 CALL_TEST_DEBUG; 267 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 268 Device *dev = new Device(deviceId); 269 CHKPV(dev); 270 bool ret = dev->HasRelCoord(); 271 EXPECT_EQ(ret, false); 272 delete dev; 273 dev = nullptr; 274 } 275 276 /** 277 * @tc.name: DispatchTest001 278 * @tc.desc: Test func named Dispatch 279 * @tc.type: FUNC 280 */ 281 HWTEST_F(DeviceTest, DispatchTest001, TestSize.Level0) 282 { 283 CALL_TEST_DEBUG; 284 const struct epoll_event ev {}; 285 int32_t deviceId = devmg_.ParseDeviceId(devNode_); 286 Device *dev = new Device(deviceId); 287 CHKPV(dev); 288 ASSERT_NO_FATAL_FAILURE(dev->Dispatch(ev)); 289 delete dev; 290 dev = nullptr; 291 } 292 293 /** 294 * @tc.name: JudgeKeyboardTypeTest001 295 * @tc.desc: Test func named JudgeKeyboardType 296 * @tc.type: FUNC 297 */ 298 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest001, TestSize.Level0) 299 { 300 CALL_TEST_DEBUG; 301 Device dev(deviceId_); 302 dev.keyBitmask_[INDEX_TWO] = NUM_ONE; 303 ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType()); 304 } 305 306 /** 307 * @tc.name: JudgeKeyboardTypeTest002 308 * @tc.desc: Test func named JudgeKeyboardType 309 * @tc.type: FUNC 310 */ 311 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest002, TestSize.Level0) 312 { 313 CALL_TEST_DEBUG; 314 Device dev(deviceId_); 315 dev.keyBitmask_[INDEX_TWELVE] = NUM_SIXTY_FOUR; 316 dev.bus_ = BUS_BLUETOOTH; 317 ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType()); 318 } 319 320 /** 321 * @tc.name: JudgeKeyboardTypeTest003 322 * @tc.desc: Test func named JudgeKeyboardType 323 * @tc.type: FUNC 324 */ 325 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest003, TestSize.Level0) 326 { 327 CALL_TEST_DEBUG; 328 Device dev(deviceId_); 329 dev.keyBitmask_[INDEX_NINE] = NUM_HUNDRED_TWENTY_EIGHT; 330 ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType()); 331 } 332 333 /** 334 * @tc.name: JudgeKeyboardTypeTest004 335 * @tc.desc: Test func named JudgeKeyboardType 336 * @tc.type: FUNC 337 */ 338 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest004, TestSize.Level0) 339 { 340 CALL_TEST_DEBUG; 341 Device dev(deviceId_); 342 dev.keyBitmask_[INDEX_THREE] = NUM_THIRTY_TWO; 343 ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType()); 344 } 345 346 /** 347 * @tc.name: JudgeKeyboardTypeTest005 348 * @tc.desc: Test func named JudgeKeyboardType 349 * @tc.type: FUNC 350 */ 351 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest005, TestSize.Level0) 352 { 353 CALL_TEST_DEBUG; 354 Device dev(deviceId_); 355 dev.keyBitmask_[INDEX_THREE] = NUM_THIRTY_TWO; 356 dev.keyBitmask_[INDEX_TWELVE] = NUM_TWO; 357 ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType()); 358 } 359 360 /** 361 * @tc.name: JudgeKeyboardTypeTest006 362 * @tc.desc: Test func named JudgeKeyboardType 363 * @tc.type: FUNC 364 */ 365 HWTEST_F(DeviceTest, JudgeKeyboardTypeTest006, TestSize.Level0) 366 { 367 CALL_TEST_DEBUG; 368 Device dev(deviceId_); 369 dev.keyBitmask_[INDEX_THREE] = NUM_THIRTY_TWO; 370 dev.keyBitmask_[INDEX_TWELVE] = NUM_TWO; 371 dev.keyBitmask_[INDEX_TWENTY_THREE] = NUM_SIXTY_FOUR; 372 ASSERT_NO_FATAL_FAILURE(dev.JudgeKeyboardType()); 373 } 374 } // namespace DeviceStatus 375 } // namespace Msdp 376 } // namespace OHOS