Flutter Linux Embedder
fl_mouse_cursor_handler_test.cc File Reference
#include "flutter/shell/platform/linux/fl_mouse_cursor_handler.h"
#include "flutter/shell/platform/linux/public/flutter_linux/fl_method_response.h"
#include "flutter/shell/platform/linux/testing/fl_mock_binary_messenger.h"
#include "gtest/gtest.h"

Go to the source code of this file.

Functions

static gboolean activate_system_cursor (FlMockBinaryMessenger *messenger, const gchar *kind)
 
 TEST (FlMouseCursorHandlerTest, InitialCursorName)
 
 TEST (FlMouseCursorHandlerTest, ActivateSystemCursor)
 
 TEST (FlMouseCursorHandlerTest, BasicCursor)
 
 TEST (FlMouseCursorHandlerTest, UnknownCursorFallsBackToDefault)
 
 TEST (FlMouseCursorHandlerTest, MissingKindFallsBackToDefault)
 
 TEST (FlMouseCursorHandlerTest, CursorChangedSignal)
 
 TEST (FlMouseCursorHandlerTest, BadArguments)
 
 TEST (FlMouseCursorHandlerTest, UnknownMethod)
 

Function Documentation

◆ activate_system_cursor()

static gboolean activate_system_cursor ( FlMockBinaryMessenger *  messenger,
const gchar *  kind 
)
static

Definition at line 14 of file fl_mouse_cursor_handler_test.cc.

15  {
18 
19  gboolean called = FALSE;
20  fl_mock_binary_messenger_invoke_standard_method(
21  messenger, "flutter/mousecursor", "activateSystemCursor", args,
22  [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
23  gpointer user_data) {
24  gboolean* called = static_cast<gboolean*>(user_data);
25  *called = TRUE;
26 
27  EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
28  },
29  &called);
30 
31  return called;
32 }
g_autoptr(FlEngine) engine
const char FlTextDirection FlAssertiveness gpointer user_data
return TRUE
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
G_MODULE_EXPORT void fl_value_set_string_take(FlValue *self, const gchar *key, FlValue *value)
Definition: fl_value.cc:650
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
Definition: fl_value.cc:276
G_MODULE_EXPORT FlValue * fl_value_new_map()
Definition: fl_value.cc:366
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:42

References args, fl_value_new_map(), fl_value_new_string(), fl_value_set_string_take(), g_autoptr(), TRUE, and user_data.

Referenced by TEST().

◆ TEST() [1/8]

TEST ( FlMouseCursorHandlerTest  ,
ActivateSystemCursor   
)

Definition at line 44 of file fl_mouse_cursor_handler_test.cc.

44  {
45  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
46  g_autoptr(FlMouseCursorHandler) handler =
47  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
48 
49  EXPECT_TRUE(activate_system_cursor(messenger, "click"));
50 
51  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "pointer");
52 }
const gchar * fl_mouse_cursor_handler_get_cursor_name(FlMouseCursorHandler *self)
FlMouseCursorHandler * fl_mouse_cursor_handler_new(FlBinaryMessenger *messenger)
static gboolean activate_system_cursor(FlMockBinaryMessenger *messenger, const gchar *kind)

References activate_system_cursor(), fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), and g_autoptr().

◆ TEST() [2/8]

TEST ( FlMouseCursorHandlerTest  ,
BadArguments   
)

Definition at line 119 of file fl_mouse_cursor_handler_test.cc.

119  {
120  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
121  g_autoptr(FlMouseCursorHandler) handler =
122  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
123 
124  gboolean called = FALSE;
126  fl_mock_binary_messenger_invoke_standard_method(
127  messenger, "flutter/mousecursor", "activateSystemCursor", args,
128  [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
129  gpointer user_data) {
130  gboolean* called = static_cast<gboolean*>(user_data);
131  *called = TRUE;
132 
133  EXPECT_TRUE(FL_IS_METHOD_ERROR_RESPONSE(response));
135  FL_METHOD_ERROR_RESPONSE(response)),
136  "Bad Arguments");
137  },
138  &called);
139  EXPECT_TRUE(called);
140 
141  // The cursor is unchanged.
142  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "");
143 }
G_MODULE_EXPORT const gchar * fl_method_error_response_get_code(FlMethodErrorResponse *self)
G_MODULE_EXPORT FlValue * fl_value_new_null()
Definition: fl_value.cc:251

