#define WIDTH 480
#define HEIGHT 800
+#define WAIT_RESULT_DELAY 1.5
+
namespace {
static bool callback_called = false;
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);
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)
Ecore_IMF_Context *ctx = ecore_imf_context_add(ctx_id);
EXPECT_NE(ctx, nullptr);
+
+ ecore_imf_context_del(ctx);
}
/**
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);
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);
WAIT_FOR_CALLBACK();
- ecore_evas_free(ee);
-
EXPECT_EQ(callback_called, true);
EXPECT_EQ(input_panel_state, ECORE_IMF_INPUT_PANEL_STATE_SHOW);
}