From 04c78d148a2f91f9b4592873c98677f6f20361ca Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Fri, 29 Oct 2021 10:36:30 +0900 Subject: Imported Upstream version 2.69.3 --- gio/gpowerprofilemonitordbus.c | 4 +++- gio/gpowerprofilemonitorportal.c | 7 +++++++ gio/gsettingsschema.c | 4 ++-- gio/tests/memory-monitor-dbus.py.in | 4 ++-- gio/tests/memory-monitor-portal.py.in | 4 ++-- gio/tests/power-profile-monitor-portal.py.in | 16 ++++++++++++++++ 6 files changed, 32 insertions(+), 7 deletions(-) (limited to 'gio') diff --git a/gio/gpowerprofilemonitordbus.c b/gio/gpowerprofilemonitordbus.c index 8bbfe3acc..cbd9f4aaa 100644 --- a/gio/gpowerprofilemonitordbus.c +++ b/gio/gpowerprofilemonitordbus.c @@ -116,7 +116,8 @@ ppd_proxy_cb (GObject *source_object, } active_profile_variant = g_dbus_proxy_get_cached_property (proxy, "ActiveProfile"); - if (g_variant_is_of_type (active_profile_variant, G_VARIANT_TYPE_STRING)) + if (active_profile_variant != NULL && + g_variant_is_of_type (active_profile_variant, G_VARIANT_TYPE_STRING)) { active_profile = g_variant_get_string (active_profile_variant, NULL); power_saver_enabled = g_strcmp0 (active_profile, "power-saver") == 0; @@ -126,6 +127,7 @@ ppd_proxy_cb (GObject *source_object, g_object_notify (G_OBJECT (dbus), "power-saver-enabled"); } } + g_clear_pointer (&active_profile_variant, g_variant_unref); dbus->signal_id = g_signal_connect (G_OBJECT (proxy), "g-properties-changed", G_CALLBACK (ppd_properties_changed_cb), dbus); diff --git a/gio/gpowerprofilemonitorportal.c b/gio/gpowerprofilemonitorportal.c index bb1b4fd15..6bc251fd5 100644 --- a/gio/gpowerprofilemonitorportal.c +++ b/gio/gpowerprofilemonitorportal.c @@ -108,6 +108,7 @@ g_power_profile_monitor_portal_initable_init (GInitable *initable, GPowerProfileMonitorPortal *ppm = G_POWER_PROFILE_MONITOR_PORTAL (initable); GDBusProxy *proxy; gchar *name_owner; + GVariant *power_saver_enabled_v = NULL; if (!glib_should_use_portal ()) { @@ -143,6 +144,12 @@ g_power_profile_monitor_portal_initable_init (GInitable *initable, ppm->signal_id = g_signal_connect (proxy, "g-properties-changed", G_CALLBACK (proxy_properties_changed), ppm); + power_saver_enabled_v = g_dbus_proxy_get_cached_property (proxy, "power-saver-enabled"); + if (power_saver_enabled_v != NULL && + g_variant_is_of_type (power_saver_enabled_v, G_VARIANT_TYPE_BOOLEAN)) + ppm->power_saver_enabled = g_variant_get_boolean (power_saver_enabled_v); + g_clear_pointer (&power_saver_enabled_v, g_variant_unref); + ppm->proxy = g_steal_pointer (&proxy); return TRUE; diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c index ec0caf655..3b5ba0d56 100644 --- a/gio/gsettingsschema.c +++ b/gio/gsettingsschema.c @@ -1857,10 +1857,10 @@ g_settings_schema_key_get_range (GSettingsSchemaKey *key) * @key: a #GSettingsSchemaKey * @value: the value to check * - * Checks if the given @value is of the correct type and within the + * Checks if the given @value is within the * permitted range for @key. * - * It is a programmer error if @value is not of the correct type -- you + * It is a programmer error if @value is not of the correct type — you * must check for this first. * * Returns: %TRUE if @value is valid for @key diff --git a/gio/tests/memory-monitor-dbus.py.in b/gio/tests/memory-monitor-dbus.py.in index e8ac28faf..bf3291847 100755 --- a/gio/tests/memory-monitor-dbus.py.in +++ b/gio/tests/memory-monitor-dbus.py.in @@ -99,11 +99,11 @@ try: self.dbusmock.EmitWarning(100) # Wait 2 seconds or until warning - self.assertEventually(self.last_warning == 100, "'100' low-memory warning not received", 20) + self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20) self.dbusmock.EmitWarning(255) # Wait 2 seconds or until warning - self.assertEventually(self.last_warning == 255, "'255' low-memory warning not received", 20) + self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20) except ImportError as e: @unittest.skip("Cannot import %s" % e.name) diff --git a/gio/tests/memory-monitor-portal.py.in b/gio/tests/memory-monitor-portal.py.in index 36d5094d3..748cee850 100755 --- a/gio/tests/memory-monitor-portal.py.in +++ b/gio/tests/memory-monitor-portal.py.in @@ -117,11 +117,11 @@ try: self.dbusmock.EmitWarning(100) # Wait 2 seconds or until warning - self.assertEventually(self.last_warning == 100, "'100' low-memory warning not received", 20) + self.assertEventually(lambda: self.last_warning == 100, "'100' low-memory warning not received", 20) self.dbusmock.EmitWarning(255) # Wait 2 seconds or until warning - self.assertEventually(self.last_warning == 255, "'255' low-memory warning not received", 20) + self.assertEventually(lambda: self.last_warning == 255, "'255' low-memory warning not received", 20) except ImportError as e: @unittest.skip("Cannot import %s" % e.name) diff --git a/gio/tests/power-profile-monitor-portal.py.in b/gio/tests/power-profile-monitor-portal.py.in index 960a62232..09e9a450d 100755 --- a/gio/tests/power-profile-monitor-portal.py.in +++ b/gio/tests/power-profile-monitor-portal.py.in @@ -28,6 +28,7 @@ try: import dbusmock from gi.repository import GLib from gi.repository import Gio + from gi.repository import GObject dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) @@ -65,12 +66,16 @@ try: try: self.xdp = subprocess.Popen([XDG_DESKTOP_PORTAL_PATH]) except FileNotFoundError: + self.p_mock.terminate() + self.p_mock.wait() raise unittest.SkipTest("xdg-desktop-portal not available") try: self.wait_for_bus_object('org.freedesktop.portal.Desktop', '/org/freedesktop/portal/desktop') except: + self.p_mock.terminate() + self.p_mock.wait() raise # subprocess.Popen(['gdbus', 'monitor', '--session', '--dest', 'org.freedesktop.portal.Desktop']) @@ -116,6 +121,17 @@ try: self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('balanced', variant_level=1)) self.assertEventually(lambda: self.power_saver_enabled == False, "power-saver didn't become disabled", 10) + def test_power_profile_power_saver_enabled_portal_default(self): + '''power-saver-enabled property default value''' + + self.dbus_props.Set('net.hadess.PowerProfiles', 'ActiveProfile', dbus.String('power-saver', variant_level=1)) + + # Create a new power profile monitor and check its property value is + # correct by default. + new_power_profile_monitor = GObject.new(GObject.type_from_name('GPowerProfileMonitorPortal')) + new_power_profile_monitor.init() + self.assertTrue(new_power_profile_monitor.get_power_saver_enabled()) + except ImportError as e: @unittest.skip("Cannot import %s" % e.name) class TestPowerProfileMonitorPortal(unittest.TestCase): -- cgit v1.2.3