[gtksourceview/wip/chergert/gsv-gtk4] tests: make completion test more robust
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/chergert/gsv-gtk4] tests: make completion test more robust
- Date: Tue, 1 Sep 2020 21:03:04 +0000 (UTC)
commit 3de28122409216092675bb6c969ee7c8291627f8
Author: Christian Hergert <chergert redhat com>
Date: Tue Sep 1 14:02:56 2020 -0700
tests: make completion test more robust
tests/test-completion.c | 88 +++++++++++++++++++++++++++----------------------
1 file changed, 48 insertions(+), 40 deletions(-)
---
diff --git a/tests/test-completion.c b/tests/test-completion.c
index db67a809..a5face65 100644
--- a/tests/test-completion.c
+++ b/tests/test-completion.c
@@ -72,14 +72,6 @@ test_proposal_new (void)
return g_object_new (TEST_TYPE_PROPOSAL, NULL);
}
-typedef struct _TestProvider TestProvider;
-typedef struct _TestProviderClass TestProviderClass;
-
-static GtkSourceCompletionWords *word_provider;
-static TestProvider *fixed_provider;
-static TestProvider *random_provider;
-static GMainLoop *main_loop;
-
struct _TestProvider
{
GObject parent;
@@ -104,7 +96,14 @@ struct _TestProviderClass
};
static void test_provider_iface_init (GtkSourceCompletionProviderInterface *iface);
-GType test_provider_get_type (void);
+
+#define TEST_TYPE_PROVIDER (test_provider_get_type())
+G_DECLARE_FINAL_TYPE (TestProvider, test_provider, TEST, PROVIDER, GObject)
+
+static GtkSourceCompletionWords *word_provider;
+static TestProvider *fixed_provider;
+static TestProvider *random_provider;
+static GMainLoop *main_loop;
G_DEFINE_TYPE_WITH_CODE (TestProvider,
test_provider,
@@ -194,46 +193,55 @@ test_provider_display (GtkSourceCompletionProvider *provider,
GtkSourceCompletionProposal *proposal,
GtkSourceCompletionCell *cell)
{
- if (TEST_IS_PROPOSAL (proposal))
- {
- TestProposal *p = TEST_PROPOSAL (proposal);
- GtkSourceCompletionColumn column;
+ TestProposal *p = (TestProposal *)proposal;
+ GtkSourceCompletionColumn column;
- column = gtk_source_completion_cell_get_column (cell);
+ g_assert (TEST_IS_PROVIDER (provider));
+ g_assert (GTK_SOURCE_IS_COMPLETION_CONTEXT (context));
+ g_assert (TEST_IS_PROPOSAL (p));
+ g_assert (GTK_SOURCE_IS_COMPLETION_CELL (cell));
- if (column == GTK_SOURCE_COMPLETION_COLUMN_TYPED_TEXT)
+ column = gtk_source_completion_cell_get_column (cell);
+
+ if (column == GTK_SOURCE_COMPLETION_COLUMN_TYPED_TEXT)
+ {
+ g_assert (p->markup || p->text || p->label);
+
+ if (p->markup)
+ gtk_source_completion_cell_set_markup (cell, p->markup);
+ else if (p->label)
+ gtk_source_completion_cell_set_text (cell, p->label);
+ else
+ gtk_source_completion_cell_set_text (cell, p->text);
+ }
+ else if (column == GTK_SOURCE_COMPLETION_COLUMN_COMMENT ||
+ column == GTK_SOURCE_COMPLETION_COLUMN_DETAILS)
+ {
+ gchar *str = g_strdup (p->info);
+
+ if (str != NULL)
{
- if (p->markup)
- gtk_source_completion_cell_set_markup (cell, p->markup);
- else if (p->label)
- gtk_source_completion_cell_set_text (cell, p->label);
- else
- gtk_source_completion_cell_set_text (cell, p->text);
+ g_strstrip (str);
}
- else if (column == GTK_SOURCE_COMPLETION_COLUMN_COMMENT ||
- column == GTK_SOURCE_COMPLETION_COLUMN_DETAILS)
+
+ if (str != NULL)
{
- if (p->info)
- {
- gchar *str = g_strstrip (g_strdup (p->info));
- gtk_source_completion_cell_set_text (cell, str);
- g_free (str);
- }
- else
- {
- gtk_source_completion_cell_set_text (cell, NULL);
- }
+ gtk_source_completion_cell_set_text (cell, str);
}
- else if (column == GTK_SOURCE_COMPLETION_COLUMN_ICON)
+ else
{
- if (p->icon_name)
- gtk_source_completion_cell_set_icon_name (cell, p->icon_name);
- else if (p->gicon)
- gtk_source_completion_cell_set_gicon (cell, p->gicon);
- else
- gtk_source_completion_cell_set_icon_name (cell, NULL);
+ gtk_source_completion_cell_set_text (cell, NULL);
}
}
+ else if (column == GTK_SOURCE_COMPLETION_COLUMN_ICON)
+ {
+ if (p->icon_name)
+ gtk_source_completion_cell_set_icon_name (cell, p->icon_name);
+ else if (p->gicon)
+ gtk_source_completion_cell_set_gicon (cell, p->gicon);
+ else
+ gtk_source_completion_cell_set_icon_name (cell, NULL);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]