Flutter Linux Embedder
fl_settings_portal_test.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
6 #include "flutter/shell/platform/linux/testing/fl_test.h"
7 #include "flutter/testing/testing.h"
8 
9 #include <glib.h>
10 
11 #include "flutter/shell/platform/linux/testing/linux_test.h"
12 #include "gmock/gmock.h"
13 #include "gtest/gtest.h"
14 
15 class FlSettingsPortalTest : public flutter::testing::LinuxTest {
16  protected:
17  void SetUp() override {
18  settings = g_variant_dict_new(nullptr);
20  }
21 
23  g_clear_object(&portal);
24  g_clear_pointer(&settings, g_variant_dict_unref);
25  }
26 
27  GVariantDict* settings = nullptr;
28  FlSettings* portal = nullptr;
29 };
30 
33 
34  g_variant_dict_insert_value(settings,
35  "org.gnome.desktop.interface::clock-format",
36  g_variant_new_string("24h"));
38 
39  g_variant_dict_insert_value(settings,
40  "org.gnome.desktop.interface::clock-format",
41  g_variant_new_string("12h"));
43 
44  g_variant_dict_insert_value(settings,
45  "org.gnome.desktop.interface::clock-format",
46  g_variant_new_string("unknown"));
48 }
49 
52 
53  g_variant_dict_insert_value(settings,
54  "org.freedesktop.appearance::color-scheme",
55  g_variant_new_uint32(1));
57 
58  g_variant_dict_insert_value(settings,
59  "org.freedesktop.appearance::color-scheme",
60  g_variant_new_uint32(2));
62 
63  g_variant_dict_insert_value(settings,
64  "org.freedesktop.appearance::color-scheme",
65  g_variant_new_uint32(123));
67 
68  // color-scheme takes precedence over gtk-theme
69  g_variant_dict_insert_value(settings,
70  "org.gnome.desktop.interface::gtk-theme",
71  g_variant_new_string("Yaru-dark"));
73 }
74 
77 
78  g_variant_dict_insert_value(settings,
79  "org.gnome.desktop.interface::gtk-theme",
80  g_variant_new_string("Yaru-dark"));
82 
83  g_variant_dict_insert_value(settings,
84  "org.gnome.desktop.interface::gtk-theme",
85  g_variant_new_string("Yaru"));
87 
88  g_variant_dict_insert_value(settings,
89  "org.gnome.desktop.interface::gtk-theme",
90  g_variant_new_string("Adwaita"));
92 
93  g_variant_dict_insert_value(settings,
94  "org.gnome.desktop.interface::gtk-theme",
95  g_variant_new_string("Adwaita-dark"));
97 
98  // color-scheme takes precedence over gtk-theme
99  g_variant_dict_insert_value(settings,
100  "org.freedesktop.appearance::color-scheme",
101  g_variant_new_uint32(2));
103 }
104 
105 TEST_F(FlSettingsPortalTest, EnableAnimations) {
106  EXPECT_TRUE(fl_settings_get_enable_animations(portal));
107 
108  g_variant_dict_insert_value(settings,
109  "org.gnome.desktop.interface::enable-animations",
110  g_variant_new_boolean(false));
111  EXPECT_FALSE(fl_settings_get_enable_animations(portal));
112 }
113 
114 TEST_F(FlSettingsPortalTest, HighContrast) {
115  EXPECT_FALSE(fl_settings_get_high_contrast(portal));
116 
117  g_variant_dict_insert_value(settings,
118  "org.gnome.desktop.a11y.interface::high-contrast",
119  g_variant_new_boolean(true));
120  EXPECT_TRUE(fl_settings_get_high_contrast(portal));
121 }
122 
123 TEST_F(FlSettingsPortalTest, TextScalingFactor) {
124  EXPECT_EQ(fl_settings_get_text_scaling_factor(portal), 1.0);
125 
126  g_variant_dict_insert_value(
127  settings, "org.gnome.desktop.interface::text-scaling-factor",
128  g_variant_new_double(1.5));
129  EXPECT_EQ(fl_settings_get_text_scaling_factor(portal), 1.5);
130 }
gboolean fl_settings_get_high_contrast(FlSettings *self)
Definition: fl_settings.cc:42
gdouble fl_settings_get_text_scaling_factor(FlSettings *self)
Definition: fl_settings.cc:46
gboolean fl_settings_get_enable_animations(FlSettings *self)
Definition: fl_settings.cc:38
FlColorScheme fl_settings_get_color_scheme(FlSettings *self)
Definition: fl_settings.cc:34
FlClockFormat fl_settings_get_clock_format(FlSettings *self)
Definition: fl_settings.cc:30
@ FL_COLOR_SCHEME_DARK
Definition: fl_settings.h:35
@ FL_COLOR_SCHEME_LIGHT
Definition: fl_settings.h:34
@ FL_CLOCK_FORMAT_12H
Definition: fl_settings.h:22
@ FL_CLOCK_FORMAT_24H
Definition: fl_settings.h:23
FlSettingsPortal * fl_settings_portal_new_with_values(GVariantDict *values)
TEST_F(FlSettingsPortalTest, ClockFormat)