[Pkg-owncloud-commits] [php-sabre-vobject] 09/29: Default properties in sub-components now also work as expected.

David Prévot taffit at moszumanska.debian.org
Sat Dec 12 19:26:58 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository php-sabre-vobject.

commit f39a095dd6456eb6ddededdfa706cd3fad12c81b
Author: Evert Pot <me at evertpot.com>
Date:   Wed Dec 2 17:17:26 2015 -0500

    Default properties in sub-components now also work as expected.
---
 lib/Component.php                               | 18 +++++++++---------
 tests/VObject/BirthdayCalendarGeneratorTest.php | 22 ++++++++++++++++++++++
 tests/VObject/ITip/BrokerAttendeeReplyTest.php  | 19 +++++++++++++++++++
 tests/VObject/ITip/BrokerDeleteEventTest.php    |  3 +++
 tests/VObject/ITip/BrokerUpdateEventTest.php    |  5 +++++
 tests/VObject/JCalTest.php                      |  2 +-
 tests/VObject/TestCase.php                      | 23 +++++++++++++++++++----
 7 files changed, 78 insertions(+), 14 deletions(-)

diff --git a/lib/Component.php b/lib/Component.php
index 46cc80a..e6c7ed6 100644
--- a/lib/Component.php
+++ b/lib/Component.php
@@ -81,7 +81,6 @@ class Component extends Node {
         } else {
             foreach ($children as $k => $child) {
                 if ($child instanceof Node) {
-
                     // Component or Property
                     $this->add($child);
                 } else {
@@ -107,19 +106,20 @@ class Component extends Node {
      *
      * @return Node
      */
-    function add($a1, $a2 = null, $a3 = null) {
+    function add() {
+
+        $arguments = func_get_args();
 
-        if ($a1 instanceof Node) {
-            if (!is_null($a2)) {
+        if ($arguments[0] instanceof Node) {
+            if (isset($arguments[1])) {
                 throw new \InvalidArgumentException('The second argument must not be specified, when passing a VObject Node');
             }
-            $a1->parent = $this;
-            $newNode = $a1;
+            $arguments[0]->parent = $this;
+            $newNode = $arguments[0];
 
-        } elseif (is_string($a1)) {
+        } elseif (is_string($arguments[0])) {
 
-            $newNode = $this->root->create($a1, $a2, $a3);
-            $newNode->parent = $this;
+            $newNode = call_user_func_array([$this->root, 'create'], $arguments);
 
         } else {
 
diff --git a/tests/VObject/BirthdayCalendarGeneratorTest.php b/tests/VObject/BirthdayCalendarGeneratorTest.php
index 1fc1180..090fd1e 100644
--- a/tests/VObject/BirthdayCalendarGeneratorTest.php
+++ b/tests/VObject/BirthdayCalendarGeneratorTest.php
@@ -21,6 +21,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:19850407
 RRULE:FREQ=YEARLY
@@ -69,6 +71,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:19850407
 RRULE:FREQ=YEARLY
@@ -76,6 +80,8 @@ TRANSP:TRANSPARENT
 X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
 END:VEVENT
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:John Doe's Birthday
 DTSTART;VALUE=DATE:19820210
 RRULE:FREQ=YEARLY
@@ -125,6 +131,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:19850407
 RRULE:FREQ=YEARLY
@@ -132,6 +140,8 @@ TRANSP:TRANSPARENT
 X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
 END:VEVENT
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:John Doe's Birthday
 DTSTART;VALUE=DATE:19820210
 RRULE:FREQ=YEARLY
@@ -170,6 +180,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:19850407
 RRULE:FREQ=YEARLY
@@ -222,6 +234,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:19850407
 RRULE:FREQ=YEARLY
@@ -229,6 +243,8 @@ TRANSP:TRANSPARENT
 X-SABRE-BDAY;X-SABRE-VCARD-UID=foo;X-SABRE-VCARD-FN=Forrest Gump:BDAY
 END:VEVENT
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:John Doe's Birthday
 DTSTART;VALUE=DATE:19820210
 RRULE:FREQ=YEARLY
@@ -265,6 +281,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:20000407
 RRULE:FREQ=YEARLY
@@ -301,6 +319,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Birthday
 DTSTART;VALUE=DATE:20000407
 RRULE:FREQ=YEARLY
@@ -394,6 +414,8 @@ VCF;
 BEGIN:VCALENDAR
 VERSION:2.0
 BEGIN:VEVENT
+UID:**ANY**
+DTSTAMP:**ANY**
 SUMMARY:Forrest Gump's Geburtstag
 DTSTART;VALUE=DATE:19850407
 RRULE:FREQ=YEARLY
diff --git a/tests/VObject/ITip/BrokerAttendeeReplyTest.php b/tests/VObject/ITip/BrokerAttendeeReplyTest.php
index 57d01f4..e8c6acb 100644
--- a/tests/VObject/ITip/BrokerAttendeeReplyTest.php
+++ b/tests/VObject/ITip/BrokerAttendeeReplyTest.php
@@ -54,6 +54,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140716T120000Z
 SUMMARY:B-day party
@@ -162,6 +163,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140726T120000Z
 SUMMARY:Daily sprint
@@ -171,6 +173,7 @@ ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140724T120000Z
 SUMMARY:Daily sprint
@@ -180,6 +183,7 @@ ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140728T120000Z
 SUMMARY:Daily sprint
@@ -189,6 +193,7 @@ ATTENDEE;PARTSTAT=TENTATIVE;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140729T120000Z
 SUMMARY:Daily sprint
@@ -198,6 +203,7 @@ ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140725T120000Z
 SUMMARY:Daily sprint
@@ -305,6 +311,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140726
 RECURRENCE-ID;VALUE=DATE:20140726
@@ -313,6 +320,7 @@ ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140724
 RECURRENCE-ID;VALUE=DATE:20140724
@@ -321,6 +329,7 @@ ATTENDEE;PARTSTAT=DECLINED;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140728
 RECURRENCE-ID;VALUE=DATE:20140728
@@ -329,6 +338,7 @@ ATTENDEE;PARTSTAT=TENTATIVE;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140729
 RECURRENCE-ID;VALUE=DATE:20140729
@@ -337,6 +347,7 @@ ATTENDEE;PARTSTAT=ACCEPTED;CN=One:mailto:one at example.org
 END:VEVENT
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140725
 RECURRENCE-ID;VALUE=DATE:20140725
@@ -436,6 +447,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140716T120000Z
 ORGANIZER;CN=Strunk:mailto:strunk at example.org
@@ -542,6 +554,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140818T200000Z
 RECURRENCE-ID:20140818T200000Z
@@ -613,6 +626,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;TZID=America/Toronto:20140818T200000
 RECURRENCE-ID;TZID=America/Toronto:20140818T200000
@@ -683,6 +697,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140818
 SUMMARY:Weekly meeting
@@ -747,6 +762,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140716T120000Z
 ORGANIZER;CN=Strunk:mailto:strunk at example.org
@@ -943,6 +959,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART;VALUE=DATE:20140716
 ORGANIZER;CN=Strunk:mailto:strunk at example.org
@@ -1017,6 +1034,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140724T120000Z
 SUMMARY:Daily sprint
@@ -1109,6 +1127,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140717T120000Z
 SUMMARY:B-day party
diff --git a/tests/VObject/ITip/BrokerDeleteEventTest.php b/tests/VObject/ITip/BrokerDeleteEventTest.php
index 55a8d80..8dccc28 100644
--- a/tests/VObject/ITip/BrokerDeleteEventTest.php
+++ b/tests/VObject/ITip/BrokerDeleteEventTest.php
@@ -43,6 +43,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:2
 SUMMARY:foo
 DTSTART:20140716T120000Z
@@ -69,6 +70,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:2
 SUMMARY:foo
 DTSTART:20140716T120000Z
@@ -124,6 +126,7 @@ CALSCALE:GREGORIAN
 METHOD:REPLY
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140716T120000Z
 SUMMARY:foo
diff --git a/tests/VObject/ITip/BrokerUpdateEventTest.php b/tests/VObject/ITip/BrokerUpdateEventTest.php
index c3a0763..64345bd 100644
--- a/tests/VObject/ITip/BrokerUpdateEventTest.php
+++ b/tests/VObject/ITip/BrokerUpdateEventTest.php
@@ -59,6 +59,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:2
 SUMMARY:foo
 DTSTART:20140716T120000Z
@@ -237,6 +238,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:1
 DTSTART:20140716T120000Z
 ORGANIZER;CN=Strunk:mailto:strunk at example.org
@@ -414,6 +416,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:2
 DTSTART:20140716T120000Z
 ORGANIZER;CN=Strunk:mailto:strunk at example.org
@@ -674,6 +677,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:2
 SUMMARY:foo
 DTSTART:20140716T120000Z
@@ -701,6 +705,7 @@ CALSCALE:GREGORIAN
 METHOD:CANCEL
 BEGIN:VEVENT
 UID:foobar
+DTSTAMP:**ANY**
 SEQUENCE:2
 SUMMARY:foo
 DTSTART:20140716T120000Z
diff --git a/tests/VObject/JCalTest.php b/tests/VObject/JCalTest.php
index 5df2e6b..8c43716 100644
--- a/tests/VObject/JCalTest.php
+++ b/tests/VObject/JCalTest.php
@@ -22,7 +22,7 @@ class JCalTest extends \PHPUnit_Framework_TestCase {
             "URL"          => "http://example.org/",
             "TZOFFSETFROM" => "+0500",
             "RRULE"        => ['FREQ' => 'WEEKLY', 'BYDAY' => ['MO', 'TU']],
-        ]);
+        ], false);
 
         // Modifying DTSTART to be a date-only.
         $event->dtstart['VALUE'] = 'DATE';
diff --git a/tests/VObject/TestCase.php b/tests/VObject/TestCase.php
index 16b2833..c1a63db 100644
--- a/tests/VObject/TestCase.php
+++ b/tests/VObject/TestCase.php
@@ -16,6 +16,8 @@ class TestCase extends \PHPUnit_Framework_TestCase {
      *
      * CALSCALE will automatically get removed if it's set to GREGORIAN.
      *
+     * Any property that has the value **ANY** will be treated as a wildcard.
+     *
      * @param resource|string|Component $expected
      * @param resource|string|Component $actual
      * @param string $message
@@ -42,12 +44,25 @@ class TestCase extends \PHPUnit_Framework_TestCase {
 
         };
 
-        $expected = $getObj($expected);
-        $actual = $getObj($actual);
+        $expected = $getObj($expected)->serialize();
+        $actual = $getObj($actual)->serialize();
+
+        // Finding wildcards in expected.
+        preg_match_all('|^([A-Z]+):\\*\\*ANY\\*\\*\r$|m', $expected, $matches, PREG_SET_ORDER);
+
+        foreach ($matches as $match) {
+
+            $actual = preg_replace(
+                '|^' . preg_quote($match[1], '|') . ':(.*)\r$|m',
+                $match[1] . ':**ANY**' . "\r",
+                $actual
+            );
+
+        }
 
         $this->assertEquals(
-            $expected->serialize(),
-            $actual->serialize(),
+            $expected,
+            $actual,
             $message
         );
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/php-sabre-vobject.git



More information about the Pkg-owncloud-commits mailing list