Add input_panel_enabled_set case in tests 62/235262/2
authorJihoon Kim <jihoon48.kim@samsung.com>
Wed, 3 Jun 2020 07:09:34 +0000 (16:09 +0900)
committerJihoon Kim <jihoon48.kim@samsung.com>
Wed, 3 Jun 2020 07:13:13 +0000 (16:13 +0900)
Change-Id: Iefa9b56ae0768b24551311d8ff4a3a8b6a686389
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
ism/tests/Makefile.am
ism/tests/ecore_imf_tests.cpp [moved from ism/tests/ecore_imf_unittests.cpp with 68% similarity]

index 699ceb0..5045b73 100644 (file)
@@ -26,7 +26,7 @@ ISF_TESTS = isf-tests
 appexecdir            = /usr/bin/
 appexec_PROGRAMS      = $(ISF_TESTS)
 
-isf_tests_SOURCES  = main.cpp ecore_imf_unittests.cpp
+isf_tests_SOURCES  = main.cpp ecore_imf_tests.cpp
 
 isf_tests_CXXFLAGS = @GMOCK_CFLAGS@ \
                      @ECORE_IMF_CFLAGS@ \
similarity index 68%
rename from ism/tests/ecore_imf_unittests.cpp
rename to ism/tests/ecore_imf_tests.cpp
index d3b6a65..6e13a60 100644 (file)
@@ -30,6 +30,8 @@
 #define WIDTH 480
 #define HEIGHT 800
 
