From 7622d0b5cfe2d93f824b82cdaabc8b5c436fac3f Mon Sep 17 00:00:00 2001 From: Evert Pot Date: Tue, 14 Feb 2017 21:33:01 -0500 Subject: [PATCH 1/3] Fix parsing bug for some CardDAV reports. Fixes #943 --- lib/CardDAV/Xml/Filter/AddressData.php | 1 - .../Xml/Request/AddressBookMultiGetTest.php | 47 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 tests/Sabre/CardDAV/Xml/Request/AddressBookMultiGetTest.php diff --git a/lib/CardDAV/Xml/Filter/AddressData.php b/lib/CardDAV/Xml/Filter/AddressData.php index 800989009a..a130cd61d2 100644 --- a/lib/CardDAV/Xml/Filter/AddressData.php +++ b/lib/CardDAV/Xml/Filter/AddressData.php @@ -56,7 +56,6 @@ static function xmlDeserialize(Reader $reader) { return $element['attributes']['name']; }, $elems); - $reader->next(); return $result; } diff --git a/tests/Sabre/CardDAV/Xml/Request/AddressBookMultiGetTest.php b/tests/Sabre/CardDAV/Xml/Request/AddressBookMultiGetTest.php new file mode 100644 index 0000000000..ea2ab75cee --- /dev/null +++ b/tests/Sabre/CardDAV/Xml/Request/AddressBookMultiGetTest.php @@ -0,0 +1,47 @@ + 'Sabre\\CardDAV\\Xml\\Request\AddressBookMultiGetReport', + ]; + + function testDeserialize() { + + /* lines look a bit odd but this triggers an XML parsing bug */ + $xml = << + + + + + /foo.vcf + +XML; + + $result = $this->parse($xml); + $addressBookMultiGetReport = new AddressBookMultiGetReport(); + $addressBookMultiGetReport->properties = [ + '{DAV:}getcontenttype', + '{DAV:}getetag', + '{urn:ietf:params:xml:ns:carddav}address-data', + ]; + $addressBookMultiGetReport->hrefs = ['/foo.vcf']; + $addressBookMultiGetReport->contentType = 'text/vcard'; + $addressBookMultiGetReport->version = '4.0'; + $addressBookMultiGetReport->addressDataProperties = []; + + + $this->assertEquals( + $addressBookMultiGetReport, + $result['value'] + ); + + } + + +} From c99c6fcb7220052e708361ab17519583edf30917 Mon Sep 17 00:00:00 2001 From: Evert Pot Date: Tue, 14 Feb 2017 21:40:43 -0500 Subject: [PATCH 2/3] Updated changelog, bumped version --- CHANGELOG.md | 10 ++++++++++ lib/DAV/Version.php | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d11ef44e4..0bccc995cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ ChangeLog ========= +3.2.2 (2017-02-14) +------------------ + +* #943: Fix CardDAV XML reporting bug, which was affecting several CardDAV + clients. Bug was introduced in 3.2.1. +* The zip release ships with [sabre/vobject 4.1.2][vobj], + [sabre/http 4.2.2][http], [sabre/event 3.0.0][evnt], + [sabre/uri 1.2.0][uri] and [sabre/xml 1.5.0][xml]. + + 3.2.1 (2017-01-28) ------------------ diff --git a/lib/DAV/Version.php b/lib/DAV/Version.php index b485fa1948..89918e5bc8 100644 --- a/lib/DAV/Version.php +++ b/lib/DAV/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number */ - const VERSION = '3.2.1'; + const VERSION = '3.2.2'; } From 4daf9aa77f05aa6486e2371b6567631aa4fefc71 Mon Sep 17 00:00:00 2001 From: Evert Pot Date: Tue, 14 Feb 2017 21:52:06 -0500 Subject: [PATCH 3/3] Don't use PHPUnit 6 yet. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index c561ffe520..fca0e07fbd 100644 --- a/composer.json +++ b/composer.json @@ -32,7 +32,7 @@ "psr/log": "^1.0" }, "require-dev" : { - "phpunit/phpunit" : "> 4.8, <=6.0.0", + "phpunit/phpunit" : "> 4.8, <6.0.0", "evert/phpdoc-md" : "~0.1.0", "sabre/cs" : "^1.0.0", "monolog/monolog": "^1.18"