mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-22 20:36:50 +03:00
Add test_autocomplete_single() test
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This commit is contained in:
parent
d0345661d8
commit
fa9c933ce0
@ -35,6 +35,9 @@
|
|||||||
#include "lib/strutil.h"
|
#include "lib/strutil.h"
|
||||||
|
|
||||||
#include "src/vfs/local/local.c"
|
#include "src/vfs/local/local.c"
|
||||||
|
#ifdef HAVE_CHARSET
|
||||||
|
#include "src/selcodepage.h"
|
||||||
|
#endif
|
||||||
#include "src/editor/editwidget.h"
|
#include "src/editor/editwidget.h"
|
||||||
#include "src/editor/editcmd_dialogs.h"
|
#include "src/editor/editcmd_dialogs.h"
|
||||||
|
|
||||||
@ -184,7 +187,9 @@ static const struct test_autocomplete_ds
|
|||||||
{
|
{
|
||||||
off_t input_position;
|
off_t input_position;
|
||||||
const char *input_system_code_page;
|
const char *input_system_code_page;
|
||||||
|
int input_source_codepage_id;
|
||||||
const char *input_editor_code_page;
|
const char *input_editor_code_page;
|
||||||
|
int input_display_codepage_id;
|
||||||
const char *input_completed_word;
|
const char *input_completed_word;
|
||||||
|
|
||||||
int expected_max_len;
|
int expected_max_len;
|
||||||
@ -196,7 +201,9 @@ static const struct test_autocomplete_ds
|
|||||||
{ /* 0. */
|
{ /* 0. */
|
||||||
111,
|
111,
|
||||||
"KOI8-R",
|
"KOI8-R",
|
||||||
|
0,
|
||||||
"UTF-8",
|
"UTF-8",
|
||||||
|
1,
|
||||||
"Ñ<EFBFBD>ъйцукен",
|
"Ñ<EFBFBD>ъйцукен",
|
||||||
|
|
||||||
16,
|
16,
|
||||||
@ -204,10 +211,12 @@ static const struct test_autocomplete_ds
|
|||||||
107,
|
107,
|
||||||
"Ñ<EFBFBD>ъйцукен"
|
"Ñ<EFBFBD>ъйцукен"
|
||||||
},
|
},
|
||||||
{ /* 0. */
|
{ /* 1. */
|
||||||
147,
|
147,
|
||||||
"KOI8-R",
|
|
||||||
"UTF-8",
|
"UTF-8",
|
||||||
|
1,
|
||||||
|
"KOI8-R",
|
||||||
|
0,
|
||||||
"ÜßÊÃÕËÅÎ",
|
"ÜßÊÃÕËÅÎ",
|
||||||
|
|
||||||
8,
|
8,
|
||||||
@ -225,8 +234,15 @@ START_PARAMETRIZED_TEST (test_autocomplete, test_autocomplete_ds)
|
|||||||
{
|
{
|
||||||
/* given */
|
/* given */
|
||||||
editcmd_dialog_completion_show__return_value = g_strdup (data->input_completed_word);
|
editcmd_dialog_completion_show__return_value = g_strdup (data->input_completed_word);
|
||||||
cp_display = data->input_system_code_page;
|
|
||||||
|
|
||||||
|
mc_global.source_codepage = data->input_source_codepage_id;
|
||||||
|
mc_global.display_codepage = data->input_display_codepage_id;
|
||||||
cp_source = data->input_editor_code_page;
|
cp_source = data->input_editor_code_page;
|
||||||
|
cp_display = data->input_system_code_page;
|
||||||
|
|
||||||
|
do_set_codepage (0);
|
||||||
|
edit_set_codeset (test_edit);
|
||||||
|
|
||||||
/* when */
|
/* when */
|
||||||
edit_cursor_move (test_edit, data->input_position);
|
edit_cursor_move (test_edit, data->input_position);
|
||||||
@ -260,6 +276,80 @@ START_PARAMETRIZED_TEST (test_autocomplete, test_autocomplete_ds)
|
|||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
END_PARAMETRIZED_TEST
|
END_PARAMETRIZED_TEST
|
||||||
/* *INDENT-ON* */
|
/* *INDENT-ON* */
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
/* @DataSource("test_autocomplete_single_ds") */
|
||||||
|
/* *INDENT-OFF* */
|
||||||
|
static const struct test_autocomplete_single_ds
|
||||||
|
{
|
||||||
|
off_t input_position;
|
||||||
|
const char *input_system_code_page;
|
||||||
|
int input_source_codepage_id;
|
||||||
|
const char *input_editor_code_page;
|
||||||
|
int input_display_codepage_id;
|
||||||
|
|
||||||
|
int input_completed_word_start_pos;
|
||||||
|
|
||||||
|
const char *expected_completed_word;
|
||||||
|
} test_autocomplete_single_ds[] =
|
||||||
|
{
|
||||||
|
{ /* 0. */
|
||||||
|
155,
|
||||||
|
"UTF-8",
|
||||||
|
1,
|
||||||
|
"KOI8-R",
|
||||||
|
0,
|
||||||
|
|
||||||
|
154,
|
||||||
|
"ÆÙ×Á"
|
||||||
|
},
|
||||||
|
};
|
||||||
|
/* *INDENT-ON* */
|
||||||
|
|
||||||
|
/* @Test(dataSource = "test_autocomplete_single_ds") */
|
||||||
|
/* *INDENT-OFF* */
|
||||||
|
START_PARAMETRIZED_TEST (test_autocomplete_single, test_autocomplete_single_ds)
|
||||||
|
/* *INDENT-ON* */
|
||||||
|
{
|
||||||
|
/* given */
|
||||||
|
mc_global.source_codepage = data->input_source_codepage_id;
|
||||||
|
mc_global.display_codepage = data->input_display_codepage_id;
|
||||||
|
cp_source = data->input_editor_code_page;
|
||||||
|
cp_display = data->input_system_code_page;
|
||||||
|
|
||||||
|
do_set_codepage (0);
|
||||||
|
edit_set_codeset (test_edit);
|
||||||
|
|
||||||
|
/* when */
|
||||||
|
edit_cursor_move (test_edit, data->input_position);
|
||||||
|
edit_complete_word_cmd (test_edit);
|
||||||
|
|
||||||
|
/* then */
|
||||||
|
{
|
||||||
|
off_t i = 0;
|
||||||
|
GString *actual_completed_str;
|
||||||
|
|
||||||
|
actual_completed_str = g_string_new ("");
|
||||||
|
|
||||||
|
while (TRUE)
|
||||||
|
{
|
||||||
|
int chr;
|
||||||
|
|
||||||
|
chr = edit_get_byte (test_edit, data->input_completed_word_start_pos + i++);
|
||||||
|
if (isspace (chr))
|
||||||
|
break;
|
||||||
|
g_string_append_c (actual_completed_str, chr);
|
||||||
|
}
|
||||||
|
mctest_assert_str_eq (actual_completed_str->str, data->expected_completed_word);
|
||||||
|
g_string_free (actual_completed_str, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* *INDENT-OFF* */
|
||||||
|
END_PARAMETRIZED_TEST
|
||||||
|
/* *INDENT-ON* */
|
||||||
|
|
||||||
|
|
||||||
#endif /* HAVE_CHARSET */
|
#endif /* HAVE_CHARSET */
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
@ -278,6 +368,7 @@ main (void)
|
|||||||
/* Add new tests here: *************** */
|
/* Add new tests here: *************** */
|
||||||
#ifdef HAVE_CHARSET
|
#ifdef HAVE_CHARSET
|
||||||
mctest_add_parameterized_test (tc_core, test_autocomplete, test_autocomplete_ds);
|
mctest_add_parameterized_test (tc_core, test_autocomplete, test_autocomplete_ds);
|
||||||
|
mctest_add_parameterized_test (tc_core, test_autocomplete_single, test_autocomplete_single_ds);
|
||||||
#endif /* HAVE_CHARSET */
|
#endif /* HAVE_CHARSET */
|
||||||
/* *********************************** */
|
/* *********************************** */
|
||||||
|
|
||||||
|
@ -14,4 +14,7 @@
|
|||||||
|
|
||||||
Üß
|
Üß
|
||||||
|
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
<EFBFBD>
|
||||||
|
|
||||||
****************** END:editcmd__edit_complete_word_cmd.c
|
****************** END:editcmd__edit_complete_word_cmd.c
|
||||||
|
Loading…
Reference in New Issue
Block a user