[gtk/matthiasc/for-master: 13/21] testsuite: Add more tests for automated components
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/for-master: 13/21] testsuite: Add more tests for automated components
- Date: Sun, 10 May 2020 20:28:46 +0000 (UTC)
commit caab6ac6e7648278736fa9710e0ca77eed12cca5
Author: Matthias Clasen <mclasen redhat com>
Date: Sun May 10 11:12:07 2020 -0400
testsuite: Add more tests for automated components
Add template tests that show the complex dialogs before
destroying them. This reveals that we are leaking in
several of them. These leaks don't show up if the
dialogs are destroyed right away, as the existing
tests do.
Disable the two failing tests for now:
/template/GtkFileChooserDialog/show
/template/GtkPrintUnixDialog/show
testsuite/gtk/templates.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 104 insertions(+)
---
diff --git a/testsuite/gtk/templates.c b/testsuite/gtk/templates.c
index 13eb3b19bd..2345069de0 100644
--- a/testsuite/gtk/templates.c
+++ b/testsuite/gtk/templates.c
@@ -34,6 +34,17 @@ main_loop_quit_cb (gpointer data)
return FALSE;
}
+static void
+show_and_wait (GtkWidget *widget)
+{
+ gboolean done = FALSE;
+
+ g_timeout_add (500, main_loop_quit_cb, &done);
+ gtk_widget_show (widget);
+ while (!done)
+ g_main_context_iteration (NULL, FALSE);
+}
+
static void
test_dialog_basic (void)
{
@@ -82,6 +93,17 @@ test_about_dialog_basic (void)
gtk_widget_destroy (dialog);
}
+static void
+test_about_dialog_show (void)
+{
+ GtkWidget *dialog;
+
+ dialog = gtk_about_dialog_new ();
+ g_assert (GTK_IS_ABOUT_DIALOG (dialog));
+ show_and_wait (dialog);
+ gtk_widget_destroy (dialog);
+}
+
static void
test_info_bar_basic (void)
{
@@ -115,6 +137,17 @@ test_assistant_basic (void)
gtk_widget_destroy (widget);
}
+static void
+test_assistant_show (void)
+{
+ GtkWidget *widget;
+
+ widget = gtk_assistant_new ();
+ g_assert (GTK_IS_ASSISTANT (widget));
+ show_and_wait (widget);
+ gtk_widget_destroy (widget);
+}
+
static void
test_scale_button_basic (void)
{
@@ -205,6 +238,18 @@ test_color_chooser_dialog_basic (void)
gtk_widget_destroy (widget);
}
+static void
+test_color_chooser_dialog_show (void)
+{
+ GtkWidget *widget;
+
+ /* This test also tests the internal GtkColorEditor widget */
+ widget = gtk_color_chooser_dialog_new (NULL, NULL);
+ g_assert (GTK_IS_COLOR_CHOOSER_DIALOG (widget));
+ show_and_wait (widget);
+ gtk_widget_destroy (widget);
+}
+
/* Avoid warnings from GVFS-RemoteVolumeMonitor */
static gboolean
ignore_gvfs_warning (const gchar *log_domain,
@@ -268,6 +313,23 @@ test_file_chooser_dialog_basic (void)
gtk_widget_destroy (widget);
}
+static void
+test_file_chooser_dialog_show (void)
+{
+ GtkWidget *widget;
+
+ g_test_log_set_fatal_handler (ignore_gvfs_warning, NULL);
+
+ widget = gtk_file_chooser_dialog_new ("The Dialog", NULL,
+ GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+ "_OK", GTK_RESPONSE_OK,
+ NULL);
+
+ g_assert (GTK_IS_FILE_CHOOSER_DIALOG (widget));
+ show_and_wait (widget);
+ gtk_widget_destroy (widget);
+}
+
static void
test_file_chooser_button_basic (void)
{
@@ -315,6 +377,17 @@ test_font_chooser_dialog_basic (void)
gtk_widget_destroy (widget);
}
+static void
+test_font_chooser_dialog_show (void)
+{
+ GtkWidget *widget;
+
+ widget = gtk_font_chooser_dialog_new ("Choose a font !", NULL);
+ g_assert (GTK_IS_FONT_CHOOSER_DIALOG (widget));
+ show_and_wait (widget);
+ gtk_widget_destroy (widget);
+}
+
#ifdef HAVE_UNIX_PRINT_WIDGETS
static void
test_page_setup_unix_dialog_basic (void)
@@ -326,6 +399,17 @@ test_page_setup_unix_dialog_basic (void)
gtk_widget_destroy (widget);
}
+static void
+test_page_setup_unix_dialog_show (void)
+{
+ GtkWidget *widget;
+
+ widget = gtk_page_setup_unix_dialog_new ("Setup your Page !", NULL);
+ g_assert (GTK_IS_PAGE_SETUP_UNIX_DIALOG (widget));
+ show_and_wait (widget);
+ gtk_widget_destroy (widget);
+}
+
static void
test_print_unix_dialog_basic (void)
{
@@ -335,6 +419,17 @@ test_print_unix_dialog_basic (void)
g_assert (GTK_IS_PRINT_UNIX_DIALOG (widget));
gtk_widget_destroy (widget);
}
+
+static void
+test_print_unix_dialog_show (void)
+{
+ GtkWidget *widget;
+
+ widget = gtk_print_unix_dialog_new ("Go Print !", NULL);
+ g_assert (GTK_IS_PRINT_UNIX_DIALOG (widget));
+ show_and_wait (widget);
+ gtk_widget_destroy (widget);
+}
#endif
int
@@ -357,9 +452,11 @@ main (int argc, char **argv)
g_test_add_func ("/template/GtkDialog/OverrideProperty", test_dialog_override_property);
g_test_add_func ("/template/GtkMessageDialog/basic", test_message_dialog_basic);
g_test_add_func ("/template/GtkAboutDialog/basic", test_about_dialog_basic);
+ g_test_add_func ("/template/GtkAboutDialog/show", test_about_dialog_show);
g_test_add_func ("/template/GtkInfoBar/basic", test_info_bar_basic);
g_test_add_func ("/template/GtkLockButton/basic", test_lock_button_basic);
g_test_add_func ("/template/GtkAssistant/basic", test_assistant_basic);
+ g_test_add_func ("/template/GtkAssistant/show", test_assistant_show);
g_test_add_func ("/template/GtkScaleButton/basic", test_scale_button_basic);
g_test_add_func ("/template/GtkVolumeButton/basic", test_volume_button_basic);
g_test_add_func ("/template/GtkStatusBar/basic", test_statusbar_basic);
@@ -368,16 +465,23 @@ main (int argc, char **argv)
g_test_add_func ("/template/GtkAppChooserWidget/basic", test_app_chooser_widget_basic);
g_test_add_func ("/template/GtkAppChooserDialog/basic", test_app_chooser_dialog_basic);
g_test_add_func ("/template/GtkColorChooserDialog/basic", test_color_chooser_dialog_basic);
+ g_test_add_func ("/template/GtkColorChooserDialog/show", test_color_chooser_dialog_show);
g_test_add_func ("/template/GtkFileChooserWidget/basic", test_file_chooser_widget_basic);
g_test_add_func ("/template/GtkFileChooserDialog/basic", test_file_chooser_dialog_basic);
+ if (0)
+ g_test_add_func ("/template/GtkFileChooserDialog/show", test_file_chooser_dialog_show);
g_test_add_func ("/template/GtkFileChooserButton/basic", test_file_chooser_button_basic);
g_test_add_func ("/template/GtkFontButton/basic", test_font_button_basic);
g_test_add_func ("/template/GtkFontChooserWidget/basic", test_font_chooser_widget_basic);
g_test_add_func ("/template/GtkFontChooserDialog/basic", test_font_chooser_dialog_basic);
+ g_test_add_func ("/template/GtkFontChooserDialog/show", test_font_chooser_dialog_show);
#ifdef HAVE_UNIX_PRINT_WIDGETS
g_test_add_func ("/template/GtkPageSetupUnixDialog/basic", test_page_setup_unix_dialog_basic);
+ g_test_add_func ("/template/GtkPageSetupUnixDialog/show", test_page_setup_unix_dialog_show);
g_test_add_func ("/template/GtkPrintUnixDialog/basic", test_print_unix_dialog_basic);
+ if (0)
+ g_test_add_func ("/template/GtkPrintUnixDialog/show", test_print_unix_dialog_show);
#endif
return g_test_run();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]