6 #include "gtest/gtest.h"
11 #include "flutter/shell/platform/linux/testing/fl_mock_binary_messenger.h"
14 TEST(FlEventChannelTest, Listen) {
15 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
18 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
24 return static_cast<FlMethodErrorResponse*
>(
nullptr);
26 nullptr,
nullptr,
nullptr);
28 gboolean called = FALSE;
29 fl_mock_binary_messenger_invoke_standard_method(
30 messenger,
"test",
"listen",
nullptr,
31 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
33 gboolean* called =
static_cast<gboolean*
>(
user_data);
36 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
38 FL_METHOD_SUCCESS_RESPONSE(response));
46 TEST(FlEventChannelTest, ListenException) {
47 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
50 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
55 "LISTEN-ERROR-MESSAGE",
nullptr);
57 nullptr,
nullptr,
nullptr);
59 gboolean called = FALSE;
60 fl_mock_binary_messenger_invoke_standard_method(
61 messenger,
"test",
"listen",
nullptr,
62 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
64 gboolean* called =
static_cast<gboolean*
>(
user_data);
67 EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
69 FL_METHOD_ERROR_RESPONSE(response)),
72 FL_METHOD_ERROR_RESPONSE(response)),
73 "LISTEN-ERROR-MESSAGE");
80 TEST(FlEventChannelTest, Cancel) {
81 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
84 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
90 return static_cast<FlMethodErrorResponse*
>(
nullptr);
94 fl_mock_binary_messenger_invoke_standard_method(
95 messenger,
"test",
"listen",
nullptr,
96 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
99 gboolean called = FALSE;
100 fl_mock_binary_messenger_invoke_standard_method(
101 messenger,
"test",
"cancel",
nullptr,
102 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
104 gboolean* called =
static_cast<gboolean*
>(
user_data);
107 EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
109 FL_METHOD_SUCCESS_RESPONSE(response));
117 TEST(FlEventChannelTest, CancelException) {
118 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
121 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
126 "CANCEL-ERROR-MESSAGE",
nullptr);
130 fl_mock_binary_messenger_invoke_standard_method(
131 messenger,
"test",
"listen",
nullptr,
132 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
135 gboolean called = FALSE;
136 fl_mock_binary_messenger_invoke_standard_method(
137 messenger,
"test",
"cancel",
nullptr,
138 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
140 gboolean* called =
static_cast<gboolean*
>(
user_data);
143 EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
145 FL_METHOD_ERROR_RESPONSE(response)),
148 FL_METHOD_ERROR_RESPONSE(response)),
149 "CANCEL-ERROR-MESSAGE");
156 TEST(FlEventChannelTest, Args) {
157 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
160 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
165 int* call_count =
static_cast<int*
>(
user_data);
166 EXPECT_EQ(*call_count, 0);
172 return static_cast<FlMethodErrorResponse*
>(
nullptr);
175 int* call_count =
static_cast<int*
>(
user_data);
176 EXPECT_EQ(*call_count, 1);
182 return static_cast<FlMethodErrorResponse*
>(
nullptr);
184 &call_count,
nullptr);
187 fl_mock_binary_messenger_invoke_standard_method(
188 messenger,
"test",
"listen", listen_args,
189 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
193 fl_mock_binary_messenger_invoke_standard_method(
194 messenger,
"test",
"cancel", cancel_args,
195 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
199 EXPECT_EQ(call_count, 2);
203 TEST(FlEventChannelTest, SendEvents) {
204 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
206 fl_mock_binary_messenger_set_standard_event_channel(
209 int* event_count =
static_cast<int*
>(
user_data);
216 [](FlMockBinaryMessenger* messenger,
const gchar* code,
222 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
227 for (
int i = 0;
i < 5;
i++) {
229 g_autoptr(GError)
error =
nullptr;
231 EXPECT_EQ(
error,
nullptr);
234 return static_cast<FlMethodErrorResponse*
>(
nullptr);
236 nullptr,
nullptr,
nullptr);
238 fl_mock_binary_messenger_invoke_standard_method(
239 messenger,
"test",
"listen",
nullptr,
240 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
243 fl_mock_binary_messenger_invoke_standard_method(
244 messenger,
"test",
"cancel",
nullptr,
245 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
249 EXPECT_EQ(event_count, 5);
254 TEST(FlEventChannelTest, ReuseChannel) {
255 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
257 fl_mock_binary_messenger_set_standard_event_channel(
260 int* event_count =
static_cast<int*
>(
user_data);
267 [](FlMockBinaryMessenger* messenger,
const gchar* code,
273 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
278 for (
int i = 0;
i < 5;
i++) {
280 g_autoptr(GError)
error =
nullptr;
282 EXPECT_EQ(
error,
nullptr);
285 return static_cast<FlMethodErrorResponse*
>(
nullptr);
287 nullptr,
nullptr,
nullptr);
290 g_object_unref(channel1);
294 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
299 for (
int i = 0;
i < 5;
i++) {
301 g_autoptr(GError)
error =
nullptr;
303 EXPECT_EQ(
error,
nullptr);
306 return static_cast<FlMethodErrorResponse*
>(
nullptr);
308 nullptr,
nullptr,
nullptr);
310 fl_mock_binary_messenger_invoke_standard_method(
311 messenger,
"test",
"listen",
nullptr,
312 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
315 fl_mock_binary_messenger_invoke_standard_method(
316 messenger,
"test",
"cancel",
nullptr,
317 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
321 EXPECT_EQ(event_count, 5);
325 TEST(FlEventChannelTest, ReplaceChannel) {
326 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
328 fl_mock_binary_messenger_set_standard_event_channel(
331 int* event_count =
static_cast<int*
>(
user_data);
338 [](FlMockBinaryMessenger* messenger,
const gchar* code,
344 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
349 for (
int i = 0;
i < 5;
i++) {
351 g_autoptr(GError)
error =
nullptr;
353 EXPECT_EQ(
error,
nullptr);
356 return static_cast<FlMethodErrorResponse*
>(
nullptr);
358 nullptr,
nullptr,
nullptr);
362 FL_BINARY_MESSENGER(messenger),
"test", FL_METHOD_CODEC(codec));
367 for (
int i = 0;
i < 5;
i++) {
369 g_autoptr(GError)
error =
nullptr;
371 EXPECT_EQ(
error,
nullptr);
374 return static_cast<FlMethodErrorResponse*
>(
nullptr);
376 nullptr,
nullptr,
nullptr);
378 fl_mock_binary_messenger_invoke_standard_method(
379 messenger,
"test",
"listen",
nullptr,
380 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
383 fl_mock_binary_messenger_invoke_standard_method(
384 messenger,
"test",
"cancel",
nullptr,
385 [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
389 EXPECT_EQ(event_count, 5);