1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
3 #include "glyph-util.h"
5 #include "locale-util.h"
12 _cleanup_strv_free_
char **locales
= NULL
;
15 r
= get_locales(&locales
);
19 STRV_FOREACH(p
, locales
) {
21 assert_se(locale_is_valid(*p
));
25 TEST(locale_is_valid
) {
26 assert_se(locale_is_valid("en_EN.utf8"));
27 assert_se(locale_is_valid("fr_FR.utf8"));
28 assert_se(locale_is_valid("fr_FR@euro"));
29 assert_se(locale_is_valid("fi_FI"));
30 assert_se(locale_is_valid("POSIX"));
31 assert_se(locale_is_valid("C"));
33 assert_se(!locale_is_valid(""));
34 assert_se(!locale_is_valid("/usr/bin/foo"));
35 assert_se(!locale_is_valid("\x01gar\x02 bage\x03"));
38 TEST(locale_is_installed
) {
39 /* Always available */
40 assert_se(locale_is_installed("POSIX") > 0);
41 assert_se(locale_is_installed("C") > 0);
43 /* Might, or might not be installed. */
44 assert_se(locale_is_installed("en_EN.utf8") >= 0);
45 assert_se(locale_is_installed("fr_FR.utf8") >= 0);
46 assert_se(locale_is_installed("fr_FR@euro") >= 0);
47 assert_se(locale_is_installed("fi_FI") >= 0);
49 /* Definitely not valid */
50 assert_se(locale_is_installed("") == 0);
51 assert_se(locale_is_installed("/usr/bin/foo") == 0);
52 assert_se(locale_is_installed("\x01gar\x02 bage\x03") == 0);
54 /* Definitely not installed */
55 assert_se(locale_is_installed("zz_ZZ") == 0);
59 _cleanup_strv_free_
char **kmaps
= NULL
;
62 assert_se(!keymap_is_valid(""));
63 assert_se(!keymap_is_valid("/usr/bin/foo"));
64 assert_se(!keymap_is_valid("\x01gar\x02 bage\x03"));
66 r
= get_keymaps(&kmaps
);
68 return; /* skip test if no keymaps are installed */
73 STRV_FOREACH(p
, kmaps
) {
75 assert_se(keymap_is_valid(*p
));
78 assert_se(keymap_is_valid("uk"));
79 assert_se(keymap_is_valid("de-nodeadkeys"));
80 assert_se(keymap_is_valid("ANSI-dvorak"));
81 assert_se(keymap_is_valid("unicode"));
84 #define dump_glyph(x) log_info(STRINGIFY(x) ": %s", special_glyph(x))
85 TEST(dump_special_glyphs
) {
86 assert_cc(SPECIAL_GLYPH_SPARKLES
+ 1 == _SPECIAL_GLYPH_MAX
);
88 log_info("is_locale_utf8: %s", yes_no(is_locale_utf8()));
90 dump_glyph(SPECIAL_GLYPH_TREE_VERTICAL
);
91 dump_glyph(SPECIAL_GLYPH_TREE_BRANCH
);
92 dump_glyph(SPECIAL_GLYPH_TREE_RIGHT
);
93 dump_glyph(SPECIAL_GLYPH_TREE_SPACE
);
94 dump_glyph(SPECIAL_GLYPH_TREE_TOP
);
95 dump_glyph(SPECIAL_GLYPH_TRIANGULAR_BULLET
);
96 dump_glyph(SPECIAL_GLYPH_BLACK_CIRCLE
);
97 dump_glyph(SPECIAL_GLYPH_WHITE_CIRCLE
);
98 dump_glyph(SPECIAL_GLYPH_MULTIPLICATION_SIGN
);
99 dump_glyph(SPECIAL_GLYPH_CIRCLE_ARROW
);
100 dump_glyph(SPECIAL_GLYPH_BULLET
);
101 dump_glyph(SPECIAL_GLYPH_ARROW_RIGHT
);
102 dump_glyph(SPECIAL_GLYPH_ARROW_UP
);
103 dump_glyph(SPECIAL_GLYPH_ARROW_DOWN
);
104 dump_glyph(SPECIAL_GLYPH_ELLIPSIS
);
105 dump_glyph(SPECIAL_GLYPH_MU
);
106 dump_glyph(SPECIAL_GLYPH_CHECK_MARK
);
107 dump_glyph(SPECIAL_GLYPH_CROSS_MARK
);
108 dump_glyph(SPECIAL_GLYPH_EXTERNAL_LINK
);
109 dump_glyph(SPECIAL_GLYPH_ECSTATIC_SMILEY
);
110 dump_glyph(SPECIAL_GLYPH_HAPPY_SMILEY
);
111 dump_glyph(SPECIAL_GLYPH_SLIGHTLY_HAPPY_SMILEY
);
112 dump_glyph(SPECIAL_GLYPH_NEUTRAL_SMILEY
);
113 dump_glyph(SPECIAL_GLYPH_SLIGHTLY_UNHAPPY_SMILEY
);
114 dump_glyph(SPECIAL_GLYPH_UNHAPPY_SMILEY
);
115 dump_glyph(SPECIAL_GLYPH_DEPRESSED_SMILEY
);
116 dump_glyph(SPECIAL_GLYPH_LOCK_AND_KEY
);
117 dump_glyph(SPECIAL_GLYPH_TOUCH
);
118 dump_glyph(SPECIAL_GLYPH_RECYCLING
);
119 dump_glyph(SPECIAL_GLYPH_DOWNLOAD
);
120 dump_glyph(SPECIAL_GLYPH_SPARKLES
);
123 DEFINE_TEST_MAIN(LOG_INFO
);