1 /* EINA - EFL data type library
2 * Copyright (C) 2010 Gustavo Sverzut Barbieri
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
25 #include "eina_suite.h"
28 START_TEST(str_simple)
32 fail_if(!eina_str_has_prefix("", ""));
34 fail_if(!eina_str_has_prefix("x", "x"));
35 fail_if(!eina_str_has_prefix("xab", "x"));
36 fail_if(!eina_str_has_prefix("xab", "xab"));
38 fail_if(eina_str_has_prefix("x", "xab"));
39 fail_if(eina_str_has_prefix("xab", "xyz"));
40 fail_if(eina_str_has_prefix("", "x"));
41 fail_if(eina_str_has_prefix("X", "x"));
42 fail_if(eina_str_has_prefix("xAb", "X"));
43 fail_if(eina_str_has_prefix("xAb", "xab"));
46 fail_if(!eina_str_has_suffix("", ""));
48 fail_if(!eina_str_has_suffix("x", "x"));
49 fail_if(!eina_str_has_suffix("abx", "x"));
50 fail_if(!eina_str_has_suffix("xab", "xab"));
52 fail_if(eina_str_has_suffix("x", "xab"));
53 fail_if(eina_str_has_suffix("xab", "xyz"));
54 fail_if(eina_str_has_suffix("", "x"));
55 fail_if(eina_str_has_suffix("X", "x"));
56 fail_if(eina_str_has_suffix("aBx", "X"));
57 fail_if(eina_str_has_suffix("xaB", "Xab"));
60 fail_if(!eina_str_has_extension("", ""));
62 fail_if(!eina_str_has_extension("x", "x"));
63 fail_if(!eina_str_has_extension("abx", "x"));
64 fail_if(!eina_str_has_extension("xab", "xab"));
65 fail_if(!eina_str_has_extension("x", "X"));
66 fail_if(!eina_str_has_extension("abx", "X"));
67 fail_if(!eina_str_has_extension("xab", "Xab"));
68 fail_if(!eina_str_has_extension("X", "X"));
69 fail_if(!eina_str_has_extension("aBx", "X"));
70 fail_if(!eina_str_has_extension("xaB", "Xab"));
72 fail_if(eina_str_has_extension("x", "xab"));
73 fail_if(eina_str_has_extension("xab", "xyz"));
74 fail_if(eina_str_has_extension("", "x"));
75 fail_if(eina_str_has_extension("x", "xAb"));
76 fail_if(eina_str_has_extension("xab", "xYz"));
77 fail_if(eina_str_has_extension("", "x"));
79 fail_if(eina_strlen_bounded("abc", 1024) != strlen("abc"));
80 fail_if(eina_strlen_bounded("abc", 2) != (size_t)-1);
89 unsigned int elements;
93 result = eina_str_split_full("nomatch", "", -1, &elements);
94 fail_if(result != NULL);
95 fail_if(elements != 0);
97 result = eina_str_split_full("nomatch", "x", -1, &elements);
98 fail_if(result == NULL);
99 fail_if(elements != 1);
100 fail_if(strcmp(result[0], "nomatch") != 0);
105 result = eina_str_split_full("nomatch", "xyz", -1, &elements);
106 fail_if(result == NULL);
107 fail_if(elements != 1);
108 fail_if(strcmp(result[0], "nomatch") != 0);
113 result = eina_str_split_full("match:match:match", ":", -1, &elements);
114 fail_if(result == NULL);
115 fail_if(elements != 3);
116 for (elements = 0; elements < 3 - 1; elements++)
117 fail_if(strcmp(result[elements], "match") != 0);
122 result = eina_str_split_full("a:b:c", ":", -1, &elements);
123 fail_if(result == NULL);
124 fail_if(elements != 3);
125 fail_if(strcmp(result[0], "a") != 0);
126 fail_if(strcmp(result[1], "b") != 0);
127 fail_if(strcmp(result[2], "c") != 0);
132 result = eina_str_split_full("a:b:", ":", -1, &elements);
133 fail_if(result == NULL);
134 fail_if(elements != 3);
135 fail_if(strcmp(result[0], "a") != 0);
136 fail_if(strcmp(result[1], "b") != 0);
137 fail_if(strcmp(result[2], "") != 0);
142 result = eina_str_split_full(":b:c", ":", -1, &elements);
143 fail_if(result == NULL);
144 fail_if(elements != 3);
145 fail_if(strcmp(result[0], "") != 0);
146 fail_if(strcmp(result[1], "b") != 0);
147 fail_if(strcmp(result[2], "c") != 0);
152 result = eina_str_split_full(":", ":", -1, &elements);
153 fail_if(result == NULL);
154 fail_if(elements != 2);
155 fail_if(strcmp(result[0], "") != 0);
156 fail_if(strcmp(result[1], "") != 0);
161 result = eina_str_split_full("a", "!!!!!!!!!", -1, &elements);
162 fail_if(result == NULL);
163 fail_if(elements != 1);
164 fail_if(strcmp(result[0], "a") != 0);
169 result = eina_str_split_full("aaba", "ab", -1, &elements);
170 fail_if(result == NULL);
171 fail_if(elements != 2);
172 fail_if(strcmp(result[0], "a") != 0);
173 fail_if(strcmp(result[1], "a") != 0);
183 eina_test_str(TCase *tc)
185 tcase_add_test(tc, str_simple);
186 tcase_add_test(tc, str_split);