// xestiacalendar_icaleventsave.h - Xestia Calendar iCalendar Event Component Save Unit Tests // // (c) 2016 Xestia Software Development. // // This file is part of Xestia Calendar. // // Xestia Address Book 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, // 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. // // You should have received a copy of the GNU General Public License along // with Xestia Calendar. If not, see #include "../objects/calendarevent/CalendarEvent.h" TEST(iCalendarSaveEvent, SaveEventTests){ CalendarEventObject TestEvent; CalendarEventObject TestEvent2; // Load the test event. ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestEvent.LoadFile("iCalendarEvent-Load1.vcf")); ASSERT_EQ(CALENDAROBJECTVALID_OK, TestEvent.ValidBaseObject()); //ASSERT_EQ(CALENDAROBJECTSAVE_MISSING, TestEvent.LoadFile("iCalendarEvent-Missing.vcf")); //ASSERT_EQ(CALENDAROBJECTSAVE_CANNOTOPEN, TestEvent.LoadFile("iCalendarEvent-InvalidPermissions.vcf")); //ASSERT_EQ(CALENDAROBJECTSAVE_OK, TestEvent.LoadFile("iCalendarEvent-Load1.vcf")); ASSERT_EQ(CALENDAROBJECTSAVE_CANNOTOPEN, TestEvent.SaveFile("/stupidfilelocation/dontsavehere.ics")); // Save the data to a string and compare the data. // First contact file. std::string SaveDataComparison = "BEGIN:VCARD\n" "VERSION:2.0\n" "METHOD;EXAMPLE=DATA:REQUEST\n" "CALSCALE;MORE=YES:GREGORIAN\n" "PRODID:-//Xestia//Calendar Unit Testing//KW\n" "BEGIN:VEVENT\n" "UID:329128-12939123-123123-13\n" "DTSTAMP:20160116T190200Z\n" "DTSTART:20160116T190200Z\n" "DTEND:20160116T190200Z\n" "SUMMARY:Unit Test Event 1 which has to be a really long summary as we don't k\n" " now if multiple line processing is going to work without it. I mean seriousl\n" " y, how annoying can this potentially be?\n" "END:VEVENT\n" "END:VCARD"; std::string SaveData; TestEvent.SaveString(&SaveData); ASSERT_EQ(SaveDataComparison, SaveData); // Process the second calendar item. ASSERT_EQ(CALENDAROBJECTLOAD_OK, TestEvent2.LoadFile("iCalendarEvent-Load2.vcf")); ASSERT_EQ(CALENDAROBJECTVALID_OK, TestEvent2.ValidBaseObject()); SaveData.clear(); SaveDataComparison = "BEGIN:VCARD\n" "VERSION:2.0\n" "PRODID:-//Xestia//Calendar Unit Testing//KW\n" "BEGIN:VEVENT\n" "UID;UNIQUEPARAM=CERTAINLY;OKAY=MAYBENOT:b3a16392-ad86-4061-be53-c215af2306e0\n" "DTSTAMP;OTHER=PARAM:20160122T124100Z\n" "DTSTART;VALUE=DATE-TIME;TZID=Europe/Truro;PARAMONE=YES;PARAMTWO=NO:20160122T1\n" " 83000Z\n" "DTEND;VALUE=DATE-TIME;TZID=Europe/Truro;PARAMFOUR=YES;PARAMTHREE=NO:20160124T\n" " 183000Z\n" "SUMMARY;ALTREP=\"null:nodata\";LANGUAGE=kw;FAVOURITE=TOFU;NOTLIKE=NONE:A summar\n" " y of the event.\n" "CLASS;CHOCOLATE=BAR:PUBLIC\n" "CREATED;CARAMEL=PLEASE:20160123T081100Z\n" "DESCRIPTION;ALTREP=\"null:nodata\";LANGUAGE=kw;EXAMPLE=TOKEN;MOREDATA=YES:This \n" " is a description of the event.\n" "GEO;EXAMPLE=MEEP:5.0;5.0\n" "LAST-MODIFIED;FUTURE=ODD:20160124T093000Z\n" "END:VEVENT\n" "END:VCARD"; TestEvent2.SaveString(&SaveData); ASSERT_EQ(SaveDataComparison, SaveData); }