Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
fl_settings_handler_test.cc File Reference

Go to the source code of this file.

Classes

class  FlSettingsHandlerTest
 

Functions

 TEST_F (FlSettingsHandlerTest, AlwaysUse24HourFormat)
 
 TEST_F (FlSettingsHandlerTest, PlatformBrightness)
 
 TEST_F (FlSettingsHandlerTest, TextScaleFactor)
 
 TEST_F (FlSettingsHandlerTest, AccessibilityFeatures)
 

Function Documentation

◆ TEST_F() [1/4]

TEST_F ( FlSettingsHandlerTest  ,
AccessibilityFeatures   
)

Definition at line 184 of file fl_settings_handler_test.cc.

184 {
185 StartEngine();
186
187 std::vector<FlutterAccessibilityFeature> calls;
190 UpdateAccessibilityFeatures,
191 ([&calls](auto engine, FlutterAccessibilityFeature features) {
192 calls.push_back(features);
193 return kSuccess;
194 }));
195
196 EXPECT_CALL(settings, fl_settings_get_enable_animations(
197 ::testing::Eq<FlSettings*>(settings)))
198 .WillOnce(::testing::Return(false))
199 .WillOnce(::testing::Return(true))
200 .WillOnce(::testing::Return(false))
201 .WillOnce(::testing::Return(true));
202
203 EXPECT_CALL(settings, fl_settings_get_high_contrast(
204 ::testing::Eq<FlSettings*>(settings)))
205 .WillOnce(::testing::Return(true))
206 .WillOnce(::testing::Return(false))
207 .WillOnce(::testing::Return(false))
208 .WillOnce(::testing::Return(true));
209
211 EXPECT_THAT(calls, ::testing::SizeIs(1));
212 EXPECT_EQ(calls.back(), static_cast<FlutterAccessibilityFeature>(
215
216 fl_settings_emit_changed(settings);
217 EXPECT_THAT(calls, ::testing::SizeIs(2));
218 EXPECT_EQ(calls.back(), static_cast<FlutterAccessibilityFeature>(0));
219
220 fl_settings_emit_changed(settings);
221 EXPECT_THAT(calls, ::testing::SizeIs(3));
222 EXPECT_EQ(calls.back(), static_cast<FlutterAccessibilityFeature>(
224
225 fl_settings_emit_changed(settings);
226 EXPECT_THAT(calls, ::testing::SizeIs(4));
227 EXPECT_EQ(calls.back(), static_cast<FlutterAccessibilityFeature>(
229}
FlutterAccessibilityFeature
Definition embedder.h:91
@ kFlutterAccessibilityFeatureHighContrast
Request that UI be rendered with darker colors.
Definition embedder.h:105
@ kFlutterAccessibilityFeatureDisableAnimations
Request that animations be disabled or simplified.
Definition embedder.h:98
@ kSuccess
Definition embedder.h:73
FlutterEngine engine
Definition main.cc:84
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *self)
Definition fl_engine.cc:920
const gchar FlBinaryMessengerMessageHandler handler
gboolean fl_settings_get_high_contrast(FlSettings *self)
void fl_settings_emit_changed(FlSettings *self)
gboolean fl_settings_get_enable_animations(FlSettings *self)
void fl_settings_handler_start(FlSettingsHandler *self, FlSettings *settings)
#define MOCK_ENGINE_PROC(proc, mock_impl)
FlutterEngineUpdateAccessibilityFeaturesFnPtr UpdateAccessibilityFeatures
Definition embedder.h:3788

References engine, fl_engine_get_embedder_api(), fl_settings_emit_changed(), fl_settings_get_enable_animations(), fl_settings_get_high_contrast(), fl_settings_handler_start(), handler, kFlutterAccessibilityFeatureDisableAnimations, kFlutterAccessibilityFeatureHighContrast, kSuccess, MOCK_ENGINE_PROC, and FlutterEngineProcTable::UpdateAccessibilityFeatures.

◆ TEST_F() [2/4]

TEST_F ( FlSettingsHandlerTest  ,
AlwaysUse24HourFormat   
)

Definition at line 39 of file fl_settings_handler_test.cc.

39 {
40 EXPECT_CALL(settings, fl_settings_get_clock_format(
41 ::testing::Eq<FlSettings*>(settings)))
42 .WillOnce(::testing::Return(FL_CLOCK_FORMAT_12H))
43 .WillOnce(::testing::Return(FL_CLOCK_FORMAT_24H));
44
45 gboolean called = FALSE;
47 messenger, "flutter/settings",
48 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
49 gpointer user_data) {
50 gboolean* called = static_cast<gboolean*>(user_data);
51 *called = TRUE;
52
54 FlValue* value =
55 fl_value_lookup_string(message, "alwaysUse24HourFormat");
56 EXPECT_NE(value, nullptr);
57 EXPECT_EQ(fl_value_get_type(value), FL_VALUE_TYPE_BOOL);
58 EXPECT_FALSE(fl_value_get_bool(value));
59
60 return fl_value_new_null();
61 },
62 &called);
64 EXPECT_TRUE(called);
65
66 called = FALSE;
68 messenger, "flutter/settings",
69 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
70 gpointer user_data) {
71 gboolean* called = static_cast<gboolean*>(user_data);
72 *called = TRUE;
73
75 FlValue* value =
76 fl_value_lookup_string(message, "alwaysUse24HourFormat");
77 EXPECT_NE(value, nullptr);
78 EXPECT_EQ(fl_value_get_type(value), FL_VALUE_TYPE_BOOL);
79 EXPECT_TRUE(fl_value_get_bool(value));
80
81 return fl_value_new_null();
82 },
83 &called);
85 EXPECT_TRUE(called);
86}
int32_t value
const char * message
return TRUE
void fl_mock_binary_messenger_set_json_message_channel(FlMockBinaryMessenger *self, const gchar *channel, FlMockBinaryMessengerMessageChannelHandler handler, gpointer user_data)
FlClockFormat fl_settings_get_clock_format(FlSettings *self)
@ FL_CLOCK_FORMAT_12H
Definition fl_settings.h:22
@ FL_CLOCK_FORMAT_24H
Definition fl_settings.h:23
G_MODULE_EXPORT FlValue * fl_value_lookup_string(FlValue *self, const gchar *key)
Definition fl_value.cc:811
G_MODULE_EXPORT FlValueType fl_value_get_type(FlValue *self)
Definition fl_value.cc:466
G_MODULE_EXPORT FlValue * fl_value_new_null()
Definition fl_value.cc:251
G_MODULE_EXPORT bool fl_value_get_bool(FlValue *self)
Definition fl_value.cc:661
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition fl_value.h:42
@ FL_VALUE_TYPE_BOOL
Definition fl_value.h:65
@ FL_VALUE_TYPE_MAP
Definition fl_value.h:74

