X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Ftests%2Fxestiacalendar_icaltimezoneload.h;h=78dc2b9c93adee88d9de0f4713f53cbac531e269;hb=1fe6e43892e5c572949a293a9e19704b5debadad;hp=a189b33b0aaeb71474e6706b219590c965ea9a12;hpb=6872cd789985573ad2eaeabde97cf3d25a62ed27;p=xestiacalendar%2F.git diff --git a/source/tests/xestiacalendar_icaltimezoneload.h b/source/tests/xestiacalendar_icaltimezoneload.h index a189b33..78dc2b9 100644 --- a/source/tests/xestiacalendar_icaltimezoneload.h +++ b/source/tests/xestiacalendar_icaltimezoneload.h @@ -1,14 +1,14 @@ -// xestiacalendar_icaleventload.h - Xestia Calendar iCalendar Timezone Component Unit Tests +// xestiacalendar_icaltimezoneload.h - Xestia Calendar iCalendar Timezone Component Unit Tests // -// (c) 2016 Xestia Software Development. +// (c) 2016-2017 Xestia Software Development. // // This file is part of Xestia Calendar. // -// Xestia Address Book is free software: you can redistribute it and/or modify +// Xestia Calendar is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // -// Xestia Address Book is distributed in the hope that it will be useful, +// Xestia Calendar is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. @@ -20,28 +20,639 @@ TEST(iCalendarTimezone, BasicTests){ - CalendarTimezoneObject TestTimezone; + CalendarTimezoneObject testTimezone; - ASSERT_EQ(CALENDAROBJECTLOAD_MISSING, TestTimezone.LoadFile("iCalendarTimezone-Missing.vcf")); - ASSERT_EQ(CALENDAROBJECTLOAD_CANNOTOPEN, TestTimezone.LoadFile("iCalendarTimezone-InvalidPermissions.vcf")); - ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTimezone.LoadFile("iCalendarTimezone-Load1.vcf")); + ASSERT_EQ(CALENDAROBJECTLOAD_MISSING, testTimezone.LoadFile("iCalendarTimezone-Missing.vcf")); + ASSERT_EQ(CALENDAROBJECTLOAD_CANNOTOPEN, testTimezone.LoadFile("iCalendarTimezone-InvalidPermissions.vcf")); + ASSERT_EQ(CALENDAROBJECTLOAD_OK, testTimezone.LoadFile("iCalendarTimezone-Load1.vcf")); } TEST(iCalendarTimezone, ObjectDataTests){ - CalendarTimezoneObject TestTimezone; - ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTimezone.LoadFile("iCalendarTimezone-Load2.vcf")); - ASSERT_EQ(CALENDAROBJECTVALID_OK, TestTimezone.ValidBaseObject()); + CalendarTimezoneObject testTimezone; + ASSERT_EQ(CALENDAROBJECTLOAD_OK, testTimezone.LoadFile("iCalendarTimezone-Load2.vcf")); + ASSERT_EQ(CALENDAROBJECTVALID_OK, testTimezone.ValidBaseObject()); // Tests for UID. - ASSERT_EQ("Example/Starrgazy", TestTimezone.TimeZoneData); - ASSERT_EQ("OTHER=PARAM", TestTimezone.TimeZoneDataTokens); + ASSERT_EQ("Example/Starrgazy", testTimezone.timeZoneData); + ASSERT_EQ("OTHER=PARAM", testTimezone.timeZoneDataTokens); // Tests for LAST-MODIFIED. - ASSERT_EQ("20160203T200700Z", TestTimezone.LastModifiedData); - ASSERT_EQ("FUTURE=ODD", TestTimezone.LastModifiedTokens); + ASSERT_EQ("20160203T200700Z", testTimezone.lastModifiedData); + ASSERT_EQ("FUTURE=ODD", testTimezone.lastModifiedTokens); + + // Tests for TZURL. + + ASSERT_EQ("http://www.example.com/", testTimezone.timeZoneURLData); + ASSERT_EQ("URL=YES", testTimezone.timeZoneURLTokens); + + // Tests for the first STANDARD data. + + std::string dateTimeStartData; + std::string timeZoneOffsetToData; + std::string timeZoneOffsetFromData; + + if (testTimezone.timezoneStandardCollection.size() > 0){ + + dateTimeStartData = testTimezone.timezoneStandardCollection[0].dateTimeStartData; + + } + + if (testTimezone.timezoneStandardCollection.size() > 0){ + + timeZoneOffsetToData = testTimezone.timezoneStandardCollection[0].timeZoneOffsetToData; + + } + + if (testTimezone.timezoneStandardCollection.size() > 0){ + + timeZoneOffsetFromData = testTimezone.timezoneStandardCollection[0].timeZoneOffsetFromData; + + } + + ASSERT_EQ("20160204T020000", dateTimeStartData); + ASSERT_EQ("-0400", timeZoneOffsetToData); + ASSERT_EQ("-0500", timeZoneOffsetFromData); + + // Tests for the second STANDARD data. + + std::string dateTimeStartTokens; + std::string timeZoneOffsetToTokens; + std::string timeZoneOffsetFromTokens; + + std::string recurranceRuleData; + std::string recurranceRuleDataTokens; + + std::string commentList; + std::string commentListAltRep; + std::string commentListLanguage; + std::string commentListTokens; + + std::string recurranceDateData; + std::string recurranceDateValue; + std::string recurranceDateDataTimeZoneParam; + std::string recurranceDateDataTokens; + + std::string timeZoneNameData; + std::string timeZoneNameLanguage; + std::string timeZoneNameTokens; + + std::string xTokensData; + std::string xTokensDataTokens; + + dateTimeStartData.clear(); + timeZoneOffsetToData.clear(); + timeZoneOffsetFromData.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 1){ + + dateTimeStartData = testTimezone.timezoneStandardCollection[1].dateTimeStartData; + dateTimeStartTokens = testTimezone.timezoneStandardCollection[1].dateTimeStartTokens; + + } + + if (testTimezone.timezoneStandardCollection.size() > 1){ + + timeZoneOffsetToData = testTimezone.timezoneStandardCollection[1].timeZoneOffsetToData; + timeZoneOffsetToTokens = testTimezone.timezoneStandardCollection[1].timeZoneOffsetToTokens; + + } + + if (testTimezone.timezoneStandardCollection.size() > 1){ + + timeZoneOffsetFromData = testTimezone.timezoneStandardCollection[1].timeZoneOffsetFromData; + timeZoneOffsetFromTokens = testTimezone.timezoneStandardCollection[1].timeZoneOffsetFromTokens; + + } + + ASSERT_EQ("20160205T020000", dateTimeStartData); + ASSERT_EQ("MEEP=MOO", dateTimeStartTokens); + ASSERT_EQ("-0400", timeZoneOffsetToData); + ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens); + ASSERT_EQ("-0500", timeZoneOffsetFromData); + ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens); + + // Tests for third STANDARD data. + + dateTimeStartData.clear(); + dateTimeStartTokens.clear(); + timeZoneOffsetToData.clear(); + timeZoneOffsetToTokens.clear(); + timeZoneOffsetFromData.clear(); + timeZoneOffsetFromTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2){ + + dateTimeStartData = testTimezone.timezoneStandardCollection[2].dateTimeStartData; + dateTimeStartTokens = testTimezone.timezoneStandardCollection[2].dateTimeStartTokens; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2){ + + timeZoneOffsetToData = testTimezone.timezoneStandardCollection[2].timeZoneOffsetToData; + timeZoneOffsetToTokens = testTimezone.timezoneStandardCollection[2].timeZoneOffsetToTokens; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2){ + + timeZoneOffsetFromData = testTimezone.timezoneStandardCollection[2].timeZoneOffsetFromData; + timeZoneOffsetFromTokens = testTimezone.timezoneStandardCollection[2].timeZoneOffsetFromTokens; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].commentList.size() > 0){ + + commentList = testTimezone.timezoneStandardCollection[2].commentList[0]; + commentListAltRep = testTimezone.timezoneStandardCollection[2].commentListAltRep[0]; + commentListLanguage = testTimezone.timezoneStandardCollection[2].commentListLanguage[0]; + commentListTokens = testTimezone.timezoneStandardCollection[2].commentListTokens[0]; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].recurranceRuleData.size() > 0){ + + recurranceRuleData = testTimezone.timezoneStandardCollection[2].recurranceRuleData; + recurranceRuleDataTokens = testTimezone.timezoneStandardCollection[2].recurranceRuleDataTokens; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].recurranceDateData.size() > 0){ + + recurranceDateData = testTimezone.timezoneStandardCollection[2].recurranceDateData[0]; + recurranceDateValue = testTimezone.timezoneStandardCollection[2].recurranceDateDataValue[0]; + recurranceDateDataTimeZoneParam = testTimezone.timezoneStandardCollection[2].recurranceDateDataTimeZoneParam[0]; + recurranceDateDataTokens = testTimezone.timezoneStandardCollection[2].recurranceDateDataTokens[0]; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].timeZoneNameData.size() > 0){ + + timeZoneNameData = testTimezone.timezoneStandardCollection[2].timeZoneNameData[0]; + timeZoneNameLanguage = testTimezone.timezoneStandardCollection[2].timeZoneNameLanguage[0]; + timeZoneNameTokens = testTimezone.timezoneStandardCollection[2].timeZoneNameTokens[0]; + + } + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 0){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[0]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[0]; + + } + + ASSERT_EQ("20160206T020000", dateTimeStartData); + ASSERT_EQ("MEEP=MOO", dateTimeStartTokens); + ASSERT_EQ("-0400", timeZoneOffsetToData); + ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens); + ASSERT_EQ("-0500", timeZoneOffsetFromData); + ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens); + + ASSERT_EQ("Example timezone comment.", commentList); + ASSERT_EQ("null:nodata", commentListAltRep); + ASSERT_EQ("kw", commentListLanguage); + ASSERT_EQ("YO=YOYOS", commentListTokens); + + ASSERT_EQ("FREQ=DAILY;COUNT=10", recurranceRuleData); + ASSERT_EQ("YAK=YES", recurranceRuleDataTokens); + + ASSERT_EQ("20160205,20160207,20160216,20160305", recurranceDateData); + ASSERT_EQ("DATE", recurranceDateValue); + ASSERT_EQ("Europe/Truro", recurranceDateDataTimeZoneParam); + ASSERT_EQ("BEEP=BOOP", recurranceDateDataTokens); + + ASSERT_EQ("Example Timezone Name 1", timeZoneNameData); + ASSERT_EQ("en", timeZoneNameLanguage); + ASSERT_EQ("NOPE=YES", timeZoneNameTokens); + + ASSERT_EQ("Example Timezone Name 1", timeZoneNameData); + ASSERT_EQ("en", timeZoneNameLanguage); + + ASSERT_EQ("Meep", xTokensData); + ASSERT_EQ("X-MOO", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 1){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[1]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[1]; + + } + + ASSERT_EQ("Moop", xTokensData); + ASSERT_EQ("X-MOO", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 2){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[2]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[2]; + + } + + ASSERT_EQ("Zaap", xTokensData); + ASSERT_EQ("X-MOO;MEEP=YIKES", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 3){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[3]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[3]; + + } + + ASSERT_EQ("Fork", xTokensData); + ASSERT_EQ("X-ITEM", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 4){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[4]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[4]; + + } + + ASSERT_EQ("Spoon", xTokensData); + ASSERT_EQ("X-ITEM", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 5){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[5]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[5]; + + } + + ASSERT_EQ("Knife", xTokensData); + ASSERT_EQ("X-ITEM;DIRTY=NO", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 6){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[6]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[6]; + + } + + ASSERT_EQ("1", xTokensData); + ASSERT_EQ("X-NOPE", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 7){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[7]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[7]; + + } + + ASSERT_EQ("2", xTokensData); + ASSERT_EQ("X-NOPE", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneStandardCollection.size() > 2 && + testTimezone.timezoneStandardCollection[2].xTokensData.size() > 8){ + + xTokensData = testTimezone.timezoneStandardCollection[2].xTokensData[8]; + xTokensDataTokens = testTimezone.timezoneStandardCollection[2].xTokensDataTokens[8]; + + } + + ASSERT_EQ("3", xTokensData); + ASSERT_EQ("X-NOPE;LONG=YES", xTokensDataTokens); + + // Tests for the first DAYLIGHT data. + + dateTimeStartData.clear(); + timeZoneOffsetToData.clear(); + timeZoneOffsetFromData.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 0){ + + dateTimeStartData = testTimezone.timezoneDaylightCollection[0].dateTimeStartData; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 0){ + + timeZoneOffsetToData = testTimezone.timezoneDaylightCollection[0].timeZoneOffsetToData; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 0){ + + timeZoneOffsetFromData = testTimezone.timezoneDaylightCollection[0].timeZoneOffsetFromData; + + } + + ASSERT_EQ("20160204T020000", dateTimeStartData); + ASSERT_EQ("-0400", timeZoneOffsetToData); + ASSERT_EQ("-0500", timeZoneOffsetFromData); + + // Tests for the second DAYLIGHT data. + + dateTimeStartTokens.clear(); + timeZoneOffsetToTokens.clear(); + timeZoneOffsetFromTokens.clear(); + + recurranceRuleData.clear(); + recurranceRuleDataTokens.clear(); + + commentList.clear(); + commentListAltRep.clear(); + commentListLanguage.clear(); + commentListTokens.clear(); + + recurranceDateData.clear(); + recurranceDateValue.clear(); + recurranceDateDataTimeZoneParam.clear(); + recurranceDateDataTokens.clear(); + + timeZoneNameData.clear(); + timeZoneNameLanguage.clear(); + timeZoneNameTokens.clear(); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + dateTimeStartData.clear(); + timeZoneOffsetToData.clear(); + timeZoneOffsetFromData.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 1){ + + dateTimeStartData = testTimezone.timezoneDaylightCollection[1].dateTimeStartData; + dateTimeStartTokens = testTimezone.timezoneDaylightCollection[1].dateTimeStartTokens; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 1){ + + timeZoneOffsetToData = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetToData; + timeZoneOffsetToTokens = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetToTokens; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 1){ + + timeZoneOffsetFromData = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetFromData; + timeZoneOffsetFromTokens = testTimezone.timezoneDaylightCollection[1].timeZoneOffsetFromTokens; + + } + + ASSERT_EQ("20160205T020000", dateTimeStartData); + ASSERT_EQ("MEEP=MOO", dateTimeStartTokens); + ASSERT_EQ("-0400", timeZoneOffsetToData); + ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens); + ASSERT_EQ("-0500", timeZoneOffsetFromData); + ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens); + + // Tests for third DAYLIGHT data. + + dateTimeStartData.clear(); + dateTimeStartTokens.clear(); + timeZoneOffsetToData.clear(); + timeZoneOffsetToTokens.clear(); + timeZoneOffsetFromData.clear(); + timeZoneOffsetFromTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2){ + + dateTimeStartData = testTimezone.timezoneDaylightCollection[2].dateTimeStartData; + dateTimeStartTokens = testTimezone.timezoneDaylightCollection[2].dateTimeStartTokens; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2){ + + timeZoneOffsetToData = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetToData; + timeZoneOffsetToTokens = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetToTokens; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2){ + + timeZoneOffsetFromData = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetFromData; + timeZoneOffsetFromTokens = testTimezone.timezoneDaylightCollection[2].timeZoneOffsetFromTokens; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].commentList.size() > 0){ + + commentList = testTimezone.timezoneDaylightCollection[2].commentList[0]; + commentListAltRep = testTimezone.timezoneDaylightCollection[2].commentListAltRep[0]; + commentListLanguage = testTimezone.timezoneDaylightCollection[2].commentListLanguage[0]; + commentListTokens = testTimezone.timezoneDaylightCollection[2].commentListTokens[0]; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].recurranceRuleData.size() > 0){ + + recurranceRuleData = testTimezone.timezoneDaylightCollection[2].recurranceRuleData; + recurranceRuleDataTokens = testTimezone.timezoneDaylightCollection[2].recurranceRuleDataTokens; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].recurranceDateData.size() > 0){ + + recurranceDateData = testTimezone.timezoneDaylightCollection[2].recurranceDateData[0]; + recurranceDateValue = testTimezone.timezoneDaylightCollection[2].recurranceDateDataValue[0]; + recurranceDateDataTimeZoneParam = testTimezone.timezoneDaylightCollection[2].recurranceDateDataTimeZoneParam[0]; + recurranceDateDataTokens = testTimezone.timezoneDaylightCollection[2].recurranceDateDataTokens[0]; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].timeZoneNameData.size() > 0){ + + timeZoneNameData = testTimezone.timezoneDaylightCollection[2].timeZoneNameData[0]; + timeZoneNameLanguage = testTimezone.timezoneDaylightCollection[2].timeZoneNameLanguage[0]; + timeZoneNameTokens = testTimezone.timezoneDaylightCollection[2].timeZoneNameTokens[0]; + + } + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 0){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[0]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[0]; + + } + + ASSERT_EQ("20160206T020000", dateTimeStartData); + ASSERT_EQ("MEEP=MOO", dateTimeStartTokens); + ASSERT_EQ("-0400", timeZoneOffsetToData); + ASSERT_EQ("EXAMPLE=DATA", timeZoneOffsetToTokens); + ASSERT_EQ("-0500", timeZoneOffsetFromData); + ASSERT_EQ("LETS=GO", timeZoneOffsetFromTokens); + + ASSERT_EQ("Example timezone comment.", commentList); + ASSERT_EQ("null:nodata", commentListAltRep); + ASSERT_EQ("kw", commentListLanguage); + ASSERT_EQ("YO=YOYOS", commentListTokens); + + ASSERT_EQ("FREQ=DAILY;COUNT=10", recurranceRuleData); + ASSERT_EQ("YAK=YES", recurranceRuleDataTokens); + + ASSERT_EQ("20160205,20160207,20160216,20160305", recurranceDateData); + ASSERT_EQ("DATE", recurranceDateValue); + ASSERT_EQ("Europe/Truro", recurranceDateDataTimeZoneParam); + ASSERT_EQ("BEEP=BOOP", recurranceDateDataTokens); + + ASSERT_EQ("Example Timezone Name 1", timeZoneNameData); + ASSERT_EQ("en", timeZoneNameLanguage); + ASSERT_EQ("NOPE=YES", timeZoneNameTokens); + + ASSERT_EQ("Example Timezone Name 1", timeZoneNameData); + ASSERT_EQ("en", timeZoneNameLanguage); + + ASSERT_EQ("Meep", xTokensData); + ASSERT_EQ("X-MOO", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 1){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[1]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[1]; + + } + + ASSERT_EQ("Moop", xTokensData); + ASSERT_EQ("X-MOO", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 2){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[2]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[2]; + + } + + ASSERT_EQ("Zaap", xTokensData); + ASSERT_EQ("X-MOO;MEEP=YIKES", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 3){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[3]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[3]; + + } + + ASSERT_EQ("Fork", xTokensData); + ASSERT_EQ("X-ITEM", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 4){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[4]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[4]; + + } + + ASSERT_EQ("Spoon", xTokensData); + ASSERT_EQ("X-ITEM", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 5){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[5]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[5]; + + } + + ASSERT_EQ("Knife", xTokensData); + ASSERT_EQ("X-ITEM;DIRTY=NO", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 6){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[6]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[6]; + + } + + ASSERT_EQ("1", xTokensData); + ASSERT_EQ("X-NOPE", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 7){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[7]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[7]; + + } + + ASSERT_EQ("2", xTokensData); + ASSERT_EQ("X-NOPE", xTokensDataTokens); + + xTokensData.clear(); + xTokensDataTokens.clear(); + + if (testTimezone.timezoneDaylightCollection.size() > 2 && + testTimezone.timezoneDaylightCollection[2].xTokensData.size() > 8){ + + xTokensData = testTimezone.timezoneDaylightCollection[2].xTokensData[8]; + xTokensDataTokens = testTimezone.timezoneDaylightCollection[2].xTokensDataTokens[8]; + + } + + ASSERT_EQ("3", xTokensData); + ASSERT_EQ("X-NOPE;LONG=YES", xTokensDataTokens); } \ No newline at end of file