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_connect_disconnect_notify(struct test_session *session) { enum test_session_state state = get_session_state(session); enum test_session_state next_state = state; DBusMessage *msg; LOG("state %d session %p %s state %d", state, session, session->notify_path, session->info->state); switch (state) { case TEST_SESSION_STATE_0: if (session->info->state == CONNMAN_SESSION_STATE_DISCONNECTED) next_state = TEST_SESSION_STATE_1; if (session->info->state == CONNMAN_SESSION_STATE_CONNECTED) { LOG("state was already connected, continuing"); next_state = TEST_SESSION_STATE_2; } break; case TEST_SESSION_STATE_1: if (session->info->state >= CONNMAN_SESSION_STATE_CONNECTED) next_state = TEST_SESSION_STATE_2; break; case TEST_SESSION_STATE_2: if (session->info->state == CONNMAN_SESSION_STATE_DISCONNECTED) next_state = TEST_SESSION_STATE_3; default: break; } if (state == next_state) return; set_session_state(session, next_state); LOG("next_state %d", next_state); switch (next_state) { case TEST_SESSION_STATE_1: msg = session_connect(session->connection, session); g_assert(msg); dbus_message_unref(msg); return; case TEST_SESSION_STATE_2: msg = session_disconnect(session->connection, session); g_assert(msg); dbus_message_unref(msg); return; case TEST_SESSION_STATE_3: util_session_cleanup(session); util_idle_call(session->fix, util_quit_loop, util_session_destroy); return; default: return; } }
static void test_session_disconnect_notify(struct test_session *session) { LOG("session %p state %d", session, session->info->state); if (session->info->state >= CONNMAN_SESSION_STATE_CONNECTED) return; util_session_cleanup(session); util_idle_call(session->fix, util_quit_loop, util_session_destroy); }
static void test_session_disconnect_notify(struct test_session *session) { LOG("session %p online %d", session, session->info->online); if (session->info->online != FALSE) return; util_session_cleanup(session); util_idle_call(session->fix, util_quit_loop, util_session_destroy); }
static void test_session_policy_notify(struct test_session *session) { enum test_session_state state = get_session_state(session); enum test_session_state next_state = state; DBusMessage *msg; LOG("state %d session %p %s state %d", state, session, session->notify_path, session->info->state); switch (state) { case TEST_SESSION_STATE_0: if (session->info->state == CONNMAN_SESSION_STATE_DISCONNECTED) next_state = TEST_SESSION_STATE_1; break; case TEST_SESSION_STATE_1: if (session->info->state >= CONNMAN_SESSION_STATE_CONNECTED) next_state = TEST_SESSION_STATE_2; break; case TEST_SESSION_STATE_2: if (session->info->state == CONNMAN_SESSION_STATE_DISCONNECTED) next_state = TEST_SESSION_STATE_3; default: break; } if (state == next_state) return; set_session_state(session, next_state); LOG("next_state %d", next_state); switch (next_state) { case TEST_SESSION_STATE_1: policy_allowed_bearers("ethernet"); msg = session_connect(session->connection, session); g_assert(msg); dbus_message_unref(msg); return; case TEST_SESSION_STATE_2: policy_allowed_bearers(""); return; case TEST_SESSION_STATE_3: policy_remove_file(); util_session_cleanup(session); util_idle_call(session->fix, util_quit_loop, util_session_destroy); return; default: return; } }
static void test_session_connect_disconnect_notify(struct test_session *session) { enum test_session_state state = get_session_state(session); enum test_session_state next_state = state; DBusMessage *msg; LOG("state %d session %p %s online %d", state, session, session->notify_path, session->info->online); switch (state) { case TEST_SESSION_STATE_0: if (session->info->online == FALSE) next_state = TEST_SESSION_STATE_1; break; case TEST_SESSION_STATE_1: if (session->info->online == TRUE) next_state = TEST_SESSION_STATE_2; break; case TEST_SESSION_STATE_2: if (session->info->online == FALSE) next_state = TEST_SESSION_STATE_3; default: break; } if (state == next_state) return; set_session_state(session, next_state); LOG("next_state %d", next_state); switch (next_state) { case TEST_SESSION_STATE_1: msg = session_connect(session->connection, session); g_assert(msg != NULL); dbus_message_unref(msg); return; case TEST_SESSION_STATE_2: msg = session_disconnect(session->connection, session); g_assert(msg != NULL); dbus_message_unref(msg); return; case TEST_SESSION_STATE_3: util_session_cleanup(session); util_idle_call(session->fix, util_quit_loop, util_session_destroy); return; default: return; } }
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 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 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); }
static void test_session_connect_free_ride_notify(struct test_session *session) { struct test_session *session0 = get_session(session, 0); struct test_session *session1 = get_session(session, 1); enum test_session_state state = get_session_state(session); enum test_session_state next_state = state; DBusMessage *msg; LOG("state %d session %p %s state %d", state, session, session->notify_path, session->info->state); switch (state) { case TEST_SESSION_STATE_0: if (session0->info->state == CONNMAN_SESSION_STATE_DISCONNECTED && session1->info->state == CONNMAN_SESSION_STATE_DISCONNECTED) { next_state = TEST_SESSION_STATE_1; } break; case TEST_SESSION_STATE_1: if (session0->info->state >= CONNMAN_SESSION_STATE_CONNECTED && session1->info->state >= CONNMAN_SESSION_STATE_CONNECTED) { next_state = TEST_SESSION_STATE_2; } break; case TEST_SESSION_STATE_2: if (session0->info->state == CONNMAN_SESSION_STATE_DISCONNECTED && session1->info->state == CONNMAN_SESSION_STATE_DISCONNECTED) { next_state = TEST_SESSION_STATE_3; } break; case TEST_SESSION_STATE_3: return; } if (state == next_state) return; set_session_state(session, next_state); LOG("next_state %d", next_state); switch (next_state) { case TEST_SESSION_STATE_0: return; case TEST_SESSION_STATE_1: msg = session_connect(session0->connection, session0); g_assert(msg != NULL); dbus_message_unref(msg); return; case TEST_SESSION_STATE_2: msg = session_disconnect(session0->connection, session0); g_assert(msg != NULL); dbus_message_unref(msg); return; case TEST_SESSION_STATE_3: util_session_cleanup(session0); util_session_cleanup(session1); util_idle_call(session0->fix, util_quit_loop, util_session_destroy); return; } }