summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnestas Kulik <ernestask@gnome.org>2018-03-04 20:51:46 +0200
committerErnestas Kulik <ernestask@gnome.org>2018-03-10 11:06:15 +0200
commit2d05382415efca17cbdb0fc658412648836ea8ba (patch)
tree59cba69ac1fbe0e8429a38d1c914f37020fa4ad4
parentf6e1ad482d629e920d325d44a0b9043f3e16cfca (diff)
downloadlibgd-2d05382415efca17cbdb0fc658412648836ea8ba.tar.gz
Add test for GdTwoLinesRenderer
-rw-r--r--tests/meson.build6
-rw-r--r--tests/test-two-lines-renderer.c89
2 files changed, 93 insertions, 2 deletions
diff --git a/tests/meson.build b/tests/meson.build
index 15981cb..e26c1d3 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -7,7 +7,9 @@ endif
if (get_option('with-main-icon-view') or
get_option('with-main-list-view') or
get_option('with-main-view'))
- executable('test-styled-text-renderer',
- 'test-styled-text-renderer.c',
+ foreach t : ['test-styled-text-renderer', 'test-two-lines-renderer']
+ executable(t, t + '.c', dependencies: libgd_dep)
+ endforeach
+endif
dependencies: libgd_dep)
endif
diff --git a/tests/test-two-lines-renderer.c b/tests/test-two-lines-renderer.c
new file mode 100644
index 0000000..cfb9423
--- /dev/null
+++ b/tests/test-two-lines-renderer.c
@@ -0,0 +1,89 @@
+#include <stdlib.h>
+
+#include <gtk/gtk.h>
+
+#include <libgd/gd-two-lines-renderer.h>
+
+static const gchar *test_data = "Lorem ipsum dolor sit amet, consectetur "
+ "adipiscing elit, sed do eiusmod tempor "
+ "incididunt ut labore et dolore magna aliqua. "
+ "Ut enim ad minim veniam, quis nostrud "
+ "exercitation ullamco laboris nisi ut aliquip "
+ "ex ea commodo consequat. Duis aute irure "
+ "dolor in reprehenderit in voluptate velit "
+ "esse cillum dolore eu fugiat nulla pariatur. "
+ "Excepteur sint occaecat cupidatat non "
+ "proident, sunt in culpa qui officia deserunt "
+ "mollit anim id est laborum.";
+
+static void
+populate_model (GtkListStore *list_store)
+{
+ g_auto (GStrv) data = NULL;
+
+ data = g_strsplit (test_data, " ", -1);
+
+ for (int i = 0; data[i] != NULL; i++)
+ {
+ GtkTreeIter iter;
+
+ gtk_list_store_append (list_store, &iter);
+
+ gtk_list_store_set (list_store, &iter, 0, data[i], -1);
+
+ if (data[i + 1] != NULL)
+ {
+ i++;
+
+ gtk_list_store_set (list_store, &iter, 1, data[i], -1);
+ }
+ }
+}
+
+static void
+on_destroy (GtkWidget *widget,
+ gpointer user_data)
+{
+ gtk_main_quit ();
+}
+
+gint
+main (gint argc,
+ GStrv argv)
+{
+ GtkCellRenderer *cell_renderer;
+ GtkTreeViewColumn *column;
+ g_autoptr (GtkListStore) list_store = NULL;
+ GtkWidget *tree_view;
+ GtkWidget *scrolled_window;
+ GtkWidget *window;
+
+ gtk_init ();
+
+ cell_renderer = gd_two_lines_renderer_new ();
+
+ column = gtk_tree_view_column_new_with_attributes ("Text", cell_renderer,
+ "text", 0,
+ "line-two", 1,
+ NULL);
+
+ list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
+ populate_model (list_store);
+
+ tree_view = gtk_tree_view_new ();
+ gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+ gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (list_store));
+
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ g_signal_connect (window, "destroy", G_CALLBACK (on_destroy), NULL);
+ gtk_container_add (GTK_CONTAINER (window), scrolled_window);
+ gtk_widget_set_size_request (window, 640, 480);
+ gtk_widget_show (window);
+
+ gtk_main ();
+
+ return EXIT_SUCCESS;
+}