2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (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
8 * http://www.tizenopensource.org/license
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.
17 #include <VCalendar.h>
21 #include <sys/types.h>
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__);
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__);
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);
40 utc_vdata_vcard_encode_0() {
46 VObject* pTemp = NULL;
47 VParam* pTmpParam = NULL;
49 struct stat stat_object;
50 VDATA_TEST_TRACE("START");
52 if(lstat("sample.vcf", &stat_object) != 0) {
53 VDATA_TEST_TRACE("error get file status..");
57 if( (buffer = (char*) malloc(stat_object.st_size)) == NULL )
60 VDATA_TEST_TRACE("sample.vcf file size : %d", stat_object.st_size);
62 if( (fp = fopen("sample.vcf", "r")) == NULL )
64 fread(buffer, stat_object.st_size, sizeof(char), fp);
67 VDATA_TEST_TRACE("~~~~~");
69 tree = VCardDecode(buffer);
72 pTmpParam = pTemp->pParam;
75 //VDATA_TEST_TRACE("%d %d",pTemp->property, VCARD_TYPE_PHOTO);
76 temp = pTemp->pszValue[0];
77 VDATA_TEST_TRACE("%s",temp);
79 if (pTemp->pSibling != NULL) {
80 pTemp = pTemp->pSibling;
81 pTmpParam = pTemp->pParam;
88 VDATA_TEST_TRACE("END");
96 /*encode a tree to a buffer*/
97 void utc_vdata_vcard_encode_1()
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");
104 tree = VCardDecode(buffer);
105 tree->pTop->property = 32;
107 char *temp = g_strdup("2.2");;
108 tree->pTop->pszValue[0] = temp;
115 VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
116 buffer = VCardEncode(tree);
118 VCalFreeVTreeMemory(tree);
119 tree = VCardDecode(buffer);
121 VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
122 MT_CHECK_NOT_EQUAL((gchar *)NULL, buffer);
133 /*encode a tree with tree type as vcalendar to a buffer*/
134 void utc_vdata_vcard_encode_2()
136 gchar *buffer = NULL;
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);
142 tree->treeType = VCALENDAR;
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);
159 /*encode a tree with all the vobjects as NULL to a buffer*/
160 void utc_vdata_vcard_encode_3()
162 gchar *buffer = NULL;
165 tree = g_new0(VTree, 1);
166 tree->treeType = VCARD;
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);
181 /*encode a tree with an object having property as very high value to a buffer*/
182 void utc_vdata_vcard_encode_4()
184 gchar *buffer = NULL;
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);
190 tree->pTop->property = 65;
197 buffer = VCardEncode(tree);
199 VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
200 MT_CHECK_NOT_EQUAL((gchar*)NULL, buffer);
202 VCalFreeVTreeMemory(tree);
210 /*encode a NULL tree to a buffer*/
211 void utc_vdata_vcard_encode_5()
213 gchar *buffer = NULL;
216 buffer = VCardEncode(tree);
217 VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
218 MT_CHECK_EQUAL((gchar *)NULL, buffer);
226 /*encode a tree with an object having property but no other value to a buffer*/
227 void utc_vdata_vcard_encode_6()
229 gchar *buffer = NULL;
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);
235 tree->pTop->property = 14;
236 tree->pTop->pszValue[0] = NULL;
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);
254 /*encode a tree with an object having value count greater than actual vales to a buffer*/
255 void utc_vdata_vcard_encode_7()
257 gchar *buffer = NULL;
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);
264 tree->pTop->property = VCARD_TYPE_N;
265 tree->pTop->valueCount = 5;
266 temp = g_strdup( "amit");
267 tree->pTop->pszValue[0] = temp;
275 VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
276 buffer = VCardEncode(tree);
278 VDATA_TEST_TRACE ("call executed buffer is %s\n", buffer);
279 MT_CHECK_NOT_EQUAL((gchar *)NULL, buffer);
280 VCalFreeVTreeMemory(tree);
293 /*encode a tree with tree type as a high value to a buffer*/
294 void utc_vdata_vcard_encode_8()
296 gchar *buffer = NULL;
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");
301 tree = VCardDecode(buffer);
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);