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