efl/src/tests/elementary/elm_code_test_text.c

148 lines
4.0 KiB
C

#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif
#include "elm_suite.h"
#include "Elementary.h"
#include "elm_code_text.h"
EFL_START_TEST(elm_code_text_get_test)
{
Elm_Code *code;
Elm_Code_File *file;
Elm_Code_Line *line;
const char *str;
unsigned int len;
char *args[] = { "exe" };
elm_init(1, args);
code = elm_code_create();
file = elm_code_file_new(code);
elm_code_file_line_append(file, "test", 4, NULL);
line = elm_code_file_line_get(file, 1);
str = elm_code_line_text_get(line, &len);
ck_assert_strn_eq("test", str, len);
elm_shutdown();
}
EFL_END_TEST
EFL_START_TEST(elm_code_text_insert_test)
{
Elm_Code *code;
Elm_Code_File *file;
Elm_Code_Line *line;
const char *text;
unsigned int length;
char *args[] = { "exe" };
elm_init(1, args);
code = elm_code_create();
file = elm_code_file_new(code);
elm_code_file_line_append(file, "test", 4, NULL);
line = elm_code_file_line_get(file, 1);
elm_code_line_text_insert(line, 4, "ing", 3);
text = elm_code_line_text_get(line, &length);
ck_assert_strn_eq("testing", text, length);
elm_shutdown();
}
EFL_END_TEST
EFL_START_TEST(elm_code_text_contains_test)
{
Elm_Code *code;
Elm_Code_File *file;
Elm_Code_Line *line;
char *args[] = { "exe" };
elm_init(1, args);
code = elm_code_create();
file = elm_code_file_new(code);
elm_code_file_line_append(file, "a test string...", 16, NULL);
line = elm_code_file_line_get(file, 1);
ck_assert_int_eq(EINA_TRUE, elm_code_line_text_contains(line, "test"));
ck_assert_int_eq(EINA_FALSE, elm_code_line_text_contains(line, "text"));
ck_assert_int_eq(EINA_TRUE, elm_code_line_text_contains(line, "a t"));
ck_assert_int_eq(EINA_TRUE, elm_code_line_text_contains(line, "..."));
elm_shutdown();
}
EFL_END_TEST
EFL_START_TEST(elm_code_text_strpos_test)
{
Elm_Code *code;
Elm_Code_File *file;
Elm_Code_Line *line;
char *args[] = { "exe" };
elm_init(1, args);
code = elm_code_create();
file = elm_code_file_new(code);
elm_code_file_line_append(file, "a test string...", 16, NULL);
line = elm_code_file_line_get(file, 1);
ck_assert_int_eq(2, elm_code_line_text_strpos(line, "test", 0));
ck_assert_int_eq(2, elm_code_line_text_strpos(line, "test", 1));
ck_assert_int_eq(2, elm_code_line_text_strpos(line, "test", 2));
ck_assert_int_eq(ELM_CODE_TEXT_NOT_FOUND, elm_code_line_text_strpos(line, "test", 5));
ck_assert_int_eq(ELM_CODE_TEXT_NOT_FOUND, elm_code_line_text_strpos(line, "text", 0));
ck_assert_int_eq(0, elm_code_line_text_strpos(line, "a t", 0));
ck_assert_int_eq(ELM_CODE_TEXT_NOT_FOUND, elm_code_line_text_strpos(line, "a t", 2));
ck_assert_int_eq(13, elm_code_line_text_strpos(line, "...", 0));
elm_shutdown();
}
EFL_END_TEST
EFL_START_TEST(elm_code_text_newline_position_test)
{
short nllen;
const char *unixtext = "a test\nwith newline";
const char *wintext = "a windows\r\nnewline";
char *args[] = { "exe" };
elm_init(1, args);
ck_assert_int_eq(6, elm_code_text_newlinenpos(unixtext, strlen(unixtext), &nllen));
ck_assert_int_eq(1, nllen);
ck_assert_int_eq(9, elm_code_text_newlinenpos(wintext, strlen(wintext), &nllen));
ck_assert_int_eq(2, nllen);
elm_shutdown();
}
EFL_END_TEST
EFL_START_TEST(elm_code_text_is_whitespace_test)
{
const char *text;
char *args[] = { "exe" };
elm_init(1, args);
text = " ";
ck_assert_int_eq(1, elm_code_text_is_whitespace(text, strlen(text)));
text = " \t\t ";
ck_assert_int_eq(1, elm_code_text_is_whitespace(text, strlen(text)));
text = " . ";
ck_assert_int_eq(0, elm_code_text_is_whitespace(text, strlen(text)));
elm_shutdown();
}
EFL_END_TEST
void elm_code_test_text(TCase *tc)
{
tcase_add_test(tc, elm_code_text_get_test);
tcase_add_test(tc, elm_code_text_insert_test);
tcase_add_test(tc, elm_code_text_contains_test);
tcase_add_test(tc, elm_code_text_strpos_test);
tcase_add_test(tc, elm_code_text_newline_position_test);
tcase_add_test(tc, elm_code_text_is_whitespace_test);
}