From 98f07da8952a65aae7974965bee9a2418d71efea Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Sat, 22 May 2021 20:07:06 +0300 Subject: test/compose: add tests for xkb_compose_table_new_from_locale lookup Signed-off-by: Ran Benita --- test/compose.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'test') diff --git a/test/compose.c b/test/compose.c index a64b8cf..35790a3 100644 --- a/test/compose.c +++ b/test/compose.c @@ -428,6 +428,49 @@ test_XCOMPOSEFILE(struct xkb_context *ctx) xkb_compose_table_unref(table); } +static void +test_from_locale(struct xkb_context *ctx) +{ + struct xkb_compose_table *table; + char *path; + + path = test_get_path("locale"); + setenv("XLOCALEDIR", path, 1); + free(path); + + /* Direct directory name match. */ + table = xkb_compose_table_new_from_locale(ctx, "en_US.UTF-8", + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + xkb_compose_table_unref(table); + + /* Direct locale name match. */ + table = xkb_compose_table_new_from_locale(ctx, "C.UTF-8", + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + xkb_compose_table_unref(table); + + /* Alias. */ + table = xkb_compose_table_new_from_locale(ctx, "univ.utf8", + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + xkb_compose_table_unref(table); + + /* Special case - C. */ + table = xkb_compose_table_new_from_locale(ctx, "C", + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + xkb_compose_table_unref(table); + + /* Bogus - not found. */ + table = xkb_compose_table_new_from_locale(ctx, "blabla", + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(!table); + + unsetenv("XLOCALEDIR"); +} + + static void test_modifier_syntax(struct xkb_context *ctx) { @@ -528,6 +571,7 @@ main(int argc, char *argv[]) test_seqs(ctx); test_conflicting(ctx); test_XCOMPOSEFILE(ctx); + test_from_locale(ctx); test_state(ctx); test_modifier_syntax(ctx); test_include(ctx); -- cgit v1.2.1