Modify flora license version.
[platform/core/messaging/msg-service.git] / vobject-engine / test_code / uts_vdata_vcard_encode.c
1 /*
2 * Copyright 2012-2013  Samsung Electronics Co., Ltd
3 *
4 * Licensed under the Flora License, Version 1.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *    http://floralicense.org/license/
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #include <VCalendar.h>
18 #include <VCard.h>
19 #include <VTypes.h>
20 #include <glib.h>
21 #include <sys/types.h>
22 #include <sys/stat.h>
23 #include <unistd.h>
24
25 #define MT_CHECK_EQUAL(arg1, arg2) arg1 != arg2 ? \
26   fprintf(stderr,"[VOBJECT-TEST-CASE] %s %s:%d NOT EQUAL",__FILE__,__FUNCTION__,__LINE__) :\
27   fprintf(stderr,"[VOBJECT-TEST-CASE] %s %s:%d EQUAL",__FILE__,__FUNCTION__,__LINE__);
28
29 #define MT_CHECK_NOT_EQUAL(arg1, arg2) arg1 != arg2 ? \
30   fprintf(stderr,"[VOBJECT-TEST-CASE] %s %s:%d NOT EQUAL",__FILE__,__FUNCTION__,__LINE__) :\
31   fprintf(stderr,"[VOBJECT-TEST-CASE] %s %s:%d EQUAL",__FILE__,__FUNCTION__,__LINE__);
32
33 #define VDATA_TEST_TRACE(fmt, arg...) \
34   do { {fprintf(stderr, "[VOBJECT-TEST-CASE] %s %s:%d: " fmt "\n" ,__FILE__,__FUNCTION__, __LINE__, ##arg);}}while (false);
35
36 #define null NULL
37
38 /* */
39 void
40 utc_vdata_vcard_encode_0() {
41
42         FILE* fp;
43         char* buffer;
44         char* temp;
45         VTree *tree = NULL;
46         VObject*        pTemp = NULL;
47         VParam*         pTmpParam = NULL;
48
49         struct stat stat_object;
50         VDATA_TEST_TRACE("START");
51
52         if(lstat("sample.vcf", &stat_object) != 0) {
53                 VDATA_TEST_TRACE("error get file status..");
54                 return ;
55         }
56
57         if( (buffer = (char*) malloc(stat_object.st_size)) == NULL )
58                 return ;
59
60         VDATA_TEST_TRACE("sample.vcf file size : %d", stat_object.st_size);
61
62         if( (fp = fopen("sample.vcf",  "r")) == NULL )
63                 return ;
64         fread(buffer, stat_object.st_size, sizeof(char), fp);
65         fclose(fp);
66
67         VDATA_TEST_TRACE("~~~~~");
68
69         tree = VCardDecode(buffer);
70
71         pTemp = tree->pTop;
72         pTmpParam = pTemp->pParam;
73
74         while(1) {
75                 //VDATA_TEST_TRACE("%d %d",pTemp->property, VCARD_TYPE_PHOTO);
76                 temp = pTemp->pszValue[0];
77                 VDATA_TEST_TRACE("%s",temp);
78
79                 if (pTemp->pSibling != NULL) {
80                         pTemp = pTemp->pSibling;
81                         pTmpParam = pTemp->pParam;
82                 }
83                 else {
84                         break;
85                 }
86         }
87
88         VDATA_TEST_TRACE("END");
89
90
91         return ;
92
93 }
94
95
96 /*encode a tree to a buffer*/
97 void utc_vdata_vcard_encode_1()
98 {
99         gchar *buffer = NULL;
100         VTree *tree = NULL;
101
102         buffer = g_strdup("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Martin;Stephen\r\nTEL;HOME;VOICE:+1 (210) 555-1357\r\nTEL;HOME;FAX:+1 (210) 555-0864\r\nADR;WORK;PARCEL;POSTAL;DOM:123 Cliff Ave.;Big Town;CA;97531\r\nEND:VCARD");
103
104         tree = VCardDecode(buffer);
105         tree->pTop->property = 32;
106
107         char *temp = g_strdup("2.2");;
108         tree->pTop->pszValue[0] = temp;
109
110         if(buffer != NULL) {
111         g_free(buffer);
112         buffer = NULL;
113         }
114
115         VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
116         buffer = VCardEncode(tree);
117
118         VCalFreeVTreeMemory(tree);
119         tree = VCardDecode(buffer);
120
121         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
122         MT_CHECK_NOT_EQUAL((gchar *)NULL, buffer);
123
124         if(buffer != NULL)
125                 g_free(buffer);
126
127         if(temp != NULL)
128                 g_free(temp);
129
130         buffer = NULL;
131         temp = NULL;
132 }
133 /*encode a tree with tree type as vcalendar to a buffer*/
134 void utc_vdata_vcard_encode_2()
135 {
136         gchar *buffer = NULL;
137         VTree *tree = NULL;
138
139         buffer = g_strdup("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Martin;Stephen\r\nTEL;HOME;VOICE:+1 (210) 555-1357\r\nTEL;HOME;FAX:+1 (210) 555-0864\r\nADR;WORK;PARCEL;POSTAL;DOM:123 Cliff Ave.;Big Town;CA;97531\r\nEND:VCARD");
140         tree = VCardDecode(buffer);
141
142         tree->treeType = VCALENDAR;
143
144         if(buffer != NULL)
145         g_free(buffer);
146         buffer = NULL;
147
148         buffer = VCardEncode(tree);
149         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
150         MT_CHECK_EQUAL((gchar *)NULL, buffer);
151         VCalFreeVTreeMemory(tree);
152
153         if(buffer != NULL)
154                 g_free(buffer);
155
156         buffer = NULL;
157 }
158
159 /*encode a tree with all the vobjects as NULL to a buffer*/
160 void utc_vdata_vcard_encode_3()
161 {
162         gchar *buffer = NULL;
163         VTree *tree = NULL;
164
165         tree = g_new0(VTree, 1);
166         tree->treeType = VCARD;
167         tree->pTop = NULL;
168         tree->pCur = NULL;
169
170         buffer = VCardEncode(tree);
171         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
172         MT_CHECK_NOT_EQUAL((gchar *)NULL, buffer);
173         VCalFreeVTreeMemory(tree);
174
175         if(buffer != NULL)
176                 g_free(buffer);
177
178         buffer = NULL;
179 }
180
181 /*encode a tree with an object having property as very high value to a buffer*/
182 void utc_vdata_vcard_encode_4()
183 {
184         gchar *buffer = NULL;
185         VTree *tree = NULL;
186
187         buffer = g_strdup("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Martin;Stephen\r\nTEL;HOME;VOICE:+1 (210) 555-1357\r\nTEL;HOME;FAX:+1 (210) 555-0864\r\nADR;WORK;PARCEL;POSTAL;DOM:123 Cliff Ave.;Big Town;CA;97531\r\nEND:VCARD");
188         tree = VCardDecode(buffer);
189
190         tree->pTop->property = 65;
191
192         if(buffer != NULL)
193         g_free(buffer);
194
195         buffer = NULL;
196
197         buffer = VCardEncode(tree);
198
199         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
200         MT_CHECK_NOT_EQUAL((gchar*)NULL, buffer);
201
202         VCalFreeVTreeMemory(tree);
203
204         if(buffer != NULL)
205                 g_free(buffer);
206
207         buffer = NULL;
208 }
209
210 /*encode a NULL tree to a buffer*/
211 void utc_vdata_vcard_encode_5()
212 {
213         gchar *buffer = NULL;
214         VTree *tree = NULL;
215
216         buffer = VCardEncode(tree);
217         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
218         MT_CHECK_EQUAL((gchar *)NULL, buffer);
219
220         if(buffer != NULL)
221                 g_free(buffer);
222
223         buffer = NULL;
224 }
225
226 /*encode a tree with an object having property but no other value to a buffer*/
227 void utc_vdata_vcard_encode_6()
228 {
229         gchar *buffer = NULL;
230         VTree *tree = NULL;
231
232         buffer = g_strdup("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Martin;Stephen\r\nTEL;HOME;VOICE:+1 (210) 555-1357\r\nTEL;HOME;FAX:+1 (210) 555-0864\r\nADR;WORK;PARCEL;POSTAL;DOM:123 Cliff Ave.;Big Town;CA;97531\r\nEND:VCARD");
233         tree = VCardDecode(buffer);
234
235         tree->pTop->property = 14;
236         tree->pTop->pszValue[0] = NULL;
237
238         if(buffer != NULL)
239         g_free(buffer);
240
241         buffer = NULL;
242
243         buffer = VCardEncode(tree);
244         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
245         MT_CHECK_NOT_EQUAL((gchar *)NULL, buffer);
246         VCalFreeVTreeMemory(tree);
247
248         if(buffer != NULL)
249                 g_free(buffer);
250
251         buffer = NULL;
252 }
253
254 /*encode a tree with an object having value count greater than actual vales to a buffer*/
255 void utc_vdata_vcard_encode_7()
256 {
257         gchar *buffer = NULL;
258         VTree *tree = NULL;
259         gchar *temp;
260
261         buffer = g_strdup("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Martin;Stephen\r\nTEL;HOME;VOICE:+1 (210) 555-1357\r\nTEL;HOME;FAX:+1 (210) 555-0864\r\nADR;WORK;PARCEL;POSTAL;DOM:123 Cliff Ave.;Big Town;CA;97531\r\nEND:VCARD");
262         tree = VCardDecode(buffer);
263
264         tree->pTop->property = VCARD_TYPE_N;
265         tree->pTop->valueCount = 5;
266         temp = g_strdup( "amit");
267         tree->pTop->pszValue[0] = temp;
268
269
270         if(buffer != NULL)
271         g_free(buffer);
272
273         buffer = NULL;
274
275         VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
276         buffer = VCardEncode(tree);
277
278         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
279         MT_CHECK_NOT_EQUAL((gchar *)NULL, buffer);
280         VCalFreeVTreeMemory(tree);
281
282
283         if(buffer != NULL)
284                 g_free(buffer);
285
286         if(temp != NULL)
287                 g_free(temp);
288
289         buffer = NULL;
290         temp = NULL;
291 }
292
293 /*encode a tree with tree type as a high value to a buffer*/
294 void utc_vdata_vcard_encode_8()
295 {
296         gchar *buffer = NULL;
297         VTree *tree = NULL;
298
299         buffer = g_strdup("BEGIN:VCARD\r\nVERSION:2.1\r\nN:Martin;Stephen\r\nTEL;HOME;VOICE:+1 (210) 555-1357\r\nTEL;HOME;FAX:+1 (210) 555-0864\r\nADR;WORK;PARCEL;POSTAL;DOM:123 Cliff Ave.;Big Town;CA;97531\r\nEND:VCARD");
300
301         tree = VCardDecode(buffer);
302
303         tree->treeType = 15;
304
305         if(buffer != NULL)
306         g_free(buffer);
307
308         buffer = NULL;
309
310         buffer = VCardEncode(tree);
311         VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
312         MT_CHECK_EQUAL((gchar*)NULL, buffer);
313         VCalFreeVTreeMemory(tree);
314
315         if(buffer != NULL)
316                 g_free(buffer);
317
318         buffer = NULL;
319 }
320