efl
173 строки · 4.2 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4
5#include <libgen.h>6
7#ifdef _WIN328# include <evil_private.h> /* realpath() */9#endif10
11#include "elm_suite.h"12#include "Elementary.h"13
14EFL_START_TEST(elm_code_file_load)15{
16char *path = TESTS_SRC_DIR "/testfile.txt";17char real[EINA_PATH_MAX];18Elm_Code_File *file;19Elm_Code *code;20
21char *args[] = { "exe" };22elm_init(1, args);23code = elm_code_create();24file = elm_code_file_open(code, path);25ck_assert_ptr_ne(realpath(path, real), NULL);26
27ck_assert_str_eq(ecore_file_file_get(path), elm_code_file_filename_get(file));28ck_assert_str_eq(real, elm_code_file_path_get(file));29elm_code_file_close(file);30elm_code_free(code);31elm_shutdown();32}
33EFL_END_TEST
34
35EFL_START_TEST(elm_code_file_load_lines)36{
37char *path = TESTS_SRC_DIR "/testfile.txt";38Elm_Code_File *file;39Elm_Code *code;40
41char *args[] = { "exe" };42elm_init(1, args);43code = elm_code_create();44file = elm_code_file_open(code, path);45
46ck_assert_uint_eq(4, elm_code_file_lines_get(file));47elm_code_file_close(file);48elm_code_free(code);49elm_shutdown();50}
51EFL_END_TEST
52
53EFL_START_TEST(elm_code_file_load_blank_lines)54{
55char *path = TESTS_SRC_DIR "/testfile-withblanks.txt";56Elm_Code_File *file;57Elm_Code *code;58
59char *args[] = { "exe" };60elm_init(1, args);61code = elm_code_create();62file = elm_code_file_open(code, path);63
64ck_assert_uint_eq(8, elm_code_file_lines_get(file));65elm_code_file_close(file);66elm_code_free(code);67elm_shutdown();68}
69EFL_END_TEST
70
71EFL_START_TEST(elm_code_file_load_windows)72{
73char *path = TESTS_SRC_DIR "/testfile-windows.txt";74Elm_Code_File *file;75Elm_Code *code;76
77char *args[] = { "exe" };78elm_init(1, args);79code = elm_code_create();80file = elm_code_file_open(code, path);81
82ck_assert_uint_eq(4, elm_code_file_lines_get(file));83elm_code_file_close(file);84elm_code_free(code);85elm_shutdown();86}
87EFL_END_TEST
88
89static void _assert_line_content_eq(const char *content, Elm_Code_Line *line)90{
91int length;92int c;93
94length = strlen(content);95ck_assert_int_eq(length, line->length);96
97for (c = 0; c < length; c++)98ck_assert_uint_eq(content[c], line->content[c]);99}
100
101EFL_START_TEST(elm_code_file_load_content)102{
103char *path = TESTS_SRC_DIR "/testfile.txt";104Elm_Code_File *file;105Elm_Code *code;106
107char *args[] = { "exe" };108elm_init(1, args);109code = elm_code_create();110file = elm_code_file_open(code, path);111
112_assert_line_content_eq("line2", elm_code_file_line_get(file, 2));113_assert_line_content_eq("another line", elm_code_file_line_get(file, 4));114elm_code_file_close(file);115elm_code_free(code);116elm_shutdown();117}
118EFL_END_TEST
119
120EFL_START_TEST(elm_code_file_line_ending_unix)121{
122char *path = TESTS_SRC_DIR "/testfile.txt";123Elm_Code_File *file;124Elm_Code *code;125short len;126
127char *args[] = { "exe" };128elm_init(1, args);129code = elm_code_create();130file = elm_code_file_open(code, path);131
132ck_assert_int_eq(ELM_CODE_FILE_LINE_ENDING_UNIX, elm_code_file_line_ending_get(file));133ck_assert_str_eq("\n", elm_code_file_line_ending_chars_get(file, &len));134ck_assert_int_eq(1, len);135
136elm_code_file_close(file);137elm_code_free(code);138elm_shutdown();139}
140EFL_END_TEST
141
142EFL_START_TEST(elm_code_file_line_ending_windows)143{
144char *path = TESTS_SRC_DIR "/testfile-windows.txt";145Elm_Code_File *file;146Elm_Code *code;147short len;148
149char *args[] = { "exe" };150elm_init(1, args);151code = elm_code_create();152file = elm_code_file_open(code, path);153
154ck_assert_int_eq(ELM_CODE_FILE_LINE_ENDING_WINDOWS, elm_code_file_line_ending_get(file));155ck_assert_str_eq("\r\n", elm_code_file_line_ending_chars_get(file, &len));156ck_assert_int_eq(2, len);157
158elm_code_file_close(file);159elm_code_free(code);160elm_shutdown();161}
162EFL_END_TEST
163
164void elm_code_file_test_load(TCase *tc)165{
166tcase_add_test(tc, elm_code_file_load);167tcase_add_test(tc, elm_code_file_load_lines);168tcase_add_test(tc, elm_code_file_load_blank_lines);169tcase_add_test(tc, elm_code_file_load_windows);170tcase_add_test(tc, elm_code_file_load_content);171tcase_add_test(tc, elm_code_file_line_ending_unix);172tcase_add_test(tc, elm_code_file_line_ending_windows);173}
174