Modify flora license version.
[platform/core/messaging/msg-service.git] / vobject-engine / test_code / uts_vdata_vcard_decode.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 <VCard.h>
18 #include <VTypes.h>
19 #include <glib.h>
20
21 #define MT_CHECK_EQUAL(arg1, arg2) arg1 != arg2 ? \
22         fprintf(stderr,"[VOBJECT-TEST-CASE] %s %s:%d NOT EQUAL\n",__FILE__,__FUNCTION__,__LINE__) :\
23         fprintf(stderr,"[VOBJECT-TEST-CASE] %s %s:%d EQUAL\n",__FILE__,__FUNCTION__,__LINE__);
24
25 #define VDATA_TEST_TRACE(fmt, arg...) \
26         do { {fprintf(stderr, "[VOBJECT-TEST-CASE] %s %s:%d: " fmt,__FILE__,__FUNCTION__, __LINE__, ##arg);}}while (false);
27
28
29 /** decode a raw buffer to a tree */
30 void utc_vdata_vcard_decode_1()
31 {
32         gchar *buffer = NULL;
33         VTree *tree = NULL;
34
35         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");
36
37         tree = VCardDecode(buffer);
38         VDATA_TEST_TRACE("call executed \n");
39
40         if(!(tree != NULL)) return;
41
42         VDATA_TEST_TRACE("treetype is %d \n", tree->treeType);
43
44         if (!(tree->pTop)){
45                 VDATA_TEST_TRACE("decodeing faili - utc_vdata_vcard_decode_%d",1);
46                 return;
47         }
48         VDATA_TEST_TRACE ("top property is %d \n", tree->pTop->property);
49         VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
50
51         if (tree->pTop->pParam){
52                 VDATA_TEST_TRACE ("top param is %d \n", tree->pTop->pParam->parameter);
53                 VDATA_TEST_TRACE ("top param val is %d \n", tree->pTop->pParam->paramValue);
54         }
55
56         if (tree->pCur){
57                 VDATA_TEST_TRACE ("cur property is %d \n", tree->pCur->property);
58                 VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pCur->pszValue));
59         }
60
61         if (!(tree->pTop->pSibling)){
62                 VDATA_TEST_TRACE("decodeing faili - utc_vdata_vcard_decode_%d",1);
63                 return;
64         }
65
66         VDATA_TEST_TRACE ("sibling not NULL \n");
67         VDATA_TEST_TRACE ("sibling property is %d \n", tree->pTop->pSibling->property);
68         VDATA_TEST_TRACE ("sibling property value is %s \n", *(tree->pTop->pSibling->pszValue));
69
70         if (tree->pTop->pSibling->pParam){
71                 VDATA_TEST_TRACE ("sibling param is %d \n", tree->pTop->pSibling->pParam->parameter);
72                 VDATA_TEST_TRACE ("sibling param val is %d \n", tree->pTop->pSibling->pParam->paramValue);
73         }
74
75         VDATA_TEST_TRACE("decodeing success - utc_vdata_vcard_decode_%d\n",1);
76
77         VObject* pSibling2 = tree->pTop->pSibling->pSibling;
78         if (!pSibling2)
79                 return;
80
81         VDATA_TEST_TRACE ("sibling2 not NULL \n");
82         VDATA_TEST_TRACE ("sibling2 property is %d \n", pSibling2->property);
83         VDATA_TEST_TRACE ("sibling2 property value is %s \n", *(pSibling2->pszValue));
84
85         if (pSibling2->pParam){
86                 VDATA_TEST_TRACE ("sibling param is %d \n", pSibling2->pParam->parameter);
87                 VDATA_TEST_TRACE ("sibling param val is %d \n", pSibling2->pParam->paramValue);
88         }
89
90         if (tree->pTop->pParent)
91                 VDATA_TEST_TRACE ("parent not NULL \n");
92         if (tree->pTop->pChild)
93                 VDATA_TEST_TRACE ("child not NULL \n");
94
95
96         if(buffer != NULL)
97                 g_free(buffer);
98 }
99
100 /** decode a raw buffer without begin token to a tree */
101 void utc_vdata_vcard_decode_2()
102 {
103         gchar *buffer = NULL;
104         VTree *tree = NULL;
105
106         buffer = g_strdup("VERSION: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");
107
108         tree = VCardDecode(buffer);
109         VDATA_TEST_TRACE("call executed \n");
110
111         if(!(tree != NULL)) VDATA_TEST_TRACE("tree is null");
112
113         if(buffer != NULL)
114                 g_free(buffer);
115 }
116
117 /*decode a raw buffer without end token to a tree*/
118 void utc_vdata_vcard_decode_3()
119 {
120         gchar *buffer = NULL;
121         VTree *tree = NULL;
122
123         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");
124
125         VDATA_TEST_TRACE("%s\n", buffer);
126         tree = VCardDecode(buffer);
127         VDATA_TEST_TRACE("call executed \n");
128
129         if(!tree) return;
130
131         VDATA_TEST_TRACE ("treetype is %d \n", tree->treeType);
132
133
134         if(buffer != NULL)
135                 g_free(buffer);
136 }
137 /*decode a raw buffer having invalid version tag to a tree*/
138 void utc_vdata_vcard_decode_4()
139 {
140         gchar *buffer = NULL;
141         VTree *tree = NULL;
142
143         buffer = g_strdup("BEGIN:VCARD\r\nVE: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");
144
145         tree = VCardDecode(buffer);
146
147         VDATA_TEST_TRACE ("call executed \n");
148         VDATA_TEST_TRACE ("treetype is %d \n", tree->treeType);
149
150         if (!(tree->pTop)){
151                 VDATA_TEST_TRACE ("tree->pTop null. \n");
152                 return;
153         }
154
155         VDATA_TEST_TRACE ("top property is %d \n", tree->pTop->property);
156         VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
157
158         MT_CHECK_EQUAL(tree->pTop->property, (int)VCARD_TYPE_N);
159
160
161         if(buffer != NULL)
162                 g_free(buffer);
163 }
164
165 /** decode a raw buffer without having crlf in between two tokens to a tree */
166 void utc_vdata_vcard_decode_5()
167 {
168         gchar *buffer = NULL;
169         VTree *tree = NULL;
170
171         buffer = g_strdup("BEGIN:VCARDVERSION: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");
172
173         tree = VCardDecode(buffer);
174         VDATA_TEST_TRACE ("call executed \n");
175         VDATA_TEST_TRACE ("treetype is %d \n", tree->treeType);
176
177         if (!(tree->pTop)){
178                 VDATA_TEST_TRACE ("tree->pTop null. \n");
179                 return;
180         }
181
182         VDATA_TEST_TRACE ("top property is %d \n", tree->pTop->property);
183         VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
184
185         MT_CHECK_EQUAL(tree->pTop->property, (int)VCARD_TYPE_N);
186
187         if(buffer != NULL)
188                 g_free(buffer);
189 }
190
191 /*decode a raw buffer having some invalid token to a tree*/
192 void utc_vdata_vcard_decode_6()
193 {
194         gchar *buffer = NULL;
195         VTree *tree = NULL;
196
197         buffer = g_strdup("BEGIN:VCARD\r\nVERSIOOOONNNN: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");
198
199         tree = VCardDecode(buffer);
200         VDATA_TEST_TRACE ("call executed \n");
201         VDATA_TEST_TRACE ("treetype is %d \n", tree->treeType);
202
203         if (!(tree->pTop)){
204                 VDATA_TEST_TRACE ("tree->pTop null. \n");
205                 return;
206         }
207
208         VDATA_TEST_TRACE ("top property is %d \n", tree->pTop->property);
209         VDATA_TEST_TRACE ("top property value is %s \n", *(tree->pTop->pszValue));
210
211         MT_CHECK_EQUAL(tree->pTop->property, (int)VCARD_TYPE_N);
212
213         if(buffer != NULL)
214                 g_free(buffer);
215 }
216
217 /*decode a NULL raw buffer to a tree*/
218 void utc_vdata_vcard_decode_7()
219 {
220         gchar *buffer = NULL;
221         VTree *tree = NULL;
222
223         tree = VCardDecode(buffer);
224         VDATA_TEST_TRACE ("call executed \n");
225
226         MT_CHECK_EQUAL((VTree*)NULL, tree);
227
228         if(buffer != NULL)
229                 g_free(buffer);
230 }