From afa37450a6b158e74408b36b2d3fc93dc9aebead Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Tue, 27 Apr 2021 20:29:37 +0900 Subject: [PATCH] e_test_util: Added some macro functions for test event. Added some macro functions for test event as below - ASSERT_EVENT : for test other events except below - ASSERT_VIS_ON/OFF : for test visibility event - ASSERT_ROTATION : for test rotation event - ASSERT_FOCUS_IN/OUT : for test focus event - ASSERT_HINT : for test aux hint event. Change-Id: Ib3ef4866edf7025f3d406a03130153a9046445c2 --- src/e_test_base.h | 7 ++++++ src/e_test_util.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) diff --git a/src/e_test_base.h b/src/e_test_base.h index c039239..f3e1c37 100644 --- a/src/e_test_base.h +++ b/src/e_test_base.h @@ -24,6 +24,13 @@ class etTCBase : public ::testing::Test Eina_Bool showActivateTCWin(etWin *tw); Eina_Bool removeTCWin(etWin *tw); + protected: + std::shared_ptr ev_result; + std::shared_ptr ev_result_vis; + std::shared_ptr ev_result_rot; + std::shared_ptr ev_result_focus; + std::shared_ptr ev_result_hint; + private: Eina_List *tw_list = NULL; diff --git a/src/e_test_util.h b/src/e_test_util.h index 280a8cd..15167de 100644 --- a/src/e_test_util.h +++ b/src/e_test_util.h @@ -189,6 +189,80 @@ typedef struct _Window_Info_List (type == EFL_UTIL_ERROR_NO_RESOURCE_AVAILABLE)?"No resource available": \ "Unknown") +#define ASSERT_EVENT(TEST_WINDOW, TEST_EVENT) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result = etRunner::get().waitEvent(TEST_WINDOW, TEST_EVENT); \ + ASSERT_NE(ev_result, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result->result) << "waitEvent failed"; \ + } while (0) + +#define ASSERT_VIS_ON(TEST_WINDOW) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_vis = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_VIS_ON)); \ + ASSERT_NE(ev_result_vis, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_vis->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_vis->result) << "waitEvent failed"; \ + ASSERT_TRUE(ev_result_vis->isVisible()) << "Window is invisible"; \ + } while (0) + +#define ASSERT_VIS_OFF(TEST_WINDOW) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_vis = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_VIS_OFF)); \ + ASSERT_NE(ev_result_vis, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_vis->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_vis->result) << "waitEvent failed"; \ + ASSERT_FALSE(ev_result_vis->isVisible()) << "Window is visible"; \ + } while (0) + +#define ASSERT_ROTATION(TEST_WINDOW, ANGLE) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_rot = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_WINDOW_ROTATION_CHANGE)); \ + ASSERT_NE(ev_result_rot, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_rot->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_rot->result) << "waitEvent failed"; \ + ASSERT_NE(ev_result_rot->getAngle(), ANGLE) << "Window angle mismatch, ev:" << ev_result_rot->getAngle() << " vs expected:" << ANGLE; \ + } while (0) + +#define ASSERT_FOCUS_IN(TEST_WINDOW) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_focus = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_FOCUS_CHANGED)); \ + ASSERT_NE(ev_result_focus, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_focus->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_focus->result) << "waitEvent failed"; \ + ASSERT_TRUE(ev_result_focus->isFocused()) << "Window isn't focused"; \ + } while (0) + +#define ASSERT_FOCUS_OUT(TEST_WINDOW) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_focus = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_FOCUS_CHANGED)); \ + ASSERT_NE(ev_result_focus, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_focus->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_focus->result) << "waitEvent failed"; \ + ASSERT_FALSE(ev_result_focus->isFocused()) << "Window is focused"; \ + } while (0) + +#define ASSERT_HINT(TEST_WINDOW, HINT_ID, HINT_NAME, HINT_VAL) \ + do { \ + ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \ + ev_result_hint = std::static_pointer_cast(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_AUX_HINT_CHANGED)); \ + ASSERT_NE(ev_result_hint, nullptr) << "result is NULL"; \ + ASSERT_FALSE(ev_result_hint->isTimeout) << "waitEvent timeout (1.0 sec)"; \ + ASSERT_TRUE(ev_result_hint->result) << "waitEvent failed"; \ + if (HINT_ID >= 0) { \ + ASSERT_TRUE(ev_result_hint->isSameID(HINT_ID)) << "Hint ID mismatch, ID: " << ev_result_hint->getID() << " vs " << HINT_ID; \ + } if (HINT_NAME) { \ + ASSERT_TRUE(ev_result_hint->isSameHint(std::string(HINT_NAME))) << "Hint name mismatch, hint: " << ev_result_hint->getHint() << " vs " << HINT_NAME; \ + } if (HINT_VAL) { \ + ASSERT_TRUE(ev_result_hint->isSameVal(std::string(HINT_VAL))) << "Hint value mismatch, hint: " << ev_result_hint->getVal() << " vs " << HINT_VAL; \ + } \ + } while (0) #ifdef __cplusplus } -- 2.7.4