diff options
Diffstat (limited to 'test/compose.c')
-rw-r--r-- | test/compose.c | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/test/compose.c b/test/compose.c index 5ba5751..35790a3 100644 --- a/test/compose.c +++ b/test/compose.c @@ -179,7 +179,7 @@ test_seqs(struct xkb_context *ctx) char *path; FILE *file; - path = test_get_path("compose/en_US.UTF-8/Compose"); + path = test_get_path("locale/en_US.UTF-8/Compose"); file = fopen(path, "rb"); assert(file); free(path); @@ -353,7 +353,7 @@ test_state(struct xkb_context *ctx) char *path; FILE *file; - path = test_get_path("compose/en_US.UTF-8/Compose"); + path = test_get_path("locale/en_US.UTF-8/Compose"); file = fopen(path, "rb"); assert(file); free(path); @@ -410,7 +410,7 @@ test_XCOMPOSEFILE(struct xkb_context *ctx) struct xkb_compose_table *table; char *path; - path = test_get_path("compose/en_US.UTF-8/Compose"); + path = test_get_path("locale/en_US.UTF-8/Compose"); setenv("XCOMPOSEFILE", path, 1); free(path); @@ -418,6 +418,8 @@ test_XCOMPOSEFILE(struct xkb_context *ctx) XKB_COMPOSE_COMPILE_NO_FLAGS); assert(table); + unsetenv("XCOMPOSEFILE"); + assert(test_compose_seq(table, XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, @@ -427,6 +429,49 @@ test_XCOMPOSEFILE(struct xkb_context *ctx) } 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) { const char *table_string; @@ -486,7 +531,7 @@ test_include(struct xkb_context *ctx) { char *path, *table_string; - path = test_get_path("compose/en_US.UTF-8/Compose"); + path = test_get_path("locale/en_US.UTF-8/Compose"); assert(path); /* We don't have a mechanism to change the include paths like we @@ -526,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); |