File tests/commands/misc.c changed (mode: 100644) (index 3693b9a70..ddeca6ccb) |
... |
... |
TEST(locate_command) |
755 |
755 |
assert_string_equal("Nothing to repeat", ui_sb_last()); |
assert_string_equal("Nothing to repeat", ui_sb_last()); |
756 |
756 |
} |
} |
757 |
757 |
|
|
758 |
|
TEST(regedit, IF(not_windows)) |
|
759 |
|
{ |
|
760 |
|
create_executable(SANDBOX_PATH "/script"); |
|
761 |
|
make_file(SANDBOX_PATH "/script", |
|
762 |
|
"#!/bin/sh\n" |
|
763 |
|
"sed 's/from/to/' < \"$3\" > \"$3_out\"\n" |
|
764 |
|
"mv \"$3_out\" \"$3\"\n"); |
|
765 |
|
|
|
766 |
|
char vi_cmd[PATH_MAX + 1]; |
|
767 |
|
make_abs_path(vi_cmd, sizeof(vi_cmd), SANDBOX_PATH, "script", NULL); |
|
768 |
|
update_string(&cfg.vi_command, vi_cmd); |
|
769 |
|
|
|
770 |
|
ui_sb_msg(""); |
|
771 |
|
assert_failure(cmds_dispatch("regedit abc", &lwin, CIT_COMMAND)); |
|
772 |
|
assert_string_equal("Invalid argument: abc", ui_sb_last()); |
|
773 |
|
assert_failure(cmds_dispatch("regedit _", &lwin, CIT_COMMAND)); |
|
774 |
|
assert_string_equal("Cannot modify blackhole register.", ui_sb_last()); |
|
775 |
|
assert_failure(cmds_dispatch("regedit %", &lwin, CIT_COMMAND)); |
|
776 |
|
assert_string_equal("Register with given name does not exist.", ui_sb_last()); |
|
777 |
|
|
|
778 |
|
regs_append('a', "/path/before"); |
|
779 |
|
regs_append('a', "/path/from-1"); |
|
780 |
|
regs_append('a', "/path/from-2"); |
|
781 |
|
regs_append('a', "/path/to-2"); |
|
782 |
|
regs_append('a', "/path/this-was-after"); |
|
783 |
|
|
|
784 |
|
assert_success(cmds_dispatch("regedit a", &lwin, CIT_COMMAND)); |
|
785 |
|
|
|
786 |
|
/* Result should be sorted and without duplicates. */ |
|
787 |
|
const reg_t *reg = regs_find('a'); |
|
788 |
|
assert_int_equal(4, reg->nfiles); |
|
789 |
|
assert_string_equal("/path/before", reg->files[0]); |
|
790 |
|
assert_string_equal("/path/this-was-after", reg->files[1]); |
|
791 |
|
assert_string_equal("/path/to-1", reg->files[2]); |
|
792 |
|
assert_string_equal("/path/to-2", reg->files[3]); |
|
793 |
|
|
|
794 |
|
remove_file(SANDBOX_PATH "/script"); |
|
795 |
|
} |
|
796 |
|
|
|
797 |
|
TEST(regedit_normalizes_paths, IF(not_windows)) |
|
798 |
|
{ |
|
799 |
|
create_executable(SANDBOX_PATH "/script"); |
|
800 |
|
make_file(SANDBOX_PATH "/script", |
|
801 |
|
"#!/bin/sh\n" |
|
802 |
|
"sed 's/from/to/' < \"$3\" > \"$3_out\"\n" |
|
803 |
|
"mv \"$3_out\" \"$3\"\n"); |
|
804 |
|
|
|
805 |
|
char vi_cmd[PATH_MAX + 1]; |
|
806 |
|
make_abs_path(vi_cmd, sizeof(vi_cmd), SANDBOX_PATH, "script", NULL); |
|
807 |
|
update_string(&cfg.vi_command, vi_cmd); |
|
808 |
|
|
|
809 |
|
strcpy(lwin.curr_dir, sandbox); |
|
810 |
|
|
|
811 |
|
regs_append(DEFAULT_REG_NAME, "/abs/path/from-1"); |
|
812 |
|
regs_append(DEFAULT_REG_NAME, "from-2"); |
|
813 |
|
|
|
814 |
|
assert_success(cmds_dispatch("regedit", &lwin, CIT_COMMAND)); |
|
815 |
|
|
|
816 |
|
/* Result should contain only absolute paths. */ |
|
817 |
|
const reg_t *reg = regs_find(DEFAULT_REG_NAME); |
|
818 |
|
assert_int_equal(2, reg->nfiles); |
|
819 |
|
int rel_idx = (ends_with(reg->files[0], "/to-2") ? 0 : 1); |
|
820 |
|
assert_string_equal("/abs/path/to-1", reg->files[1 - rel_idx]); |
|
821 |
|
assert_string_ends_with("/to-2", reg->files[rel_idx]); |
|
822 |
|
assert_true(is_path_absolute(reg->files[0])); |
|
823 |
|
assert_true(is_path_absolute(reg->files[1])); |
|
824 |
|
|
|
825 |
|
remove_file(SANDBOX_PATH "/script"); |
|
826 |
|
} |
|
827 |
|
|
|
828 |
758 |
static void |
static void |
829 |
759 |
strings_list_is(const strlist_t expected, const strlist_t actual) |
strings_list_is(const strlist_t expected, const strlist_t actual) |
830 |
760 |
{ |
{ |
File tests/commands/regedit.c added (mode: 100644) (index 000000000..90a31a2c2) |
|
1 |
|
#include <stic.h> |
|
2 |
|
|
|
3 |
|
#include <test-utils.h> |
|
4 |
|
|
|
5 |
|
#include "../../src/cfg/config.h" |
|
6 |
|
#include "../../src/compat/fs_limits.h" |
|
7 |
|
#include "../../src/engine/cmds.h" |
|
8 |
|
#include "../../src/ui/statusbar.h" |
|
9 |
|
#include "../../src/ui/ui.h" |
|
10 |
|
#include "../../src/utils/path.h" |
|
11 |
|
#include "../../src/utils/str.h" |
|
12 |
|
#include "../../src/cmd_core.h" |
|
13 |
|
#include "../../src/registers.h" |
|
14 |
|
|
|
15 |
|
SETUP() |
|
16 |
|
{ |
|
17 |
|
view_setup(&lwin); |
|
18 |
|
curr_view = &lwin; |
|
19 |
|
|
|
20 |
|
conf_setup(); |
|
21 |
|
cmds_init(); |
|
22 |
|
regs_init(); |
|
23 |
|
} |
|
24 |
|
|
|
25 |
|
TEARDOWN() |
|
26 |
|
{ |
|
27 |
|
view_teardown(&lwin); |
|
28 |
|
curr_view = NULL; |
|
29 |
|
|
|
30 |
|
conf_teardown(); |
|
31 |
|
vle_cmds_reset(); |
|
32 |
|
regs_reset(); |
|
33 |
|
} |
|
34 |
|
|
|
35 |
|
TEST(regedit, IF(not_windows)) |
|
36 |
|
{ |
|
37 |
|
create_executable(SANDBOX_PATH "/script"); |
|
38 |
|
make_file(SANDBOX_PATH "/script", |
|
39 |
|
"#!/bin/sh\n" |
|
40 |
|
"sed 's/from/to/' < \"$3\" > \"$3_out\"\n" |
|
41 |
|
"mv \"$3_out\" \"$3\"\n"); |
|
42 |
|
|
|
43 |
|
char vi_cmd[PATH_MAX + 1]; |
|
44 |
|
make_abs_path(vi_cmd, sizeof(vi_cmd), SANDBOX_PATH, "script", NULL); |
|
45 |
|
update_string(&cfg.vi_command, vi_cmd); |
|
46 |
|
|
|
47 |
|
ui_sb_msg(""); |
|
48 |
|
assert_failure(cmds_dispatch("regedit abc", &lwin, CIT_COMMAND)); |
|
49 |
|
assert_string_equal("Invalid argument: abc", ui_sb_last()); |
|
50 |
|
assert_failure(cmds_dispatch("regedit _", &lwin, CIT_COMMAND)); |
|
51 |
|
assert_string_equal("Cannot modify blackhole register.", ui_sb_last()); |
|
52 |
|
assert_failure(cmds_dispatch("regedit %", &lwin, CIT_COMMAND)); |
|
53 |
|
assert_string_equal("Register with given name does not exist.", ui_sb_last()); |
|
54 |
|
|
|
55 |
|
regs_append('a', "/path/before"); |
|
56 |
|
regs_append('a', "/path/from-1"); |
|
57 |
|
regs_append('a', "/path/from-2"); |
|
58 |
|
regs_append('a', "/path/to-2"); |
|
59 |
|
regs_append('a', "/path/this-was-after"); |
|
60 |
|
|
|
61 |
|
assert_success(cmds_dispatch("regedit a", &lwin, CIT_COMMAND)); |
|
62 |
|
|
|
63 |
|
/* Result should be sorted and without duplicates. */ |
|
64 |
|
const reg_t *reg = regs_find('a'); |
|
65 |
|
assert_int_equal(4, reg->nfiles); |
|
66 |
|
assert_string_equal("/path/before", reg->files[0]); |
|
67 |
|
assert_string_equal("/path/this-was-after", reg->files[1]); |
|
68 |
|
assert_string_equal("/path/to-1", reg->files[2]); |
|
69 |
|
assert_string_equal("/path/to-2", reg->files[3]); |
|
70 |
|
|
|
71 |
|
remove_file(SANDBOX_PATH "/script"); |
|
72 |
|
} |
|
73 |
|
|
|
74 |
|
TEST(regedit_normalizes_paths, IF(not_windows)) |
|
75 |
|
{ |
|
76 |
|
create_executable(SANDBOX_PATH "/script"); |
|
77 |
|
make_file(SANDBOX_PATH "/script", |
|
78 |
|
"#!/bin/sh\n" |
|
79 |
|
"sed 's/from/to/' < \"$3\" > \"$3_out\"\n" |
|
80 |
|
"mv \"$3_out\" \"$3\"\n"); |
|
81 |
|
|
|
82 |
|
char vi_cmd[PATH_MAX + 1]; |
|
83 |
|
make_abs_path(vi_cmd, sizeof(vi_cmd), SANDBOX_PATH, "script", NULL); |
|
84 |
|
update_string(&cfg.vi_command, vi_cmd); |
|
85 |
|
|
|
86 |
|
make_abs_path(lwin.curr_dir, sizeof(lwin.curr_dir), SANDBOX_PATH, "", NULL); |
|
87 |
|
|
|
88 |
|
regs_append(DEFAULT_REG_NAME, "/abs/path/from-1"); |
|
89 |
|
regs_append(DEFAULT_REG_NAME, "from-2"); |
|
90 |
|
|
|
91 |
|
assert_success(cmds_dispatch("regedit", &lwin, CIT_COMMAND)); |
|
92 |
|
|
|
93 |
|
/* Result should contain only absolute paths. */ |
|
94 |
|
const reg_t *reg = regs_find(DEFAULT_REG_NAME); |
|
95 |
|
assert_int_equal(2, reg->nfiles); |
|
96 |
|
int rel_idx = (ends_with(reg->files[0], "/to-2") ? 0 : 1); |
|
97 |
|
assert_string_equal("/abs/path/to-1", reg->files[1 - rel_idx]); |
|
98 |
|
assert_string_ends_with("/to-2", reg->files[rel_idx]); |
|
99 |
|
assert_true(is_path_absolute(reg->files[0])); |
|
100 |
|
assert_true(is_path_absolute(reg->files[1])); |
|
101 |
|
|
|
102 |
|
remove_file(SANDBOX_PATH "/script"); |
|
103 |
|
} |
|
104 |
|
|
|
105 |
|
/* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */ |
|
106 |
|
/* vim: set cinoptions+=t0 filetype=c : */ |