-// 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.
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