| File tests/misc/flist_reload.c changed (mode: 100644) (index 0eb304ea0..db6df5dda) |
| 1 |
1 |
#include <stic.h> |
#include <stic.h> |
| 2 |
2 |
|
|
|
3 |
|
#include <unistd.h> /* chdir() rmdir() */ |
|
4 |
|
|
| 3 |
5 |
#include <stddef.h> /* NULL */ |
#include <stddef.h> /* NULL */ |
| 4 |
|
#include <string.h> /* memset() */ |
|
| 5 |
6 |
|
|
| 6 |
7 |
#include <test-utils.h> |
#include <test-utils.h> |
| 7 |
8 |
|
|
| 8 |
|
#include "../../src/cfg/config.h" |
|
| 9 |
|
#include "../../src/compat/os.h" |
|
| 10 |
|
#include "../../src/compat/fs_limits.h" |
|
| 11 |
9 |
#include "../../src/ui/ui.h" |
#include "../../src/ui/ui.h" |
| 12 |
|
#include "../../src/utils/fs.h" |
|
| 13 |
|
#include "../../src/utils/str.h" |
|
| 14 |
10 |
#include "../../src/filelist.h" |
#include "../../src/filelist.h" |
| 15 |
11 |
|
|
| 16 |
12 |
static view_t *const view = &lwin; |
static view_t *const view = &lwin; |
| 17 |
13 |
|
|
| 18 |
14 |
SETUP() |
SETUP() |
| 19 |
15 |
{ |
{ |
| 20 |
|
char cwd[PATH_MAX + 1]; |
|
| 21 |
|
|
|
| 22 |
|
assert_success(chdir(SANDBOX_PATH)); |
|
| 23 |
|
|
|
| 24 |
|
assert_true(get_cwd(cwd, sizeof(cwd)) == cwd); |
|
| 25 |
|
|
|
| 26 |
16 |
view_setup(view); |
view_setup(view); |
| 27 |
|
copy_str(view->curr_dir, sizeof(view->curr_dir), cwd); |
|
|
17 |
|
make_abs_path(view->curr_dir, sizeof(view->curr_dir), SANDBOX_PATH, "", NULL); |
|
18 |
|
assert_success(chdir(view->curr_dir)); |
| 28 |
19 |
|
|
| 29 |
|
assert_success(os_mkdir("0", 0000)); |
|
| 30 |
|
assert_success(os_mkdir("1", 0000)); |
|
| 31 |
|
assert_success(os_mkdir("2", 0000)); |
|
| 32 |
|
assert_success(os_mkdir("3", 0000)); |
|
| 33 |
|
assert_success(os_mkdir("4", 0000)); |
|
| 34 |
|
assert_success(os_mkdir("5", 0000)); |
|
|
20 |
|
create_dir("0"); |
|
21 |
|
create_dir("1"); |
|
22 |
|
create_dir("2"); |
|
23 |
|
create_dir("3"); |
|
24 |
|
create_dir("4"); |
|
25 |
|
create_dir("5"); |
| 35 |
26 |
|
|
| 36 |
|
populate_dir_list(view, 0); |
|
|
27 |
|
populate_dir_list(view, /*reload=*/0); |
| 37 |
28 |
} |
} |
| 38 |
29 |
|
|
| 39 |
30 |
TEARDOWN() |
TEARDOWN() |
| 40 |
31 |
{ |
{ |
| 41 |
32 |
view_teardown(view); |
view_teardown(view); |
| 42 |
33 |
|
|
|
34 |
|
/* Some of these files won't exist depending on the last test. */ |
| 43 |
35 |
(void)rmdir("0"); |
(void)rmdir("0"); |
| 44 |
36 |
(void)rmdir("1"); |
(void)rmdir("1"); |
| 45 |
37 |
(void)rmdir("2"); |
(void)rmdir("2"); |
| |
| ... |
... |
TEARDOWN() |
| 51 |
43 |
TEST(exact_match_is_preferred) |
TEST(exact_match_is_preferred) |
| 52 |
44 |
{ |
{ |
| 53 |
45 |
view->list_pos = 2; |
view->list_pos = 2; |
| 54 |
|
(void)rmdir("0"); |
|
| 55 |
|
(void)rmdir("1"); |
|
|
46 |
|
remove_dir("0"); |
|
47 |
|
remove_dir("1"); |
| 56 |
48 |
|
|
| 57 |
49 |
assert_string_equal("2", view->dir_entry[view->list_pos].name); |
assert_string_equal("2", view->dir_entry[view->list_pos].name); |
| 58 |
|
populate_dir_list(view, 1); |
|
|
50 |
|
populate_dir_list(view, /*reload=*/1); |
| 59 |
51 |
assert_string_equal("2", view->dir_entry[view->list_pos].name); |
assert_string_equal("2", view->dir_entry[view->list_pos].name); |
| 60 |
52 |
} |
} |
| 61 |
53 |
|
|
| 62 |
54 |
TEST(closest_match_below_is_choosen) |
TEST(closest_match_below_is_choosen) |
| 63 |
55 |
{ |
{ |
| 64 |
56 |
view->list_pos = 1; |
view->list_pos = 1; |
| 65 |
|
(void)rmdir("1"); |
|
| 66 |
|
(void)rmdir("2"); |
|
|
57 |
|
remove_dir("1"); |
|
58 |
|
remove_dir("2"); |
| 67 |
59 |
|
|
| 68 |
60 |
assert_string_equal("1", view->dir_entry[view->list_pos].name); |
assert_string_equal("1", view->dir_entry[view->list_pos].name); |
| 69 |
|
populate_dir_list(view, 1); |
|
|
61 |
|
populate_dir_list(view, /*reload=*/1); |
| 70 |
62 |
assert_string_equal("3", view->dir_entry[view->list_pos].name); |
assert_string_equal("3", view->dir_entry[view->list_pos].name); |
| 71 |
63 |
} |
} |
| 72 |
64 |
|
|
| 73 |
65 |
TEST(closest_match_above_is_choosen) |
TEST(closest_match_above_is_choosen) |
| 74 |
66 |
{ |
{ |
| 75 |
67 |
view->list_pos = 5; |
view->list_pos = 5; |
| 76 |
|
(void)rmdir("5"); |
|
| 77 |
|
(void)rmdir("6"); |
|
|
68 |
|
remove_dir("5"); |
| 78 |
69 |
|
|
| 79 |
70 |
assert_string_equal("5", view->dir_entry[view->list_pos].name); |
assert_string_equal("5", view->dir_entry[view->list_pos].name); |
| 80 |
|
populate_dir_list(view, 1); |
|
|
71 |
|
populate_dir_list(view, /*reload=*/1); |
| 81 |
72 |
assert_string_equal("4", view->dir_entry[view->list_pos].name); |
assert_string_equal("4", view->dir_entry[view->list_pos].name); |
| 82 |
73 |
} |
} |
| 83 |
74 |
|
|
| |
| ... |
... |
TEST(selection_is_preserved) |
| 87 |
78 |
view->dir_entry[1].selected = 1; |
view->dir_entry[1].selected = 1; |
| 88 |
79 |
view->dir_entry[3].selected = 1; |
view->dir_entry[3].selected = 1; |
| 89 |
80 |
view->selected_files = 3; |
view->selected_files = 3; |
| 90 |
|
(void)rmdir("3"); |
|
|
81 |
|
remove_dir("3"); |
| 91 |
82 |
|
|
| 92 |
|
populate_dir_list(view, 1); |
|
|
83 |
|
populate_dir_list(view, /*reload=*/1); |
| 93 |
84 |
assert_true(view->dir_entry[0].selected); |
assert_true(view->dir_entry[0].selected); |
| 94 |
85 |
assert_true(view->dir_entry[1].selected); |
assert_true(view->dir_entry[1].selected); |
| 95 |
86 |
assert_int_equal(2, view->selected_files); |
assert_int_equal(2, view->selected_files); |