[gtk/listmodel-get-item: 4/4] Add tests for empty list models
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/listmodel-get-item: 4/4] Add tests for empty list models
- Date: Fri, 11 Jun 2021 19:39:25 +0000 (UTC)
commit 007cdf8787070f2658ddc39efd111e3c699f7185
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jun 11 15:38:20 2021 -0400
Add tests for empty list models
Test that all our models return NULL for out-of-range
get_item calls, as expected.
testsuite/gtk/filterlistmodel.c | 30 ++++++++++++++++++++++++++++
testsuite/gtk/multiselection.c | 43 +++++++++++++++++++++++++++++++++++++++++
testsuite/gtk/singleselection.c | 22 +++++++++++++++++++++
3 files changed, 95 insertions(+)
---
diff --git a/testsuite/gtk/filterlistmodel.c b/testsuite/gtk/filterlistmodel.c
index fbcae6b3ad..cd109c2e0b 100644
--- a/testsuite/gtk/filterlistmodel.c
+++ b/testsuite/gtk/filterlistmodel.c
@@ -376,6 +376,35 @@ test_incremental (void)
g_object_unref (filter);
}
+static void
+test_empty (void)
+{
+ GtkFilterListModel *filter;
+ GListStore *store;
+ GtkFilter *f;
+
+ filter = gtk_filter_list_model_new (NULL, NULL);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (filter)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (filter), 11));
+
+ store = g_list_store_new (G_TYPE_OBJECT);
+ gtk_filter_list_model_set_model (filter, G_LIST_MODEL (store));
+ g_object_unref (store);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (filter)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (filter), 11));
+
+ f = GTK_FILTER (gtk_every_filter_new ());
+ gtk_filter_list_model_set_filter (filter, f);
+ g_object_unref (f);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (filter)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (filter), 11));
+
+ g_object_unref (filter);
+}
+
int
main (int argc, char *argv[])
{
@@ -389,6 +418,7 @@ main (int argc, char *argv[])
g_test_add_func ("/filterlistmodel/empty_set_filter", test_empty_set_filter);
g_test_add_func ("/filterlistmodel/change_filter", test_change_filter);
g_test_add_func ("/filterlistmodel/incremental", test_incremental);
+ g_test_add_func ("/filterlistmodel/empty", test_empty);
return g_test_run ();
}
diff --git a/testsuite/gtk/multiselection.c b/testsuite/gtk/multiselection.c
index bdc896073b..7117efb4e7 100644
--- a/testsuite/gtk/multiselection.c
+++ b/testsuite/gtk/multiselection.c
@@ -681,6 +681,47 @@ test_set_model (void)
g_object_unref (selection);
}
+static void
+test_empty (void)
+{
+ GtkMultiSelection *selection;
+ GListStore *store;
+
+ selection = gtk_multi_selection_new (NULL);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (selection)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (selection), 11));
+
+ store = g_list_store_new (G_TYPE_OBJECT);
+ gtk_multi_selection_set_model (selection, G_LIST_MODEL (store));
+ g_object_unref (store);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (selection)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (selection), 11));
+
+ g_object_unref (selection);
+}
+
+static void
+test_empty_filter (void)
+{
+ GtkStringList *stringlist;
+ GtkMultiSelection *selection;
+ GtkSelectionFilterModel *selection_filter;
+
+ stringlist = gtk_string_list_new (NULL);
+ gtk_string_list_append (stringlist, "first item");
+
+ selection = gtk_multi_selection_new (G_LIST_MODEL (stringlist));
+ selection_filter = gtk_selection_filter_model_new (GTK_SELECTION_MODEL (selection));
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (selection_filter)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (selection_filter), 11));
+
+ g_object_unref (selection_filter);
+ g_object_unref (selection);
+}
+
int
main (int argc, char *argv[])
{
@@ -703,6 +744,8 @@ main (int argc, char *argv[])
g_test_add_func ("/multiselection/set_selection", test_set_selection);
g_test_add_func ("/multiselection/selection-filter", test_selection_filter);
g_test_add_func ("/multiselection/set-model", test_set_model);
+ g_test_add_func ("/multiselection/empty", test_empty);
+ g_test_add_func ("/multiselection/selection-filter/empty", test_empty_filter);
return g_test_run ();
}
diff --git a/testsuite/gtk/singleselection.c b/testsuite/gtk/singleselection.c
index 88283c36fc..bb6462cd97 100644
--- a/testsuite/gtk/singleselection.c
+++ b/testsuite/gtk/singleselection.c
@@ -706,6 +706,27 @@ test_set_model (void)
g_object_unref (selection);
}
+static void
+test_empty (void)
+{
+ GtkSingleSelection *selection;
+ GListStore *store;
+
+ selection = gtk_single_selection_new (NULL);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (selection)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (selection), 11));
+
+ store = g_list_store_new (G_TYPE_OBJECT);
+ gtk_single_selection_set_model (selection, G_LIST_MODEL (store));
+ g_object_unref (store);
+
+ g_assert_cmpuint (g_list_model_get_n_items (G_LIST_MODEL (selection)), ==, 0);
+ g_assert_null (g_list_model_get_item (G_LIST_MODEL (selection), 11));
+
+ g_object_unref (selection);
+}
+
int
main (int argc, char *argv[])
{
@@ -726,6 +747,7 @@ main (int argc, char *argv[])
g_test_add_func ("/singleselection/query-range", test_query_range);
g_test_add_func ("/singleselection/changes", test_changes);
g_test_add_func ("/singleselection/set-model", test_set_model);
+ g_test_add_func ("/singleselection/empty", test_empty);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]