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 "define_multimodal.h" 19 #include "dfx_hisysevent.h" 20 #include "mmi_log.h" 21 22 #undef MMI_LOG_TAG 23 #define MMI_LOG_TAG "DfxHisysEventTest" 24 25 namespace OHOS { 26 namespace MMI { 27 namespace { 28 using namespace testing::ext; 29 } // namespace 30 31 class DfxHisysEventTest : public testing::Test { 32 public: SetUpTestCase(void)33 static void SetUpTestCase(void) {} TearDownTestCase(void)34 static void TearDownTestCase(void) {} SetUp()35 void SetUp() {} TearDown()36 void TearDown() {} 37 }; 38 39 /** 40 * @tc.name: DfxHisysEventTest_OnClientConnectTest_001 41 * @tc.desc: OnClientConnect 42 * @tc.type: FUNC 43 * @tc.require: 44 */ 45 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_OnClientConnectTest_001, TestSize.Level1) 46 { 47 CALL_TEST_DEBUG; 48 OHOS::HiviewDFX::HiSysEvent::EventType type = OHOS::HiviewDFX::HiSysEvent::EventType::FAULT; 49 DfxHisysevent::ClientConnectData data; 50 data.pid = 100; 51 int32_t res = 100; 52 DfxHisysevent::OnClientConnect(data, type); 53 EXPECT_EQ(data.pid, res); 54 } 55 56 /** 57 * @tc.name: DfxHisysEventTest_OnClientConnectTest_002 58 * @tc.desc: OnClientConnect 59 * @tc.type: FUNC 60 * @tc.require: 61 */ 62 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_OnClientConnectTest_002, TestSize.Level1) 63 { 64 CALL_TEST_DEBUG; 65 OHOS::HiviewDFX::HiSysEvent::EventType type = OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR; 66 DfxHisysevent::ClientConnectData data; 67 data.pid = 100; 68 int32_t res = 100; 69 DfxHisysevent::OnClientConnect(data, type); 70 EXPECT_EQ(data.pid, res); 71 } 72 73 /** 74 * @tc.name: DfxHisysEventTest_StatisticTouchpadGestureTest_001 75 * @tc.desc: StatisticTouchpadGesture 76 * @tc.type: FUNC 77 * @tc.require: 78 */ 79 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_StatisticTouchpadGestureTest_001, TestSize.Level1) 80 { 81 CALL_TEST_DEBUG; 82 std::shared_ptr<PointerEvent> pointerEvent = PointerEvent::Create(); 83 ASSERT_NE(pointerEvent, nullptr); 84 pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_BEGIN); 85 int32_t fingerCount = 1; 86 pointerEvent->SetFingerCount(fingerCount); 87 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::StatisticTouchpadGesture(pointerEvent)); 88 } 89 90 /** 91 * @tc.name: DfxHisysEventTest_ReportPowerInfoTest_001 92 * @tc.desc: ReportPowerInfo 93 * @tc.type: FUNC 94 * @tc.require: 95 */ 96 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportPowerInfoTest_001, TestSize.Level1) 97 { 98 CALL_TEST_DEBUG; 99 auto keyEvent = KeyEvent::Create(); 100 ASSERT_NE(keyEvent, nullptr); 101 OHOS::HiviewDFX::HiSysEvent::EventType type = OHOS::HiviewDFX::HiSysEvent::EventType::FAULT; 102 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_UP); 103 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportPowerInfo(keyEvent, type)); 104 keyEvent->SetKeyAction(KeyEvent::KEY_ACTION_DOWN); 105 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportPowerInfo(keyEvent, type)); 106 keyEvent = nullptr; 107 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportPowerInfo(keyEvent, type)); 108 } 109 110 /** 111 * @tc.name: DfxHisysEventTest_OnUpdateTargetPointerTest_001 112 * @tc.desc: OnUpdateTargetPointer 113 * @tc.type: FUNC 114 * @tc.require: 115 */ 116 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_OnUpdateTargetPointerTest_001, TestSize.Level1) 117 { 118 CALL_TEST_DEBUG; 119 std::shared_ptr<PointerEvent> pointer = PointerEvent::Create(); 120 ASSERT_NE(pointer, nullptr); 121 int32_t fd = 1; 122 OHOS::HiviewDFX::HiSysEvent::EventType type = OHOS::HiviewDFX::HiSysEvent::EventType::FAULT; 123 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::OnUpdateTargetPointer(pointer, fd, type)); 124 type = OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR; 125 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::OnUpdateTargetPointer(pointer, fd, type)); 126 } 127 128 /** 129 * @tc.name: DfxHisysEventTest_OnUpdateTargetKeyTest_001 130 * @tc.desc: OnUpdateTargetPointer 131 * @tc.type: FUNC 132 * @tc.require: 133 */ 134 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_OnUpdateTargetKeyTest_001, TestSize.Level1) 135 { 136 CALL_TEST_DEBUG; 137 auto keyEvent = KeyEvent::Create(); 138 ASSERT_NE(keyEvent, nullptr); 139 int32_t fd = 1; 140 OHOS::HiviewDFX::HiSysEvent::EventType type = OHOS::HiviewDFX::HiSysEvent::EventType::FAULT; 141 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::OnUpdateTargetKey(keyEvent, fd, type)); 142 type = OHOS::HiviewDFX::HiSysEvent::EventType::BEHAVIOR; 143 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::OnUpdateTargetKey(keyEvent, fd, type)); 144 } 145 146 /** 147 * @tc.name: DfxHisysEventTest_OnLidSwitchChangedTest_001 148 * @tc.desc: OnLidSwitchChanged 149 * @tc.type: FUNC 150 * @tc.require: 151 */ 152 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_OnLidSwitchChangedTest_001, TestSize.Level1) 153 { 154 CALL_TEST_DEBUG; 155 int32_t lidSwitch = 0; 156 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::OnLidSwitchChanged(lidSwitch)); 157 } 158 159 /** 160 * @tc.name: DfxHisysEventTest_CalcKeyDispTimesTest_001 161 * @tc.desc: CalcKeyDispTimes 162 * @tc.type: FUNC 163 * @tc.require: 164 */ 165 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_CalcKeyDispTimesTest_001, TestSize.Level1) 166 { 167 CALL_TEST_DEBUG; 168 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::CalcKeyDispTimes()); 169 } 170 171 /** 172 * @tc.name: DfxHisysEventTest_CalcPointerDispTimesTest_001 173 * @tc.desc: CalcPointerDispTimes 174 * @tc.type: FUNC 175 * @tc.require: 176 */ 177 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_CalcPointerDispTimesTest_001, TestSize.Level1) 178 { 179 CALL_TEST_DEBUG; 180 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::CalcPointerDispTimes()); 181 } 182 183 /** 184 * @tc.name: DfxHisysEventTest_ReportDispTimesTest_001 185 * @tc.desc: ReportDispTimes 186 * @tc.type: FUNC 187 * @tc.require: 188 */ 189 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportDispTimesTest_001, TestSize.Level1) 190 { 191 CALL_TEST_DEBUG; 192 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportDispTimes()); 193 } 194 195 /** 196 * @tc.name: DfxHisysEventTest_ReportFailIfInvalidTimeTest_001 197 * @tc.desc: ReportFailIfInvalidTime 198 * @tc.type: FUNC 199 * @tc.require: 200 */ 201 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportFailIfInvalidTimeTest_001, TestSize.Level1) 202 { 203 CALL_TEST_DEBUG; 204 int32_t intervalTime = 1000; 205 auto pointerEvent = PointerEvent::Create(); 206 ASSERT_NE(pointerEvent, nullptr); 207 PointerEvent::PointerItem item; 208 item.SetPointerId(0); 209 item.SetDeviceId(1); 210 pointerEvent->AddPointerItem(item); 211 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfInvalidTime(pointerEvent, intervalTime)); 212 213 item.SetPointerId(1); 214 item.SetDeviceId(1); 215 pointerEvent->AddPointerItem(item); 216 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfInvalidTime(pointerEvent, intervalTime)); 217 218 intervalTime = 1000001; 219 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfInvalidTime(pointerEvent, intervalTime)); 220 221 item.SetPointerId(2); 222 item.SetDeviceId(1); 223 pointerEvent->AddPointerItem(item); 224 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfInvalidTime(pointerEvent, intervalTime)); 225 } 226 227 /** 228 * @tc.name: DfxHisysEventTest_ReportFailIfInvalidDistanceTest_001 229 * @tc.desc: ReportFailIfInvalidDistance 230 * @tc.type: FUNC 231 * @tc.require: 232 */ 233 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportFailIfInvalidDistanceTest_001, TestSize.Level1) 234 { 235 CALL_TEST_DEBUG; 236 auto pointerEvent = PointerEvent::Create(); 237 ASSERT_NE(pointerEvent, nullptr); 238 float distance = 10; 239 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfInvalidDistance(pointerEvent, distance)); 240 } 241 242 /** 243 * @tc.name: DfxHisysEventTest_ReportKnuckleClickEvent_001 244 * @tc.desc: ReportKnuckleClickEvent 245 * @tc.type: FUNC 246 * @tc.require: 247 */ 248 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportKnuckleClickEvent_001, TestSize.Level1) 249 { 250 CALL_TEST_DEBUG; 251 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportKnuckleClickEvent()); 252 } 253 254 /** 255 * @tc.name: DfxHisysEventTest_ReportScreenCaptureGesture_001 256 * @tc.desc: ReportScreenCaptureGesture 257 * @tc.type: FUNC 258 * @tc.require: 259 */ 260 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportScreenCaptureGesture_001, TestSize.Level1) 261 { 262 CALL_TEST_DEBUG; 263 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportScreenCaptureGesture()); 264 } 265 266 /** 267 * @tc.name: DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_001 268 * @tc.desc: ReportSingleKnuckleDoubleClickEvent 269 * @tc.type: FUNC 270 * @tc.require: 271 */ 272 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_001, TestSize.Level1) 273 { 274 CALL_TEST_DEBUG; 275 int32_t intervalTime = -1; 276 int32_t distanceInterval = -1; 277 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportSingleKnuckleDoubleClickEvent(intervalTime, distanceInterval)); 278 } 279 280 /** 281 * @tc.name: DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_002 282 * @tc.desc: ReportSingleKnuckleDoubleClickEvent 283 * @tc.type: FUNC 284 * @tc.require: 285 */ 286 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_002, TestSize.Level1) 287 { 288 CALL_TEST_DEBUG; 289 int32_t intervalTime = 0; 290 int32_t distanceInterval = 0; 291 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportSingleKnuckleDoubleClickEvent(intervalTime, distanceInterval)); 292 } 293 294 /** 295 * @tc.name: DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_003 296 * @tc.desc: ReportSingleKnuckleDoubleClickEvent 297 * @tc.type: FUNC 298 * @tc.require: 299 */ 300 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_003, TestSize.Level1) 301 { 302 CALL_TEST_DEBUG; 303 int32_t intervalTime = 10; 304 int32_t distanceInterval = 10; 305 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportSingleKnuckleDoubleClickEvent(intervalTime, distanceInterval)); 306 } 307 308 /** 309 * @tc.name: DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_004 310 * @tc.desc: ReportSingleKnuckleDoubleClickEvent 311 * @tc.type: FUNC 312 * @tc.require: 313 */ 314 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportSingleKnuckleDoubleClickEvent_004, TestSize.Level1) 315 { 316 CALL_TEST_DEBUG; 317 int32_t intervalTime = 10000; 318 int32_t distanceInterval = 10000; 319 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportSingleKnuckleDoubleClickEvent(intervalTime, distanceInterval)); 320 } 321 322 /** 323 * @tc.name: DfxHisysEventTest_ReportTouchpadSettingState_001 324 * @tc.desc: ReportTouchpadSettingState 325 * @tc.type: FUNC 326 * @tc.require: 327 */ 328 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportTouchpadSettingState_001, TestSize.Level1) 329 { 330 CALL_TEST_DEBUG; 331 bool flag = false; 332 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportTouchpadSettingState( 333 DfxHisysevent::TOUCHPAD_SETTING_CODE::TOUCHPAD_ROTATE_SETTING, flag)); 334 } 335 336 /** 337 * @tc.name: DfxHisysEventTest_ReportTouchpadSettingState_002 338 * @tc.desc: ReportTouchpadSettingState 339 * @tc.type: FUNC 340 * @tc.require: 341 */ 342 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportTouchpadSettingState_002, TestSize.Level1) 343 { 344 CALL_TEST_DEBUG; 345 bool flag = false; 346 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportTouchpadSettingState( 347 DfxHisysevent::TOUCHPAD_SETTING_CODE::TOUCHPAD_SCROLL_SETTING, flag)); 348 } 349 350 /** 351 * @tc.name: DfxHisysEventTest_ReportTouchpadSettingState_003 352 * @tc.desc: ReportTouchpadSettingState 353 * @tc.type: FUNC 354 * @tc.require: 355 */ 356 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportTouchpadSettingState_003, TestSize.Level1) 357 { 358 CALL_TEST_DEBUG; 359 bool flag = true; 360 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportTouchpadSettingState( 361 DfxHisysevent::TOUCHPAD_SETTING_CODE::TOUCHPAD_SCROLL_SETTING, flag)); 362 } 363 364 /** 365 * @tc.name: DfxHisysEventTest_ReportTouchpadSettingState_004 366 * @tc.desc: ReportTouchpadSettingState 367 * @tc.type: FUNC 368 * @tc.require: 369 */ 370 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportTouchpadSettingState_004, TestSize.Level1) 371 { 372 CALL_TEST_DEBUG; 373 int32_t value = -1; 374 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportTouchpadSettingState( 375 DfxHisysevent::TOUCHPAD_SETTING_CODE::TOUCHPAD_ROTATE_SETTING, value)); 376 } 377 378 /** 379 * @tc.name: DfxHisysEventTest_ReportTouchpadSettingState_005 380 * @tc.desc: ReportTouchpadSettingState 381 * @tc.type: FUNC 382 * @tc.require: 383 */ 384 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportTouchpadSettingState_005, TestSize.Level1) 385 { 386 CALL_TEST_DEBUG; 387 int32_t value = -1; 388 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportTouchpadSettingState( 389 DfxHisysevent::TOUCHPAD_SETTING_CODE::TOUCHPAD_POINTER_SPEED_SETTING, value)); 390 } 391 392 /** 393 * @tc.name: DfxHisysEventTest_ReportTouchpadSettingState_006 394 * @tc.desc: ReportTouchpadSettingState 395 * @tc.type: FUNC 396 * @tc.require: 397 */ 398 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportTouchpadSettingState_006, TestSize.Level1) 399 { 400 CALL_TEST_DEBUG; 401 int32_t value = 10; 402 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportTouchpadSettingState( 403 DfxHisysevent::TOUCHPAD_SETTING_CODE::TOUCHPAD_POINTER_SPEED_SETTING, value)); 404 } 405 406 /** 407 * @tc.name: DfxHisysEventTest_ReportKnuckleGestureFaildTimes_001 408 * @tc.desc: ReportKnuckleGestureFaildTimes 409 * @tc.type: FUNC 410 * @tc.require: 411 */ 412 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportKnuckleGestureFaildTimes_001, TestSize.Level1) 413 { 414 CALL_TEST_DEBUG; 415 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportKnuckleGestureFaildTimes()); 416 } 417 418 /** 419 * @tc.name: DfxHisysEventTest_ReportKnuckleDrawSSuccessTimes_001 420 * @tc.desc: ReportKnuckleDrawSSuccessTimes 421 * @tc.type: FUNC 422 * @tc.require: 423 */ 424 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportKnuckleDrawSSuccessTimes_001, TestSize.Level1) 425 { 426 CALL_TEST_DEBUG; 427 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportKnuckleDrawSSuccessTimes()); 428 } 429 430 /** 431 * @tc.name: DfxHisysEventTest_ReportKnuckleGestureFromFailToSuccessTime_001 432 * @tc.desc: ReportKnuckleGestureFromFailToSuccessTime 433 * @tc.type: FUNC 434 * @tc.require: 435 */ 436 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportKnuckleGestureFromFailToSuccessTime_001, TestSize.Level1) 437 { 438 CALL_TEST_DEBUG; 439 int64_t intervalTime = 1; 440 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportKnuckleGestureFromFailToSuccessTime(intervalTime)); 441 } 442 443 /** 444 * @tc.name: DfxHisysEventTest_ReportKnuckleGestureFromSuccessToFailTime_001 445 * @tc.desc: ReportKnuckleGestureFromSuccessToFailTime 446 * @tc.type: FUNC 447 * @tc.require: 448 */ 449 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportKnuckleGestureFromSuccessToFailTime_001, TestSize.Level1) 450 { 451 CALL_TEST_DEBUG; 452 int64_t intervalTime = 1; 453 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportKnuckleGestureFromSuccessToFailTime(intervalTime)); 454 } 455 456 /** 457 * @tc.name: DfxHisysEventTest_ReportFailIfKnockTooFast_001 458 * @tc.desc: ReportFailIfKnockTooFast 459 * @tc.type: FUNC 460 * @tc.require: 461 */ 462 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportFailIfKnockTooFast_001, TestSize.Level1) 463 { 464 CALL_TEST_DEBUG; 465 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfKnockTooFast()); 466 } 467 468 /** 469 * @tc.name: DfxHisysEventTest_ReportFailIfOneSuccTwoFail_001 470 * @tc.desc: ReportFailIfOneSuccTwoFail 471 * @tc.type: FUNC 472 * @tc.require: 473 */ 474 HWTEST_F(DfxHisysEventTest, DfxHisysEventTest_ReportFailIfOneSuccTwoFail_001, TestSize.Level1) 475 { 476 CALL_TEST_DEBUG; 477 auto pointerEvent = PointerEvent::Create(); 478 ASSERT_NE(pointerEvent, nullptr); 479 PointerEvent::PointerItem item; 480 item.SetPointerId(0); 481 item.SetDeviceId(1); 482 item.SetToolType(PointerEvent::TOOL_TYPE_KNUCKLE); 483 pointerEvent->AddPointerItem(item); 484 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfOneSuccTwoFail(pointerEvent)); 485 486 item.SetToolType(PointerEvent::TOOL_TYPE_FINGER); 487 ASSERT_NO_FATAL_FAILURE(DfxHisysevent::ReportFailIfOneSuccTwoFail(pointerEvent)); 488 } 489 490 } // namespace MMI 491 } // namespace OHOS