References FL_CLOCK_FORMAT_12H, FL_CLOCK_FORMAT_24H, fl_mock_binary_messenger_set_json_message_channel(), fl_settings_emit_changed(), fl_settings_get_clock_format(), fl_settings_handler_start(), fl_value_get_bool(), fl_value_get_type(), fl_value_lookup_string(), fl_value_new_null(), FL_VALUE_TYPE_BOOL, FL_VALUE_TYPE_MAP, handler, message, TRUE, user_data, and value.

◆ TEST_F() [3/4]

TEST_F ( FlSettingsHandlerTest  ,
PlatformBrightness   
)

Definition at line 88 of file fl_settings_handler_test.cc.

88 {
89 EXPECT_CALL(settings, fl_settings_get_color_scheme(
90 ::testing::Eq<FlSettings*>(settings)))
91 .WillOnce(::testing::Return(FL_COLOR_SCHEME_LIGHT))
92 .WillOnce(::testing::Return(FL_COLOR_SCHEME_DARK));
93
94 gboolean called = FALSE;
96 messenger, "flutter/settings",
97 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
98 gpointer user_data) {
99 gboolean* called = static_cast<gboolean*>(user_data);
100 *called = TRUE;
101
103 FlValue* value = fl_value_lookup_string(message, "platformBrightness");
104 EXPECT_NE(value, nullptr);
105 EXPECT_EQ(fl_value_get_type(value), FL_VALUE_TYPE_STRING);
106 EXPECT_STREQ(fl_value_get_string(value), "light");
107
108 return fl_value_new_null();
109 },
110 &called);
112 EXPECT_TRUE(called);
113
114 called = FALSE;
116 messenger, "flutter/settings",
117 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
118 gpointer user_data) {
119 gboolean* called = static_cast<gboolean*>(user_data);
120 *called = TRUE;
121
123 FlValue* value = fl_value_lookup_string(message, "platformBrightness");
124 EXPECT_NE(value, nullptr);
125 EXPECT_EQ(fl_value_get_type(value), FL_VALUE_TYPE_STRING);
126 EXPECT_STREQ(fl_value_get_string(value), "dark");
127
128 return fl_value_new_null();
129 },
130 &called);
131 fl_settings_emit_changed(settings);
132 EXPECT_TRUE(called);
133}
FlColorScheme fl_settings_get_color_scheme(FlSettings *self)
@ FL_COLOR_SCHEME_DARK
Definition fl_settings.h:35
@ FL_COLOR_SCHEME_LIGHT
Definition fl_settings.h:34
G_MODULE_EXPORT const gchar * fl_value_get_string(FlValue *self)
Definition fl_value.cc:682
@ FL_VALUE_TYPE_STRING
Definition fl_value.h:68

