Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Moved initialisation of string values to somewhere more appropriate.
[xestiacalendar/.git] / source / tests / xestiacalendar_icaltimezoneload.h
1 // xestiacalendar_icaleventload.h - Xestia Calendar iCalendar Timezone Component Unit Tests
2 //
3 // (c) 2016 Xestia Software Development.
4 //
5 // This file is part of Xestia Calendar.
6 //
7 // Xestia Address Book is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by the
9 // Free Software Foundation, version 3 of the license.
10 //
11 // Xestia Address Book is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License along
17 // with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
19 #include "../objects/calendartimezone/CalendarTimezone.h"
21 TEST(iCalendarTimezone, BasicTests){
23         CalendarTimezoneObject TestTimezone;
24         
25         ASSERT_EQ(CALENDAROBJECTLOAD_MISSING, TestTimezone.LoadFile("iCalendarTimezone-Missing.vcf"));
26         ASSERT_EQ(CALENDAROBJECTLOAD_CANNOTOPEN, TestTimezone.LoadFile("iCalendarTimezone-InvalidPermissions.vcf"));
27         ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTimezone.LoadFile("iCalendarTimezone-Load1.vcf"));
28         
29 }
31 TEST(iCalendarTimezone, ObjectDataTests){
32         
33         CalendarTimezoneObject TestTimezone;
34         ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTimezone.LoadFile("iCalendarTimezone-Load2.vcf"));
35         ASSERT_EQ(CALENDAROBJECTVALID_OK, TestTimezone.ValidBaseObject());
36         
37         // Tests for UID.
38         
39         ASSERT_EQ("Example/Starrgazy", TestTimezone.TimeZoneData);
40         ASSERT_EQ("OTHER=PARAM", TestTimezone.TimeZoneDataTokens);
41         
42         // Tests for LAST-MODIFIED.
43         
44         ASSERT_EQ("20160203T200700Z", TestTimezone.LastModifiedData);
45         ASSERT_EQ("FUTURE=ODD", TestTimezone.LastModifiedTokens);
47         // Tests for TZURL.
48         
49         ASSERT_EQ("http://www.example.com/", TestTimezone.TimeZoneURLData);
50         ASSERT_EQ("URL=YES", TestTimezone.TimeZoneURLTokens);
51         
52         // Tests for the first STANDARD data.
53         
54         std::string DateTimeStartData;
55         std::string TimeZoneOffsetToData;
56         std::string TimeZoneOffsetFromData;
57         
58         if (TestTimezone.TimezoneStandardCollection.size() > 0){
59         
60                 DateTimeStartData = TestTimezone.TimezoneStandardCollection[0].DateTimeStartData;
61         
62         }
64         if (TestTimezone.TimezoneStandardCollection.size() > 0){
65         
66                 TimeZoneOffsetToData = TestTimezone.TimezoneStandardCollection[0].TimeZoneOffsetToData;
67         
68         }
69         
70         if (TestTimezone.TimezoneStandardCollection.size() > 0){
71         
72                 TimeZoneOffsetFromData = TestTimezone.TimezoneStandardCollection[0].TimeZoneOffsetFromData;
73         
74         }
75         
76         ASSERT_EQ("20160204T020000", DateTimeStartData);
77         ASSERT_EQ("-0400", TimeZoneOffsetToData);
78         ASSERT_EQ("-0500", TimeZoneOffsetFromData);
79         
80         // Tests for the second STANDARD data.
81         
82         std::string DateTimeStartTokens;
83         std::string TimeZoneOffsetToTokens;
84         std::string TimeZoneOffsetFromTokens;
85         
86         std::string RecurranceRuleData;
87         std::string RecurranceRuleDataTokens;
88         
89         std::string CommentList;
90         std::string CommentListAltRep;
91         std::string CommentListLanguage;
92         std::string CommentListTokens;
93         
94         std::string RecurranceDateData;
95         std::string RecurranceDateValue;
96         std::string RecurranceDateDataTimeZoneParam;
97         std::string RecurranceDateDataTokens;
98         
99         std::string TimeZoneNameData;
100         std::string TimeZoneNameLanguage;
101         std::string TimeZoneNameTokens;
102         
103         std::string XTokensData;
104         std::string XTokensDataTokens;
105         
106         DateTimeStartData.clear();
107         TimeZoneOffsetToData.clear();
108         TimeZoneOffsetFromData.clear();
109         
110         if (TestTimezone.TimezoneStandardCollection.size() > 1){
111         
112                 DateTimeStartData = TestTimezone.TimezoneStandardCollection[1].DateTimeStartData;
113                 DateTimeStartTokens = TestTimezone.TimezoneStandardCollection[1].DateTimeStartTokens;
114         
115         }
117         if (TestTimezone.TimezoneStandardCollection.size() > 1){
118         
119                 TimeZoneOffsetToData = TestTimezone.TimezoneStandardCollection[1].TimeZoneOffsetToData;
120                 TimeZoneOffsetToTokens = TestTimezone.TimezoneStandardCollection[1].TimeZoneOffsetToTokens;
121         
122         }
123         
124         if (TestTimezone.TimezoneStandardCollection.size() > 1){
125         
126                 TimeZoneOffsetFromData = TestTimezone.TimezoneStandardCollection[1].TimeZoneOffsetFromData;
127                 TimeZoneOffsetFromTokens = TestTimezone.TimezoneStandardCollection[1].TimeZoneOffsetFromTokens;
128         
129         }
130         
131         ASSERT_EQ("20160205T020000", DateTimeStartData);
132         ASSERT_EQ("MEEP=MOO", DateTimeStartTokens);
133         ASSERT_EQ("-0400", TimeZoneOffsetToData);
134         ASSERT_EQ("EXAMPLE=DATA", TimeZoneOffsetToTokens);
135         ASSERT_EQ("-0500", TimeZoneOffsetFromData);
136         ASSERT_EQ("LETS=GO", TimeZoneOffsetFromTokens);
137         
138         // Tests for third STANDARD data.
139         
140         DateTimeStartData.clear();
141         DateTimeStartTokens.clear();
142         TimeZoneOffsetToData.clear();
143         TimeZoneOffsetToTokens.clear();
144         TimeZoneOffsetFromData.clear();
145         TimeZoneOffsetFromTokens.clear();
146         
147         if (TestTimezone.TimezoneStandardCollection.size() > 2){
148         
149                 DateTimeStartData = TestTimezone.TimezoneStandardCollection[2].DateTimeStartData;
150                 DateTimeStartTokens = TestTimezone.TimezoneStandardCollection[2].DateTimeStartTokens;
151         
152         }
154         if (TestTimezone.TimezoneStandardCollection.size() > 2){
155         
156                 TimeZoneOffsetToData = TestTimezone.TimezoneStandardCollection[2].TimeZoneOffsetToData;
157                 TimeZoneOffsetToTokens = TestTimezone.TimezoneStandardCollection[2].TimeZoneOffsetToTokens;
158         
159         }
160         
161         if (TestTimezone.TimezoneStandardCollection.size() > 2){
162         
163                 TimeZoneOffsetFromData = TestTimezone.TimezoneStandardCollection[2].TimeZoneOffsetFromData;
164                 TimeZoneOffsetFromTokens = TestTimezone.TimezoneStandardCollection[2].TimeZoneOffsetFromTokens;
165         
166         }
167         
168         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
169                 TestTimezone.TimezoneStandardCollection[2].CommentList.size() > 0){
170                 
171                 CommentList = TestTimezone.TimezoneStandardCollection[2].CommentList[0];
172                 CommentListAltRep = TestTimezone.TimezoneStandardCollection[2].CommentListAltRep[0];
173                 CommentListLanguage = TestTimezone.TimezoneStandardCollection[2].CommentListLanguage[0];
174                 CommentListTokens = TestTimezone.TimezoneStandardCollection[2].CommentListTokens[0];
175                         
176         }
177         
178         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
179                 TestTimezone.TimezoneStandardCollection[2].RecurranceRuleData.size() > 0){
180                 
181                 RecurranceRuleData = TestTimezone.TimezoneStandardCollection[2].RecurranceRuleData;
182                 RecurranceRuleDataTokens = TestTimezone.TimezoneStandardCollection[2].RecurranceRuleDataTokens;
183                         
184         }
186         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
187                 TestTimezone.TimezoneStandardCollection[2].RecurranceDateData.size() > 0){
188                 
189                 RecurranceDateData = TestTimezone.TimezoneStandardCollection[2].RecurranceDateData[0];
190                 RecurranceDateValue = TestTimezone.TimezoneStandardCollection[2].RecurranceDateDataValue[0];
191                 RecurranceDateDataTimeZoneParam = TestTimezone.TimezoneStandardCollection[2].RecurranceDateDataTimeZoneParam[0];
192                 RecurranceDateDataTokens = TestTimezone.TimezoneStandardCollection[2].RecurranceDateDataTokens[0];
193                         
194         }
195         
196         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
197                 TestTimezone.TimezoneStandardCollection[2].TimeZoneNameData.size() > 0){
198                 
199                 TimeZoneNameData = TestTimezone.TimezoneStandardCollection[2].TimeZoneNameData[0];
200                 TimeZoneNameLanguage = TestTimezone.TimezoneStandardCollection[2].TimeZoneNameLanguage[0];
201                 TimeZoneNameTokens = TestTimezone.TimezoneStandardCollection[2].TimeZoneNameTokens[0];
202                         
203         }
204         
205         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
206                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 0){
207                 
208                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[0];
209                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[0];
210                         
211         }
212         
213         ASSERT_EQ("20160206T020000", DateTimeStartData);
214         ASSERT_EQ("MEEP=MOO", DateTimeStartTokens);
215         ASSERT_EQ("-0400", TimeZoneOffsetToData);
216         ASSERT_EQ("EXAMPLE=DATA", TimeZoneOffsetToTokens);
217         ASSERT_EQ("-0500", TimeZoneOffsetFromData);
218         ASSERT_EQ("LETS=GO", TimeZoneOffsetFromTokens);
220         ASSERT_EQ("Example timezone comment.", CommentList);
221         ASSERT_EQ("null:nodata", CommentListAltRep);
222         ASSERT_EQ("kw", CommentListLanguage);
223         ASSERT_EQ("YO=YOYOS", CommentListTokens);
225         ASSERT_EQ("FREQ=DAILY;COUNT=10", RecurranceRuleData);
226         ASSERT_EQ("YAK=YES", RecurranceRuleDataTokens);
227         
228         ASSERT_EQ("20160205,20160207,20160216,20160305", RecurranceDateData);
229         ASSERT_EQ("DATE", RecurranceDateValue);
230         ASSERT_EQ("Europe/Truro", RecurranceDateDataTimeZoneParam);
231         ASSERT_EQ("BEEP=BOOP", RecurranceDateDataTokens);
233         ASSERT_EQ("Example Timezone Name 1", TimeZoneNameData);
234         ASSERT_EQ("en", TimeZoneNameLanguage);
235         ASSERT_EQ("NOPE=YES", TimeZoneNameTokens);
237         ASSERT_EQ("Example Timezone Name 1", TimeZoneNameData);
238         ASSERT_EQ("en", TimeZoneNameLanguage);
240         ASSERT_EQ("Meep", XTokensData);
241         ASSERT_EQ("X-MOO", XTokensDataTokens);
243         XTokensData.clear();
244         XTokensDataTokens.clear();
246         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
247                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 1){
248                 
249                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[1];
250                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[1];
251                         
252         }
254         ASSERT_EQ("Moop", XTokensData);
255         ASSERT_EQ("X-MOO", XTokensDataTokens);
256         
257         XTokensData.clear();
258         XTokensDataTokens.clear();
259         
260         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
261                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 2){
262                 
263                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[2];
264                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[2];
265                         
266         }
268         ASSERT_EQ("Zaap", XTokensData);
269         ASSERT_EQ("X-MOO;MEEP=YIKES", XTokensDataTokens);
270         
271         XTokensData.clear();
272         XTokensDataTokens.clear();
274         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
275                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 3){
276                 
277                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[3];
278                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[3];
279                         
280         }
282         ASSERT_EQ("Fork", XTokensData);
283         ASSERT_EQ("X-ITEM", XTokensDataTokens);
284         
285         XTokensData.clear();
286         XTokensDataTokens.clear();
287         
288         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
289                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 4){
290                 
291                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[4];
292                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[4];
293                         
294         }
296         ASSERT_EQ("Spoon", XTokensData);
297         ASSERT_EQ("X-ITEM", XTokensDataTokens);
298         
299         XTokensData.clear();
300         XTokensDataTokens.clear();
301         
302         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
303                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 5){
304                 
305                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[5];
306                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[5];
307                         
308         }
310         ASSERT_EQ("Knife", XTokensData);
311         ASSERT_EQ("X-ITEM;DIRTY=NO", XTokensDataTokens);
312         
313         XTokensData.clear();
314         XTokensDataTokens.clear();
316         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
317                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 6){
318                 
319                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[6];
320                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[6];
321                         
322         }
324         ASSERT_EQ("1", XTokensData);
325         ASSERT_EQ("X-NOPE", XTokensDataTokens);
326         
327         XTokensData.clear();
328         XTokensDataTokens.clear();
329         
330         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
331                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 7){
332                 
333                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[7];
334                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[7];
335                         
336         }
338         ASSERT_EQ("2", XTokensData);
339         ASSERT_EQ("X-NOPE", XTokensDataTokens);
340         
341         XTokensData.clear();
342         XTokensDataTokens.clear();
343         
344         if (TestTimezone.TimezoneStandardCollection.size() > 2 && 
345                 TestTimezone.TimezoneStandardCollection[2].XTokensData.size() > 8){
346                 
347                 XTokensData = TestTimezone.TimezoneStandardCollection[2].XTokensData[8];
348                 XTokensDataTokens = TestTimezone.TimezoneStandardCollection[2].XTokensDataTokens[8];
349                         
350         }
352         ASSERT_EQ("3", XTokensData);
353         ASSERT_EQ("X-NOPE;LONG=YES", XTokensDataTokens);
354         
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy