summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/up-daemon.c17
-rw-r--r--src/up-daemon.h2
-rw-r--r--src/up-device.c2
-rw-r--r--src/up-kbd-backlight.c2
-rw-r--r--src/up-main.c7
-rw-r--r--src/up-qos.c2
-rw-r--r--src/up-wakeups.c2
7 files changed, 28 insertions, 6 deletions
diff --git a/src/up-daemon.c b/src/up-daemon.c
index 12bd999..0adf705 100644
--- a/src/up-daemon.c
+++ b/src/up-daemon.c
@@ -116,6 +116,21 @@ G_DEFINE_TYPE (UpDaemon, up_daemon, G_TYPE_OBJECT)
#define UP_DAEMON_ON_BATTERY_REFRESH_DEVICES_DELAY 1 /* seconds */
#define UP_DAEMON_POLL_BATTERY_NUMBER_TIMES 5
+/* D-BUS to connect to. Can be set to session bus for testing */
+static DBusBusType daemon_bus_type = DBUS_BUS_SYSTEM;
+
+DBusBusType
+up_daemon_get_bus_type (void)
+{
+ return daemon_bus_type;
+}
+
+void
+up_daemon_set_bus_type (DBusBusType type)
+{
+ daemon_bus_type = type;
+}
+
/**
* up_daemon_get_on_battery_local:
*
@@ -671,7 +686,7 @@ up_daemon_register_power_daemon (UpDaemon *daemon)
gboolean ret = FALSE;
UpDaemonPrivate *priv = daemon->priv;
- priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+ priv->connection = dbus_g_bus_get (up_daemon_get_bus_type (), &error);
if (priv->connection == NULL) {
if (error != NULL) {
g_critical ("error getting system bus: %s", error->message);
diff --git a/src/up-daemon.h b/src/up-daemon.h
index 99fb9da..09252b2 100644
--- a/src/up-daemon.h
+++ b/src/up-daemon.h
@@ -67,6 +67,8 @@ GQuark up_daemon_error_quark (void);
GType up_daemon_get_type (void);
UpDaemon *up_daemon_new (void);
void up_daemon_test (gpointer user_data);
+DBusBusType up_daemon_get_bus_type (void);
+void up_daemon_set_bus_type (DBusBusType type);
/* private */
guint up_daemon_get_number_devices_of_type (UpDaemon *daemon,
diff --git a/src/up-device.c b/src/up-device.c
index 74b90d3..3591125 100644
--- a/src/up-device.c
+++ b/src/up-device.c
@@ -881,7 +881,7 @@ up_device_init (UpDevice *device)
device->priv->during_coldplug = FALSE;
device->priv->history = up_history_new ();
- device->priv->system_bus_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+ device->priv->system_bus_connection = dbus_g_bus_get (up_daemon_get_bus_type (), &error);
if (device->priv->system_bus_connection == NULL) {
g_error ("error getting system bus: %s", error->message);
g_error_free (error);
diff --git a/src/up-kbd-backlight.c b/src/up-kbd-backlight.c
index fc34cd7..2be22b6 100644
--- a/src/up-kbd-backlight.c
+++ b/src/up-kbd-backlight.c
@@ -273,7 +273,7 @@ up_kbd_backlight_init (UpKbdBacklight *kbd_backlight)
return;
}
- kbd_backlight->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+ kbd_backlight->priv->connection = dbus_g_bus_get (up_daemon_get_bus_type (), &error);
if (error != NULL) {
g_warning ("Cannot connect to bus: %s", error->message);
g_error_free (error);
diff --git a/src/up-main.c b/src/up-main.c
index d116487..cfebe8e 100644
--- a/src/up-main.c
+++ b/src/up-main.c
@@ -133,6 +133,7 @@ main (gint argc, gchar **argv)
gint retval = 1;
gboolean timed_exit = FALSE;
gboolean immediate_exit = FALSE;
+ gboolean session_bus = FALSE;
guint timer_id = 0;
const GOptionEntry options[] = {
@@ -142,6 +143,8 @@ main (gint argc, gchar **argv)
{ "immediate-exit", '\0', 0, G_OPTION_ARG_NONE, &immediate_exit,
/* TRANSLATORS: exit straight away, used for automatic profiling */
_("Exit after the engine has loaded"), NULL },
+ { "test", '\0', 0, G_OPTION_ARG_NONE, &session_bus,
+ _("Run on the session bus (only for testing)"), NULL },
{ NULL}
};
@@ -153,7 +156,9 @@ main (gint argc, gchar **argv)
g_option_context_free (context);
/* get bus connection */
- bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+ if (session_bus)
+ up_daemon_set_bus_type (DBUS_BUS_SESSION);
+ bus = dbus_g_bus_get (up_daemon_get_bus_type (), &error);
if (bus == NULL) {
g_warning ("Couldn't connect to system bus: %s", error->message);
g_error_free (error);
diff --git a/src/up-qos.c b/src/up-qos.c
index a18b678..43b8eb5 100644
--- a/src/up-qos.c
+++ b/src/up-qos.c
@@ -577,7 +577,7 @@ up_qos_init (UpQos *qos)
if (qos->priv->fd[UP_QOS_KIND_NETWORK] < 0)
g_debug ("cannot open network device file");
- qos->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+ qos->priv->connection = dbus_g_bus_get (up_daemon_get_bus_type (), &error);
if (error != NULL) {
g_warning ("Cannot connect to bus: %s", error->message);
g_error_free (error);
diff --git a/src/up-wakeups.c b/src/up-wakeups.c
index 339230d..50b7bb0 100644
--- a/src/up-wakeups.c
+++ b/src/up-wakeups.c
@@ -743,7 +743,7 @@ up_wakeups_init (UpWakeups *wakeups)
wakeups->priv->has_capability = FALSE;
wakeups->priv->polling_enabled = FALSE;
- wakeups->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+ wakeups->priv->connection = dbus_g_bus_get (up_daemon_get_bus_type (), &error);
if (error != NULL) {
g_warning ("Cannot connect to bus: %s", error->message);
g_error_free (error);