}
static void
-test_file_chooser_button (gconstpointer data)
+test_file_chooser_button_with_response (const FileChooserButtonTest *setup, gint dialog_response)
{
- const FileChooserButtonTest *setup = data;
WindowAndButton w;
SignalWatcher *watcher;
GtkWidget *fc_dialog;
if (setup->open_dialog)
{
- gtk_dialog_response (GTK_DIALOG (fc_dialog), setup->dialog_response);
+ gtk_dialog_response (GTK_DIALOG (fc_dialog), dialog_response);
wait_for_idle ();
gtk_window_resize (GTK_WINDOW (fc_dialog), 500, 500);
gtk_widget_destroy (w.window);
}
+static void
+test_file_chooser_button (gconstpointer data)
+{
+ const FileChooserButtonTest *setup = data;
+
+ test_file_chooser_button_with_response (setup, setup->dialog_response);
+
+ if (setup->open_dialog && setup->dialog_response == GTK_RESPONSE_CANCEL)
+ {
+ /* Runs the test again, with DELETE_EVENT (as if the user closed the
+ * dialog instead of using the Cancel button), since the button misbehaved
+ * in that case sometimes.
+ */
+ test_file_chooser_button_with_response (setup, GTK_RESPONSE_DELETE_EVENT);
+ }
+}
+
static int
find_accessible_action_num (AtkObject *object, const char *action_name)
{
NULL /* final_filename */
},
- /* OPEN tests with dialog, cancelled via closing the dialog (not by selecting the Cancel button) */
-
- {
- "open-dialog-close-ni-nt",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-ni-b",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FILE_NAME, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FILE_NAME /* final_filename */
- },
- {
- "open-dialog-close-ni-d",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- DIALOG, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FILE_NAME, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-i-nt",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- FILE_NAME, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FILE_NAME /* final_filename */
- },
- {
- "open-dialog-close-i-b",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- FILE_NAME, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FILE_NAME_2, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FILE_NAME_2 /* final_filename */
- },
- {
- "open-dialog-close-i-d",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- FILE_NAME, /* initial_filename */
- TRUE, /* open_dialog */
- DIALOG, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FILE_NAME_2, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FILE_NAME /* final_filename */
- },
- {
- "open-dialog-close-nf-nt",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-nf-b",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- FOLDER_NAME, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- FOLDER_NAME, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-nf-d",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- DIALOG, /* what_to_tweak */
- FOLDER_NAME, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-f-nt",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- FOLDER_NAME, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-f-b",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- FOLDER_NAME_2, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- FOLDER_NAME_2, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "open-dialog-close-f-d",
- GTK_FILE_CHOOSER_ACTION_OPEN,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- DIALOG, /* what_to_tweak */
- FOLDER_NAME_2, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- FOLDER_NAME, /* final_current_folder */
- NULL /* final_filename */
- },
-
/* SELECT_FOLDER tests with dialog, cancelled */
{
FOLDER_NAME /* final_filename */
},
- /* SELECT_FOLDER tests with dialog, cancelled via closing the dialog (not selecting the Cancel button) */
-
- {
- "select-folder-dialog-close-1",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "select-folder-dialog-close-2",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- NULL, /* initial_current_folder */
- FOLDER_NAME, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FOLDER_NAME /* final_filename */
- },
- {
- "select-folder-dialog-close-3",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- FOLDER_NAME, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "select-folder-dialog-close-4",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- NULL, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FOLDER_NAME /* final_filename */
- },
- {
- "select-folder-dialog-close-5",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- NULL, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FOLDER_NAME, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "select-folder-dialog-close-6",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- NULL, /* initial_current_folder */
- FOLDER_NAME, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FOLDER_NAME_2, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FOLDER_NAME /* final_filename */
- },
- {
- "select-folder-dialog-close-7",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FOLDER_NAME_2, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- FOLDER_NAME, /* final_current_folder */
- NULL /* final_filename */
- },
- {
- "select-folder-dialog-close-8",
- GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
- FOLDER_NAME, /* initial_current_folder */
- NULL, /* initial_filename */
- TRUE, /* open_dialog */
- BUTTON, /* what_to_tweak */
- NULL, /* tweak_current_folder */
- FOLDER_NAME_2, /* tweak_filename */
- GTK_RESPONSE_DELETE_EVENT,/* dialog_response */
- FALSE, /* unselect_all */
- NULL, /* final_current_folder */
- FOLDER_NAME /* final_filename */
- },
-
/* OPEN tests with dialog */
{