summaryrefslogtreecommitdiff
path: root/testsuite/gtk/listbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/gtk/listbox.c')
-rw-r--r--testsuite/gtk/listbox.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/testsuite/gtk/listbox.c b/testsuite/gtk/listbox.c
index 88b24108eb..1fe1dacf6d 100644
--- a/testsuite/gtk/listbox.c
+++ b/testsuite/gtk/listbox.c
@@ -440,6 +440,43 @@ test_header (void)
g_object_unref (list);
}
+static void
+test_sequencial_access (void)
+{
+ GtkListBox *list;
+ GtkWidget *label;
+ GtkWidget *rows[1000];
+ GtkWidget *row;
+ gchar *s;
+ gint i;
+
+ list = GTK_LIST_BOX (gtk_list_box_new ());
+ g_object_ref_sink (list);
+ gtk_widget_show (GTK_WIDGET (list));
+
+ for (i = 0; i < 1000; i++)
+ {
+ row = gtk_list_box_row_new ();
+ s = g_strdup_printf ("%d", i);
+ label = gtk_label_new (s);
+ gtk_list_box_row_set_child (GTK_LIST_BOX_ROW (row), label);
+
+ gtk_list_box_insert (GTK_LIST_BOX (list), row, -1);
+ rows[i] = row;
+ }
+
+ for (i = 0; i < 1000; i++)
+ {
+ row = (GtkWidget *) gtk_list_box_get_row_at_index (list, i);
+ g_assert_true (row == rows[i]);
+ }
+
+ row = (GtkWidget *) gtk_list_box_get_row_at_index (list, 1001);
+ g_assert_null (row);
+
+ g_object_unref (list);
+}
+
int
main (int argc, char *argv[])
{
@@ -450,6 +487,7 @@ main (int argc, char *argv[])
g_test_add_func ("/listbox/multi-selection", test_multi_selection);
g_test_add_func ("/listbox/filter", test_filter);
g_test_add_func ("/listbox/header", test_header);
+ g_test_add_func ("/listbox/sequencial-access", test_sequencial_access);
return g_test_run ();
}