+#define WAIT_RESULT_DELAY 1.5
+
 namespace {
 
 static bool callback_called = false;
@@ -40,6 +42,8 @@ static void WAIT_FOR_CALLBACK();
 
 class EcoreIMFContextTest : public testing::Test {
     public:
+        Ecore_Timer *timer_exit = nullptr;
+
         virtual void SetUp() {
             setenv("ECORE_IMF_MODULE", "wayland", 1);
             setenv("WAYLAND_DISPLAY", "wayland-0", 1);
@@ -58,8 +62,45 @@ class EcoreIMFContextTest : public testing::Test {
             ecore_imf_shutdown();
             ecore_evas_shutdown();
         }
+};
 
+class EcoreIMFContextWinTest : public testing::Test {
+    public:
+        const char *ctx_id = nullptr;
+        Evas *evas = nullptr;
+        Ecore_Evas *ee = nullptr;
         Ecore_Timer *timer_exit = nullptr;
+
+        virtual void SetUp() {
+            setenv("ECORE_IMF_MODULE", "wayland", 1);
+            setenv("WAYLAND_DISPLAY", "wayland-0", 1);
+            setenv("XDG_RUNTIME_DIR", "/run", 1);
+
+            callback_called = false;
+            int ret;
+
+            ret = ecore_evas_init();
+            ASSERT_NE(ret, 0);
+
+            ret = ecore_imf_init();
+            ASSERT_NE(ret, 0);
+
+            ctx_id = ecore_imf_context_default_id_get();
+            ASSERT_NE(ctx_id, nullptr);
+
+            ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
+            ASSERT_NE(ee, nullptr);
+
+            evas = ecore_evas_get(ee);
+            ASSERT_NE(evas, nullptr);
+        }
+        virtual void TearDown() {
+            if (ee)
+                ecore_evas_free(ee);
+
+            ecore_imf_shutdown();
+            ecore_evas_shutdown();
+        }
 };
 
 static Eina_Bool _timeout_timer_cb(void *data)
@@ -113,6 +154,8 @@ TEST_F(EcoreIMFContextTest, utc_ecore_imf_context_add_p)
 
     Ecore_IMF_Context *ctx = ecore_imf_context_add(ctx_id);
     EXPECT_NE(ctx, nullptr);
+
+    ecore_imf_context_del(ctx);
 }
 
 /**
@@ -126,69 +169,74 @@ TEST_F(EcoreIMFContextTest, utc_ecore_imf_context_add_n)
     EXPECT_EQ(ctx, nullptr);
 }
 
-TEST_F(EcoreIMFContextTest, utc_ime_show_in_canvas)
+TEST_F(EcoreIMFContextWinTest, utc_ime_show_in_canvas)
 {
     callback_called = false;
     input_panel_state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
 
-    int ret = ecore_evas_init();
-    ASSERT_NE(ret, 0);
-
-    const char *ctx_id = ecore_imf_context_default_id_get();
-    ASSERT_NE(ctx_id, nullptr);
-
     Ecore_IMF_Context *ctx = ecore_imf_context_add(ctx_id);
     ASSERT_NE(ctx, nullptr);
 
-    Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
-    ASSERT_NE(ee, nullptr);
-
     ecore_evas_show(ee);
 
-    Evas *evas = ecore_evas_get(ee);
-    ASSERT_NE(evas, nullptr);
-
     evas_focus_in(evas);
 
     ecore_imf_context_client_canvas_set(ctx, evas);
     ecore_imf_context_focus_in(ctx);
 
-    timer_exit = ecore_timer_add(1.5, _timeout_timer_cb, NULL);
+    timer_exit = ecore_timer_add(WAIT_RESULT_DELAY, _timeout_timer_cb, NULL);
 
     ecore_imf_context_input_panel_event_callback_add(ctx, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_state_cb, NULL);
 
     WAIT_FOR_CALLBACK();
 
-    ecore_evas_free(ee);
+    Ecore_IMF_Input_Panel_State input_panel_state = ecore_imf_context_input_panel_state_get(ctx);
 
     EXPECT_EQ(callback_called, true);
+    EXPECT_EQ(input_panel_state, ECORE_IMF_INPUT_PANEL_STATE_SHOW);
 }
 
-TEST_F(EcoreIMFContextTest, utc_ime_show_in_canvas_no_window_show)
+TEST_F(EcoreIMFContextWinTest, utc_ime_disable_show)
 {
     callback_called = false;
     input_panel_state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
 
-    int ret = ecore_evas_init();
-    ASSERT_NE(ret, 0);
-
-    const char *ctx_id = ecore_imf_context_default_id_get();
-    ASSERT_NE(ctx_id, nullptr);
-
     Ecore_IMF_Context *ctx = ecore_imf_context_add(ctx_id);
     ASSERT_NE(ctx, nullptr);
 
-    Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
-    ASSERT_NE(ee, nullptr);
+    ecore_evas_show(ee);
+
+    evas_focus_in(evas);
+
+    ecore_imf_context_client_canvas_set(ctx, evas);
+    ecore_imf_context_input_panel_enabled_set(ctx, EINA_FALSE);
+    ecore_imf_context_focus_in(ctx);
+
+    timer_exit = ecore_timer_add(WAIT_RESULT_DELAY, _timeout_timer_cb, NULL);
+
+    ecore_imf_context_input_panel_event_callback_add(ctx, ECORE_IMF_INPUT_PANEL_STATE_EVENT, _input_panel_state_cb, NULL);
+
+    WAIT_FOR_CALLBACK();
+
+    Ecore_IMF_Input_Panel_State input_panel_state = ecore_imf_context_input_panel_state_get(ctx);
+
+    EXPECT_EQ(callback_called, false);
+    EXPECT_EQ(input_panel_state, ECORE_IMF_INPUT_PANEL_STATE_HIDE);
+}
 
-    Evas *evas = ecore_evas_get(ee);
-    ASSERT_NE(evas, nullptr);
+TEST_F(EcoreIMFContextWinTest, utc_ime_show_in_canvas_no_window_show)
+{
+    callback_called = false;
+    input_panel_state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
+
+    Ecore_IMF_Context *ctx = ecore_imf_context_add(ctx_id);
+    ASSERT_NE(ctx, nullptr);
 
     evas_focus_in(evas);
 
     // no call ecore_evas_show() intentionally for testing
 
-    timer_exit = ecore_timer_add(1.5, _timeout_timer_cb, NULL);
+    timer_exit = ecore_timer_add(WAIT_RESULT_DELAY, _timeout_timer_cb, NULL);
 
     ecore_imf_context_client_canvas_set(ctx, evas);
     ecore_imf_context_focus_in(ctx);
@@ -199,34 +247,21 @@ TEST_F(EcoreIMFContextTest, utc_ime_show_in_canvas_no_window_show)
 
     Ecore_IMF_Input_Panel_State input_panel_state = ecore_imf_context_input_panel_state_get(ctx);
 
-    ecore_evas_free(ee);
-
     EXPECT_EQ(callback_called, false);
     EXPECT_EQ(input_panel_state, ECORE_IMF_INPUT_PANEL_STATE_HIDE);
 }
 
-TEST_F(EcoreIMFContextTest, utc_ime_show_in_client_window)
+TEST_F(EcoreIMFContextWinTest, utc_ime_show_in_client_window)
 {
     callback_called = false;
     input_panel_state = ECORE_IMF_INPUT_PANEL_STATE_HIDE;
 
-    int ret = ecore_evas_init();
-    ASSERT_NE(ret, 0);
-
-    const char *ctx_id = ecore_imf_context_default_id_get();
-    ASSERT_NE(ctx_id, nullptr);
-
     Ecore_IMF_Context *ctx = ecore_imf_context_add(ctx_id);
     ASSERT_NE(ctx, nullptr);
 
-    Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
-    ASSERT_NE(ee, nullptr);
-
     ecore_evas_show(ee);
 
-    Evas *evas = ecore_evas_get(ee);
-
-    timer_exit = ecore_timer_add(1.5, _timeout_timer_cb, NULL);
+    timer_exit = ecore_timer_add(WAIT_RESULT_DELAY, _timeout_timer_cb, NULL);
 
     ecore_imf_context_client_window_set(ctx, (void *)ecore_evas_window_get(ecore_evas_ecore_evas_get(evas)));
     ecore_imf_context_focus_in(ctx);
@@ -235,8 +270,6 @@ TEST_F(EcoreIMFContextTest, utc_ime_show_in_client_window)
 
     WAIT_FOR_CALLBACK();
 
-    ecore_evas_free(ee);
-
     EXPECT_EQ(callback_called, true);
     EXPECT_EQ(input_panel_state, ECORE_IMF_INPUT_PANEL_STATE_SHOW);
 }