diff options
author | Hans Petter <hansp@src.gnome.org> | 2003-09-12 06:04:44 +0800 |
---|---|---|
committer | Hans Petter <hansp@src.gnome.org> | 2003-09-12 06:04:44 +0800 |
commit | 697761cc337aa77a47140c8df50ed84bc25e23f6 (patch) | |
tree | b785830f72e9938cceaa016a419c7b6d9892bada /libical/src/test/regression-cxx.cpp | |
parent | 733d77e657516f9a59b5c1a7b62acb87b03ec86f (diff) | |
download | gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.tar gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.tar.gz gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.tar.bz2 gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.tar.lz gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.tar.xz gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.tar.zst gsoc2013-evolution-697761cc337aa77a47140c8df50ed84bc25e23f6.zip |
Import new libical from mainline HEAD and make appropriate changes to
Evolution.
svn path=/trunk/; revision=22538
Diffstat (limited to 'libical/src/test/regression-cxx.cpp')
-rw-r--r-- | libical/src/test/regression-cxx.cpp | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/libical/src/test/regression-cxx.cpp b/libical/src/test/regression-cxx.cpp new file mode 100644 index 0000000000..e7605b8531 --- /dev/null +++ b/libical/src/test/regression-cxx.cpp @@ -0,0 +1,137 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include "icalparameter_cxx.h" +#include "icalproperty_cxx.h" +#include "vcomponent.h" +#include "regression.h" + +char content[] = "BEGIN:VCALENDAR\n\ +VERSION:2.1\n\ +BEGIN:VEVENT\n\ +UID:abcd12345\n\ +DTSTART:20020307T180000Z\n\ +DTEND:20020307T190000Z\n\ +SUMMARY:Important Meeting\n\ +END:VEVENT\n\ +END:VCALENDAR"; + +void test_cxx(void) +{ + ICalProperty *summProp = new ICalProperty(ICAL_SUMMARY_PROPERTY); + ICalProperty *startProp = new ICalProperty(ICAL_DTSTART_PROPERTY); + ICalProperty *endProp = new ICalProperty(ICAL_DTEND_PROPERTY); + ICalProperty *locationProp = new ICalProperty(ICAL_LOCATION_PROPERTY); + ICalProperty *descProp = new ICalProperty(ICAL_DESCRIPTION_PROPERTY); + + ok("Valid SUMMARY Property", (summProp != 0)); + ok("Valid DTSTART Property", (startProp != 0)); + ok("Valid DTEND Property", (endProp != 0)); + ok("Valid LOCATION Property", (locationProp != 0)); + ok("Valid DESCRIPTION Property", (descProp != 0)); + + struct icaltimetype starttime = icaltime_from_string("20011221T180000Z"); // UTC time ends in Z + struct icaltimetype endtime = icaltime_from_string("20020101T080000Z"); // UTC time ends in Z + + summProp->set_summary("jon said: change dir to c:\\rest\\test\\nest to get the file called <foo.dat>\nthis should be in the next line."); + startProp->set_dtstart(starttime); + endProp->set_dtend(endtime); + locationProp->set_location("SF, California; Seattle, Washington"); + descProp->set_description("The best cities on the west coast, hit 'NO' if you don't agree!\n"); + + VEvent *vEvent = new VEvent(); + + ok("Create a new VEvent", (vEvent!=0)); + + vEvent->add_property(summProp); + vEvent->add_property(startProp); + vEvent->add_property(endProp); + vEvent->add_property(locationProp); + vEvent->add_property(descProp); + + // + is ("vEvent->get_summary()", + vEvent->get_summary(), + "jon said: change dir to c:\\rest\\test\\nest to get the file called <foo.dat>\nthis should be in the next line."); + + is ("vEvent->get_dtstart()", + icaltime_as_ical_string(vEvent->get_dtstart()), + "20011221T180000Z"); + + is ("vEvent->get_dtend()", + icaltime_as_ical_string(vEvent->get_dtend()), + "20020101T080000Z"); + + ok ("vEvent->as_ical_string()", + (vEvent->as_ical_string() != 0)); + + if (VERBOSE) { + printf("Summary: %s\n", vEvent->get_summary()); + printf("DTSTART: %s\n", icaltime_as_ical_string(vEvent->get_dtstart())); + printf("DTEND: %s\n", icaltime_as_ical_string(vEvent->get_dtend())); + printf("LOCATION: %s\n", vEvent->get_location()); + printf("DESCRIPTION: %s\n", vEvent->get_description()); + + printf("vcomponent: %s", vEvent->as_ical_string()); + } + + VComponent ic(icalparser_parse_string((const char*)content)); + ok("Parsing component", (ic.is_valid())); + + if (VERBOSE) + printf("%s\n", ic.as_ical_string()); + + // component is wrapped within BEGIN:VCALENDAR END:VCALENDAR + // we need to unwrap it. + + VEvent* sub_ic = dynamic_cast<VEvent*>(ic.get_first_component(ICAL_VEVENT_COMPONENT)); + + int_is("Getting VEvent subcomponent", + sub_ic->isa(), + ICAL_VEVENT_COMPONENT); + + while (sub_ic != NULL) { + if (VERBOSE) + printf("subcomponent: %s\n", sub_ic->as_ical_string()); + + sub_ic = dynamic_cast<VEvent*>(ic.get_next_component(ICAL_VEVENT_COMPONENT)); + } + + VCalendar* cal = new VCalendar(); + VAgenda* vAgenda = new VAgenda(); + + ok("Create a new VCalendar object", (cal != 0)); + ok("Create a new VAgenda object", (vAgenda != 0)); + + ICalProperty* prop = new ICalProperty(ICAL_OWNER_PROPERTY); + prop->set_owner("fred@flintstone.net"); + vAgenda->add_property(prop); + + prop = new ICalProperty(ICAL_SUMMARY_PROPERTY); + prop->set_summary("CPMain"); + vAgenda->add_property(prop); + + prop = new ICalProperty(ICAL_TZID_PROPERTY); + prop->set_tzid("America/Los_Angeles"); + vAgenda->add_property(prop); + + cal->add_component(vAgenda); + + ok("Complex VCALENDAR/VAGENDA", (cal->as_ical_string() != 0)); + + if (VERBOSE) + printf("vAgenda: %s\n", cal->as_ical_string()); + + int caughtException = 0; + try { + string foo = "HFHFHFHF"; + VComponent v = VComponent(foo); + } catch (icalerrorenum err) { + if (err == ICAL_BADARG_ERROR) { + caughtException = 1; + } + } + int_is("Testing exception handling", caughtException, 1); + +} + |