[gtk/wip/otte/sortlistmodel: 114/121] sortlistmodel: Test that the model is stable



commit 7c7de1e8af29a2c8b5e4c54f1b8639cf72c91ee7
Author: Benjamin Otte <otte redhat com>
Date:   Thu Jul 16 15:16:30 2020 +0200

    sortlistmodel: Test that the model is stable
    
    Stability is measured relative to the child model, not relative to the
    previous sorter.

 testsuite/gtk/sortlistmodel.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
---
diff --git a/testsuite/gtk/sortlistmodel.c b/testsuite/gtk/sortlistmodel.c
index e7a3004d9d..cffabd9baf 100644
--- a/testsuite/gtk/sortlistmodel.c
+++ b/testsuite/gtk/sortlistmodel.c
@@ -394,6 +394,28 @@ test_remove_items (void)
   g_object_unref (sort);
 }
 
+static void
+test_stability (void)
+{
+  GtkSortListModel *sort;
+  GListStore *store;
+  GtkSorter *sorter;
+  
+  store = new_store ((guint[]) { 11, 31, 21, 1, 0 });
+  sort = new_model (store);
+  assert_model (sort, "1 11 21 31");
+  assert_changes (sort, "");
+
+  sorter = gtk_custom_sorter_new (compare_modulo, GUINT_TO_POINTER (5), NULL);
+  gtk_sort_list_model_set_sorter (sort, sorter);
+  g_object_unref (sorter);
+  assert_model (sort, "11 31 21 1");
+  assert_changes (sort, "0-4+4");
+
+  g_object_unref (store);
+  g_object_unref (sort);
+}
+
 int
 main (int argc, char *argv[])
 {
@@ -411,6 +433,7 @@ main (int argc, char *argv[])
   g_test_add_func ("/sortlistmodel/add_items", test_add_items);
   g_test_add_func ("/sortlistmodel/remove_items", test_remove_items);
 #endif
+  g_test_add_func ("/sortlistmodel/stability", test_stability);
 
   return g_test_run ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]