12#include "gtest/gtest.h"
27 ::testing::NiceMock<flutter::testing::MockGtk>
mock_gtk;
32 .WillOnce(::testing::Return(
static_cast<GdkWindowState
>(0)));
34 gboolean called =
TRUE;
36 messenger,
"flutter/lifecycle",
37 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
39 gboolean* called =
static_cast<gboolean*
>(
user_data);
52 .window_state = {.new_window_state = GDK_WINDOW_STATE_FOCUSED}};
54 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
60 .WillOnce(::testing::Return(GDK_WINDOW_STATE_FOCUSED));
61 gboolean called =
TRUE;
63 messenger,
"flutter/lifecycle",
64 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
66 gboolean* called =
static_cast<gboolean*
>(
user_data);
69 "AppLifecycleState.inactive");
80 .window_state = {.new_window_state =
static_cast<GdkWindowState
>(0)}};
82 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
88 .WillOnce(::testing::Return(
static_cast<GdkWindowState
>(0)));
89 gboolean called =
TRUE;
91 messenger,
"flutter/lifecycle",
92 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
94 gboolean* called =
static_cast<gboolean*
>(
user_data);
103 g_autoptr(FlWindowStateMonitor) monitor =
107 .window_state = {.new_window_state = GDK_WINDOW_STATE_ICONIFIED}};
109 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
115 .WillOnce(::testing::Return(GDK_WINDOW_STATE_ICONIFIED));
116 gboolean called =
TRUE;
118 messenger,
"flutter/lifecycle",
119 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
121 gboolean* called =
static_cast<gboolean*
>(
user_data);
124 "AppLifecycleState.inactive");
131 g_autoptr(FlWindowStateMonitor) monitor =
135 .window_state = {.new_window_state =
static_cast<GdkWindowState
>(0)}};
137 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
143 .WillOnce(::testing::Return(GDK_WINDOW_STATE_ICONIFIED));
144 gboolean called =
TRUE;
146 messenger,
"flutter/lifecycle",
147 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
149 gboolean* called =
static_cast<gboolean*
>(
user_data);
158 g_autoptr(FlWindowStateMonitor) monitor =
162 .window_state = {.new_window_state =
static_cast<GdkWindowState
>(
163 GDK_WINDOW_STATE_FOCUSED)}};
165 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
171 .WillOnce(::testing::Return(
static_cast<GdkWindowState
>(0)));
172 gboolean called =
TRUE;
174 messenger,
"flutter/lifecycle",
175 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
177 gboolean* called =
static_cast<gboolean*
>(
user_data);
186 g_autoptr(FlWindowStateMonitor) monitor =
190 .window_state = {.new_window_state = GDK_WINDOW_STATE_WITHDRAWN}};
192 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
198 .WillOnce(::testing::Return(GDK_WINDOW_STATE_WITHDRAWN));
199 gboolean called =
TRUE;
201 messenger,
"flutter/lifecycle",
202 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
204 gboolean* called =
static_cast<gboolean*
>(
user_data);
207 "AppLifecycleState.inactive");
214 g_autoptr(FlWindowStateMonitor) monitor =
218 .window_state = {.new_window_state =
static_cast<GdkWindowState
>(0)}};
220 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
226 .WillOnce(::testing::Return(GDK_WINDOW_STATE_WITHDRAWN));
227 gboolean called =
TRUE;
229 messenger,
"flutter/lifecycle",
230 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue*
message,
232 gboolean* called =
static_cast<gboolean*
>(
user_data);
241 g_autoptr(FlWindowStateMonitor) monitor =
245 .window_state = {.new_window_state =
static_cast<GdkWindowState
>(
246 GDK_WINDOW_STATE_FOCUSED)}};
248 g_signal_emit_by_name(
window,
"window-state-event", &event, &handled);
FlMockBinaryMessenger * messenger
~FlWindowStateMonitorTest()
::testing::NiceMock< flutter::testing::MockGtk > mock_gtk
g_autoptr(FlEngine) engine
void fl_binary_messenger_shutdown(FlBinaryMessenger *self)
FlMockBinaryMessenger * fl_mock_binary_messenger_new()
void fl_mock_binary_messenger_set_string_message_channel(FlMockBinaryMessenger *self, const gchar *channel, FlMockBinaryMessengerMessageChannelHandler handler, gpointer user_data)
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
G_MODULE_EXPORT const gchar * fl_value_get_string(FlValue *self)
typedefG_BEGIN_DECLS struct _FlValue FlValue
FlWindowStateMonitor * fl_window_state_monitor_new(FlBinaryMessenger *messenger, GtkWindow *window)
TEST_F(FlWindowStateMonitorTest, GainFocus)
void gtk_widget_show(GtkWidget *widget)
GtkWidget * gtk_window_new(GtkWindowType type)
GdkWindowState gdk_window_get_state(GdkWindow *window)