e_test_util: Added some macro functions for test event. 59/257559/1
authorJunseok, Kim <juns.kim@samsung.com>
Tue, 27 Apr 2021 11:29:37 +0000 (20:29 +0900)
committerJunseok, Kim <juns.kim@samsung.com>
Tue, 27 Apr 2021 12:04:40 +0000 (21:04 +0900)
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
src/e_test_util.h

index c039239..f3e1c37 100644 (file)
@@ -24,6 +24,13 @@ class etTCBase : public ::testing::Test
    Eina_Bool  showActivateTCWin(etWin *tw);
    Eina_Bool  removeTCWin(etWin *tw);
 
+ protected:
+   std::shared_ptr<eventItem> ev_result;
+   std::shared_ptr<visibleEventItem> ev_result_vis;
+   std::shared_ptr<rotationEventItem> ev_result_rot;
+   std::shared_ptr<focusEventItem> ev_result_focus;
+   std::shared_ptr<auxHintEventItem> ev_result_hint;
+
  private:
    Eina_List *tw_list = NULL;
 
index 280a8cd..15167de 100644 (file)
@@ -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<visibleEventItem>(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<visibleEventItem>(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<rotationEventItem>(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<focusEventItem>(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<focusEventItem>(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<auxHintEventItem>(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
 }