1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
3 #include "glyph-util.h"
5 #include "locale-util.h"
10 _cleanup_strv_free_
char **locales
= NULL
;
13 r
= get_locales(&locales
);
17 STRV_FOREACH(p
, locales
) {
19 assert_se(locale_is_valid(*p
));
23 TEST(locale_is_valid
) {
24 assert_se(locale_is_valid("en_EN.utf8"));
25 assert_se(locale_is_valid("fr_FR.utf8"));
26 assert_se(locale_is_valid("fr_FR@euro"));
27 assert_se(locale_is_valid("fi_FI"));
28 assert_se(locale_is_valid("POSIX"));
29 assert_se(locale_is_valid("C"));
31 assert_se(!locale_is_valid(""));
32 assert_se(!locale_is_valid("/usr/bin/foo"));
33 assert_se(!locale_is_valid("\x01gar\x02 bage\x03"));
36 TEST(locale_is_installed
) {
37 /* Always available */
38 assert_se(locale_is_installed("POSIX") > 0);
39 assert_se(locale_is_installed("C") > 0);
41 /* Might, or might not be installed. */
42 assert_se(locale_is_installed("en_EN.utf8") >= 0);
43 assert_se(locale_is_installed("fr_FR.utf8") >= 0);
44 assert_se(locale_is_installed("fr_FR@euro") >= 0);
45 assert_se(locale_is_installed("fi_FI") >= 0);
47 /* Definitely not valid */
48 assert_se(locale_is_installed("") == 0);
49 assert_se(locale_is_installed("/usr/bin/foo") == 0);
50 assert_se(locale_is_installed("\x01gar\x02 bage\x03") == 0);
52 /* Definitely not installed */
53 assert_se(locale_is_installed("zz_ZZ") == 0);
57 _cleanup_strv_free_
char **kmaps
= NULL
;
60 assert_se(!keymap_is_valid(""));
61 assert_se(!keymap_is_valid("/usr/bin/foo"));
62 assert_se(!keymap_is_valid("\x01gar\x02 bage\x03"));
64 r
= get_keymaps(&kmaps
);
66 return; /* skip test if no keymaps are installed */
71 STRV_FOREACH(p
, kmaps
) {
73 assert_se(keymap_is_valid(*p
));
76 assert_se(keymap_is_valid("uk"));
77 assert_se(keymap_is_valid("de-nodeadkeys"));
78 assert_se(keymap_is_valid("ANSI-dvorak"));
79 assert_se(keymap_is_valid("unicode"));
82 #define dump_glyph(x) log_info(STRINGIFY(x) ": %s", glyph(x))
84 assert_cc(GLYPH_HOME
+ 1 == _GLYPH_MAX
);
86 log_info("is_locale_utf8: %s", yes_no(is_locale_utf8()));
88 dump_glyph(GLYPH_TREE_VERTICAL
);
89 dump_glyph(GLYPH_TREE_BRANCH
);
90 dump_glyph(GLYPH_TREE_RIGHT
);
91 dump_glyph(GLYPH_TREE_SPACE
);
92 dump_glyph(GLYPH_TREE_TOP
);
93 dump_glyph(GLYPH_VERTICAL_DOTTED
);
94 dump_glyph(GLYPH_HORIZONTAL_DOTTED
);
95 dump_glyph(GLYPH_HORIZONTAL_FAT
);
96 dump_glyph(GLYPH_TRIANGULAR_BULLET
);
97 dump_glyph(GLYPH_BLACK_CIRCLE
);
98 dump_glyph(GLYPH_WHITE_CIRCLE
);
99 dump_glyph(GLYPH_MULTIPLICATION_SIGN
);
100 dump_glyph(GLYPH_CIRCLE_ARROW
);
101 dump_glyph(GLYPH_BULLET
);
102 dump_glyph(GLYPH_MU
);
103 dump_glyph(GLYPH_CHECK_MARK
);
104 dump_glyph(GLYPH_CROSS_MARK
);
105 dump_glyph(GLYPH_LIGHT_SHADE
);
106 dump_glyph(GLYPH_DARK_SHADE
);
107 dump_glyph(GLYPH_FULL_BLOCK
);
108 dump_glyph(GLYPH_SIGMA
);
109 dump_glyph(GLYPH_ARROW_UP
);
110 dump_glyph(GLYPH_ARROW_DOWN
);
111 dump_glyph(GLYPH_ARROW_LEFT
);
112 dump_glyph(GLYPH_ARROW_RIGHT
);
113 dump_glyph(GLYPH_ELLIPSIS
);
114 dump_glyph(GLYPH_EXTERNAL_LINK
);
115 dump_glyph(GLYPH_ECSTATIC_SMILEY
);
116 dump_glyph(GLYPH_HAPPY_SMILEY
);
117 dump_glyph(GLYPH_SLIGHTLY_HAPPY_SMILEY
);
118 dump_glyph(GLYPH_NEUTRAL_SMILEY
);
119 dump_glyph(GLYPH_SLIGHTLY_UNHAPPY_SMILEY
);
120 dump_glyph(GLYPH_UNHAPPY_SMILEY
);
121 dump_glyph(GLYPH_DEPRESSED_SMILEY
);
122 dump_glyph(GLYPH_LOCK_AND_KEY
);
123 dump_glyph(GLYPH_TOUCH
);
124 dump_glyph(GLYPH_RECYCLING
);
125 dump_glyph(GLYPH_DOWNLOAD
);
126 dump_glyph(GLYPH_SPARKLES
);
127 dump_glyph(GLYPH_LOW_BATTERY
);
128 dump_glyph(GLYPH_WARNING_SIGN
);
129 dump_glyph(GLYPH_COMPUTER_DISK
);
130 dump_glyph(GLYPH_WORLD
);
131 dump_glyph(GLYPH_RED_CIRCLE
);
132 dump_glyph(GLYPH_YELLOW_CIRCLE
);
133 dump_glyph(GLYPH_BLUE_CIRCLE
);
134 dump_glyph(GLYPH_GREEN_CIRCLE
);
135 dump_glyph(GLYPH_SUPERHERO
);
136 dump_glyph(GLYPH_IDCARD
);
137 dump_glyph(GLYPH_HOME
);
140 DEFINE_TEST_MAIN(LOG_INFO
);