References FL_COLOR_SCHEME_DARK, FL_COLOR_SCHEME_LIGHT, fl_mock_binary_messenger_set_json_message_channel(), fl_settings_emit_changed(), fl_settings_get_color_scheme(), fl_settings_handler_start(), fl_value_get_string(), fl_value_get_type(), fl_value_lookup_string(), fl_value_new_null(), FL_VALUE_TYPE_MAP, FL_VALUE_TYPE_STRING, handler, message, TRUE, user_data, and value.

◆ TEST_F() [4/4]

TEST_F ( FlSettingsHandlerTest  ,
TextScaleFactor   
)

Definition at line 135 of file fl_settings_handler_test.cc.

135 {
136 EXPECT_CALL(settings, fl_settings_get_text_scaling_factor(
137 ::testing::Eq<FlSettings*>(settings)))
138 .WillOnce(::testing::Return(1.0))
139 .WillOnce(::testing::Return(2.0));
140
141 gboolean called = FALSE;
143 messenger, "flutter/settings",
144 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
145 gpointer user_data) {
146 gboolean* called = static_cast<gboolean*>(user_data);
147 *called = TRUE;
148
150 FlValue* value = fl_value_lookup_string(message, "textScaleFactor");
151 EXPECT_NE(value, nullptr);
152 EXPECT_EQ(fl_value_get_type(value), FL_VALUE_TYPE_FLOAT);
153 EXPECT_EQ(fl_value_get_float(value), 1.0);
154
155 return fl_value_new_null();
156 },
157 &called);
159 EXPECT_TRUE(called);
160
161 called = FALSE;
163 messenger, "flutter/settings",
164 [](FlMockBinaryMessenger* messenger, GTask* task, FlValue* message,
165 gpointer user_data) {
166 gboolean* called = static_cast<gboolean*>(user_data);
167 *called = TRUE;
168
170 FlValue* value = fl_value_lookup_string(message, "textScaleFactor");
171 EXPECT_NE(value, nullptr);
172 EXPECT_EQ(fl_value_get_type(value), FL_VALUE_TYPE_FLOAT);
173 EXPECT_EQ(fl_value_get_float(value), 2.0);
174
175 return fl_value_new_null();
176 },
177 &called);
178 fl_settings_emit_changed(settings);
179 EXPECT_TRUE(called);
180}
gdouble fl_settings_get_text_scaling_factor(FlSettings *self)
G_MODULE_EXPORT double fl_value_get_float(FlValue *self)
Definition fl_value.cc:675
@ FL_VALUE_TYPE_FLOAT
Definition fl_value.h:67

References fl_mock_binary_messenger_set_json_message_channel(), fl_settings_emit_changed(), fl_settings_get_text_scaling_factor(), fl_settings_handler_start(), fl_value_get_float(), fl_value_get_type(), fl_value_lookup_string(), fl_value_new_null(), FL_VALUE_TYPE_FLOAT, FL_VALUE_TYPE_MAP, handler, message, TRUE, user_data, and value.