Allow async platform responses in FlMockBinaryMessenger (#160636)
To help simplify the keyboard tests.
This commit is contained in:
parent
9467677fef
commit
94c4d0568e
@ -19,7 +19,7 @@ TEST(FlBasicMessageChannelTest, SendMessageWithoutResponse) {
|
||||
gboolean called = FALSE;
|
||||
fl_mock_binary_messenger_set_standard_message_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -50,7 +50,7 @@ TEST(FlBasicMessageChannelTest, SendMessageWithResponse) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_message_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
EXPECT_NE(message, nullptr);
|
||||
EXPECT_EQ(fl_value_get_type(message), FL_VALUE_TYPE_STRING);
|
||||
@ -164,7 +164,7 @@ TEST(FlBasicMessageChannelTest, SendNullMessageWithResponse) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_message_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) { return fl_value_new_null(); },
|
||||
nullptr);
|
||||
|
||||
@ -196,7 +196,7 @@ TEST(FlBasicMessageChannelTest, CustomType) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_message_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) { return fl_value_new_null(); },
|
||||
nullptr);
|
||||
|
||||
|
@ -14,23 +14,6 @@ typedef struct {
|
||||
gboolean handled;
|
||||
} KeyEventData;
|
||||
|
||||
static FlValue* key_event_cb(FlMockBinaryMessenger* messenger,
|
||||
FlValue* message,
|
||||
gpointer user_data) {
|
||||
KeyEventData* data = static_cast<KeyEventData*>(user_data);
|
||||
|
||||
g_autofree gchar* message_string = fl_value_to_string(message);
|
||||
EXPECT_STREQ(message_string, data->expected_message);
|
||||
|
||||
FlValue* response = fl_value_new_map();
|
||||
fl_value_set_string_take(response, "handled",
|
||||
fl_value_new_bool(data->handled));
|
||||
|
||||
free(data);
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
static void set_key_event_channel(FlMockBinaryMessenger* messenger,
|
||||
const gchar* expected_message,
|
||||
gboolean handled) {
|
||||
@ -38,7 +21,21 @@ static void set_key_event_channel(FlMockBinaryMessenger* messenger,
|
||||
data->expected_message = expected_message;
|
||||
data->handled = handled;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/keyevent", key_event_cb, data);
|
||||
messenger, "flutter/keyevent",
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
g_autofree KeyEventData* data = static_cast<KeyEventData*>(user_data);
|
||||
|
||||
g_autofree gchar* message_string = fl_value_to_string(message);
|
||||
EXPECT_STREQ(message_string, data->expected_message);
|
||||
|
||||
FlValue* response = fl_value_new_map();
|
||||
fl_value_set_string_take(response, "handled",
|
||||
fl_value_new_bool(data->handled));
|
||||
|
||||
return response;
|
||||
},
|
||||
data);
|
||||
}
|
||||
|
||||
// Test sending a letter "A";
|
||||
|
@ -17,8 +17,8 @@ TEST(FlMethodChannelTest, InvokeMethod) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_method_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
EXPECT_STREQ(name, "Test");
|
||||
EXPECT_EQ(fl_value_get_type(args), FL_VALUE_TYPE_STRING);
|
||||
EXPECT_STREQ(fl_value_get_string(args), "Marco!");
|
||||
@ -63,8 +63,8 @@ TEST(FlMethodChannelTest, InvokeMethodNullptrArgsMessage) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_method_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
EXPECT_STREQ(name, "Test");
|
||||
EXPECT_EQ(fl_value_get_type(args), FL_VALUE_TYPE_NULL);
|
||||
return FL_METHOD_RESPONSE(fl_method_success_response_new(nullptr));
|
||||
@ -104,8 +104,8 @@ TEST(FlMethodChannelTest, InvokeMethodError) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_method_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
EXPECT_STREQ(name, "Test");
|
||||
g_autoptr(FlValue) details = fl_value_new_string("DETAILS");
|
||||
return FL_METHOD_RESPONSE(
|
||||
@ -154,8 +154,8 @@ TEST(FlMethodChannelTest, InvokeMethodNotImplemented) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_method_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
EXPECT_STREQ(name, "Test");
|
||||
return FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
|
||||
},
|
||||
@ -660,8 +660,8 @@ TEST(FlMethodChannelTest, CustomType) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_standard_method_channel(
|
||||
messenger, "test",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
return FL_METHOD_RESPONSE(fl_method_success_response_new(nullptr));
|
||||
},
|
||||
nullptr);
|
||||
|
@ -15,8 +15,8 @@ TEST(FlPlatformChannelTest, ExitResponse) {
|
||||
g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/platform",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
EXPECT_STREQ(name, "System.requestAppExit");
|
||||
g_autoptr(FlValue) return_value = fl_value_new_map();
|
||||
fl_value_set_string_take(return_value, "response",
|
||||
|
@ -161,8 +161,8 @@ TEST(FlPlatformHandlerTest, ExitApplication) {
|
||||
gboolean request_exit_called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/platform",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
|
||||
|
@ -31,7 +31,7 @@ TEST(FlSettingsHandlerTest, AlwaysUse24HourFormat) {
|
||||
gboolean called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/settings",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -52,7 +52,7 @@ TEST(FlSettingsHandlerTest, AlwaysUse24HourFormat) {
|
||||
called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/settings",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -90,7 +90,7 @@ TEST(FlSettingsHandlerTest, PlatformBrightness) {
|
||||
gboolean called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/settings",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -110,7 +110,7 @@ TEST(FlSettingsHandlerTest, PlatformBrightness) {
|
||||
called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/settings",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -147,7 +147,7 @@ TEST(FlSettingsHandlerTest, TextScaleFactor) {
|
||||
gboolean called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/settings",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -167,7 +167,7 @@ TEST(FlSettingsHandlerTest, TextScaleFactor) {
|
||||
called = FALSE;
|
||||
fl_mock_binary_messenger_set_json_message_channel(
|
||||
messenger, "flutter/settings",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
|
@ -300,8 +300,8 @@ TEST(FlTextInputHandlerTest, PerformAction) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
if (strcmp(name, "TextInputClient.updateEditingState") == 0) {
|
||||
@ -365,8 +365,8 @@ TEST(FlTextInputHandlerTest, MultilineWithSendAction) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.performAction");
|
||||
@ -415,8 +415,8 @@ TEST(FlTextInputHandlerTest, MoveCursor) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingState");
|
||||
@ -481,8 +481,8 @@ TEST(FlTextInputHandlerTest, Select) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingState");
|
||||
@ -549,8 +549,8 @@ TEST(FlTextInputHandlerTest, Composing) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingState");
|
||||
@ -638,8 +638,8 @@ TEST(FlTextInputHandlerTest, SurroundingText) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingState");
|
||||
@ -836,8 +836,8 @@ TEST(FlTextInputHandlerTest, TextEditingDelta) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingStateWithDeltas");
|
||||
@ -907,8 +907,8 @@ TEST(FlTextInputHandlerTest, ComposingDelta) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingStateWithDeltas");
|
||||
@ -1008,8 +1008,8 @@ TEST(FlTextInputHandlerTest, NonComposingDelta) {
|
||||
int call_count = 0;
|
||||
fl_mock_binary_messenger_set_json_method_channel(
|
||||
messenger, "flutter/textinput",
|
||||
[](FlMockBinaryMessenger* messenger, const gchar* name, FlValue* args,
|
||||
gpointer user_data) {
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, const gchar* name,
|
||||
FlValue* args, gpointer user_data) {
|
||||
int* call_count = static_cast<int*>(user_data);
|
||||
|
||||
EXPECT_STREQ(name, "TextInputClient.updateEditingStateWithDeltas");
|
||||
|
@ -22,7 +22,7 @@ TEST(FlWindowStateMonitorTest, GainFocus) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -56,7 +56,7 @@ TEST(FlWindowStateMonitorTest, LoseFocus) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -91,7 +91,7 @@ TEST(FlWindowStateMonitorTest, EnterIconified) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -125,7 +125,7 @@ TEST(FlWindowStateMonitorTest, LeaveIconified) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -160,7 +160,7 @@ TEST(FlWindowStateMonitorTest, LeaveIconifiedFocused) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -195,7 +195,7 @@ TEST(FlWindowStateMonitorTest, EnterWithdrawn) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -229,7 +229,7 @@ TEST(FlWindowStateMonitorTest, LeaveWithdrawn) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
@ -264,7 +264,7 @@ TEST(FlWindowStateMonitorTest, LeaveWithdrawnFocused) {
|
||||
gboolean called = TRUE;
|
||||
fl_mock_binary_messenger_set_string_message_channel(
|
||||
messenger, "flutter/lifecycle",
|
||||
[](FlMockBinaryMessenger* messenger, FlValue* message,
|
||||
[](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
|
||||
gpointer user_data) {
|
||||
gboolean* called = static_cast<gboolean*>(user_data);
|
||||
*called = TRUE;
|
||||
|
@ -258,7 +258,11 @@ static void fl_mock_binary_messenger_send_on_channel(
|
||||
g_warning("Failed to decode message: %s", error->message);
|
||||
} else {
|
||||
g_autoptr(FlValue) response_value = mock_message_channel->callback(
|
||||
self, message_value, mock_message_channel->user_data);
|
||||
self, task, message_value, mock_message_channel->user_data);
|
||||
if (response_value == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
response = fl_message_codec_encode_message(mock_message_channel->codec,
|
||||
response_value, &error);
|
||||
if (response == nullptr) {
|
||||
@ -274,8 +278,12 @@ static void fl_mock_binary_messenger_send_on_channel(
|
||||
g_warning("Failed to decode method call: %s", error->message);
|
||||
} else {
|
||||
g_autoptr(FlMethodResponse) response_value =
|
||||
mock_method_channel->callback(self, name, args,
|
||||
mock_method_channel->callback(self, task, name, args,
|
||||
mock_method_channel->user_data);
|
||||
if (response_value == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
response = fl_method_codec_encode_response(mock_method_channel->codec,
|
||||
response_value, &error);
|
||||
if (response == nullptr) {
|
||||
@ -464,6 +472,57 @@ void fl_mock_binary_messenger_set_json_message_channel(
|
||||
self, channel, FL_MESSAGE_CODEC(codec), handler, user_data);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlMessageCodec* codec,
|
||||
FlValue* value) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
g_autoptr(GError) error = nullptr;
|
||||
g_autoptr(GBytes) response =
|
||||
fl_message_codec_encode_message(codec, value, &error);
|
||||
if (response == nullptr) {
|
||||
g_warning("Failed to encode message: %s", error->message);
|
||||
return;
|
||||
}
|
||||
|
||||
g_task_return_pointer(task, g_bytes_ref(response),
|
||||
reinterpret_cast<GDestroyNotify>(g_bytes_unref));
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_standard_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlValue* value) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(FlStandardMessageCodec) codec = fl_standard_message_codec_new();
|
||||
fl_mock_binary_messenger_message_channel_respond(
|
||||
self, task, FL_MESSAGE_CODEC(codec), value);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_string_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlValue* value) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(FlStringCodec) codec = fl_string_codec_new();
|
||||
fl_mock_binary_messenger_message_channel_respond(
|
||||
self, task, FL_MESSAGE_CODEC(codec), value);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_json_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlValue* value) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(FlJsonMessageCodec) codec = fl_json_message_codec_new();
|
||||
fl_mock_binary_messenger_message_channel_respond(
|
||||
self, task, FL_MESSAGE_CODEC(codec), value);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_set_method_channel(
|
||||
FlMockBinaryMessenger* self,
|
||||
const gchar* channel,
|
||||
@ -471,7 +530,6 @@ void fl_mock_binary_messenger_set_method_channel(
|
||||
FlMockBinaryMessengerMethodChannelHandler handler,
|
||||
gpointer user_data) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_hash_table_insert(self->mock_method_channels, g_strdup(channel),
|
||||
mock_method_channel_new(handler, codec, user_data));
|
||||
}
|
||||
@ -493,11 +551,53 @@ void fl_mock_binary_messenger_set_json_method_channel(
|
||||
FlMockBinaryMessengerMethodChannelHandler handler,
|
||||
gpointer user_data) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(FlJsonMethodCodec) codec = fl_json_method_codec_new();
|
||||
fl_mock_binary_messenger_set_method_channel(
|
||||
self, channel, FL_METHOD_CODEC(codec), handler, user_data);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_method_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlMethodCodec* codec,
|
||||
FlMethodResponse* response) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(GError) error = nullptr;
|
||||
g_autoptr(GBytes) message =
|
||||
fl_method_codec_encode_response(codec, response, &error);
|
||||
if (message == nullptr) {
|
||||
g_warning("Failed to encode method response: %s", error->message);
|
||||
return;
|
||||
}
|
||||
|
||||
g_task_return_pointer(task, g_bytes_ref(message),
|
||||
reinterpret_cast<GDestroyNotify>(g_bytes_unref));
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_standard_method_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlMethodResponse* response) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new();
|
||||
fl_mock_binary_messenger_method_channel_respond(
|
||||
self, task, FL_METHOD_CODEC(codec), response);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_json_method_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlMethodResponse* response) {
|
||||
g_return_if_fail(FL_IS_MOCK_BINARY_MESSENGER(self));
|
||||
|
||||
g_autoptr(FlJsonMethodCodec) codec = fl_json_method_codec_new();
|
||||
fl_mock_binary_messenger_method_channel_respond(
|
||||
self, task, FL_METHOD_CODEC(codec), response);
|
||||
}
|
||||
|
||||
void fl_mock_binary_messenger_set_event_channel(
|
||||
FlMockBinaryMessenger* self,
|
||||
const gchar* channel,
|
||||
|
@ -5,6 +5,8 @@
|
||||
#ifndef FLUTTER_SHELL_PLATFORM_LINUX_TESTING_FL_MOCK_BINARY_MESSENGER_H_
|
||||
#define FLUTTER_SHELL_PLATFORM_LINUX_TESTING_FL_MOCK_BINARY_MESSENGER_H_
|
||||
|
||||
#include <gio/gio.h>
|
||||
|
||||
#include "flutter/shell/platform/linux/public/flutter_linux/fl_message_codec.h"
|
||||
#include "flutter/shell/platform/linux/public/flutter_linux/fl_method_codec.h"
|
||||
#include "flutter/shell/platform/linux/public/flutter_linux/fl_value.h"
|
||||
@ -24,11 +26,13 @@ typedef GBytes* (*FlMockBinaryMessengerChannelHandler)(
|
||||
|
||||
typedef FlValue* (*FlMockBinaryMessengerMessageChannelHandler)(
|
||||
FlMockBinaryMessenger* messenger,
|
||||
GTask* task,
|
||||
FlValue* message,
|
||||
gpointer user_data);
|
||||
|
||||
typedef FlMethodResponse* (*FlMockBinaryMessengerMethodChannelHandler)(
|
||||
FlMockBinaryMessenger* messenger,
|
||||
GTask* task,
|
||||
const gchar* name,
|
||||
FlValue* args,
|
||||
gpointer user_data);
|
||||
@ -95,6 +99,27 @@ void fl_mock_binary_messenger_set_json_message_channel(
|
||||
FlMockBinaryMessengerMessageChannelHandler handler,
|
||||
gpointer user_data);
|
||||
|
||||
void fl_mock_binary_messenger_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlMessageCodec* codec,
|
||||
FlValue* value);
|
||||
|
||||
void fl_mock_binary_messenger_standard_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlValue* value);
|
||||
|
||||
void fl_mock_binary_messenger_string_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlValue* value);
|
||||
|
||||
void fl_mock_binary_messenger_json_message_channel_respond(
|
||||
FlMockBinaryMessenger* self,
|
||||
GTask* task,
|
||||
FlValue* value);
|
||||
|
||||
void fl_mock_binary_messenger_set_method_channel(
|
||||
FlMockBinaryMessenger* self,
|
||||
const gchar* channel,
|
||||
|
Loading…
x
Reference in New Issue
Block a user