[gtk+] Add test cases for bugs 464173 and 529287
- From: Kristian Rietveld <kristian src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Add test cases for bugs 464173 and 529287
- Date: Sat, 5 Sep 2009 15:25:37 +0000 (UTC)
commit 93b29a9cffe0cd1593948a669535145b4c30644a
Author: Kristian Rietveld <kris gtk org>
Date: Tue Sep 1 13:54:35 2009 +0200
Add test cases for bugs 464173 and 529287
gtk/tests/filtermodel.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 114 insertions(+), 0 deletions(-)
---
diff --git a/gtk/tests/filtermodel.c b/gtk/tests/filtermodel.c
index 29cdc96..dd0b762 100644
--- a/gtk/tests/filtermodel.c
+++ b/gtk/tests/filtermodel.c
@@ -1164,6 +1164,46 @@ specific_bug_364946 (void)
static gboolean
+specific_bug_464173_visible_func (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ gboolean *visible = (gboolean *)data;
+
+ return *visible;
+}
+
+static void
+specific_bug_464173 (void)
+{
+ /* Test case for GNOME Bugzilla bug 464173, test case written
+ * by Andreas Koehler.
+ */
+ GtkTreeStore *model;
+ GtkTreeModelFilter *f_model;
+ GtkTreeIter iter1, iter2;
+ GtkWidget *view;
+ gboolean visible = TRUE;
+
+ model = gtk_tree_store_new (1, G_TYPE_STRING);
+ gtk_tree_store_append (model, &iter1, NULL);
+ gtk_tree_store_set (model, &iter1, 0, "Foo", -1);
+ gtk_tree_store_append (model, &iter2, &iter1);
+ gtk_tree_store_set (model, &iter2, 0, "Bar", -1);
+
+ f_model = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new (GTK_TREE_MODEL(model), NULL));
+ gtk_tree_model_filter_set_visible_func (f_model,
+ specific_bug_464173_visible_func,
+ &visible, NULL);
+
+ view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (f_model));
+
+ visible = FALSE;
+ gtk_tree_model_filter_refilter (f_model);
+}
+
+
+static gboolean
specific_bug_540201_filter_func (GtkTreeModel *model,
GtkTreeIter *iter,
gpointer data)
@@ -1213,6 +1253,76 @@ specific_bug_540201 (void)
gtk_tree_store_set (store, &iter, 0, 22, -1);
}
+
+static gboolean
+specific_bug_549287_visible_func (GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ gboolean result = FALSE;
+
+ result = gtk_tree_model_iter_has_child (model, iter);
+
+ return result;
+}
+
+static void
+specific_bug_549287 (void)
+{
+ /* Test case for GNOME Bugzilla bug 529287, provided by Julient Puydt */
+
+ int i;
+ GtkTreeStore *store;
+ GtkTreeModel *filtered;
+ GtkWidget *view;
+ GtkTreeIter iter;
+ GtkTreeIter *swap, *parent, *child;
+
+ store = gtk_tree_store_new (1, G_TYPE_STRING);
+ filtered = gtk_tree_model_filter_new (GTK_TREE_MODEL (store), NULL);
+ gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (filtered),
+ specific_bug_549287_visible_func,
+ NULL, NULL);
+
+ view = gtk_tree_view_new_with_model (filtered);
+
+ for (i = 0; i < 4; i++)
+ {
+ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter))
+ {
+ parent = gtk_tree_iter_copy (&iter);
+ child = gtk_tree_iter_copy (&iter);
+
+ while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (store),
+ child, parent, 0))
+ {
+
+ swap = parent;
+ parent = child;
+ child = swap;
+ }
+
+ gtk_tree_store_append (store, child, parent);
+ gtk_tree_store_set (store, child,
+ 0, "Something",
+ -1);
+
+ gtk_tree_iter_free (parent);
+ gtk_tree_iter_free (child);
+ }
+ else
+ {
+ gtk_tree_store_append (store, &iter, NULL);
+ gtk_tree_store_set (store, &iter,
+ 0, "Something",
+ -1);
+ }
+
+ /* since we inserted something, we changed the visibility conditions: */
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filtered));
+ }
+}
+
/* main */
int
@@ -1298,8 +1408,12 @@ main (int argc,
specific_bug_346800);
g_test_add_func ("/FilterModel/specific/bug-364946",
specific_bug_364946);
+ g_test_add_func ("/FilterModel/specific/bug-464173",
+ specific_bug_464173);
g_test_add_func ("/FilterModel/specific/bug-540201",
specific_bug_540201);
+ g_test_add_func ("/FilterModel/specific/bug-549287",
+ specific_bug_549287);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]