static gboolean test_session_connect_disconnect(gpointer data) { struct test_fix *fix = data; struct test_session *session; /* * +-------------------+ * | START | * +-------------------+ * | * | connect foo * v * +-------------------+ * | FOO-CONNECTED | * +-------------------+ * | * | disconnect foo * v * +-------------------+ * | END | * +-------------------+ */ util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); session->notify = test_session_connect_disconnect_notify; util_session_init(session); set_session_state(session, TEST_SESSION_STATE_0); return FALSE; }
static gboolean test_session_create_already_exists(gpointer data) { struct test_fix *fix = data; struct test_session *session0, *session1; DBusMessage *msg; util_session_create(fix, 2); session0 = &fix->session[0]; session1 = &fix->session[1]; session0->notify_path = g_strdup("/foo"); session1->notify_path = session0->notify_path; util_session_init(session0); msg = manager_create_session(session1->connection, session1->info, session1->notify_path); g_assert(msg == NULL); util_session_cleanup(session0); util_idle_call(fix, util_quit_loop, util_session_destroy); return FALSE; }
static void test_session_policy(struct test_fix *fix) { struct test_session *session; /* * +-------------------+ * | START | * +-------------------+ * | * | write policy AllowedBearers = ethernet * v * +-------------------+ * | FOO-CONNECTED | * +-------------------+ * | * | write policy AllowedBearers = * v * +-------------------+ * | END | * +-------------------+ */ policy_remove_file(); util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); session->notify = test_session_policy_notify; util_session_init(session); set_session_state(session, TEST_SESSION_STATE_0); }
static void test_session_connect_disconnect(struct test_fix *fix) { struct test_session *session; /* * +-------------------+ * | START | * +-------------------+ * | * | connect foo * v * +-------------------+ * | FOO-CONNECTED | * +-------------------+ * | * | disconnect foo * v * +-------------------+ * | END | * +-------------------+ */ util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); session->notify = test_session_connect_disconnect_notify; util_session_init(session); set_session_state(session, TEST_SESSION_STATE_0); }
static gboolean test_session_connect_free_ride(gpointer data) { struct test_fix *fix = data; struct test_session *session0, *session1; /* * +-------------------+ * | START | * +-------------------+ * | * | connect foo * v * +-------------------+ * | FOO-CONNECTED | * +-------------------+ * | * | free-ride bar * v * +-------------------+ * | FOO-BAR-CONNECTED | * +-------------------+ * | * | disconnect foo * v * +-------------------+ * | END | * +-------------------+ */ util_session_create(fix, 2); session0 = &fix->session[0]; session1 = &fix->session[1]; session0->notify_path = g_strdup("/foo"); session1->notify_path = g_strdup("/bar"); session0->notify = test_session_connect_free_ride_notify; session1->notify = test_session_connect_free_ride_notify; util_session_init(session0); util_session_init(session1); set_session_state(session0, TEST_SESSION_STATE_0); return FALSE; }
static void test_session_create_destroy(struct test_fix *fix) { struct test_session *session; util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); util_session_init(fix->session); util_session_cleanup(fix->session); util_idle_call(fix, util_quit_loop, util_session_destroy); }
static void test_session_disconnect(struct test_fix *fix) { struct test_session *session; DBusMessage *msg; util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); session->notify = test_session_disconnect_notify; util_session_init(session); msg = session_disconnect(session->connection, session); g_assert(msg); dbus_message_unref(msg); }
static gboolean test_session_create_destroy(gpointer data) { struct test_fix *fix = data; struct test_session *session; util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); util_session_init(fix->session); util_session_cleanup(fix->session); util_idle_call(fix, util_quit_loop, util_session_destroy); return FALSE; }
static gboolean test_session_disconnect(gpointer data) { struct test_fix *fix = data; struct test_session *session; DBusMessage *msg; util_session_create(fix, 1); session = fix->session; session->notify_path = g_strdup("/foo"); session->notify = test_session_disconnect_notify; util_session_init(session); msg = session_disconnect(session->connection, session); g_assert(msg != NULL); dbus_message_unref(msg); return FALSE; }
static void test_session_create_many(struct test_fix *fix) { struct test_session *session; unsigned int i, max; max = 100; fix->user_data = GUINT_TO_POINTER(max); util_session_create(fix, max); for (i = 0; i < max; i++) { session = &fix->session[i]; session->notify_path = g_strdup_printf("/foo/%d", i); session->notify = test_session_create_many_notify; util_session_init(session); } }
static void test_session_create_dup_notification(struct test_fix *fix) { struct test_session *session0, *session1; DBusMessage *msg; util_session_create(fix, 2); session0 = &fix->session[0]; session1 = &fix->session[1]; session0->notify_path = g_strdup("/foo"); session1->notify_path = session0->notify_path; util_session_init(session0); msg = manager_create_session(session1->connection, session1->info, session1->notify_path); g_assert(msg); util_session_cleanup(session0); util_idle_call(fix, util_quit_loop, util_session_destroy); }