References args, fl_method_error_response_get_code(), fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), fl_value_new_null(), g_autoptr(), TRUE, and user_data.

◆ TEST() [3/8]

TEST ( FlMouseCursorHandlerTest  ,
BasicCursor   
)

Definition at line 55 of file fl_mouse_cursor_handler_test.cc.

55  {
56  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
57  g_autoptr(FlMouseCursorHandler) handler =
58  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
59 
60  EXPECT_TRUE(activate_system_cursor(messenger, "basic"));
61 
62  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "default");
63 }

References activate_system_cursor(), fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), and g_autoptr().

◆ TEST() [4/8]

TEST ( FlMouseCursorHandlerTest  ,
CursorChangedSignal   
)

Definition at line 101 of file fl_mouse_cursor_handler_test.cc.

101  {
102  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
103  g_autoptr(FlMouseCursorHandler) handler =
104  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
105 
106  gboolean cursor_changed = FALSE;
107  g_signal_connect_swapped(
108  handler, "cursor-changed",
109  G_CALLBACK(+[](gboolean* cursor_changed) { *cursor_changed = TRUE; }),
110  &cursor_changed);
111 
112  EXPECT_TRUE(activate_system_cursor(messenger, "grab"));
113 
114  EXPECT_TRUE(cursor_changed);
115  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "grab");
116 }

References activate_system_cursor(), fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), g_autoptr(), and TRUE.

◆ TEST() [5/8]

TEST ( FlMouseCursorHandlerTest  ,
InitialCursorName   
)

Definition at line 35 of file fl_mouse_cursor_handler_test.cc.

35  {
36  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
37  g_autoptr(FlMouseCursorHandler) handler =
38  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
39 
40  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "");
41 }

References fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), and g_autoptr().

◆ TEST() [6/8]

TEST ( FlMouseCursorHandlerTest  ,
MissingKindFallsBackToDefault   
)

Definition at line 78 of file fl_mouse_cursor_handler_test.cc.

78  {
79  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
80  g_autoptr(FlMouseCursorHandler) handler =
81  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
82 
83  gboolean called = FALSE;
85  fl_mock_binary_messenger_invoke_standard_method(
86  messenger, "flutter/mousecursor", "activateSystemCursor", args,
87  [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
88  gpointer user_data) {
89  gboolean* called = static_cast<gboolean*>(user_data);
90  *called = TRUE;
91 
92  EXPECT_TRUE(FL_IS_METHOD_SUCCESS_RESPONSE(response));
93  },
94  &called);
95  EXPECT_TRUE(called);
96 
97  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "default");
98 }

References args, fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), fl_value_new_map(), g_autoptr(), TRUE, and user_data.

◆ TEST() [7/8]

TEST ( FlMouseCursorHandlerTest  ,
UnknownCursorFallsBackToDefault   
)

Definition at line 66 of file fl_mouse_cursor_handler_test.cc.

66  {
67  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
68  g_autoptr(FlMouseCursorHandler) handler =
69  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
70 
71  EXPECT_TRUE(activate_system_cursor(messenger, "madeUpCursorKind"));
72 
73  EXPECT_STREQ(fl_mouse_cursor_handler_get_cursor_name(handler), "default");
74 }

References activate_system_cursor(), fl_mouse_cursor_handler_get_cursor_name(), fl_mouse_cursor_handler_new(), and g_autoptr().

◆ TEST() [8/8]

TEST ( FlMouseCursorHandlerTest  ,
UnknownMethod   
)

Definition at line 146 of file fl_mouse_cursor_handler_test.cc.

146  {
147  g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
148  g_autoptr(FlMouseCursorHandler) handler =
149  fl_mouse_cursor_handler_new(FL_BINARY_MESSENGER(messenger));
150 
151  gboolean called = FALSE;
153  fl_mock_binary_messenger_invoke_standard_method(
154  messenger, "flutter/mousecursor", "someUnknownMethod", args,
155  [](FlMockBinaryMessenger* messenger, FlMethodResponse* response,
156  gpointer user_data) {
157  gboolean* called = static_cast<gboolean*>(user_data);
158  *called = TRUE;
159 
160  EXPECT_TRUE(FL_IS_METHOD_NOT_IMPLEMENTED_RESPONSE(response));
161  },
162  &called);
163  EXPECT_TRUE(called);
164 }

References args, fl_mouse_cursor_handler_new(), fl_value_new_null(), g_autoptr(), TRUE, and user_data.