[gnome-settings-daemon] power: restore the ability of running the test suite
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] power: restore the ability of running the test suite
- Date: Mon, 19 Aug 2013 07:54:15 +0000 (UTC)
commit 0eb96d7a20607e66450cde3d7864393f06cb9e34
Author: Giovanni Campagna <gcampagna src gnome org>
Date: Sun Aug 18 22:57:30 2013 +0200
power: restore the ability of running the test suite
We need to provide a mock mutter in the test environment.
Also, we need to make sure a few objects exist right away, as
the mock environment starts dbus calls before we're really
initialized.
https://bugzilla.gnome.org/show_bug.cgi?id=705507
plugins/power/gsd-power-manager.c | 9 ++++---
plugins/power/test.py | 2 +
tests/gsdtestcase.py | 41 +++++++++++++++++++++++++++++++++++++
3 files changed, 48 insertions(+), 4 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index c39b319..d162eba 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -3263,14 +3263,10 @@ on_rr_screen_acquired (GObject *object,
manager->priv->kbd_brightness_old = -1;
manager->priv->kbd_brightness_pre_dim = -1;
manager->priv->pre_dim_brightness = -1;
- manager->priv->settings = g_settings_new (GSD_POWER_SETTINGS_SCHEMA);
g_signal_connect (manager->priv->settings, "changed",
G_CALLBACK (engine_settings_key_changed_cb), manager);
- manager->priv->settings_screensaver = g_settings_new ("org.gnome.desktop.screensaver");
- manager->priv->settings_bus = g_settings_new ("org.gnome.desktop.session");
g_signal_connect (manager->priv->settings_bus, "changed",
G_CALLBACK (engine_settings_key_changed_cb), manager);
- manager->priv->settings_xrandr = g_settings_new (GSD_XRANDR_SETTINGS_SCHEMA);
g_signal_connect (manager->priv->up_client, "device-added",
G_CALLBACK (engine_device_added_cb), manager);
g_signal_connect (manager->priv->up_client, "device-removed",
@@ -3389,6 +3385,11 @@ gsd_power_manager_start (GsdPowerManager *manager,
gnome_rr_screen_new_async (gdk_screen_get_default (),
on_rr_screen_acquired, manager);
+ manager->priv->settings = g_settings_new (GSD_POWER_SETTINGS_SCHEMA);
+ manager->priv->settings_screensaver = g_settings_new ("org.gnome.desktop.screensaver");
+ manager->priv->settings_bus = g_settings_new ("org.gnome.desktop.session");
+ manager->priv->settings_xrandr = g_settings_new (GSD_XRANDR_SETTINGS_SCHEMA);
+
gnome_settings_profile_end (NULL);
return TRUE;
}
diff --git a/plugins/power/test.py b/plugins/power/test.py
index b267e7a..98d9fbe 100755
--- a/plugins/power/test.py
+++ b/plugins/power/test.py
@@ -66,6 +66,7 @@ class PowerPluginTest(gsdtestcase.GSDTestCase):
gsdtestcase.set_nonblock(self.screensaver.stdout)
self.start_logind()
+ self.start_mutter()
# Set up the gnome-session presence
obj_session_presence = self.session_bus_con.get_object(
@@ -133,6 +134,7 @@ class PowerPluginTest(gsdtestcase.GSDTestCase):
self.screensaver.terminate()
self.screensaver.wait()
self.stop_session()
+ self.stop_mutter()
self.stop_logind()
# reset all changed gsettings, so that tests are independent from each
diff --git a/tests/gsdtestcase.py b/tests/gsdtestcase.py
index 2f8d1de..c2ec295 100644
--- a/tests/gsdtestcase.py
+++ b/tests/gsdtestcase.py
@@ -185,6 +185,47 @@ class GSDTestCase(dbusmock.DBusTestCase):
self.logind.terminate()
self.logind.wait()
+ def start_mutter(self):
+ ''' start mock mutter DisplayConfig '''
+ self.mutter = self.spawn_server('org.gnome.Mutter.DisplayConfig',
+ '/org/gnome/Mutter/DisplayConfig',
+ 'org.gnome.Mutter.DisplayConfig',
+ stdout=subprocess.PIPE)
+ self.obj_mutter = self.session_bus_con.get_object(
+ 'org.gnome.Mutter.DisplayConfig', '/org/gnome/Mutter/DisplayConfig')
+
+ self.obj_mutter.AddMethods('',
+ [
+ ('GetResources', '', 'ua(uxiiiiiuaua{sv})a(uxiausauaua{sv})a(uxuud)ii', '''
+ret = (1, [(0, 1, 0, 0, 1024, 768, 0, 0, [0, 1, 2, 3, 4, 5, 6, 7], {}),
+ (1, 2, 0, 0, 0, 0, -1, 0, [], {})],
+ [(0, 3, 0, [0, 1], 'LVDS1', [0, 1], [], {'vendor': 'FOO',
+ 'product': '0x0000',
+ 'serial': '0x0000000',
+ 'display-name': 'Built-in Display',
+ 'backlight': -1,
+ 'primary': True })],
+ [(0, 5, 1024, 768, 60), (1, 6, 800, 600, 60)], 8192, 8192)'''),
+ ('ApplyConfiguration', 'uba(uiiiuaua{sv})a(ua{sv})', '', ''),
+ ('ChangeBacklight', 'uui', '', ''),
+ ('GetCrtcGamma', 'uu', 'aqaqaq', 'ret = ([],[],[])'),
+ ('SetCrtcGamma', 'uuaqaqaq', '', ''),
+ ], dbus_interface='org.freedesktop.DBus.Mock')
+
+ self.obj_mutter.AddProperties('',
+ {
+ 'PowerSaveMode': 0,
+ })
+
+ # set log to nonblocking
+ set_nonblock(self.mutter.stdout)
+
+ def stop_mutter(self):
+ '''stop mock mutter'''
+
+ self.mutter.terminate()
+ self.mutter.wait()
+
@classmethod
def start_xorg(klass):
'''start X.org server with dummy driver'''
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]