1 /* lib/vfs - test vfs_path_from_str_flags() function 2 3 Copyright (C) 2013-2024 4 Free Software Foundation, Inc. 5 6 Written by: 7 Slava Zanko <slavazanko@gmail.com>, 2013 8 9 This file is part of the Midnight Commander. 10 11 The Midnight Commander is free software: you can redistribute it 12 and/or modify it under the terms of the GNU General Public License as 13 published by the Free Software Foundation, either version 3 of the License, 14 or (at your option) any later version. 15 16 The Midnight Commander is distributed in the hope that it will be useful, 17 but WITHOUT ANY WARRANTY; without even the implied warranty of 18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 GNU General Public License for more details. 20 21 You should have received a copy of the GNU General Public License 22 along with this program. If not, see <http://www.gnu.org/licenses/>. 23 */ 24 25 #define TEST_SUITE_NAME "/lib/vfs" 26 27 #include "tests/mctest.h" 28 29 #include "lib/strutil.h" 30 #include "lib/vfs/xdirentry.h" 31 #include "lib/vfs/path.h" 32 33 #include "src/vfs/local/local.c" 34 35 /* --------------------------------------------------------------------------------------------- */ 36 37 /* @Mock */ 38 const char * 39 mc_config_get_home_dir (void) /* */ 40 { 41 return "/mock/test"; 42 } 43 44 /* --------------------------------------------------------------------------------------------- */ 45 /* @Before */ 46 static void 47 setup (void) /* */ 48 { 49 str_init_strings (NULL); 50 51 vfs_init (); 52 vfs_init_localfs (); 53 vfs_setup_work_dir (); 54 } 55 56 /* --------------------------------------------------------------------------------------------- */ 57 58 /* @After */ 59 static void 60 teardown (void) /* */ 61 { 62 vfs_shut (); 63 str_uninit_strings (); 64 } 65 66 /* --------------------------------------------------------------------------------------------- */ 67 68 /* @DataSource("test_from_to_string_ds") */ 69 /* *INDENT-OFF* */ 70 static const struct test_strip_home_ds 71 { 72 const char *input_string; 73 const char *expected_result; 74 } test_strip_home_ds[] = 75 { 76 { /* 0. */ 77 "/mock/test/some/path", 78 "~/some/path" 79 }, 80 { /* 1. */ 81 "/mock/testttt/some/path", 82 "/mock/testttt/some/path" 83 }, 84 }; 85 /* *INDENT-ON* */ 86 87 /* @Test */ 88 /* *INDENT-OFF* */ 89 START_PARAMETRIZED_TEST (test_strip_home, test_strip_home_ds) /* */ 90 /* *INDENT-ON* */ 91 { 92 /* given */ 93 vfs_path_t *actual_result; 94 95 /* when */ 96 actual_result = vfs_path_from_str_flags (data->input_string, VPF_STRIP_HOME); 97 98 /* then */ 99 mctest_assert_str_eq (actual_result->str, data->expected_result); 100 101 vfs_path_free (actual_result, TRUE); 102 } 103 /* *INDENT-OFF* */ 104 END_PARAMETRIZED_TEST 105 /* *INDENT-ON* */ 106 107 /* --------------------------------------------------------------------------------------------- */ 108 109 int 110 main (void) /* */ 111 { 112 TCase *tc_core; 113 114 tc_core = tcase_create ("Core"); 115 116 tcase_add_checked_fixture (tc_core, setup, teardown); 117 118 /* Add new tests here: *************** */ 119 mctest_add_parameterized_test (tc_core, test_strip_home, test_strip_home_ds); 120 /* *********************************** */ 121 122 return mctest_run_all (tc_core); 123 } 124 125 /* --------------------------------------------------------------------------------------------- */