xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit ab4fabd1b26feaff54c6b96347d96cb108921b62

Extract tests/misc/options_fillchars.c
Out of tests/misc/options.c which got large.
Author: xaizek
Author date (UTC): 2025-12-20 14:49
Committer name: xaizek
Committer date (UTC): 2025-12-20 14:49
Parent(s): f046e6a06b985bdf407bda3d38b9ae0304d4d7b7
Signing key: 99DC5E4DB05F6BE2
Tree: 5fec165e52e5728f24ef64b28a8ca6d7e0409ec1
File Lines added Lines deleted
tests/misc/options.c 0 71
tests/misc/options_fillchars.c 104 0
File tests/misc/options.c changed (mode: 100644) (index 88b80cc12..f557ffc06)
... ... TEST(sorting_is_set_correctly_on_restart)
232 232 assert_int_equal(SK_BY_INAME, lwin.sort_g[0]); assert_int_equal(SK_BY_INAME, lwin.sort_g[0]);
233 233 } }
234 234
235 TEST(fillchars_is_set_on_correct_input)
236 {
237 (void)replace_string(&cfg.vborder_filler, "x");
238 (void)replace_string(&cfg.hborder_filler, "y");
239 (void)replace_string(&cfg.millersep_filler, "z");
240 assert_success(cmds_dispatch("set fillchars=vborder:a,hborder:b,millersep:c",
241 &lwin, CIT_COMMAND));
242 assert_string_equal("a", cfg.vborder_filler);
243 assert_string_equal("b", cfg.hborder_filler);
244 assert_string_equal("c", cfg.millersep_filler);
245 update_string(&cfg.vborder_filler, NULL);
246 update_string(&cfg.hborder_filler, NULL);
247 update_string(&cfg.millersep_filler, NULL);
248 }
249
250 TEST(fillchars_not_changed_on_wrong_input)
251 {
252 (void)replace_string(&cfg.vborder_filler, "x");
253 assert_failure(cmds_dispatch("set fillchars=vorder:a", &lwin, CIT_COMMAND));
254 assert_string_equal("x", cfg.vborder_filler);
255 update_string(&cfg.vborder_filler, NULL);
256 }
257
258 TEST(values_in_fillchars_are_deduplicated)
259 {
260 (void)replace_string(&cfg.vborder_filler, "x");
261
262 assert_success(cmds_dispatch("set fillchars=vborder:a", &lwin, CIT_COMMAND));
263 assert_success(cmds_dispatch("set fillchars+=vborder:b", &lwin, CIT_COMMAND));
264 assert_string_equal("b", cfg.vborder_filler);
265 update_string(&cfg.vborder_filler, NULL);
266
267 vle_tb_clear(vle_err);
268 assert_success(vle_opts_set("fillchars?", OPT_GLOBAL));
269 assert_string_equal(" fillchars=hborder:,millersep:,vborder:b",
270 vle_tb_get_data(vle_err));
271
272 update_string(&cfg.vborder_filler, NULL);
273 }
274
275 TEST(fillchars_can_be_reset)
276 {
277 assert_success(cmds_dispatch("set fillchars=vborder:v,hborder:h,millersep:m",
278 &lwin, CIT_COMMAND));
279
280 assert_success(cmds_dispatch("set fillchars=vborder:v", &lwin, CIT_COMMAND));
281 assert_string_equal("v", cfg.vborder_filler);
282 assert_string_equal("", cfg.hborder_filler);
283 assert_string_equal("", cfg.millersep_filler);
284
285 assert_success(cmds_dispatch("set fillchars=hborder:h", &lwin, CIT_COMMAND));
286 assert_string_equal(" ", cfg.vborder_filler);
287 assert_string_equal("h", cfg.hborder_filler);
288 assert_string_equal("", cfg.millersep_filler);
289
290 assert_success(cmds_dispatch("set fillchars=millersep:m", &lwin,
291 CIT_COMMAND));
292 assert_string_equal(" ", cfg.vborder_filler);
293 assert_string_equal("", cfg.hborder_filler);
294 assert_string_equal("m", cfg.millersep_filler);
295
296 assert_success(cmds_dispatch("set fillchars=", &lwin, CIT_COMMAND));
297 assert_string_equal(" ", cfg.vborder_filler);
298 assert_string_equal("", cfg.hborder_filler);
299 assert_string_equal("", cfg.millersep_filler);
300
301 update_string(&cfg.vborder_filler, NULL);
302 update_string(&cfg.hborder_filler, NULL);
303 update_string(&cfg.millersep_filler, NULL);
304 }
305
306 235 TEST(sizefmt_is_set_on_correct_input) TEST(sizefmt_is_set_on_correct_input)
307 236 { {
308 237 assert_success(cmds_dispatch("set sizefmt=units:si,precision:1", &lwin, assert_success(cmds_dispatch("set sizefmt=units:si,precision:1", &lwin,
File tests/misc/options_fillchars.c added (mode: 100644) (index 000000000..c984b72b7)
1 #include <stic.h>
2
3 #include <test-utils.h>
4
5 #include "../../src/cfg/config.h"
6 #include "../../src/engine/options.h"
7 #include "../../src/engine/text_buffer.h"
8 #include "../../src/utils/str.h"
9 #include "../../src/cmd_core.h"
10 #include "../../src/ui/ui.h"
11
12 SETUP()
13 {
14 cmds_init();
15
16 curr_view = &lwin;
17 other_view = &rwin;
18
19 opt_handlers_setup();
20 }
21
22 TEARDOWN()
23 {
24 opt_handlers_teardown();
25
26 curr_view = NULL;
27 other_view = NULL;
28
29 vle_cmds_reset();
30 }
31
32 TEST(fillchars_is_set_on_correct_input)
33 {
34 (void)replace_string(&cfg.vborder_filler, "x");
35 (void)replace_string(&cfg.hborder_filler, "y");
36 (void)replace_string(&cfg.millersep_filler, "z");
37 assert_success(cmds_dispatch("set fillchars=vborder:a,hborder:b,millersep:c",
38 &lwin, CIT_COMMAND));
39 assert_string_equal("a", cfg.vborder_filler);
40 assert_string_equal("b", cfg.hborder_filler);
41 assert_string_equal("c", cfg.millersep_filler);
42 update_string(&cfg.vborder_filler, NULL);
43 update_string(&cfg.hborder_filler, NULL);
44 update_string(&cfg.millersep_filler, NULL);
45 }
46
47 TEST(fillchars_not_changed_on_wrong_input)
48 {
49 (void)replace_string(&cfg.vborder_filler, "x");
50 assert_failure(cmds_dispatch("set fillchars=vorder:a", &lwin, CIT_COMMAND));
51 assert_string_equal("x", cfg.vborder_filler);
52 update_string(&cfg.vborder_filler, NULL);
53 }
54
55 TEST(values_in_fillchars_are_deduplicated)
56 {
57 (void)replace_string(&cfg.vborder_filler, "x");
58
59 assert_success(cmds_dispatch("set fillchars=vborder:a", &lwin, CIT_COMMAND));
60 assert_success(cmds_dispatch("set fillchars+=vborder:b", &lwin, CIT_COMMAND));
61 assert_string_equal("b", cfg.vborder_filler);
62 update_string(&cfg.vborder_filler, NULL);
63
64 vle_tb_clear(vle_err);
65 assert_success(vle_opts_set("fillchars?", OPT_GLOBAL));
66 assert_string_equal(" fillchars=hborder:,millersep:,vborder:b",
67 vle_tb_get_data(vle_err));
68
69 update_string(&cfg.vborder_filler, NULL);
70 }
71
72 TEST(fillchars_can_be_reset)
73 {
74 assert_success(cmds_dispatch("set fillchars=vborder:v,hborder:h,millersep:m",
75 &lwin, CIT_COMMAND));
76
77 assert_success(cmds_dispatch("set fillchars=vborder:v", &lwin, CIT_COMMAND));
78 assert_string_equal("v", cfg.vborder_filler);
79 assert_string_equal("", cfg.hborder_filler);
80 assert_string_equal("", cfg.millersep_filler);
81
82 assert_success(cmds_dispatch("set fillchars=hborder:h", &lwin, CIT_COMMAND));
83 assert_string_equal(" ", cfg.vborder_filler);
84 assert_string_equal("h", cfg.hborder_filler);
85 assert_string_equal("", cfg.millersep_filler);
86
87 assert_success(cmds_dispatch("set fillchars=millersep:m", &lwin,
88 CIT_COMMAND));
89 assert_string_equal(" ", cfg.vborder_filler);
90 assert_string_equal("", cfg.hborder_filler);
91 assert_string_equal("m", cfg.millersep_filler);
92
93 assert_success(cmds_dispatch("set fillchars=", &lwin, CIT_COMMAND));
94 assert_string_equal(" ", cfg.vborder_filler);
95 assert_string_equal("", cfg.hborder_filler);
96 assert_string_equal("", cfg.millersep_filler);
97
98 update_string(&cfg.vborder_filler, NULL);
99 update_string(&cfg.hborder_filler, NULL);
100 update_string(&cfg.millersep_filler, NULL);
101 }
102
103 /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */
104 /* vim: set cinoptions+=t0 filetype=c : */
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master