Ecore_Event_Mouse_Button *ev = (Ecore_Event_Mouse_Button *)event;
etRunner *runner = (etRunner *)data;
- DBG("Mouse button DOWN cb");
+ DBG("Mouse button DOWN cb (%d, %d) buttons: %d", ev->x, ev->y, ev->buttons);
if (runner->ev.mouse.buttons != ev->buttons) return ECORE_CALLBACK_PASS_ON;
if ((runner->ev.mouse.x == ev->x) &&
Ecore_Event_Mouse_Button *ev = (Ecore_Event_Mouse_Button *)event;
etRunner *runner = (etRunner *)data;
- DBG("Mouse button UP cb");
+ DBG("Mouse button UP cb (%d, %d) buttons: %d", ev->x, ev->y, ev->buttons);
if (runner->ev.mouse.buttons != ev->buttons) return ECORE_CALLBACK_PASS_ON;
if ((runner->ev.mouse.x == ev->x) &&
Ecore_Event_Mouse_Move *ev = (Ecore_Event_Mouse_Move *)event;
etRunner *runner = (etRunner *)data;
- DBG("Mouse MOVE cb");
+ DBG("Mouse MOVE cb (%d, %d)", ev->x, ev->y);
if ((runner->ev.mouse.x == ev->x) &&
(runner->ev.mouse.y == ev->y))
{
res = etRunner::get().unsetConfiguredOutputResolution();
ASSERT_EQ(res, 0);
+ ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestOutputResolution, basic_robustness)
+{
+ Eina_Bool res = 0;
+ int ret = EFL_UTIL_ERROR_NONE;
+ const int win_w = 100, win_h = 100;
+ int screen_w = 0, screen_h = 0;
+ double ratio_w = 1.0, ratio_h = 1.0;
+ int pos_x = 100, pos_y = 100;
+
+ etTCResult initRes = initTC();
+ ASSERT_TRUE(initRes.result()) << initRes.description();
+
+ res = etRunner::get().setConfiguredOutputResolution(CONFIGURED_OUTPUT_RESOLUTION_W, CONFIGURED_OUTPUT_RESOLUTION_H);
+ ASSERT_EQ(res, EINA_TRUE);
+
+ tw_red = initNormalWin("TCWin_Red", 0, 0, win_w, win_h, E_TC_WIN_COLOR_RED);
+ showTCWin(tw_red);
+ ASSERT_FOCUS_IN(tw_red);
+ ASSERT_TRUE(tw_red != NULL) << "failed to initiation window";
+
+ res = etRunner::get().getScreenSize(&screen_w, &screen_h);
+ ASSERT_EQ(res, EINA_TRUE) << "failed to get screen size";
+
+ // Expected values: (ratio_x = 1.5, ratio_w = 1.5 as FHD screen)
+ ratio_w = (double) screen_w / CONFIGURED_OUTPUT_RESOLUTION_W;
+ ratio_h = (double) screen_h / CONFIGURED_OUTPUT_RESOLUTION_H;
+
+ InputGenHandler inputgen_h = std::make_shared<etInputGenHandler>(EFL_UTIL_INPUT_DEVTYPE_POINTER, true);
+ ret = inputgen_h->generatePointerMove(1, 0, 0);
+ ASSERT_TRUE(ret);
+
+ // Expected event coordinate: (x = 66, y = 66 as FHD screen)
+ etRunner::get().ev.mouse.x = pos_x / ratio_w;
+ etRunner::get().ev.mouse.y = pos_y / ratio_h;
+
+ ret = inputgen_h->generatePointerMove(1, pos_x, pos_y);
+ ASSERT_TRUE(ret);
+ ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE);
+
+ res = etRunner::get().unsetConfiguredOutputResolution();
+ ASSERT_EQ(res, 0);
+
+ ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
+}
+
+TEST_F(etTestOutputResolution, base_output_resolution_basic_robustness)
+{
+ Eina_Bool res = 0;
+ int ret = EFL_UTIL_ERROR_NONE;
+ const int win_w = 100, win_h = 100;
+ int screen_w = 0, screen_h = 0;
+ double ratio_w = 1.0, ratio_h = 1.0;
+ int pos_x = 100, pos_y = 100;
+
+ etTCResult initRes = initTC();
+ ASSERT_TRUE(initRes.result()) << initRes.description();
+
+ res = etRunner::get().setConfiguredOutputResolution(CONFIGURED_OUTPUT_RESOLUTION_W, CONFIGURED_OUTPUT_RESOLUTION_H);
+ ASSERT_EQ(res, EINA_TRUE);
+ res = etRunner::get().setBaseOutputResolution(getpid(), BASE_OUTPUT_RESOLUTION_W, BASE_OUTPUT_RESOLUTION_H);
+ ASSERT_EQ(res, EINA_TRUE);
+
+ tw_red = initNormalWin("TCWin_Red", 0, 0, win_w, win_h, E_TC_WIN_COLOR_RED);
+ showTCWin(tw_red);
+ ASSERT_FOCUS_IN(tw_red);
+ ASSERT_TRUE(tw_red != NULL) << "failed to initiation window";
+
+ res = etRunner::get().getScreenSize(&screen_w, &screen_h);
+ ASSERT_EQ(res, EINA_TRUE) << "failed to get screen size";
+
+ // Expected values: (ratio_x = 3, ratio_w = 2 as FHD screen)
+ ratio_w = (double) screen_w / BASE_OUTPUT_RESOLUTION_W;
+ ratio_h = (double) screen_h / BASE_OUTPUT_RESOLUTION_H;
+
+ InputGenHandler inputgen_h = std::make_shared<etInputGenHandler>(EFL_UTIL_INPUT_DEVTYPE_POINTER, true);
+ ret = inputgen_h->generatePointerMove(1, 0, 0);
+ ASSERT_TRUE(ret);
+
+ // Expected event coordinate: (x = 33, y = 50 as FHD screen)
+ etRunner::get().ev.mouse.x = pos_x / ratio_w;
+ etRunner::get().ev.mouse.y = pos_y / ratio_h;
+
+ ret = inputgen_h->generatePointerMove(1, pos_x, pos_y);
+ ASSERT_TRUE(ret);
+ ev_result = etRunner::get().waitEvent(NULL, E_TC_EVENT_TYPE_INPUT_ECORE_MOUSE);
+
+ res = etRunner::get().unsetBaseOutputResolution(getpid());
+ ASSERT_EQ(res, 0);
+
+ res = etRunner::get().unsetConfiguredOutputResolution();
+ ASSERT_EQ(res, 0);
+
ASSERT_EQ(etRunner::get().verifyTC(testCaseName, testName), EINA_TRUE);
}
\ No newline at end of file