[gtk+] filechooser: Move some of the tests to GTestDataFunc
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] filechooser: Move some of the tests to GTestDataFunc
- Date: Thu, 14 Feb 2013 00:13:06 +0000 (UTC)
commit ff4bf0c8950344f94abf61e8ade0e24883b06d20
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Feb 11 15:11:26 2013 -0600
filechooser: Move some of the tests to GTestDataFunc
This code came from a home-grown testing mechanism, which didn't aggregate tests
into a test suite; it just ran them one by one. Here we move some of that machinery
to GTestDataFunc for more flexibility in running tests.
Signed-off-by: Federico Mena Quintero <federico gnome org>
gtk/tests/filechooser.c | 117 +++++++++++++++++++++++++++--------------------
1 files changed, 68 insertions(+), 49 deletions(-)
---
diff --git a/gtk/tests/filechooser.c b/gtk/tests/filechooser.c
index 2537545..f70444e 100644
--- a/gtk/tests/filechooser.c
+++ b/gtk/tests/filechooser.c
@@ -160,19 +160,27 @@ compare_filename_cb (GtkFileChooser *chooser, gpointer data)
return retval;
}
-static gboolean
-test_black_box_set_filename (GtkFileChooserAction action, const char *filename, gboolean focus_button)
+typedef struct
+{
+ const char *test_name;
+ GtkFileChooserAction action;
+ const char *filename;
+ gboolean focus_button;
+} TestSetFilenameSetup;
+
+static void
+test_black_box_set_filename (gconstpointer data)
{
+ const TestSetFilenameSetup *setup = data;
gboolean passed;
- passed = test_set_filename (action, focus_button, set_filename_cb, compare_filename_cb, (char *) filename);
+ passed = test_set_filename (setup->action, setup->focus_button, set_filename_cb, compare_filename_cb,
(char *) setup->filename);
log_test (passed, "set_filename: action %d, focus_button=%s",
- (int) action,
- focus_button ? "TRUE" : "FALSE");
-
- return passed;
+ (int) setup->action,
+ setup->focus_button ? "TRUE" : "FALSE");
+ g_assert (passed);
}
struct current_name_closure {
@@ -216,21 +224,35 @@ compare_current_name_cb (GtkFileChooser *chooser, gpointer data)
return retval;
}
-static gboolean
-test_black_box_set_current_name (GtkFileChooserAction action, const char *path, const char *current_name,
gboolean focus_button)
+typedef struct
+{
+ const char *test_name;
+ GtkFileChooserAction action;
+ const char *current_name;
+ gboolean focus_button;
+} TestSetCurrentNameSetup;
+
+static void
+test_black_box_set_current_name (gconstpointer data)
{
+ const TestSetCurrentNameSetup *setup = data;
struct current_name_closure closure;
gboolean passed;
+ char *cwd;
- closure.path = path;
- closure.current_name = current_name;
+ cwd = g_get_current_dir ();
+
+ closure.path = cwd;
+ closure.current_name = setup->current_name;
- passed = test_set_filename (action, focus_button,
+ passed = test_set_filename (setup->action, setup->focus_button,
set_current_name_cb, compare_current_name_cb, &closure);
- log_test (passed, "set_current_name, focus_button=%s", focus_button ? "TRUE" : "FALSE");
+ g_free (cwd);
- return passed;
+ log_test (passed, "set_current_name: action %d, focus_button=%s", (int) setup->action, setup->focus_button
? "TRUE" : "FALSE");
+
+ g_assert (passed);
}
/* FIXME: fails in CREATE_FOLDER mode when FOLDER_NAME == "/" */
@@ -250,45 +272,41 @@ test_black_box_set_current_name (GtkFileChooserAction action, const char *path,
* http://bugzilla.gnome.org/show_bug.cgi?id=347066
* http://bugzilla.gnome.org/show_bug.cgi?id=346058
*/
+
static void
-test_black_box (void)
+setup_set_filename_tests (void)
{
- gboolean passed;
- char *cwd;
-
- passed = TRUE;
-
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_OPEN, FILE_NAME, FALSE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_OPEN, FILE_NAME, TRUE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_SAVE, FILE_NAME, FALSE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_SAVE, FILE_NAME, TRUE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, FOLDER_NAME, FALSE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, FOLDER_NAME, TRUE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, FOLDER_NAME, FALSE);
- g_assert (passed);
- passed = passed && test_black_box_set_filename (GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, FOLDER_NAME, TRUE);
- g_assert (passed);
-
- cwd = g_get_current_dir ();
+ static TestSetFilenameSetup tests[] =
+ {
+ { "/GtkFileChooser/black_box/set_filename/open/no_focus",
GTK_FILE_CHOOSER_ACTION_OPEN, FILE_NAME, FALSE },
+ { "/GtkFileChooser/black_box/set_filename/open/focus", GTK_FILE_CHOOSER_ACTION_OPEN,
FILE_NAME, TRUE },
+ { "/GtkFileChooser/black_box/set_filename/save/no_focus",
GTK_FILE_CHOOSER_ACTION_SAVE, FILE_NAME, FALSE },
+ { "/GtkFileChooser/black_box/set_filename/save/focus", GTK_FILE_CHOOSER_ACTION_SAVE,
FILE_NAME, TRUE },
+ { "/GtkFileChooser/black_box/set_filename/select_folder/no_focus",
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, FOLDER_NAME,FALSE },
+ { "/GtkFileChooser/black_box/set_filename/select_folder/focus",
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, FOLDER_NAME,TRUE },
+ { "/GtkFileChooser/black_box/set_filename/create_folder/no_focus",
GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, FOLDER_NAME,FALSE },
+ { "/GtkFileChooser/black_box/set_filename/create_folder/focus",
GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, FOLDER_NAME,TRUE },
+ };
+ int i;
- passed = passed && test_black_box_set_current_name (GTK_FILE_CHOOSER_ACTION_SAVE, cwd, CURRENT_NAME,
FALSE);
- g_assert (passed);
- passed = passed && test_black_box_set_current_name (GTK_FILE_CHOOSER_ACTION_SAVE, cwd, CURRENT_NAME, TRUE);
- g_assert (passed);
- passed = passed && test_black_box_set_current_name (GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, cwd,
CURRENT_NAME_FOLDER, FALSE);
- g_assert (passed);
- passed = passed && test_black_box_set_current_name (GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, cwd,
CURRENT_NAME_FOLDER, TRUE);
- g_assert (passed);
+ for (i = 0; i < G_N_ELEMENTS (tests); i++)
+ g_test_add_data_func (tests[i].test_name, &tests[i], test_black_box_set_filename);
+}
- g_free (cwd);
+static void
+setup_set_current_name_tests (void)
+{
+ static TestSetCurrentNameSetup tests[] =
+ {
+ { "/GtkFileChooser/black_box/set_current_name/save/no_focus", GTK_FILE_CHOOSER_ACTION_SAVE,
CURRENT_NAME, FALSE },
+ { "/GtkFileChooser/black_box/set_current_name/save/focus", GTK_FILE_CHOOSER_ACTION_SAVE,
CURRENT_NAME, TRUE },
+ { "/GtkFileChooser/black_box/set_current_name/create_folder/no_focus",
GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, CURRENT_NAME_FOLDER, FALSE },
+ { "/GtkFileChooser/black_box/set_current_name/create_folder/focus",
GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER, CURRENT_NAME_FOLDER, TRUE },
+ };
+ int i;
- log_test (passed, "Black box tests");
+ for (i = 0; i < G_N_ELEMENTS (tests); i++)
+ g_test_add_data_func (tests[i].test_name, &tests[i], test_black_box_set_current_name);
}
struct confirm_overwrite_closure {
@@ -1076,7 +1094,8 @@ main (int argc,
gtk_test_init (&argc, &argv);
/* register tests */
- g_test_add_func ("/GtkFileChooser/black_box", test_black_box);
+ setup_set_filename_tests ();
+ setup_set_current_name_tests ();
g_test_add_func ("/GtkFileChooser/confirm_overwrite", test_confirm_overwrite);
#ifdef BROKEN_TESTS
g_test_add_func ("/GtkFileChooser/action_widgets", test_action_widgets);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]