From 8d18d937422a406468e3e5f0ac17125f9137d2d6 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 1 Feb 2021 21:10:44 -0500 Subject: composetable: Add tests for compact table matching Not very exhaustive, just some spot checks. --- testsuite/gtk/composetable.c | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/testsuite/gtk/composetable.c b/testsuite/gtk/composetable.c index 7c0a767e2f..c1608e1af4 100644 --- a/testsuite/gtk/composetable.c +++ b/testsuite/gtk/composetable.c @@ -2,6 +2,7 @@ #include #include "../gtk/gtkcomposetable.h" +#include "../gtk/gtkimcontextsimpleseqs.h" #include "testsuite/testutils.h" static char * @@ -84,6 +85,7 @@ compose_table_compare (gconstpointer data) g_free (expected); } +/* Check matching against a small table */ static void compose_table_match (void) { @@ -151,6 +153,50 @@ compose_table_match (void) g_free (file); } +/* just check some random sequences */ +static void +compose_table_match_compact (void) +{ + const GtkComposeTableCompact table = { + gtk_compose_seqs_compact, + 5, + 30, + 6 + }; + guint16 buffer[8] = { 0, }; + gboolean finish, match, ret; + gunichar ch; + + buffer[0] = GDK_KEY_Multi_key; + + ret = gtk_compose_table_compact_check (&table, buffer, 1, &finish, &match, &ch); + g_assert_true (ret); + g_assert_false (finish); + g_assert_false (match); + g_assert_true (ch == 0); + + buffer[0] = GDK_KEY_a; + buffer[1] = GDK_KEY_b; + buffer[2] = GDK_KEY_c; + + ret = gtk_compose_table_compact_check (&table, buffer, 3, &finish, &match, &ch); + g_assert_false (ret); + g_assert_false (finish); + g_assert_false (match); + g_assert_true (ch == 0); + + buffer[0] = GDK_KEY_Multi_key; + buffer[1] = GDK_KEY_parenleft; + buffer[2] = GDK_KEY_j; + buffer[3] = GDK_KEY_parenright; + + ret = gtk_compose_table_compact_check (&table, buffer, 4, &finish, &match, &ch); + g_assert_true (ret); + g_assert_true (finish); + g_assert_true (match); + g_assert_true (ch == 0x24d9); /* CIRCLED LATIN SMALL LETTER J */ +} + int main (int argc, char *argv[]) { @@ -176,6 +222,7 @@ main (int argc, char *argv[]) g_test_add_data_func ("/compose-table/codepoint", "codepoint", compose_table_compare); g_test_add_data_func ("/compose-table/multi", "multi", compose_table_compare); g_test_add_func ("/compose-table/match", compose_table_match); + g_test_add_func ("/compose-table/match-compact", compose_table_match_compact); return g_test_run (); } -- cgit v1.2.1