From 0ce49daa5f210140413927112da85f207f20ce47 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 6 May 2022 09:09:33 -0400 Subject: [PATCH] testsuite: test new treestore builder functionality Verify that we can nest rows. --- testsuite/gtk/builder.c | 75 ++++++++++++++++++++++++++++++++++- testsuite/gtk/builderparser.c | 8 ++-- 2 files changed, 78 insertions(+), 5 deletions(-) diff --git a/testsuite/gtk/builder.c b/testsuite/gtk/builder.c index e2269dfcf4..88dc7c853a 100644 --- a/testsuite/gtk/builder.c +++ b/testsuite/gtk/builder.c @@ -661,9 +661,34 @@ test_tree_store (void) " " " " ""; + const char buffer4[] = + "" + " " + " " + " " + " " + " " + " " + " " + " " + " Doe" + " John" + " 25" + " " + " 50" + " Dole" + " Johan" + " " + " " + " " + " 19" + " " + " " + " " + ""; GtkBuilder *builder; GObject *store; - GtkTreeIter iter; + GtkTreeIter iter, parent; char *surname, *lastname; int age; @@ -754,6 +779,54 @@ test_tree_store (void) g_assert_false (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter)); g_object_unref (builder); + + builder = builder_new_from_string (buffer4, -1, NULL); + store = gtk_builder_get_object (builder, "treestore1"); + g_assert_true (GTK_IS_TREE_STORE (store)); + g_assert_cmpint (gtk_tree_model_get_n_columns (GTK_TREE_MODEL (store)), ==, 3); + g_assert_cmpint (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 0), ==, G_TYPE_STRING); + g_assert_cmpint (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 1), ==, G_TYPE_STRING); + g_assert_cmpint (gtk_tree_model_get_column_type (GTK_TREE_MODEL (store), 2), ==, G_TYPE_INT); + + g_assert_true (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter)); + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert_cmpstr (surname, ==, "John"); + g_free (surname); + g_assert_cmpstr (lastname, ==, "Doe"); + g_free (lastname); + g_assert_cmpint (age, ==, 25); + parent = iter; + g_assert_true (gtk_tree_model_iter_children (GTK_TREE_MODEL (store), &iter, &parent)); + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert_cmpstr (surname, ==, "Johan"); + g_free (surname); + g_assert_cmpstr (lastname, ==, "Dole"); + g_free (lastname); + g_assert_cmpint (age, ==, 50); + g_assert_false (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter)); + iter = parent; + g_assert_true (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter)); + + gtk_tree_model_get (GTK_TREE_MODEL (store), &iter, + 0, &surname, + 1, &lastname, + 2, &age, + -1); + g_assert_null (surname); + g_assert_null (lastname); + g_assert_cmpint (age, ==, 19); + g_assert_false (gtk_tree_model_iter_next (GTK_TREE_MODEL (store), &iter)); + + g_object_unref (builder); } static void diff --git a/testsuite/gtk/builderparser.c b/testsuite/gtk/builderparser.c index 7f26242d60..66556e2048 100644 --- a/testsuite/gtk/builderparser.c +++ b/testsuite/gtk/builderparser.c @@ -51,7 +51,7 @@ test_file (const char *filename, GString *string) { g_string_append_printf (string, "ERROR: %s %d\n%s\n", g_quark_to_string (error->domain), - error->code, + error->code, error->message); g_error_free (error); } @@ -66,12 +66,12 @@ get_expected_filename (const char *filename) f = g_strdup (filename); p = strstr (f, ".ui"); - if (p) + if (p) *p = 0; expected = g_strconcat (f, ".expected", NULL); - + g_free (f); - + return expected; } -- 2.30.2