This source file includes following definitions.
- setup
- teardown
- START_TEST
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #define TEST_SUITE_NAME "/src/filemanager"
27
28 #include "tests/mctest.h"
29
30 #include "lib/file-entry.h"
31
32 #include "src/vfs/local/local.c"
33
34 #include "src/filemanager/filemanager.c"
35
36 #include "src/filemanager/ext.c"
37
38
39
40
41
42
43 static void
44 setup (void)
45 {
46 str_init_strings (NULL);
47
48 vfs_init ();
49 vfs_init_localfs ();
50 vfs_setup_work_dir ();
51
52 mc_global.mc_run_mode = MC_RUN_FULL;
53 current_panel = g_new0 (WPanel, 1);
54 current_panel->cwd_vpath = vfs_path_from_str ("/home");
55 current_panel->dir.size = DIR_LIST_MIN_SIZE;
56 current_panel->dir.list = g_new0 (file_entry_t, current_panel->dir.size);
57 current_panel->dir.len = 0;
58 }
59
60 static void
61 teardown (void)
62 {
63 vfs_shut ();
64 str_uninit_strings ();
65 }
66
67
68
69 START_TEST (sanitize_variables)
70 {
71
72 vfs_path_t *filename_vpath;
73 GString *actual_string;
74 const char *expected_string;
75
76 current_panel->current = 0;
77 current_panel->dir.len = 3;
78 current_panel->dir.list[0].fname = g_string_new ("selected file.txt");
79 current_panel->dir.list[1].fname = g_string_new ("tagged file1.txt");
80 current_panel->dir.list[1].f.marked = 1;
81 current_panel->dir.list[2].fname = g_string_new ("tagged file2.txt");
82 current_panel->dir.list[2].f.marked = 1;
83
84
85 filename_vpath = vfs_path_from_str ("/tmp/blabla.txt");
86 actual_string = exec_get_export_variables (filename_vpath);
87 vfs_path_free (filename_vpath, TRUE);
88
89
90 expected_string = "\
91 MC_EXT_FILENAME=/tmp/blabla.txt\n\
92 export MC_EXT_FILENAME\n\
93 MC_EXT_BASENAME=selected\\ file.txt\n\
94 export MC_EXT_BASENAME\n\
95 MC_EXT_CURRENTDIR=/home\n\
96 export MC_EXT_CURRENTDIR\n\
97 MC_EXT_SELECTED=\"selected\\ file.txt\"\n\
98 export MC_EXT_SELECTED\n\
99 MC_EXT_ONLYTAGGED=\"tagged\\ file1.txt tagged\\ file2.txt \"\n\
100 export MC_EXT_ONLYTAGGED\n";
101
102 mctest_assert_str_eq (actual_string->str, expected_string);
103
104 g_string_free (actual_string, TRUE);
105 g_string_free (current_panel->dir.list[0].fname, TRUE);
106 g_string_free (current_panel->dir.list[1].fname, TRUE);
107 g_string_free (current_panel->dir.list[2].fname, TRUE);
108 }
109 END_TEST
110
111
112
113 int
114 main (void)
115 {
116 TCase *tc_core;
117
118 tc_core = tcase_create ("Core");
119
120 tcase_add_checked_fixture (tc_core, setup, teardown);
121
122
123 tcase_add_test (tc_core, sanitize_variables);
124
125
126 return mctest_run_all (tc_core);
127 }
128
129