efl

Форк
0
/
elm_code_file_test_load.c 
173 строки · 4.2 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4

5
#include <libgen.h>
6

7
#ifdef _WIN32
8
# include <evil_private.h> /* realpath() */
9
#endif
10

11
#include "elm_suite.h"
12
#include "Elementary.h"
13

14
EFL_START_TEST(elm_code_file_load)
15
{
16
   char *path = TESTS_SRC_DIR "/testfile.txt";
17
   char real[EINA_PATH_MAX];
18
   Elm_Code_File *file;
19
   Elm_Code *code;
20

21
   char *args[] = { "exe" };
22
   elm_init(1, args);
23
   code = elm_code_create();
24
   file = elm_code_file_open(code, path);
25
   ck_assert_ptr_ne(realpath(path, real), NULL);
26

27
   ck_assert_str_eq(ecore_file_file_get(path), elm_code_file_filename_get(file));
28
   ck_assert_str_eq(real, elm_code_file_path_get(file));
29
   elm_code_file_close(file);
30
   elm_code_free(code);
31
   elm_shutdown();
32
}
33
EFL_END_TEST
34

35
EFL_START_TEST(elm_code_file_load_lines)
36
{
37
   char *path = TESTS_SRC_DIR "/testfile.txt";
38
   Elm_Code_File *file;
39
   Elm_Code *code;
40

41
   char *args[] = { "exe" };
42
   elm_init(1, args);
43
   code = elm_code_create();
44
   file = elm_code_file_open(code, path);
45

46
   ck_assert_uint_eq(4, elm_code_file_lines_get(file));
47
   elm_code_file_close(file);
48
   elm_code_free(code);
49
   elm_shutdown();
50
}
51
EFL_END_TEST
52

53
EFL_START_TEST(elm_code_file_load_blank_lines)
54
{
55
   char *path = TESTS_SRC_DIR "/testfile-withblanks.txt";
56
   Elm_Code_File *file;
57
   Elm_Code *code;
58

59
   char *args[] = { "exe" };
60
   elm_init(1, args);
61
   code = elm_code_create();
62
   file = elm_code_file_open(code, path);
63

64
   ck_assert_uint_eq(8, elm_code_file_lines_get(file));
65
   elm_code_file_close(file);
66
   elm_code_free(code);
67
   elm_shutdown();
68
}
69
EFL_END_TEST
70

71
EFL_START_TEST(elm_code_file_load_windows)
72
{
73
   char *path = TESTS_SRC_DIR "/testfile-windows.txt";
74
   Elm_Code_File *file;
75
   Elm_Code *code;
76

77
   char *args[] = { "exe" };
78
   elm_init(1, args);
79
   code = elm_code_create();
80
   file = elm_code_file_open(code, path);
81

82
   ck_assert_uint_eq(4, elm_code_file_lines_get(file));
83
   elm_code_file_close(file);
84
   elm_code_free(code);
85
   elm_shutdown();
86
}
87
EFL_END_TEST
88

89
static void _assert_line_content_eq(const char *content, Elm_Code_Line *line)
90
{
91
   int length;
92
   int c;
93

94
   length = strlen(content);
95
   ck_assert_int_eq(length, line->length);
96

97
   for (c = 0; c < length; c++)
98
     ck_assert_uint_eq(content[c], line->content[c]);
99
}
100

101
EFL_START_TEST(elm_code_file_load_content)
102
{
103
   char *path = TESTS_SRC_DIR "/testfile.txt";
104
   Elm_Code_File *file;
105
   Elm_Code *code;
106

107
   char *args[] = { "exe" };
108
   elm_init(1, args);
109
   code = elm_code_create();
110
   file = 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));
114
   elm_code_file_close(file);
115
   elm_code_free(code);
116
   elm_shutdown();
117
}
118
EFL_END_TEST
119

120
EFL_START_TEST(elm_code_file_line_ending_unix)
121
{
122
   char *path = TESTS_SRC_DIR "/testfile.txt";
123
   Elm_Code_File *file;
124
   Elm_Code *code;
125
   short len;
126

127
   char *args[] = { "exe" };
128
   elm_init(1, args);
129
   code = elm_code_create();
130
   file = elm_code_file_open(code, path);
131

132
   ck_assert_int_eq(ELM_CODE_FILE_LINE_ENDING_UNIX, elm_code_file_line_ending_get(file));
133
   ck_assert_str_eq("\n", elm_code_file_line_ending_chars_get(file, &len));
134
   ck_assert_int_eq(1, len);
135

136
   elm_code_file_close(file);
137
   elm_code_free(code);
138
   elm_shutdown();
139
}
140
EFL_END_TEST
141

142
EFL_START_TEST(elm_code_file_line_ending_windows)
143
{
144
   char *path = TESTS_SRC_DIR "/testfile-windows.txt";
145
   Elm_Code_File *file;
146
   Elm_Code *code;
147
   short len;
148

149
   char *args[] = { "exe" };
150
   elm_init(1, args);
151
   code = elm_code_create();
152
   file = elm_code_file_open(code, path);
153

154
   ck_assert_int_eq(ELM_CODE_FILE_LINE_ENDING_WINDOWS, elm_code_file_line_ending_get(file));
155
   ck_assert_str_eq("\r\n", elm_code_file_line_ending_chars_get(file, &len));
156
   ck_assert_int_eq(2, len);
157

158
   elm_code_file_close(file);
159
   elm_code_free(code);
160
   elm_shutdown();
161
}
162
EFL_END_TEST
163

164
void elm_code_file_test_load(TCase *tc)
165
{
166
   tcase_add_test(tc, elm_code_file_load);
167
   tcase_add_test(tc, elm_code_file_load_lines);
168
   tcase_add_test(tc, elm_code_file_load_blank_lines);
169
   tcase_add_test(tc, elm_code_file_load_windows);
170
   tcase_add_test(tc, elm_code_file_load_content);
171
   tcase_add_test(tc, elm_code_file_line_ending_unix);
172
   tcase_add_test(tc, elm_code_file_line_ending_windows);
173
}
174

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.