Add basic searchbar set_key_capture_widget tests

Make sure we're correctly resetting the internal key capture widget
pointer when the widget goes away.
This commit is contained in:
Timm Bäder 2018-05-16 17:56:34 +02:00
parent 8f289227aa
commit 5c339f2844
2 changed files with 55 additions and 0 deletions

View File

@ -36,6 +36,7 @@ tests = [
['recentmanager'],
['regression-tests'],
['scrolledwindow'],
['searchbar'],
['spinbutton'],
['stylecontext'],
['templates'],

54
testsuite/gtk/searchbar.c Normal file
View File

@ -0,0 +1,54 @@
#include <gtk/gtk.h>
static void
capture_widget_destroy (void)
{
GtkWidget *searchbar = gtk_search_bar_new ();
GtkWidget *button = gtk_button_new ();
g_object_ref_sink (searchbar);
g_object_ref_sink (button);
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (searchbar), button);
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == button);
g_object_unref (button);
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == NULL);
g_object_unref (searchbar);
}
static void
capture_widget_unset (void)
{
GtkWidget *searchbar = gtk_search_bar_new ();
GtkWidget *button = gtk_button_new ();
g_object_ref_sink (searchbar);
g_object_ref_sink (button);
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (searchbar), button);
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == button);
gtk_search_bar_set_key_capture_widget (GTK_SEARCH_BAR (searchbar), NULL);
g_assert (gtk_search_bar_get_key_capture_widget (GTK_SEARCH_BAR (searchbar)) == NULL);
g_object_unref (searchbar);
g_object_unref (button);
}
int
main (int argc,
char *argv[])
{
gtk_test_init (&argc, &argv);
g_test_add_func ("/searchbar/capture-widget-destroy", capture_widget_destroy);
g_test_add_func ("/searchbar/capture-widget-unset", capture_widget_unset);
return g_test_run();
}