#include "e_test_event.h"
#define E_TEST_WORK_TIME 3.0
-#define E_TC_SIGN_WIN_INFO "usiiiiibbbiibbbbbi"
+#define E_TC_SIGN_WIN_INFO "usiiiiibbbiibibbbi"
#define UT_WAIT(fmt, ...) \
do \
tw->Vis.opaque,
tw->Vis.type,
tw->Vis.skip,
- tw->iconic,
+ tw->iconic.by_client ? 2 : tw->iconic.set,
tw->Focus.win,
tw->Focus.obj,
tw->name);
Eldbus_Pending *p)
{
const char *name = NULL, *text = NULL, *wname = NULL;
+ int iconic = 0;
etWin *tw = NULL;
Eina_Bool res = EINA_FALSE;
&tw->Vis.opaque,
&tw->Vis.type,
&tw->Vis.skip,
- &tw->iconic,
+ &iconic,
&tw->alpha,
&tw->Focus.win,
&tw->Focus.obj,
&tw->rot);
+ switch (iconic)
+ {
+ case 2:
+ tw->iconic.set = EINA_TRUE;
+ tw->iconic.by_client = EINA_TRUE;
+ break;
+ case 1:
+ tw->iconic.set = EINA_TRUE;
+ tw->iconic.by_client = EINA_FALSE;
+ break;
+ default:
+ tw->iconic.set = EINA_FALSE;
+ tw->iconic.by_client = EINA_FALSE;
+ break;
+ }
+
if (wname)
{
// change window name from char * to Eina_Stringshare
Eldbus_Pending *p)
{
const char *name = NULL, *text = NULL, *wname = NULL;
+ int iconic = 0;
Eldbus_Message_Iter *array = NULL, *ec = NULL;
Window_Info_List *info_list = (Window_Info_List *)data;
Eina_Bool res = EINA_FALSE, animating = EINA_FALSE;
&tw->Vis.opaque,
&tw->Vis.type,
&tw->Vis.skip,
- &tw->iconic,
+ &iconic,
&tw->alpha,
&tw->Focus.win,
&tw->Focus.obj,
&tw->rot);
+ switch (iconic)
+ {
+ case 2:
+ tw->iconic.set = EINA_TRUE;
+ tw->iconic.by_client = EINA_TRUE;
+ break;
+ case 1:
+ tw->iconic.set = EINA_TRUE;
+ tw->iconic.by_client = EINA_FALSE;
+ break;
+ default:
+ tw->iconic.set = EINA_FALSE;
+ tw->iconic.by_client = EINA_FALSE;
+ break;
+ }
+
if (wname)
{
// change name to eina_stringshare
Eina_Bool res = EINA_FALSE;
Ecore_Window win = 0;
std::shared_ptr<iconicStateEventItem> iconicEvent = NULL;
- Eina_Bool iconic = EINA_FALSE;
+ Eina_Bool iconic = EINA_FALSE, by_client = EINA_FALSE;
res = eldbus_message_error_get(msg, &name, &text);
EINA_SAFETY_ON_TRUE_GOTO(res, finish);
- res = eldbus_message_arguments_get(msg, "ub", &win, &iconic);
+ res = eldbus_message_arguments_get(msg, "ubb", &win, &iconic, &by_client);
EINA_SAFETY_ON_FALSE_GOTO(res, finish);
- iconicEvent = std::make_shared<iconicStateEventItem>(win, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED, iconic);
+ iconicEvent = std::make_shared<iconicStateEventItem>(win, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED, iconic, by_client);
EINA_SAFETY_ON_NULL_GOTO(iconicEvent, finish);
runner->insertEventQueue(iconicEvent);
ASSERT_TRUE(ev_result_iconic->isIconified()) << "Window is uniconified"; \
} while (0)
+#define ASSERT_ICONIFIED_BY_CLIENT(TEST_WINDOW) \
+ do { \
+ ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \
+ ev_result_iconic = std::static_pointer_cast<iconicStateEventItem>(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED)); \
+ ASSERT_NE(ev_result_iconic, nullptr) << "result is NULL"; \
+ ASSERT_FALSE(ev_result_iconic->isTimeout) << "waitEvent timeout (1.0 sec)"; \
+ ASSERT_TRUE(ev_result_iconic->result) << "waitEvent failed"; \
+ ASSERT_TRUE(ev_result_iconic->isIconified()) << "Window is uniconified"; \
+ ASSERT_TRUE(ev_result_iconic->isIconifiedByClient()) << "Window is iconified by server"; \
+ } while (0)
+
+#define ASSERT_ICONIFIED_BY_SERVER(TEST_WINDOW) \
+ do { \
+ ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \
+ ev_result_iconic = std::static_pointer_cast<iconicStateEventItem>(etRunner::get().waitEvent(TEST_WINDOW, E_TC_EVENT_TYPE_ICONIC_STATE_CHANGED)); \
+ ASSERT_NE(ev_result_iconic, nullptr) << "result is NULL"; \
+ ASSERT_FALSE(ev_result_iconic->isTimeout) << "waitEvent timeout (1.0 sec)"; \
+ ASSERT_TRUE(ev_result_iconic->result) << "waitEvent failed"; \
+ ASSERT_TRUE(ev_result_iconic->isIconified()) << "Window is uniconified"; \
+ ASSERT_FALSE(ev_result_iconic->isIconifiedByClient()) << "Window is iconified by client"; \
+ } while (0)
+
#define ASSERT_UNICONIFIED(TEST_WINDOW) \
do { \
ASSERT_NE(TEST_WINDOW, nullptr) << "Window is NULL"; \