6 #include "flutter/shell/platform/embedder/embedder.h"
7 #include "flutter/shell/platform/embedder/test_utils/proc_table_replacement.h"
10 #include "flutter/shell/platform/linux/testing/fl_mock_binary_messenger.h"
11 #include "flutter/shell/platform/linux/testing/mock_settings.h"
12 #include "flutter/testing/testing.h"
14 #include "gmock/gmock.h"
15 #include "gtest/gtest.h"
17 TEST(FlSettingsHandlerTest, AlwaysUse24HourFormat) {
18 ::testing::NiceMock<flutter::testing::MockSettings> settings;
20 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
21 g_autoptr(FlEngine) engine =
22 FL_ENGINE(g_object_new(fl_engine_get_type(),
"binary-messenger",
23 FL_BINARY_MESSENGER(messenger),
nullptr));
27 ::testing::Eq<FlSettings*>(settings)))
31 gboolean called = FALSE;
32 fl_mock_binary_messenger_set_json_message_channel(
33 messenger,
"flutter/settings",
34 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue* message,
36 gboolean* called =
static_cast<gboolean*
>(
user_data);
42 EXPECT_NE(
value,
nullptr);
53 fl_mock_binary_messenger_set_json_message_channel(
54 messenger,
"flutter/settings",
55 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue* message,
57 gboolean* called =
static_cast<gboolean*
>(
user_data);
63 EXPECT_NE(
value,
nullptr);
76 TEST(FlSettingsHandlerTest, PlatformBrightness) {
77 ::testing::NiceMock<flutter::testing::MockSettings> settings;
79 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
80 g_autoptr(FlEngine) engine =
81 FL_ENGINE(g_object_new(fl_engine_get_type(),
"binary-messenger",
82 FL_BINARY_MESSENGER(messenger),
nullptr));
86 ::testing::Eq<FlSettings*>(settings)))
90 gboolean called = FALSE;
91 fl_mock_binary_messenger_set_json_message_channel(
92 messenger,
"flutter/settings",
93 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue* message,
95 gboolean* called =
static_cast<gboolean*
>(
user_data);
100 EXPECT_NE(
value,
nullptr);
111 fl_mock_binary_messenger_set_json_message_channel(
112 messenger,
"flutter/settings",
113 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue* message,
115 gboolean* called =
static_cast<gboolean*
>(
user_data);
120 EXPECT_NE(
value,
nullptr);
133 TEST(FlSettingsHandlerTest, TextScaleFactor) {
134 ::testing::NiceMock<flutter::testing::MockSettings> settings;
136 g_autoptr(FlMockBinaryMessenger) messenger = fl_mock_binary_messenger_new();
137 g_autoptr(FlEngine) engine =
138 FL_ENGINE(g_object_new(fl_engine_get_type(),
"binary-messenger",
139 FL_BINARY_MESSENGER(messenger),
nullptr));
143 ::testing::Eq<FlSettings*>(settings)))
144 .WillOnce(::testing::Return(1.0))
145 .WillOnce(::testing::Return(2.0));
147 gboolean called = FALSE;
148 fl_mock_binary_messenger_set_json_message_channel(
149 messenger,
"flutter/settings",
150 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue* message,
152 gboolean* called =
static_cast<gboolean*
>(
user_data);
157 EXPECT_NE(
value,
nullptr);
168 fl_mock_binary_messenger_set_json_message_channel(
169 messenger,
"flutter/settings",
170 [](FlMockBinaryMessenger* messenger, GTask* task,
FlValue* message,
172 gboolean* called =
static_cast<gboolean*
>(
user_data);
177 EXPECT_NE(
value,
nullptr);
192 TEST(FlSettingsHandlerTest, AccessibilityFeatures) {
196 g_autoptr(GError)
error =
nullptr;
198 EXPECT_EQ(
error,
nullptr);
200 std::vector<FlutterAccessibilityFeature> calls;
203 UpdateAccessibilityFeatures,
204 ([&calls](
auto engine, FlutterAccessibilityFeature features) {
205 calls.push_back(features);
211 ::testing::NiceMock<flutter::testing::MockSettings> settings;
214 ::testing::Eq<FlSettings*>(settings)))
215 .WillOnce(::testing::Return(
false))
216 .WillOnce(::testing::Return(
true))
217 .WillOnce(::testing::Return(
false))
218 .WillOnce(::testing::Return(
true));
221 ::testing::Eq<FlSettings*>(settings)))
222 .WillOnce(::testing::Return(
true))
223 .WillOnce(::testing::Return(
false))
224 .WillOnce(::testing::Return(
false))
225 .WillOnce(::testing::Return(
true));
228 EXPECT_THAT(calls, ::testing::SizeIs(1));
229 EXPECT_EQ(calls.back(),
static_cast<FlutterAccessibilityFeature
>(
230 kFlutterAccessibilityFeatureDisableAnimations |
231 kFlutterAccessibilityFeatureHighContrast));
234 EXPECT_THAT(calls, ::testing::SizeIs(2));
235 EXPECT_EQ(calls.back(),
static_cast<FlutterAccessibilityFeature
>(0));
238 EXPECT_THAT(calls, ::testing::SizeIs(3));
239 EXPECT_EQ(calls.back(),
static_cast<FlutterAccessibilityFeature
>(
240 kFlutterAccessibilityFeatureDisableAnimations));
243 EXPECT_THAT(calls, ::testing::SizeIs(4));
244 EXPECT_EQ(calls.back(),
static_cast<FlutterAccessibilityFeature
>(
245 kFlutterAccessibilityFeatureHighContrast));