END_TEST START_TEST (test_empathy_chatroom_manager_remove) { EmpathyChatroomManager *mgr; gchar *file; EmpathyAccount *account; struct chatroom_t chatrooms[] = { { "name2", "room2", FALSE, TRUE }}; EmpathyChatroom *chatroom; EmpathyAccountManager *account_mgr; account_mgr = empathy_account_manager_dup_singleton (); account = get_test_account (); copy_xml_file (CHATROOM_SAMPLE, CHATROOM_FILE); file = get_user_xml_file (CHATROOM_FILE); /* change the chatrooms XML file to use the account we just created */ fail_unless (change_account_name_in_file (account, file)); mgr = empathy_chatroom_manager_dup_singleton (file); /* remove room1 */ chatroom = empathy_chatroom_manager_find (mgr, account, "room1"); fail_if (chatroom == NULL); empathy_chatroom_manager_remove (mgr, chatroom); check_chatrooms_list (mgr, account, chatrooms, 1); /* reload chatrooms file */ g_object_unref (mgr); mgr = empathy_chatroom_manager_dup_singleton (file); check_chatrooms_list (mgr, account, chatrooms, 1); /* remove room1 */ chatroom = empathy_chatroom_manager_find (mgr, account, "room2"); fail_if (chatroom == NULL); empathy_chatroom_manager_remove (mgr, chatroom); check_chatrooms_list (mgr, account, chatrooms, 0); /* reload chatrooms file */ g_object_unref (mgr); mgr = empathy_chatroom_manager_dup_singleton (file); check_chatrooms_list (mgr, account, chatrooms, 0); g_object_unref (mgr); g_free (file); g_object_unref (account); g_object_unref (account_mgr); }
static void chatrooms_window_button_remove_clicked_cb (GtkWidget *widget, EmpathyChatroomsWindow *window) { EmpathyChatroom *chatroom; GtkTreeView *view; GtkTreeModel *model; GtkTreeSelection *selection; GtkTreeIter iter; /* Remove from treeview */ view = GTK_TREE_VIEW (window->treeview); selection = gtk_tree_view_get_selection (view); if (!gtk_tree_selection_get_selected (selection, &model, &iter)) { return; } gtk_tree_model_get (model, &iter, COL_POINTER, &chatroom, -1); gtk_list_store_remove (GTK_LIST_STORE (model), &iter); /* Remove from config */ empathy_chatroom_manager_remove (window->manager, chatroom); g_object_unref (chatroom); }