Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added TZID property for saving data from a CalendarTaskObject.
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Thu, 9 Jun 2016 21:04:12 +0000 (22:04 +0100)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Thu, 9 Jun 2016 21:04:12 +0000 (22:04 +0100)
Added the code and unit tests for the TZID property.

source/objects/calendartimezone/CalendarTimezone-Save.cpp [new file with mode: 0644]
source/objects/calendartimezone/CalendarTimezone.h
source/tests/xestiacalendar_icaltimezonesave.h

diff --git a/source/objects/calendartimezone/CalendarTimezone-Save.cpp b/source/objects/calendartimezone/CalendarTimezone-Save.cpp
new file mode 100644 (file)
index 0000000..2bdadff
--- /dev/null
@@ -0,0 +1,42 @@
+#include "CalendarTimezone.h"
+
+using namespace std;
+
+void CalendarTimezoneObject::SaveObjectData(string *SaveData){
+
+       string DataLine = "";
+       string DataLineProcessed = "";
+       
+       *SaveData += "BEGIN:VTIMEZONE\n";
+       
+       // Process the TZID.
+       
+       if (TimeZoneData.size() > 0){
+               
+               if (TimeZoneDataTokens.size() > 0){
+               
+                       DataLine += "TZID;";
+                       DataLine += TimeZoneDataTokens;
+                       
+               } else {
+
+                       DataLine += "TZID";
+                       
+               }
+
+               DataLine += ":";
+               DataLine += TimeZoneData;
+               DataLine += "\n";
+               
+               DataLineProcessed = OutputText(&DataLine);
+               
+               *SaveData += DataLineProcessed;
+               
+               DataLine.clear();
+               DataLineProcessed.clear();
+               
+       }
+       
+       *SaveData += "END:VTIMEZONE\n";
+       
+}
\ No newline at end of file
index be3b176..21b9b69 100644 (file)
@@ -51,6 +51,7 @@ class CalendarTimezoneObject: public CalendarObject{
        
        void ProcessData();
        void ProcessStandardDaylight();
+       void SaveObjectData(string *SaveData);
        
 };
 
index 1cfd595..0bc4a3b 100644 (file)
@@ -27,6 +27,24 @@ TEST(iCalendarSaveTimezone, SaveTimezoneTests){
        ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestTimezone.LoadFile("iCalendarTimezone-Load1.vcf"));
        ASSERT_EQ(CALENDAROBJECTVALID_OK, TestTimezone.ValidBaseObject());
        
+       ASSERT_EQ(CALENDAROBJECTSAVE_CANNOTOPEN, TestTimezone.SaveFile("/stupidfilelocation/dontsavehere.ics"));
        
+       // Save the data to a string and compare the data.
+
+       // First contact file.
+       
+       std::string SaveDataComparison = "BEGIN:VCALENDAR\n"
+       "VERSION:2.0\n"
+       "PRODID:-//Xestia//Calendar Unit Testing//KW\n"
+       "BEGIN:VTIMEZONE\n"
+       "TZID:Example/Starrgazy\n"
+       "END:VTIMEZONE\n"
+       "END:VCALENDAR";
+       
+       std::string SaveData;
+       
+       TestTimezone.SaveString(&SaveData);
+       
+       ASSERT_EQ(SaveDataComparison, SaveData);
        
 }
\ No newline at end of file
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