unit: Toggle SessionMode for each test case
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Tue, 7 Jun 2011 13:42:21 +0000 (15:42 +0200)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Tue, 7 Jun 2011 13:42:57 +0000 (15:42 +0200)
unit/test-session.c

index aaed275..d0f232e 100644 (file)
@@ -36,13 +36,51 @@ static gboolean test_empty(gpointer data)
        return FALSE;
 }
 
+static void set_session_mode(struct test_fix *fix,
+                                       connman_bool_t enable)
+{
+       DBusMessage *msg;
+
+       msg = manager_set_session_mode(fix->main_connection, enable);
+       g_assert(msg != NULL);
+       g_assert(dbus_message_get_type(msg) != DBUS_MESSAGE_TYPE_ERROR);
+
+       dbus_message_unref(msg);
+
+       util_idle_call(fix, util_quit_loop, NULL);
+}
+
+static gboolean enable_session_mode(gpointer data)
+{
+       struct test_fix *fix = data;
+
+       set_session_mode(fix, TRUE);
+
+       return FALSE;
+}
+
+static gboolean disable_session_mode(gpointer data)
+{
+       struct test_fix *fix = data;
+
+       set_session_mode(fix, FALSE);
+
+       return FALSE;
+}
+
 static void setup_cb(struct test_fix *fix, gconstpointer data)
 {
        util_setup(fix, data);
+
+       util_call(fix, enable_session_mode, NULL);
+       g_main_loop_run(fix->main_loop);
 }
 
 static void teardown_cb(struct test_fix *fix, gconstpointer data)
 {
+       util_call(fix, disable_session_mode, NULL);
+       g_main_loop_run(fix->main_loop);
+
        util_teardown(fix, data);
 }