From 7429ffc67bcf91c9e807d05bfc11ac139641da37 Mon Sep 17 00:00:00 2001 From: josafatburmeister <33292321+josafatburmeister@users.noreply.github.com> Date: Wed, 10 Jul 2019 15:48:06 +0200 Subject: [PATCH 1/5] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8fbbfad..8d7baee 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,12 @@ Run this command in workspace, to load all required packages. To get an overview of the library, the following pictures can help. ### WebDAV + +Current features: + +- object representation of WebDAV queries (PROPFIND, REPORT) and wrapper objects for standard http queries (GET, PUT, DELETE) extending WebRequest +- WebDAVClient extending WebClient providing convinience methods for sending WebDAV requests + General structure of WebDAV package: ![image has been removed](https://owncloud.hpi.de/s/gd43fYnczuRjJNZ/download) From 53307b0288d977170fe7dd0185bd49a61d2883bd Mon Sep 17 00:00:00 2001 From: Peter Tsayun Date: Wed, 24 Jul 2019 17:08:14 +0200 Subject: [PATCH 2/5] Added Tests for SabreCalDavClient --- .../CalDavClientTest.class/instance/calendar..st | 3 +++ .../CalDavClientTest.class/instance/calendar.st | 3 +++ .../CalDavClientTest.class/instance/setUp.st | 1 + .../CalDavClientTest.class/methodProperties.json | 4 +++- .../DAV.package/CalDavClientTest.class/properties.json | 3 ++- .../instance/testCreatedRandomIdSchouldBeDifferent.st | 10 ++++++++++ .../instance/testEventUrl.st | 9 +++++++++ .../SabreCalDavClientTest.class/methodProperties.json | 4 +++- 8 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 repository/DAV.package/CalDavClientTest.class/instance/calendar..st create mode 100644 repository/DAV.package/CalDavClientTest.class/instance/calendar.st create mode 100644 repository/DAV.package/SabreCalDavClientTest.class/instance/testCreatedRandomIdSchouldBeDifferent.st create mode 100644 repository/DAV.package/SabreCalDavClientTest.class/instance/testEventUrl.st diff --git a/repository/DAV.package/CalDavClientTest.class/instance/calendar..st b/repository/DAV.package/CalDavClientTest.class/instance/calendar..st new file mode 100644 index 0000000..60779a0 --- /dev/null +++ b/repository/DAV.package/CalDavClientTest.class/instance/calendar..st @@ -0,0 +1,3 @@ +accessing +calendar: anObject + calendar := anObject \ No newline at end of file diff --git a/repository/DAV.package/CalDavClientTest.class/instance/calendar.st b/repository/DAV.package/CalDavClientTest.class/instance/calendar.st new file mode 100644 index 0000000..2f0df91 --- /dev/null +++ b/repository/DAV.package/CalDavClientTest.class/instance/calendar.st @@ -0,0 +1,3 @@ +accessing +calendar + ^ calendar \ No newline at end of file diff --git a/repository/DAV.package/CalDavClientTest.class/instance/setUp.st b/repository/DAV.package/CalDavClientTest.class/instance/setUp.st index 10da207..799e9d2 100644 --- a/repository/DAV.package/CalDavClientTest.class/instance/setUp.st +++ b/repository/DAV.package/CalDavClientTest.class/instance/setUp.st @@ -4,6 +4,7 @@ setUp super setUp. self client: CalDavClient new. self query: DAVGetQuery new. + self calendar: CalDavCalendar new. self setUpDefaultRouteOnMockedServer. self setUpCalendarRouteOnMockedServer. self setUpEventRouteOnMockedServer \ No newline at end of file diff --git a/repository/DAV.package/CalDavClientTest.class/methodProperties.json b/repository/DAV.package/CalDavClientTest.class/methodProperties.json index 9923e63..b70e027 100644 --- a/repository/DAV.package/CalDavClientTest.class/methodProperties.json +++ b/repository/DAV.package/CalDavClientTest.class/methodProperties.json @@ -2,6 +2,8 @@ "class" : { }, "instance" : { + "calendar" : "TSP 7/24/2019 17:02", + "calendar:" : "TSP 7/24/2019 17:02", "calendarUrlOnMockedServer" : "JB 6/27/2019 15:33", "calendarUrlOnRealServer" : "JB 6/27/2019 14:54", "calendarXml" : "GL 7/2/2019 11:55", @@ -33,7 +35,7 @@ "regexForFetchEventICalDataQueryWithHrefs" : "JB 6/24/2019 16:05", "regexForFetchEventsDataFromFor" : "GL 7/2/2019 11:12", "regexForFetchEventsDataQuery" : "JB 6/24/2019 15:05", - "setUp" : "GL 7/3/2019 15:32", + "setUp" : "TSP 7/24/2019 17:02", "setUpCalendarRouteOnMockedServer" : "JB 6/27/2019 22:21", "setUpClientForMockedServer" : "JB 6/27/2019 14:52", "setUpClientForRealServer" : "JB 6/27/2019 14:55", diff --git a/repository/DAV.package/CalDavClientTest.class/properties.json b/repository/DAV.package/CalDavClientTest.class/properties.json index e5bdbd7..6de9ecd 100644 --- a/repository/DAV.package/CalDavClientTest.class/properties.json +++ b/repository/DAV.package/CalDavClientTest.class/properties.json @@ -7,7 +7,8 @@ "commentStamp" : "", "instvars" : [ "client", - "query" ], + "query", + "calendar" ], "name" : "CalDavClientTest", "pools" : [ ], diff --git a/repository/DAV.package/SabreCalDavClientTest.class/instance/testCreatedRandomIdSchouldBeDifferent.st b/repository/DAV.package/SabreCalDavClientTest.class/instance/testCreatedRandomIdSchouldBeDifferent.st new file mode 100644 index 0000000..0758fbe --- /dev/null +++ b/repository/DAV.package/SabreCalDavClientTest.class/instance/testCreatedRandomIdSchouldBeDifferent.st @@ -0,0 +1,10 @@ +tests - url handling +testCreatedRandomIdSchouldBeDifferent + + | id1 id2| + + id1 := self client newRandomId. + id2 := self client newRandomId. + + self assert: (id1 ~= id2) + diff --git a/repository/DAV.package/SabreCalDavClientTest.class/instance/testEventUrl.st b/repository/DAV.package/SabreCalDavClientTest.class/instance/testEventUrl.st new file mode 100644 index 0000000..124ba21 --- /dev/null +++ b/repository/DAV.package/SabreCalDavClientTest.class/instance/testEventUrl.st @@ -0,0 +1,9 @@ +tests - url handling +testEventUrl + + | eventUrl | + + self calendar url: 'https://calendarUrl/remote' asUrl. + eventUrl := self client eventUrlFor: self calendar withId: 'eventId'. + + self assert: 'https://calendarUrl/remote/eventId.ics' asURI equals: eventUrl diff --git a/repository/DAV.package/SabreCalDavClientTest.class/methodProperties.json b/repository/DAV.package/SabreCalDavClientTest.class/methodProperties.json index 3741583..9e927bf 100644 --- a/repository/DAV.package/SabreCalDavClientTest.class/methodProperties.json +++ b/repository/DAV.package/SabreCalDavClientTest.class/methodProperties.json @@ -4,4 +4,6 @@ "instance" : { "setUp" : "JB 6/26/2019 18:30", "testAddAuthentificationInformation" : "JB 6/26/2019 18:22", - "testCredentialAccessors" : "JB 6/26/2019 18:20" } } + "testCreatedRandomIdSchouldBeDifferent" : "TSP 7/24/2019 17:03", + "testCredentialAccessors" : "JB 6/26/2019 18:20", + "testEventUrl" : "TSP 7/24/2019 17:03" } } From d2eb1a5b2f9bd54e4f2e238cd0dfbcf23959a828 Mon Sep 17 00:00:00 2001 From: Peter Tsayun Date: Wed, 24 Jul 2019 17:35:15 +0200 Subject: [PATCH 3/5] Fixed bug: setDirty by deleting and setClean by adding of events --- .../CalDavCalendar.class/instance/addEvent..st | 2 +- .../instance/removeDeletedEvents..st | 1 + .../instance/updateOrCreateEventsFrom..st | 17 +++++++++-------- .../CalDavCalendar.class/methodProperties.json | 4 ++-- .../DAV.package/CalDavEventTest.class/README.md | 0 .../CalDavEventTest.class/instance/setUp.st | 4 ++++ .../CalDavEventTest.class/methodProperties.json | 5 +++++ .../CalDavEventTest.class/properties.json | 16 ++++++++++++++++ 8 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 repository/DAV.package/CalDavEventTest.class/README.md create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/setUp.st create mode 100644 repository/DAV.package/CalDavEventTest.class/methodProperties.json create mode 100644 repository/DAV.package/CalDavEventTest.class/properties.json diff --git a/repository/DAV.package/CalDavCalendar.class/instance/addEvent..st b/repository/DAV.package/CalDavCalendar.class/instance/addEvent..st index aa7ee7a..370e225 100644 --- a/repository/DAV.package/CalDavCalendar.class/instance/addEvent..st +++ b/repository/DAV.package/CalDavCalendar.class/instance/addEvent..st @@ -1,4 +1,4 @@ -accessing +events handling addEvent: anEvent self eventsDictionary add: anEvent url schemeSpecificPart asSymbol -> anEvent. \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendar.class/instance/removeDeletedEvents..st b/repository/DAV.package/CalDavCalendar.class/instance/removeDeletedEvents..st index fd7007e..3809ab1 100644 --- a/repository/DAV.package/CalDavCalendar.class/instance/removeDeletedEvents..st +++ b/repository/DAV.package/CalDavCalendar.class/instance/removeDeletedEvents..st @@ -6,5 +6,6 @@ removeDeletedEvents: updateInformation difference: (updateInformation collect: [:info | info at: #urlLocalPart asSymbol])). urlsToRemove do: [ :elem | + self eventsDictionary at: elem setDirty. self eventsDictionary removeKey: elem ifAbsent: []. ]. \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendar.class/instance/updateOrCreateEventsFrom..st b/repository/DAV.package/CalDavCalendar.class/instance/updateOrCreateEventsFrom..st index f077986..ca8f61b 100644 --- a/repository/DAV.package/CalDavCalendar.class/instance/updateOrCreateEventsFrom..st +++ b/repository/DAV.package/CalDavCalendar.class/instance/updateOrCreateEventsFrom..st @@ -2,15 +2,16 @@ updating updateOrCreateEventsFrom: iCalData iCalData do: [ :elem | - | url etag object iCalendar | + | url etag event iCalendar | url := self buildUrlFor: (elem at: #urlLocalPart). etag := elem at: #'d:getetag'. - object := self eventsDictionary at: (elem at: #urlLocalPart ) ifAbsent: [ + iCalendar := elem at: #calendarData. + + event := self eventsDictionary at: (elem at: #urlLocalPart ) ifAbsent: [ CalDavEvent newIn: self withUrl: url.]. - iCalendar := elem at: #calendarData. - object etag: etag. - object serverCalendar: iCalendar. - object serverData: iCalendar events first. - - self addEvent: object. + event etag: etag. + event serverCalendar: iCalendar. + event serverData: iCalendar events first. + event setClean. + self addEvent: event. ]. \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendar.class/methodProperties.json b/repository/DAV.package/CalDavCalendar.class/methodProperties.json index 7b87c38..cb758a4 100644 --- a/repository/DAV.package/CalDavCalendar.class/methodProperties.json +++ b/repository/DAV.package/CalDavCalendar.class/methodProperties.json @@ -34,13 +34,13 @@ "initialize" : "TSP 7/9/2019 13:46", "newEvent" : "TSP 7/9/2019 15:00", "printEvents" : "c a 7/6/2019 20:16", - "removeDeletedEvents:" : "TSP 7/9/2019 13:45", + "removeDeletedEvents:" : "TSP 7/24/2019 17:24", "removeEvent:" : "TSP 7/9/2019 15:15", "syncToken" : "TSP 7/2/2019 12:01", "syncToken:" : "TSP 7/2/2019 12:01", "updateCalendar" : "TSP 7/2/2019 13:08", "updateEvents" : "ph 6/26/2019 16:26", "updateOrAddEvents:" : "TSP 6/17/2019 16:01", - "updateOrCreateEventsFrom:" : "TSP 6/17/2019 16:10", + "updateOrCreateEventsFrom:" : "TSP 7/24/2019 17:29", "url" : "pre 1/20/2017 10:43", "url:" : "pre 1/20/2017 15:53" } } diff --git a/repository/DAV.package/CalDavEventTest.class/README.md b/repository/DAV.package/CalDavEventTest.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/repository/DAV.package/CalDavEventTest.class/instance/setUp.st b/repository/DAV.package/CalDavEventTest.class/instance/setUp.st new file mode 100644 index 0000000..938f5df --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/setUp.st @@ -0,0 +1,4 @@ +setup +setUp + + super setUp. \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/methodProperties.json b/repository/DAV.package/CalDavEventTest.class/methodProperties.json new file mode 100644 index 0000000..89de18c --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/methodProperties.json @@ -0,0 +1,5 @@ +{ + "class" : { + }, + "instance" : { + "setUp" : "TSP 7/24/2019 17:13" } } diff --git a/repository/DAV.package/CalDavEventTest.class/properties.json b/repository/DAV.package/CalDavEventTest.class/properties.json new file mode 100644 index 0000000..c7b4ecc --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/properties.json @@ -0,0 +1,16 @@ +{ + "category" : "DAV-Cal-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "client", + "query", + "calendar" ], + "name" : "CalDavEventTest", + "pools" : [ + ], + "super" : "WebClientServerTest", + "type" : "normal" } From 1f91099894d791638901b30e7573ce025bed8af7 Mon Sep 17 00:00:00 2001 From: Peter Tsayun Date: Wed, 24 Jul 2019 18:10:00 +0200 Subject: [PATCH 4/5] Added tests for CalDavEvent --- .../DAV.package/CalDavEvent.class/instance/setClean.st | 2 +- .../DAV.package/CalDavEvent.class/instance/setDirty.st | 2 +- .../CalDavEvent.class/methodProperties.json | 2 +- .../CalDavEventTest.class/instance/calendar..st | 3 +++ .../CalDavEventTest.class/instance/calendar.st | 3 +++ .../CalDavEventTest.class/instance/calendarUrl.st | 4 ++++ .../CalDavEventTest.class/instance/client..st | 3 +++ .../CalDavEventTest.class/instance/client.st | 3 +++ .../CalDavEventTest.class/instance/setUp.st | 6 +++++- .../instance/testAssignedEventSchouldBeClear.st | 10 ++++++++++ .../instance/testAssignedEventSchouldHaveServerData.st | 10 ++++++++++ .../instance/testNewEventSchouldBeDirty.st | 7 +++++++ .../CalDavEventTest.class/methodProperties.json | 10 +++++++++- .../DAV.package/CalDavEventTest.class/properties.json | 1 - 14 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/calendar..st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/calendar.st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/calendarUrl.st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/client..st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/client.st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldBeClear.st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldHaveServerData.st create mode 100644 repository/DAV.package/CalDavEventTest.class/instance/testNewEventSchouldBeDirty.st diff --git a/repository/DAV.package/CalDavEvent.class/instance/setClean.st b/repository/DAV.package/CalDavEvent.class/instance/setClean.st index a1729ff..4fc1219 100644 --- a/repository/DAV.package/CalDavEvent.class/instance/setClean.st +++ b/repository/DAV.package/CalDavEvent.class/instance/setClean.st @@ -1,4 +1,4 @@ -manipulating +accessing setClean dirty := false. \ No newline at end of file diff --git a/repository/DAV.package/CalDavEvent.class/instance/setDirty.st b/repository/DAV.package/CalDavEvent.class/instance/setDirty.st index ea9f070..927bc6a 100644 --- a/repository/DAV.package/CalDavEvent.class/instance/setDirty.st +++ b/repository/DAV.package/CalDavEvent.class/instance/setDirty.st @@ -1,4 +1,4 @@ -manipulating +accessing setDirty dirty := true. \ No newline at end of file diff --git a/repository/DAV.package/CalDavEvent.class/methodProperties.json b/repository/DAV.package/CalDavEvent.class/methodProperties.json index 2995991..89aa9a4 100644 --- a/repository/DAV.package/CalDavEvent.class/methodProperties.json +++ b/repository/DAV.package/CalDavEvent.class/methodProperties.json @@ -17,7 +17,7 @@ "etag" : "pre 3/15/2017 14:19", "etag:" : "pre 3/15/2017 14:19", "forceSave" : "TSP 7/9/2019 15:02", - "initialize" : "TSP 7/9/2019 14:59", + "initialize" : "TSP 7/24/2019 17:47", "initializeServerData" : "c a 6/15/2019 15:55", "isDirty" : "pre 4/6/2017 12:44", "newServerData" : "pre 4/11/2017 11:18", diff --git a/repository/DAV.package/CalDavEventTest.class/instance/calendar..st b/repository/DAV.package/CalDavEventTest.class/instance/calendar..st new file mode 100644 index 0000000..60779a0 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/calendar..st @@ -0,0 +1,3 @@ +accessing +calendar: anObject + calendar := anObject \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/calendar.st b/repository/DAV.package/CalDavEventTest.class/instance/calendar.st new file mode 100644 index 0000000..2f0df91 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/calendar.st @@ -0,0 +1,3 @@ +accessing +calendar + ^ calendar \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/calendarUrl.st b/repository/DAV.package/CalDavEventTest.class/instance/calendarUrl.st new file mode 100644 index 0000000..f48f5db --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/calendarUrl.st @@ -0,0 +1,4 @@ +helpers +calendarUrl + + ^ 'https//calendarUrl/remote' \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/client..st b/repository/DAV.package/CalDavEventTest.class/instance/client..st new file mode 100644 index 0000000..9ff8301 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/client..st @@ -0,0 +1,3 @@ +accessing +client: anObject + client := anObject \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/client.st b/repository/DAV.package/CalDavEventTest.class/instance/client.st new file mode 100644 index 0000000..bd2a5f2 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/client.st @@ -0,0 +1,3 @@ +accessing +client + ^ client \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/setUp.st b/repository/DAV.package/CalDavEventTest.class/instance/setUp.st index 938f5df..da1e84a 100644 --- a/repository/DAV.package/CalDavEventTest.class/instance/setUp.st +++ b/repository/DAV.package/CalDavEventTest.class/instance/setUp.st @@ -1,4 +1,8 @@ setup setUp - super setUp. \ No newline at end of file + super setUp. + + self calendar: (CalDavCalendar new url: self calendarUrl asUrl). + self client: SabreCalDavClient new. + CalDavClient registerClient: client for: self calendarUrl. \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldBeClear.st b/repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldBeClear.st new file mode 100644 index 0000000..9bf8cf4 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldBeClear.st @@ -0,0 +1,10 @@ +tests +testAssignedEventSchouldBeClear + + | id event eventUrl | + + id := 'eventId'. + eventUrl := 'eventUrl'. + event := self calendar newEvent. + + self assert: (event isDirty not) \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldHaveServerData.st b/repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldHaveServerData.st new file mode 100644 index 0000000..70720d9 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/testAssignedEventSchouldHaveServerData.st @@ -0,0 +1,10 @@ +tests +testAssignedEventSchouldHaveServerData + + | id event eventUrl | + + id := 'eventId'. + eventUrl := 'eventUrl'. + event := CalDavEvent newIn: self calendar withId: id withUrl: eventUrl. + + self assert: (event serverData notNil) \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/instance/testNewEventSchouldBeDirty.st b/repository/DAV.package/CalDavEventTest.class/instance/testNewEventSchouldBeDirty.st new file mode 100644 index 0000000..f549213 --- /dev/null +++ b/repository/DAV.package/CalDavEventTest.class/instance/testNewEventSchouldBeDirty.st @@ -0,0 +1,7 @@ +tests +testNewEventSchouldBeDirty + + | event | + + event := CalDavEvent new. + self assert: event isDirty \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/methodProperties.json b/repository/DAV.package/CalDavEventTest.class/methodProperties.json index 89de18c..a3c4636 100644 --- a/repository/DAV.package/CalDavEventTest.class/methodProperties.json +++ b/repository/DAV.package/CalDavEventTest.class/methodProperties.json @@ -2,4 +2,12 @@ "class" : { }, "instance" : { - "setUp" : "TSP 7/24/2019 17:13" } } + "calendar" : "TSP 7/24/2019 17:44", + "calendar:" : "TSP 7/24/2019 17:44", + "calendarUrl" : "TSP 7/24/2019 18:00", + "client" : "TSP 7/24/2019 17:59", + "client:" : "TSP 7/24/2019 17:59", + "setUp" : "TSP 7/24/2019 18:02", + "testAssignedEventSchouldBeClear" : "TSP 7/24/2019 18:05", + "testAssignedEventSchouldHaveServerData" : "TSP 7/24/2019 18:05", + "testNewEventSchouldBeDirty" : "TSP 7/24/2019 17:48" } } diff --git a/repository/DAV.package/CalDavEventTest.class/properties.json b/repository/DAV.package/CalDavEventTest.class/properties.json index c7b4ecc..cf6da78 100644 --- a/repository/DAV.package/CalDavEventTest.class/properties.json +++ b/repository/DAV.package/CalDavEventTest.class/properties.json @@ -7,7 +7,6 @@ "commentStamp" : "", "instvars" : [ "client", - "query", "calendar" ], "name" : "CalDavEventTest", "pools" : [ From 23433555cbbdee152c33ec7a381c77ddd9723953 Mon Sep 17 00:00:00 2001 From: Peter Tsayun Date: Wed, 24 Jul 2019 18:38:25 +0200 Subject: [PATCH 5/5] Added tests for CalDavCalendar --- .../instance/removeEvent..st | 6 +----- .../instance/removeEventLocal..st | 11 +++++++++++ .../methodProperties.json | 3 ++- .../CalDavCalendarTest.class/README.md | 0 .../instance/calendar..st | 3 +++ .../instance/calendar.st | 3 +++ .../instance/calendarUrl.st | 4 ++++ .../instance/client..st | 3 +++ .../instance/client.st | 3 +++ .../instance/setUp.st | 8 ++++++++ .../instance/testAddEvent.st | 10 ++++++++++ .../instance/testCreateEvent.st | 16 ++++++++++++++++ .../instance/testCreateEventWithRecurrence.st | 19 +++++++++++++++++++ .../instance/testCreateFullDayEvent.st | 14 ++++++++++++++ .../testCreateFullDayEventWithRecurrence.st | 18 ++++++++++++++++++ .../instance/testRemoveEvent.st | 11 +++++++++++ .../methodProperties.json | 16 ++++++++++++++++ .../CalDavCalendarTest.class/properties.json | 15 +++++++++++++++ .../CalDavEventTest.class/instance/setUp.st | 2 +- .../methodProperties.json | 2 +- 20 files changed, 159 insertions(+), 8 deletions(-) create mode 100644 repository/DAV.package/CalDavCalendar.class/instance/removeEventLocal..st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/README.md create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/calendar..st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/calendar.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/calendarUrl.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/client..st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/client.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/setUp.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/testAddEvent.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEvent.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEventWithRecurrence.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEvent.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEventWithRecurrence.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/instance/testRemoveEvent.st create mode 100644 repository/DAV.package/CalDavCalendarTest.class/methodProperties.json create mode 100644 repository/DAV.package/CalDavCalendarTest.class/properties.json diff --git a/repository/DAV.package/CalDavCalendar.class/instance/removeEvent..st b/repository/DAV.package/CalDavCalendar.class/instance/removeEvent..st index ae6e28e..1d00cec 100644 --- a/repository/DAV.package/CalDavCalendar.class/instance/removeEvent..st +++ b/repository/DAV.package/CalDavCalendar.class/instance/removeEvent..st @@ -1,12 +1,8 @@ events handling removeEvent: anEvent - | key | - self client deleteEvent: anEvent. - key := anEvent url schemeSpecificPart asSymbol. - self eventsDictionary removeKey: key ifAbsent: []. - anEvent setDirty. + self removeEventLocal: anEvent. ^ anEvent \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendar.class/instance/removeEventLocal..st b/repository/DAV.package/CalDavCalendar.class/instance/removeEventLocal..st new file mode 100644 index 0000000..0685529 --- /dev/null +++ b/repository/DAV.package/CalDavCalendar.class/instance/removeEventLocal..st @@ -0,0 +1,11 @@ +events handling +removeEventLocal: anEvent + + | key | + + key := anEvent url schemeSpecificPart asSymbol. + self eventsDictionary removeKey: key ifAbsent: []. + anEvent setDirty. + + ^ anEvent + \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendar.class/methodProperties.json b/repository/DAV.package/CalDavCalendar.class/methodProperties.json index cb758a4..635cfdb 100644 --- a/repository/DAV.package/CalDavCalendar.class/methodProperties.json +++ b/repository/DAV.package/CalDavCalendar.class/methodProperties.json @@ -35,7 +35,8 @@ "newEvent" : "TSP 7/9/2019 15:00", "printEvents" : "c a 7/6/2019 20:16", "removeDeletedEvents:" : "TSP 7/24/2019 17:24", - "removeEvent:" : "TSP 7/9/2019 15:15", + "removeEvent:" : "TSP 7/24/2019 18:30", + "removeEventLocal:" : "TSP 7/24/2019 18:30", "syncToken" : "TSP 7/2/2019 12:01", "syncToken:" : "TSP 7/2/2019 12:01", "updateCalendar" : "TSP 7/2/2019 13:08", diff --git a/repository/DAV.package/CalDavCalendarTest.class/README.md b/repository/DAV.package/CalDavCalendarTest.class/README.md new file mode 100644 index 0000000..e69de29 diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/calendar..st b/repository/DAV.package/CalDavCalendarTest.class/instance/calendar..st new file mode 100644 index 0000000..60779a0 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/calendar..st @@ -0,0 +1,3 @@ +accessing +calendar: anObject + calendar := anObject \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/calendar.st b/repository/DAV.package/CalDavCalendarTest.class/instance/calendar.st new file mode 100644 index 0000000..2f0df91 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/calendar.st @@ -0,0 +1,3 @@ +accessing +calendar + ^ calendar \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/calendarUrl.st b/repository/DAV.package/CalDavCalendarTest.class/instance/calendarUrl.st new file mode 100644 index 0000000..f48f5db --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/calendarUrl.st @@ -0,0 +1,4 @@ +helpers +calendarUrl + + ^ 'https//calendarUrl/remote' \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/client..st b/repository/DAV.package/CalDavCalendarTest.class/instance/client..st new file mode 100644 index 0000000..9ff8301 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/client..st @@ -0,0 +1,3 @@ +accessing +client: anObject + client := anObject \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/client.st b/repository/DAV.package/CalDavCalendarTest.class/instance/client.st new file mode 100644 index 0000000..bd2a5f2 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/client.st @@ -0,0 +1,3 @@ +accessing +client + ^ client \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/setUp.st b/repository/DAV.package/CalDavCalendarTest.class/instance/setUp.st new file mode 100644 index 0000000..0c6be15 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/setUp.st @@ -0,0 +1,8 @@ +setup +setUp + + super setUp. + + self calendar: (CalDavCalendar new url: self calendarUrl asUrl). + self client: SabreCalDavClient new. + CalDavClient registerClient: client for: self calendarUrl \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/testAddEvent.st b/repository/DAV.package/CalDavCalendarTest.class/instance/testAddEvent.st new file mode 100644 index 0000000..fc18a72 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/testAddEvent.st @@ -0,0 +1,10 @@ +tests - handling events +testAddEvent + + | event key | + + event := self calendar newEvent. + key := event url schemeSpecificPart asSymbol. + self calendar addEvent: event. + + self assert: (self calendar eventsDictionary keys includes: key) \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEvent.st b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEvent.st new file mode 100644 index 0000000..37dbc07 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEvent.st @@ -0,0 +1,16 @@ +tests - handling events +testCreateEvent + + | summary startDate endDate event | + + summary := 'aSummary'. + startDate := (DateAndTime year: 2019 month: #July day: 15 hour: 14 minute: 30). + endDate := (DateAndTime year: 2019 month: #July day: 15 hour: 17 minute: 0). + + event := self calendar createEvent: summary + StartDate: startDate + EndDate: endDate. + + self assert: summary equals: event summary. + self assert: startDate equals: event start. + self assert: endDate equals: event end diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEventWithRecurrence.st b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEventWithRecurrence.st new file mode 100644 index 0000000..b6e3263 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateEventWithRecurrence.st @@ -0,0 +1,19 @@ +tests - handling events +testCreateEventWithRecurrence + + | summary startDate endDate recurrence event | + + summary := 'aSummary'. + startDate := (DateAndTime year: 2019 month: #July day: 15 hour: 14 minute: 30). + endDate := (DateAndTime year: 2019 month: #July day: 15 hour: 17 minute: 0). + recurrence := ICRecurrenceRule weekly. + + event := self calendar createEvent: summary + StartDate: startDate + EndDate: endDate + Recurrence: recurrence. + + self assert: summary equals: event summary. + self assert: startDate equals: event start. + self assert: endDate equals: event end. + self assert: (event recurrenceRules includes: recurrence) diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEvent.st b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEvent.st new file mode 100644 index 0000000..b15a541 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEvent.st @@ -0,0 +1,14 @@ +tests - handling events +testCreateFullDayEvent + + | summary date event | + + summary := 'aSummary'. + date := (DateAndTime year: 2019 month: #July day: 15 hour: 14 minute: 30). + + event := self calendar createFullDayEvent: summary + Date: date. + + self assert: summary equals: event summary. + self assert: date equals: event start. + self assert: (date + 1 day) equals: event end diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEventWithRecurrence.st b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEventWithRecurrence.st new file mode 100644 index 0000000..22ad33b --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/testCreateFullDayEventWithRecurrence.st @@ -0,0 +1,18 @@ +tests - handling events +testCreateFullDayEventWithRecurrence + + | summary date event recurrence | + + summary := 'aSummary'. + date := (DateAndTime year: 2019 month: #July day: 15 hour: 14 minute: 30). + recurrence := ICRecurrenceRule weekly. + + event := self calendar createFullDayEvent: summary + Date: date + Recurrence: recurrence. + + self assert: summary equals: event summary. + self assert: date equals: event start. + self assert: (date + 1 day) equals: event end. + self assert: (event recurrenceRules includes: recurrence) + diff --git a/repository/DAV.package/CalDavCalendarTest.class/instance/testRemoveEvent.st b/repository/DAV.package/CalDavCalendarTest.class/instance/testRemoveEvent.st new file mode 100644 index 0000000..f1a5e1d --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/instance/testRemoveEvent.st @@ -0,0 +1,11 @@ +tests - handling events +testRemoveEvent + + | event key | + + event := self calendar newEvent. + key := event url schemeSpecificPart asSymbol. + self calendar addEvent: event. + self calendar removeEventLocal: event. + + self assert: ((self calendar eventsDictionary keys includes: key) not) \ No newline at end of file diff --git a/repository/DAV.package/CalDavCalendarTest.class/methodProperties.json b/repository/DAV.package/CalDavCalendarTest.class/methodProperties.json new file mode 100644 index 0000000..7ee77c2 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/methodProperties.json @@ -0,0 +1,16 @@ +{ + "class" : { + }, + "instance" : { + "calendar" : "TSP 7/24/2019 18:15", + "calendar:" : "TSP 7/24/2019 18:15", + "calendarUrl" : "TSP 7/24/2019 18:14", + "client" : "TSP 7/24/2019 18:14", + "client:" : "TSP 7/24/2019 18:14", + "setUp" : "TSP 7/24/2019 18:15", + "testAddEvent" : "TSP 7/24/2019 18:28", + "testCreateEvent" : "TSP 7/24/2019 18:23", + "testCreateEventWithRecurrence" : "TSP 7/24/2019 18:23", + "testCreateFullDayEvent" : "TSP 7/24/2019 18:33", + "testCreateFullDayEventWithRecurrence" : "TSP 7/24/2019 18:34", + "testRemoveEvent" : "TSP 7/24/2019 18:30" } } diff --git a/repository/DAV.package/CalDavCalendarTest.class/properties.json b/repository/DAV.package/CalDavCalendarTest.class/properties.json new file mode 100644 index 0000000..ef74741 --- /dev/null +++ b/repository/DAV.package/CalDavCalendarTest.class/properties.json @@ -0,0 +1,15 @@ +{ + "category" : "DAV-Cal-Tests", + "classinstvars" : [ + ], + "classvars" : [ + ], + "commentStamp" : "", + "instvars" : [ + "client", + "calendar" ], + "name" : "CalDavCalendarTest", + "pools" : [ + ], + "super" : "WebClientServerTest", + "type" : "normal" } diff --git a/repository/DAV.package/CalDavEventTest.class/instance/setUp.st b/repository/DAV.package/CalDavEventTest.class/instance/setUp.st index da1e84a..0c6be15 100644 --- a/repository/DAV.package/CalDavEventTest.class/instance/setUp.st +++ b/repository/DAV.package/CalDavEventTest.class/instance/setUp.st @@ -5,4 +5,4 @@ setUp self calendar: (CalDavCalendar new url: self calendarUrl asUrl). self client: SabreCalDavClient new. - CalDavClient registerClient: client for: self calendarUrl. \ No newline at end of file + CalDavClient registerClient: client for: self calendarUrl \ No newline at end of file diff --git a/repository/DAV.package/CalDavEventTest.class/methodProperties.json b/repository/DAV.package/CalDavEventTest.class/methodProperties.json index a3c4636..43e9789 100644 --- a/repository/DAV.package/CalDavEventTest.class/methodProperties.json +++ b/repository/DAV.package/CalDavEventTest.class/methodProperties.json @@ -7,7 +7,7 @@ "calendarUrl" : "TSP 7/24/2019 18:00", "client" : "TSP 7/24/2019 17:59", "client:" : "TSP 7/24/2019 17:59", - "setUp" : "TSP 7/24/2019 18:02", + "setUp" : "TSP 7/24/2019 18:15", "testAssignedEventSchouldBeClear" : "TSP 7/24/2019 18:05", "testAssignedEventSchouldHaveServerData" : "TSP 7/24/2019 18:05", "testNewEventSchouldBeDirty" : "TSP 7/24/2019 17:48" } }