From: duna.oh Date: Fri, 9 Dec 2022 05:20:51 +0000 (+0900) Subject: add test case for input_inialize_generator_with_sync X-Git-Tag: accepted/tizen/unified/20230215.155622~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c39916949ba020cf66ffd1d0a1bbbc1effdf1ca5;p=platform%2Fcore%2Fuifw%2Fe-tizen-testcase.git add test case for input_inialize_generator_with_sync Change-Id: I43fe8200aa72fa0c593d71ff3c6937e23b543494 --- diff --git a/src/Makefile.am b/src/Makefile.am index 27bdef7..549e569 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -25,7 +25,8 @@ testcase/0012_aux_hint.cpp \ testcase/0013_iconic_state.cpp \ testcase/0014_transient_for_below.cpp \ testcase/0015_tzsh_quickpanel.cpp \ -testcase/0016_background_state.cpp +testcase/0016_background_state.cpp \ +testcase/0017_input_sync.cpp e_tizen_unittests_SOURCES = \ e_test_main.cpp \ diff --git a/src/e_test_efl_util.h b/src/e_test_efl_util.h index fab0432..783c7a7 100644 --- a/src/e_test_efl_util.h +++ b/src/e_test_efl_util.h @@ -17,6 +17,17 @@ class etInputGenHandler if (handler == nullptr) printf("failed to init input generator\n"); } + etInputGenHandler(efl_util_input_device_type_e type, bool with_sync) : + handler(nullptr) + { + if (with_sync) + handler = efl_util_input_initialize_generator_with_sync(type, NULL); + else + handler = efl_util_input_initialize_generator_with_name(type, NULL); + + if (handler == nullptr) + printf("failed to init input generator\n"); + } ~etInputGenHandler() { efl_util_input_deinitialize_generator(handler); diff --git a/src/testcase/0017_input_sync.cpp b/src/testcase/0017_input_sync.cpp new file mode 100644 index 0000000..8750877 --- /dev/null +++ b/src/testcase/0017_input_sync.cpp @@ -0,0 +1,83 @@ +#include + +#include "e_test_event.h" +#include "e_test_base.h" +#include "e_test_efl_util.h" + +class etTestInputSync : public ::etTCBase +{ +public: + etTestInputSync() + { + key_name = eina_stringshare_add("XF86Menu"); + etRunner::get().ev.key.name = eina_stringshare_add("XF86Menu"); + const ::testing::TestInfo *const test_info = ::testing::UnitTest::GetInstance()->current_test_info(); + testCaseName = test_info->test_case_name(); + testName = test_info->name(); + }; + ~etTestInputSync() + { + eina_stringshare_del(key_name); + eina_stringshare_del(etRunner::get().ev.key.name); + key_name = NULL; + }; + +protected: + std::string testCaseName; + std::string testName; + + Eina_Stringshare *key_name = NULL; +}; + +TEST_F(etTestInputSync, keygrab_nowin_shared) +{ + Eina_Bool ret = EINA_FALSE; + ret = ecore_wl2_window_keygrab_set(NULL, "XF86Menu", 0, 0, 0, ECORE_WL2_WINDOW_KEYGRAB_SHARED); + ASSERT_TRUE(ret); + + InputGenHandler inputgen_h = std::make_shared(EFL_UTIL_INPUT_DEVTYPE_KEYBOARD, true); + inputgen_h->generateKeyEvent(key_name, 0.3); + ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY); + ASSERT_NE(ev_result, nullptr); + + ret = ecore_wl2_window_keygrab_unset(NULL, "XF86Menu", 0, 0); + ASSERT_TRUE(ret); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestInputSync, keygrab_nowin_orexcl) +{ + Eina_Bool ret = EINA_FALSE; + + ret = ecore_wl2_window_keygrab_set(NULL, "XF86Menu", 0, 0, 0, ECORE_WL2_WINDOW_KEYGRAB_OVERRIDE_EXCLUSIVE); + ASSERT_TRUE(ret); + + InputGenHandler inputgen_h = std::make_shared(EFL_UTIL_INPUT_DEVTYPE_KEYBOARD, true); + inputgen_h->generateKeyEvent(key_name, 0.3); + ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY); + ASSERT_NE(ev_result, nullptr); + + ret = ecore_wl2_window_keygrab_unset(NULL, "XF86Menu", 0, 0); + ASSERT_TRUE(ret); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +} + +TEST_F(etTestInputSync, keygrab_nowin_excl) +{ + Eina_Bool ret = EINA_FALSE; + + ret = ecore_wl2_window_keygrab_set(NULL, "XF86Menu", 0, 0, 0, ECORE_WL2_WINDOW_KEYGRAB_EXCLUSIVE); + ASSERT_TRUE(ret); + + InputGenHandler inputgen_h = std::make_shared(EFL_UTIL_INPUT_DEVTYPE_KEYBOARD, true); + inputgen_h->generateKeyEvent(key_name, 0.3); + ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_KEY); + ASSERT_NE(ev_result, nullptr); + + ret = ecore_wl2_window_keygrab_unset(NULL, "XF86Menu", 0, 0); + ASSERT_TRUE(ret); + + ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE); +}