1 // xestiacalendar_icaltimezoneload.h - Xestia Calendar iCalendar Timezone Component Unit Tests
3 // (c) 2016-2017 Xestia Software Development.
5 // This file is part of Xestia Calendar.
7 // Xestia Calendar 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.
11 // Xestia Calendar 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.
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 "CalendarTimezone.h"
20 #include <gtest/gtest.h>
22 class iCalendarTimezoneLoadTests : public ::testing::Test
29 virtual void TearDown()
34 TEST_F(iCalendarTimezoneLoadTests, DISABLED_BasicTests){
36 CalendarTimezoneObject testTimezone;
38 ASSERT_EQ(CALENDAROBJECTLOAD_MISSING, testTimezone.LoadFile("iCalendarTimezone-Missing.vcf"));
39 ASSERT_EQ(CALENDAROBJECTLOAD_CANNOTOPEN, testTimezone.LoadFile("iCalendarTimezone-InvalidPermissions.vcf"));
40 ASSERT_EQ(CALENDAROBJECTLOAD_OK, testTimezone.LoadFile("iCalendarTimezone-Load1.vcf"));
44 TEST_F(iCalendarTimezoneLoadTests, ObjectDataTests){
46 CalendarTimezoneObject testTimezone;
47 ASSERT_EQ(CALENDAROBJECTLOAD_OK, testTimezone.LoadFile("iCalendarTimezone-Load2.vcf"));
48 ASSERT_EQ(CALENDAROBJECTVALID_OK, testTimezone.ValidBaseObject());
52 ASSERT_EQ("Example/Starrgazy", testTimezone.timeZoneData);
53 ASSERT_EQ("OTHER=PARAM", testTimezone.timeZoneDataTokens);
55 // Tests for LAST-MODIFIED.
57 ASSERT_EQ("20160203T200700Z", testTimezone.lastModifiedData);
58 ASSERT_EQ("FUTURE=ODD", testTimezone.lastModifiedTokens);
62 ASSERT_EQ("http://www.example.com/", testTimezone.timeZoneURLData);
63 ASSERT_EQ("URL=YES", testTimezone.timeZoneURLTokens);
65 // Tests for the first STANDARD data.
67 std::string dateTimeStartData;
68 std::string timeZoneOffsetToData;
69 std::string timeZoneOffsetFromData;
71 if (testTimezone.timezoneStandardCollection.size() > 0){
73 dateTimeStartData = testTimezone.timezoneStandardCollection[0].dateTimeStartData;
77 if (testTimezone.timezoneStandardCollection.size() > 0){
79 timeZoneOffsetToData = testTimezone.timezoneStandardCollection[0].timeZoneOffsetToData;
83 if (testTimezone.timezoneStandardCollection.size() > 0){
85 timeZoneOffsetFromData = testTimezone.timezoneStandardCollection[0].timeZoneOffsetFromData;
89 ASSERT_EQ("20160204T020000", dateTimeStartData);
90 ASSERT_EQ("-0400", timeZoneOffsetToData);
91 ASSERT_EQ("-0500", timeZoneOffsetFromData);
93 // Tests for the second STANDARD data.
95 std::string dateTimeStartTokens;
96 std::string timeZoneOffsetToTokens;
97 std::string timeZoneOffsetFromTokens;
99 std::string recurranceRuleData;
100 std::string recurranceRuleDataTokens;
102 std::string commentList;
103 std::string commentListAltRep;
104 std::string commentListLanguage;
105 std::string commentListTokens;
107 std::string recurranceDateData;
108 std::string recurranceDateValue;
109 std::string recurranceDateDataTimeZoneParam;
110 std::string recurranceDateDataTokens;
112 std::string timeZoneNameData;
113 std::string timeZoneNameLanguage;
114 std::string timeZoneNameTokens;
116 std::string xTokensData;
117 std::string xTokensDataTokens;
119 dateTimeStartData.clear();
120 timeZoneOffsetToData.clear();
121 timeZoneOffsetFromData.clear();
123 if (testTimezone.timezoneStandardCollection.size() > 1){
125 dateTimeStartData = testTimezone.timezoneStandardCollection[1].dateTimeStartData;
126 dateTimeStartTokens = testTimezone.timezoneStandardCollection[1].dateTimeStartTokens;
130 if (testTimezone.timezoneStandardCollection.size() > 1){
132 timeZoneOffsetToData = testTimezone.timezoneStandardCollection[1].timeZoneOffsetToData;
133 timeZoneOffsetToTokens = testTimezone.timezoneStandardCollection[1].timeZoneOffsetToTokens;
137 if (testTimezone.timezoneStandardCollection.size() > 1){
139 timeZoneOffsetFromData = testTimezone.timezoneStandardCollection[1].timeZoneOffsetFromData;
140 timeZoneOffsetFromTokens = testTimezone.timezoneStandardCollection[1].timeZoneOffsetFromTokens;
144 ASSERT_EQ("20160205T020000", dateTimeStartData);
145 ASSERT_EQ("MEEP=MOO", dateTimeStartTokens);
146 ASSERT_EQ("-0400", timeZoneOffsetToData);
147 ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens);
148 ASSERT_EQ("-0500", timeZoneOffsetFromData);
149 ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens);
151 // Tests for third STANDARD data.
153 dateTimeStartData.clear();
154 dateTimeStartTokens.clear();
155 timeZoneOffsetToData.clear();
156 timeZoneOffsetToTokens.clear();
157 timeZoneOffsetFromData.clear();
158 timeZoneOffsetFromTokens.clear();
160 if (testTimezone.timezoneStandardCollection.size() > 2){
162 dateTimeStartData = testTimezone.timezoneStandardCollection[2].dateTimeStartData;
163 dateTimeStartTokens = testTimezone.timezoneStandardCollection[2].dateTimeStartTokens;
167 if (testTimezone.timezoneStandardCollection.size() > 2){
169 timeZoneOffsetToData = testTimezone.timezoneStandardCollection[2].timeZoneOffsetToData;
170 timeZoneOffsetToTokens = testTimezone.timezoneStandardCollection[2].timeZoneOffsetToTokens;
174 if (testTimezone.timezoneStandardCollection.size() > 2){
176 timeZoneOffsetFromData = testTimezone.timezoneStandardCollection[2].timeZoneOffsetFromData;
177 timeZoneOffsetFromTokens = testTimezone.timezoneStandardCollection[2].timeZoneOffsetFromTokens;
181 if (testTimezone.timezoneStandardCollection.size() > 2 &&
182 testTimezone.timezoneStandardCollection[2].commentList.size() > 0){
184 commentList = testTimezone.timezoneStandardCollection[2].commentList[0];
185 commentListAltRep = testTimezone.timezoneStandardCollection[2].commentListAltRep[0];
186 commentListLanguage = testTimezone.timezoneStandardCollection[2].commentListLanguage[0];
187 commentListTokens = testTimezone.timezoneStandardCollection[2].commentListTokens[0];
191 if (testTimezone.timezoneStandardCollection.size() > 2 &&
192 testTimezone.timezoneStandardCollection[2].recurranceRuleData.size() > 0){
194 recurranceRuleData = testTimezone.timezoneStandardCollection[2].recurranceRuleData;
195 recurranceRuleDataTokens = testTimezone.timezoneStandardCollection[2].recurranceRuleDataTokens;
199 if (testTimezone.timezoneStandardCollection.size() > 2 &&
200 testTimezone.timezoneStandardCollection[2].recurranceDateData.size() > 0){
202 recurranceDateData = testTimezone.timezoneStandardCollection[2].recurranceDateData[0];
203 recurranceDateValue = testTimezone.timezoneStandardCollection[2].recurranceDateDataValue[0];
204 recurranceDateDataTimeZoneParam = testTimezone.timezoneStandardCollection[2].recurranceDateDataTimeZoneParam[0];
205 recurranceDateDataTokens = testTimezone.timezoneStandardCollection[2].recurranceDateDataTokens[0];
209 if (testTimezone.timezoneStandardCollection.size() > 2 &&
210 testTimezone.timezoneStandardCollection[2].timeZoneNameData.size() > 0){
212 timeZoneNameData = testTimezone.timezoneStandardCollection[2].timeZoneNameData[0];
213 timeZoneNameLanguage = testTimezone.timezoneStandardCollection[2].timeZoneNameLanguage[0];
214 timeZoneNameTokens = testTimezone.timezoneStandardCollection[2].timeZoneNameTokens[0];
218 if (testTimezone.timezoneStandardCollection.size() > 2 &&
219 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 0){
221 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[0];
222 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[0];
226 ASSERT_EQ("20160206T020000", dateTimeStartData);
227 ASSERT_EQ("MEEP=MOO", dateTimeStartTokens);
228 ASSERT_EQ("-0400", timeZoneOffsetToData);
229 ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens);
230 ASSERT_EQ("-0500", timeZoneOffsetFromData);
231 ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens);
233 ASSERT_EQ("Example timezone comment.", commentList);
234 ASSERT_EQ("null:nodata", commentListAltRep);
235 ASSERT_EQ("kw", commentListLanguage);
236 ASSERT_EQ("YO=YOYOS", commentListTokens);
238 ASSERT_EQ("FREQ=DAILY;COUNT=10", recurranceRuleData);
239 ASSERT_EQ("YAK=YES", recurranceRuleDataTokens);
241 ASSERT_EQ("20160205,20160207,20160216,20160305", recurranceDateData);
242 ASSERT_EQ("DATE", recurranceDateValue);
243 ASSERT_EQ("Europe/Truro", recurranceDateDataTimeZoneParam);
244 ASSERT_EQ("BEEP=BOOP", recurranceDateDataTokens);
246 ASSERT_EQ("Example Timezone Name 1", timeZoneNameData);
247 ASSERT_EQ("en", timeZoneNameLanguage);
248 ASSERT_EQ("NOPE=YES", timeZoneNameTokens);
250 ASSERT_EQ("Example Timezone Name 1", timeZoneNameData);
251 ASSERT_EQ("en", timeZoneNameLanguage);
253 ASSERT_EQ("Meep", xTokensData);
254 ASSERT_EQ("X-MOO", xTokensDataTokens);
257 xTokensDataTokens.clear();
259 if (testTimezone.timezoneStandardCollection.size() > 2 &&
260 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 1){
262 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[1];
263 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[1];
267 ASSERT_EQ("Moop", xTokensData);
268 ASSERT_EQ("X-MOO", xTokensDataTokens);
271 xTokensDataTokens.clear();
273 if (testTimezone.timezoneStandardCollection.size() > 2 &&
274 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 2){
276 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[2];
277 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[2];
281 ASSERT_EQ("Zaap", xTokensData);
282 ASSERT_EQ("X-MOO;MEEP=YIKES", xTokensDataTokens);
285 xTokensDataTokens.clear();
287 if (testTimezone.timezoneStandardCollection.size() > 2 &&
288 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 3){
290 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[3];
291 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[3];
295 ASSERT_EQ("Fork", xTokensData);
296 ASSERT_EQ("X-ITEM", xTokensDataTokens);
299 xTokensDataTokens.clear();
301 if (testTimezone.timezoneStandardCollection.size() > 2 &&
302 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 4){
304 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[4];
305 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[4];
309 ASSERT_EQ("Spoon", xTokensData);
310 ASSERT_EQ("X-ITEM", xTokensDataTokens);
313 xTokensDataTokens.clear();
315 if (testTimezone.timezoneStandardCollection.size() > 2 &&
316 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 5){
318 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[5];
319 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[5];
323 ASSERT_EQ("Knife", xTokensData);
324 ASSERT_EQ("X-ITEM;DIRTY=NO", xTokensDataTokens);
327 xTokensDataTokens.clear();
329 if (testTimezone.timezoneStandardCollection.size() > 2 &&
330 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 6){
332 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[6];
333 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[6];
337 ASSERT_EQ("1", xTokensData);
338 ASSERT_EQ("X-NOPE", xTokensDataTokens);
341 xTokensDataTokens.clear();
343 if (testTimezone.timezoneStandardCollection.size() > 2 &&
344 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 7){
346 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[7];
347 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[7];
351 ASSERT_EQ("2", xTokensData);
352 ASSERT_EQ("X-NOPE", xTokensDataTokens);
355 xTokensDataTokens.clear();
357 if (testTimezone.timezoneStandardCollection.size() > 2 &&
358 testTimezone.timezoneStandardCollection[2].xTokensData.size() > 8){
360 xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[8];
361 xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[8];
365 ASSERT_EQ("3", xTokensData);
366 ASSERT_EQ("X-NOPE;LONG=YES", xTokensDataTokens);
368 // Tests for the first DAYLIGHT data.
370 dateTimeStartData.clear();
371 timeZoneOffsetToData.clear();
372 timeZoneOffsetFromData.clear();
374 if (testTimezone.timezoneDaylightCollection.size() > 0){
376 dateTimeStartData = testTimezone.timezoneDaylightCollection[0].dateTimeStartData;
380 if (testTimezone.timezoneDaylightCollection.size() > 0){
382 timeZoneOffsetToData = testTimezone.timezoneDaylightCollection[0].timeZoneOffsetToData;
386 if (testTimezone.timezoneDaylightCollection.size() > 0){
388 timeZoneOffsetFromData = testTimezone.timezoneDaylightCollection[0].timeZoneOffsetFromData;
392 ASSERT_EQ("20160204T020000", dateTimeStartData);
393 ASSERT_EQ("-0400", timeZoneOffsetToData);
394 ASSERT_EQ("-0500", timeZoneOffsetFromData);
396 // Tests for the second DAYLIGHT data.
398 dateTimeStartTokens.clear();
399 timeZoneOffsetToTokens.clear();
400 timeZoneOffsetFromTokens.clear();
402 recurranceRuleData.clear();
403 recurranceRuleDataTokens.clear();
406 commentListAltRep.clear();
407 commentListLanguage.clear();
408 commentListTokens.clear();
410 recurranceDateData.clear();
411 recurranceDateValue.clear();
412 recurranceDateDataTimeZoneParam.clear();
413 recurranceDateDataTokens.clear();
415 timeZoneNameData.clear();
416 timeZoneNameLanguage.clear();
417 timeZoneNameTokens.clear();
420 xTokensDataTokens.clear();
422 dateTimeStartData.clear();
423 timeZoneOffsetToData.clear();
424 timeZoneOffsetFromData.clear();
426 if (testTimezone.timezoneDaylightCollection.size() > 1){
428 dateTimeStartData = testTimezone.timezoneDaylightCollection[1].dateTimeStartData;
429 dateTimeStartTokens = testTimezone.timezoneDaylightCollection[1].dateTimeStartTokens;
433 if (testTimezone.timezoneDaylightCollection.size() > 1){
435 timeZoneOffsetToData = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetToData;
436 timeZoneOffsetToTokens = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetToTokens;
440 if (testTimezone.timezoneDaylightCollection.size() > 1){
442 timeZoneOffsetFromData = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetFromData;
443 timeZoneOffsetFromTokens = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetFromTokens;
447 ASSERT_EQ("20160205T020000", dateTimeStartData);
448 ASSERT_EQ("MEEP=MOO", dateTimeStartTokens);
449 ASSERT_EQ("-0400", timeZoneOffsetToData);
450 ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens);
451 ASSERT_EQ("-0500", timeZoneOffsetFromData);
452 ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens);
454 // Tests for third DAYLIGHT data.
456 dateTimeStartData.clear();
457 dateTimeStartTokens.clear();
458 timeZoneOffsetToData.clear();
459 timeZoneOffsetToTokens.clear();
460 timeZoneOffsetFromData.clear();
461 timeZoneOffsetFromTokens.clear();
463 if (testTimezone.timezoneDaylightCollection.size() > 2){
465 dateTimeStartData = testTimezone.timezoneDaylightCollection[2].dateTimeStartData;
466 dateTimeStartTokens = testTimezone.timezoneDaylightCollection[2].dateTimeStartTokens;
470 if (testTimezone.timezoneDaylightCollection.size() > 2){
472 timeZoneOffsetToData = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetToData;
473 timeZoneOffsetToTokens = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetToTokens;
477 if (testTimezone.timezoneDaylightCollection.size() > 2){
479 timeZoneOffsetFromData = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetFromData;
480 timeZoneOffsetFromTokens = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetFromTokens;
484 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
485 testTimezone.timezoneDaylightCollection[2].commentList.size() > 0){
487 commentList = testTimezone.timezoneDaylightCollection[2].commentList[0];
488 commentListAltRep = testTimezone.timezoneDaylightCollection[2].commentListAltRep[0];
489 commentListLanguage = testTimezone.timezoneDaylightCollection[2].commentListLanguage[0];
490 commentListTokens = testTimezone.timezoneDaylightCollection[2].commentListTokens[0];
494 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
495 testTimezone.timezoneDaylightCollection[2].recurranceRuleData.size() > 0){
497 recurranceRuleData = testTimezone.timezoneDaylightCollection[2].recurranceRuleData;
498 recurranceRuleDataTokens = testTimezone.timezoneDaylightCollection[2].recurranceRuleDataTokens;
502 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
503 testTimezone.timezoneDaylightCollection[2].recurranceDateData.size() > 0){
505 recurranceDateData = testTimezone.timezoneDaylightCollection[2].recurranceDateData[0];
506 recurranceDateValue = testTimezone.timezoneDaylightCollection[2].recurranceDateDataValue[0];
507 recurranceDateDataTimeZoneParam = testTimezone.timezoneDaylightCollection[2].recurranceDateDataTimeZoneParam[0];
508 recurranceDateDataTokens = testTimezone.timezoneDaylightCollection[2].recurranceDateDataTokens[0];
512 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
513 testTimezone.timezoneDaylightCollection[2].timeZoneNameData.size() > 0){
515 timeZoneNameData = testTimezone.timezoneDaylightCollection[2].timeZoneNameData[0];
516 timeZoneNameLanguage = testTimezone.timezoneDaylightCollection[2].timeZoneNameLanguage[0];
517 timeZoneNameTokens = testTimezone.timezoneDaylightCollection[2].timeZoneNameTokens[0];
521 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
522 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 0){
524 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[0];
525 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[0];
529 ASSERT_EQ("20160206T020000", dateTimeStartData);
530 ASSERT_EQ("MEEP=MOO", dateTimeStartTokens);
531 ASSERT_EQ("-0400", timeZoneOffsetToData);
532 ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens);
533 ASSERT_EQ("-0500", timeZoneOffsetFromData);
534 ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens);
536 ASSERT_EQ("Example timezone comment.", commentList);
537 ASSERT_EQ("null:nodata", commentListAltRep);
538 ASSERT_EQ("kw", commentListLanguage);
539 ASSERT_EQ("YO=YOYOS", commentListTokens);
541 ASSERT_EQ("FREQ=DAILY;COUNT=10", recurranceRuleData);
542 ASSERT_EQ("YAK=YES", recurranceRuleDataTokens);
544 ASSERT_EQ("20160205,20160207,20160216,20160305", recurranceDateData);
545 ASSERT_EQ("DATE", recurranceDateValue);
546 ASSERT_EQ("Europe/Truro", recurranceDateDataTimeZoneParam);
547 ASSERT_EQ("BEEP=BOOP", recurranceDateDataTokens);
549 ASSERT_EQ("Example Timezone Name 1", timeZoneNameData);
550 ASSERT_EQ("en", timeZoneNameLanguage);
551 ASSERT_EQ("NOPE=YES", timeZoneNameTokens);
553 ASSERT_EQ("Example Timezone Name 1", timeZoneNameData);
554 ASSERT_EQ("en", timeZoneNameLanguage);
556 ASSERT_EQ("Meep", xTokensData);
557 ASSERT_EQ("X-MOO", xTokensDataTokens);
560 xTokensDataTokens.clear();
562 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
563 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 1){
565 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[1];
566 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[1];
570 ASSERT_EQ("Moop", xTokensData);
571 ASSERT_EQ("X-MOO", xTokensDataTokens);
574 xTokensDataTokens.clear();
576 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
577 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 2){
579 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[2];
580 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[2];
584 ASSERT_EQ("Zaap", xTokensData);
585 ASSERT_EQ("X-MOO;MEEP=YIKES", xTokensDataTokens);
588 xTokensDataTokens.clear();
590 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
591 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 3){
593 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[3];
594 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[3];
598 ASSERT_EQ("Fork", xTokensData);
599 ASSERT_EQ("X-ITEM", xTokensDataTokens);
602 xTokensDataTokens.clear();
604 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
605 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 4){
607 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[4];
608 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[4];
612 ASSERT_EQ("Spoon", xTokensData);
613 ASSERT_EQ("X-ITEM", xTokensDataTokens);
616 xTokensDataTokens.clear();
618 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
619 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 5){
621 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[5];
622 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[5];
626 ASSERT_EQ("Knife", xTokensData);
627 ASSERT_EQ("X-ITEM;DIRTY=NO", xTokensDataTokens);
630 xTokensDataTokens.clear();
632 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
633 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 6){
635 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[6];
636 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[6];
640 ASSERT_EQ("1", xTokensData);
641 ASSERT_EQ("X-NOPE", xTokensDataTokens);
644 xTokensDataTokens.clear();
646 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
647 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 7){
649 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[7];
650 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[7];
654 ASSERT_EQ("2", xTokensData);
655 ASSERT_EQ("X-NOPE", xTokensDataTokens);
658 xTokensDataTokens.clear();
660 if (testTimezone.timezoneDaylightCollection.size() > 2 &&
661 testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 8){
663 xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[8];
664 xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[8];
668 ASSERT_EQ("3", xTokensData);
669 ASSERT_EQ("X-NOPE;LONG=YES", xTokensDataTokens);