1 // xestiacalendar_icaleventload.h - Xestia Calendar iCalendar Task Component Unit Tests
3 // (c) 2016 Xestia Software Development.
5 // This file is part of Xestia Calendar.
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.
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.
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/calendartask/CalendarTask.h"
21 TEST(iCalendarTask, BasicTests){
23 CalendarTaskObject TestTask;
25 ASSERT_EQ(CALENDAROBJECTLOAD_MISSING, TestTask.LoadFile("iCalendarTask-Missing.vcf"));
26 ASSERT_EQ(CALENDAROBJECTLOAD_CANNOTOPEN, TestTask.LoadFile("iCalendarTask-InvalidPermissions.vcf"));
27 ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTask.LoadFile("iCalendarTask-Load1.vcf"));
31 TEST(iCalendarTask, ObjectDataTests){
33 CalendarTaskObject TestTask;
34 ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTask.LoadFile("iCalendarTask-Load2.vcf"));
35 ASSERT_EQ(CALENDAROBJECTVALID_OK, TestTask.ValidBaseObject());
39 ASSERT_EQ("20160131T104500Z", TestTask.DateTimeStampData);
40 ASSERT_EQ("OTHER=PARAM", TestTask.DateTimeStampTokens);
44 ASSERT_EQ("b3a16392-ad86-4061-be53-c215af2306e1", TestTask.UniqueID);
45 ASSERT_EQ("UNIQUEPARAM=CERTAINLY;OKAY=MAYBENOT", TestTask.UniqueIDTokens);
49 ASSERT_EQ("PUBLIC", TestTask.ClassData);
50 ASSERT_EQ("CHOCOLATE=NONE", TestTask.ClassDataTokens);
52 // Tests for COMPLETED.
54 ASSERT_EQ("20160131T110100Z", TestTask.CompletedData);
55 ASSERT_EQ("LYING=NEVER", TestTask.CompletedDataTokens);
59 ASSERT_EQ("20160131T080000Z", TestTask.DateTimeCreatedData);
60 ASSERT_EQ("CARAMEL=PLEASE", TestTask.DateTimeCreatedTokens);
62 // Tests for DESCRIPTION.
64 std::string DescriptionData;
65 std::string DescriptionAltRep;
66 std::string DescriptionLanguage;
67 std::string DescriptionTokens;
69 if (TestTask.DescriptionList.begin() != TestTask.DescriptionList.end()){
70 DescriptionData = TestTask.DescriptionList[0];
73 if (TestTask.DescriptionListAltRep.begin() != TestTask.DescriptionListAltRep.end()){
74 DescriptionAltRep = TestTask.DescriptionListAltRep[0];
77 if (TestTask.DescriptionListLanguage.begin() != TestTask.DescriptionListLanguage.end()){
78 DescriptionLanguage = TestTask.DescriptionListLanguage[0];
81 if (TestTask.DescriptionListTokens.begin() != TestTask.DescriptionListTokens.end()){
82 DescriptionTokens = TestTask.DescriptionListTokens[0];
85 ASSERT_EQ("This is a description of the todo.", DescriptionData);
86 ASSERT_EQ("null:nodata", DescriptionAltRep);
87 ASSERT_EQ("kw", DescriptionLanguage);
88 ASSERT_EQ("EXAMPLE=TOKEN;MOREDATA=YES", DescriptionTokens);
92 ASSERT_EQ("20160131T103000Z", TestTask.DateTimeStartData);
93 ASSERT_EQ("DATE-TIME", TestTask.DateTimeStartDataValue);
94 ASSERT_EQ("Europe/Truro", TestTask.DateTimeStartDataTimeZoneID);
95 ASSERT_EQ("PARAMONE=YES;PARAMTWO=NO", TestTask.DateTimeStartDataTokens);
99 ASSERT_EQ("20.0;20.0", TestTask.GeographicData);
100 ASSERT_EQ("EXAMPLE=MOOP", TestTask.GeographicTokens);
102 // Tests for LAST-MODIFIED.
104 ASSERT_EQ("20160131T114200Z", TestTask.LastModifiedData);
105 ASSERT_EQ("FUTURE=EVEN", TestTask.LastModifiedTokens);
107 // Tests for LOCATION.
109 ASSERT_EQ("The Crystal Ceiling, Truro", TestTask.LocationData);
110 ASSERT_EQ("null:nodata", TestTask.LocationDataAltRep);
111 ASSERT_EQ("kw", TestTask.LocationDataLanguage);
112 ASSERT_EQ("EXACT=YES", TestTask.LocationDataTokens);
114 // Tests for ORGANIZER.
116 ASSERT_EQ("mailto:organiser@example.com", TestTask.OrganiserData);
117 ASSERT_EQ("ExampleOrganiser", TestTask.OrganiserDataCommonName);
118 ASSERT_EQ("null:nodata", TestTask.OrganiserDataDirectoryEntry);
119 ASSERT_EQ("mailto:organiser.noreply@example.com", TestTask.OrganiserDataSentByParam);
120 ASSERT_EQ("kw", TestTask.OrganiserDataLanguage);
121 ASSERT_EQ("HAPPY=WEEKS", TestTask.OrganiserDataTokens);
123 // Tets for PERCENT-COMPLETE.
125 ASSERT_EQ("42", TestTask.PercentCompleteData);
126 ASSERT_EQ("DEEP=THOUGHT", TestTask.PercentCompleteTokens);