Changed do_cd() and do_panel() functions
[midnight-commander.git] / tests / src / filemanager / do_panel_cd.c
blob0395dcdd103e00189f5cf49542cbcae600e0c6db
1 /*
2 lib/vfs - manipulate with current directory
4 Copyright (C) 2011
5 The Free Software Foundation, Inc.
7 Written by:
8 Slava Zanko <slavazanko@gmail.com>, 2011
10 This file is part of the Midnight Commander.
12 The Midnight Commander is free software: you can redistribute it
13 and/or modify it under the terms of the GNU General Public License as
14 published by the Free Software Foundation, either version 3 of the License,
15 or (at your option) any later version.
17 The Midnight Commander is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
22 You should have received a copy of the GNU General Public License
23 along with this program. If not, see <http://www.gnu.org/licenses/>.
26 #define TEST_SUITE_NAME "/src/filemanager"
28 #include <config.h>
30 #include <check.h>
32 #include "lib/global.h"
33 #include "src/main.h"
34 #include "src/vfs/local/local.c"
36 #include "src/filemanager/panel.c"
38 #include "do_panel_cd_stub_env.c"
40 static void
41 setup (void)
43 str_init_strings (NULL);
45 vfs_init ();
46 init_localfs ();
47 vfs_setup_work_dir ();
50 static void
51 teardown (void)
53 vfs_shut ();
54 str_uninit_strings ();
57 /* --------------------------------------------------------------------------------------------- */
59 START_TEST (test_do_panel_cd_empty_mean_home)
61 char *cwd;
62 struct WPanel *panel;
63 gboolean ret;
64 vfs_path_t *empty_path;
66 cmdline = command_new (0, 0, 0);
68 panel = g_new0(struct WPanel, 1);
69 panel->cwd_vpath = vfs_path_from_str("/home");
70 panel->lwd_vpath = vfs_path_from_str("/");
71 panel->sort_info.sort_field = g_new0(panel_field_t,1);
73 empty_path = vfs_path_from_str (mc_config_get_home_dir());
74 ret = do_panel_cd (panel, empty_path, cd_parse_command);
75 vfs_path_free (empty_path);
77 fail_unless(ret);
78 cwd = vfs_path_to_str (panel->cwd_vpath);
79 fail_unless(strcmp(cwd, mc_config_get_home_dir ()) == 0);
82 vfs_path_free (panel->cwd_vpath);
83 vfs_path_free (panel->lwd_vpath);
84 g_free ((gpointer) panel->sort_info.sort_field);
85 g_free (panel);
88 END_TEST
90 /* --------------------------------------------------------------------------------------------- */
92 int
93 main (void)
95 int number_failed;
97 Suite *s = suite_create (TEST_SUITE_NAME);
98 TCase *tc_core = tcase_create ("Core");
99 SRunner *sr;
101 tcase_add_checked_fixture (tc_core, setup, teardown);
103 /* Add new tests here: *************** */
104 tcase_add_test (tc_core, test_do_panel_cd_empty_mean_home);
105 /* *********************************** */
107 suite_add_tcase (s, tc_core);
108 sr = srunner_create (s);
109 srunner_set_log (sr, "do_panel_cd.log");
110 srunner_run_all (sr, CK_NORMAL);
111 number_failed = srunner_ntests_failed (sr);
112 srunner_free (sr);
113 return (number_failed == 0) ? 0 : 1;
116 /* --------------------------------------------------------------------------------------------- */