forked from enlightenment/efl
148 lines
4.0 KiB
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);
|
|
}
|