diff options
author | Allen Winter <allen.winter@kdab.com> | 2014-11-11 18:18:35 -0500 |
---|---|---|
committer | Allen Winter <allen.winter@kdab.com> | 2014-11-11 18:18:35 -0500 |
commit | 40541fb43b4498979be52833f372fe7b112d3141 (patch) | |
tree | edf21356c4d45b8cedf9795f1ed58f83e50c3333 | |
parent | 57bdbaa7eef6ebaa18459cb7810a51638269f029 (diff) | |
download | libical-git-40541fb43b4498979be52833f372fe7b112d3141.tar.gz |
issue177: CalDAV attachments as in draft-daboo-caldav-attachments
-rw-r--r-- | ReleaseNotes.txt | 1 | ||||
-rw-r--r-- | design-data/parameters.csv | 4 | ||||
-rw-r--r-- | design-data/params-in-prop.txt | 2 | ||||
-rw-r--r-- | src/test/regression.c | 37 |
4 files changed, 43 insertions, 1 deletions
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index f3be1ab7..b43c0f12 100644 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -3,6 +3,7 @@ Release Highlights Version 1.1.0 (not released yet) * [New] RSCALE support (requires libicu from http://www.icu-project.org) + * [New] CalDAV attachment support (draft-daboo-caldav-attachments) * [Bug] issue83: Incorrect recurrence generation for weekly pattern Version 1.0.1: diff --git a/design-data/parameters.csv b/design-data/parameters.csv index 3a428b70..1a03eb00 100644 --- a/design-data/parameters.csv +++ b/design-data/parameters.csv @@ -44,4 +44,8 @@ "PUBLIC-COMMENT","37","const char*", "RESPONSE","38","int", "STAY-INFORMED","39","icalparameter_stayinformed","X=20108;TRUE;FALSE;NONE" +"#Caldav Attachment Parameters","draft-daboo-caldav-attachments" +"MANAGED-ID","40","const char*", +"SIZE","41","const char*", +"FILENAME","42","const char*", "#NOTE for updaters. Preserve the icalparameter_kind Enum values to aid forward compatibility" diff --git a/design-data/params-in-prop.txt b/design-data/params-in-prop.txt index e8fe88f8..2a803218 100644 --- a/design-data/params-in-prop.txt +++ b/design-data/params-in-prop.txt @@ -1,6 +1,6 @@ ACKNOWLEDGED X ACTION VALUE X -ATTACH FMTTYPE ENCODING VALUE X +ATTACH FMTTYPE ENCODING VALUE MANAGED-ID SIZE FILENAME X ATTENDEE CN CUTYPE DELEGATED-FROM DELEGATED-TO DIR LANGUAGE MEMBER PARTSTAT ROLE RSVP SENT-BY SCHEDULE-AGENT SCHEDULE-FORCE-SEND SCHEDULE-STATUS X CALSCALE X CATEGORIES LANGUAGE X diff --git a/src/test/regression.c b/src/test/regression.c index 968fb1ca..cbe9e5e2 100644 --- a/src/test/regression.c +++ b/src/test/regression.c @@ -3567,6 +3567,8 @@ void test_utcoffset() void test_attach() { icalcomponent *c; + icalproperty *p; + icalparameter *param; static const char test_icalcomp_str[] = "BEGIN:VEVENT\n" @@ -3580,6 +3582,41 @@ void test_attach() if (VERBOSE && c) printf("%s",icalcomponent_as_ical_string(c)); if (c) icalcomponent_free(c); + + static const char test_icalcomp_str_caldav[] = +"BEGIN:VEVENT\n" +"ATTACH;MANAGED-ID=e474a36f22;FMTTYPE=image/jpeg;SIZE=281639;FILENAME=2doimage.jpg:https://www.someurl.com/somefile.jpg\n" +"END:VEVENT\n"; + + c = icalparser_parse_string ((char *) test_icalcomp_str_caldav); + ok("parse caldav attachment", (c != NULL)); + + if (VERBOSE && c) printf("%s",icalcomponent_as_ical_string(c)); + + p = icalcomponent_get_first_property(c,ICAL_ATTACH_PROPERTY); + ok("property is correct kind (attach)",(icalproperty_isa(p) == ICAL_ATTACH_PROPERTY)); + + param = icalproperty_get_first_parameter(p,ICAL_ANY_PARAMETER); + if (VERBOSE && param) printf("MANAGED-ID = %s\n",icalparameter_get_managedid(param)); + is("managed-id",icalparameter_get_managedid(param),"e474a36f22"); + + param = icalproperty_get_next_parameter(p,ICAL_ANY_PARAMETER); + if (VERBOSE && param) printf("FMTTYPE = %s\n",icalparameter_get_fmttype(param)); + is("fmttype",icalparameter_get_fmttype(param),"image/jpeg"); + + param = icalproperty_get_next_parameter(p,ICAL_ANY_PARAMETER); + if (VERBOSE && param) printf("SIZE = %s\n",icalparameter_get_size(param)); + is("size",icalparameter_get_size(param),"281639"); + + param = icalproperty_get_next_parameter(p,ICAL_ANY_PARAMETER); + if (VERBOSE && param) printf("FILENAME = %s\n",icalparameter_get_filename(param)); + is("filename",icalparameter_get_filename(param),"2doimage.jpg"); + + if (VERBOSE) printf("URI = %s\n",icalattach_get_url(icalproperty_get_attach(p))); + is("attach url",icalattach_get_url(icalproperty_get_attach(p)),"https://www.someurl.com/somefile.jpg"); + + if (p) icalproperty_free(p); + if (c) icalcomponent_free(c); } |