10 #include "flutter/shell/platform/linux/testing/fl_mock_binary_messenger.h"
11 #include "flutter/shell/platform/linux/testing/fl_test.h"
13 #include "flutter/shell/platform/linux/testing/linux_test.h"
14 #include "gmock/gmock.h"
15 #include "gtest/gtest.h"
23 struct _FlTestApplication {
24 GtkApplication parent_instance;
25 gboolean* dispose_called;
30 gtk_application_get_type())
32 static
void fl_test_application_startup(GApplication* application) {
33 G_APPLICATION_CLASS(fl_test_application_parent_class)->startup(application);
38 gtk_application_window_new(GTK_APPLICATION(application));
42 G_APPLICATION_CLASS(fl_test_application_parent_class)->activate(application);
44 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
47 EXPECT_NE(handler,
nullptr);
50 gboolean called = FALSE;
53 fl_mock_binary_messenger_invoke_json_method(
54 messenger,
"flutter/platform",
"System.exitApplication",
args,
55 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
57 gboolean* called =
static_cast<gboolean*
>(
user_data);
60 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
66 FL_METHOD_SUCCESS_RESPONSE(response)),
76 FlTestApplication*
self = FL_TEST_APPLICATION(
object);
78 *
self->dispose_called =
true;
80 G_OBJECT_CLASS(fl_test_application_parent_class)->dispose(
object);
85 G_APPLICATION_CLASS(klass)->startup = fl_test_application_startup;
92 FlTestApplication*
self = FL_TEST_APPLICATION(
93 g_object_new(fl_test_application_get_type(),
nullptr));
96 g_application_set_application_id(G_APPLICATION(
self),
"dev.flutter.GtkTest");
97 g_application_set_flags(G_APPLICATION(
self), G_APPLICATION_NON_UNIQUE);
100 FL_IS_TEST_APPLICATION(
self);
102 self->dispose_called = dispose_called;
110 messenger = fl_mock_binary_messenger_new();
125 gboolean called = FALSE;
127 fl_mock_binary_messenger_invoke_json_method(
128 messenger,
"flutter/platform",
"SystemSound.play",
args,
129 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
131 gboolean* called =
static_cast<gboolean*
>(
user_data);
134 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
138 FL_METHOD_SUCCESS_RESPONSE(response)),
147 gboolean called = FALSE;
148 fl_mock_binary_messenger_invoke_json_method(
149 messenger,
"flutter/platform",
"System.initializationComplete",
nullptr,
150 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
152 gboolean* called =
static_cast<gboolean*
>(
user_data);
155 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
159 FL_METHOD_SUCCESS_RESPONSE(response)),
165 gboolean request_exit_called = FALSE;
166 fl_mock_binary_messenger_set_json_method_channel(
167 messenger,
"flutter/platform",
168 [](FlMockBinaryMessenger* messenger, GTask* task,
const gchar* name,
170 gboolean* called =
static_cast<gboolean*
>(
user_data);
173 EXPECT_STREQ(name,
"System.requestAppExit");
186 &request_exit_called);
190 fl_mock_binary_messenger_invoke_json_method(
191 messenger,
"flutter/platform",
"System.exitApplication",
args,
192 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
194 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
200 FL_METHOD_SUCCESS_RESPONSE(response)),
203 g_main_loop_quit(
static_cast<GMainLoop*
>(
user_data));
207 g_main_loop_run(loop);
209 EXPECT_TRUE(request_exit_called);
213 gtk_init(0,
nullptr);
215 gboolean dispose_called =
false;
219 g_application_run(G_APPLICATION(application), 0,
nullptr);
221 EXPECT_FALSE(dispose_called);
222 g_object_unref(application);
223 EXPECT_TRUE(dispose_called);
g_autoptr(FlEngine) engine
const char FlTextDirection FlAssertiveness gpointer user_data
void fl_binary_messenger_shutdown(FlBinaryMessenger *self)
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
G_MODULE_EXPORT FlMethodSuccessResponse * fl_method_success_response_new(FlValue *result)
G_MODULE_EXPORT FlValue * fl_method_success_response_get_result(FlMethodSuccessResponse *self)
G_MODULE_EXPORT void fl_value_set_string_take(FlValue *self, const gchar *key, FlValue *value)
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
G_MODULE_EXPORT FlValue * fl_value_new_null()
G_MODULE_EXPORT bool fl_value_equal(FlValue *a, FlValue *b)
G_MODULE_EXPORT FlValue * fl_value_new_map()
typedefG_BEGIN_DECLS struct _FlValue FlValue