]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/SabreDAV/tests/Sabre/CalDAV/CalendarQueryVAlarmTest.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / CalDAV / CalendarQueryVAlarmTest.php
diff --git a/dav/SabreDAV/tests/Sabre/CalDAV/CalendarQueryVAlarmTest.php b/dav/SabreDAV/tests/Sabre/CalDAV/CalendarQueryVAlarmTest.php
new file mode 100644 (file)
index 0000000..3677198
--- /dev/null
@@ -0,0 +1,115 @@
+<?php
+
+class Sabre_CalDAV_CalendarQueryVAlarmTest extends PHPUnit_Framework_TestCase {
+
+    /**
+     * This test is specifically for a time-range query on a VALARM, contained
+     * in a VEVENT that's recurring
+     */
+    function testValarm() {
+
+        $vevent = Sabre_VObject_Component::create('VEVENT');
+        $vevent->RRULE = 'FREQ=MONTHLY';
+        $vevent->DTSTART = '20120101T120000Z';
+        $vevent->UID = 'bla';
+
+        $valarm = Sabre_VObject_Component::create('VALARM');
+        $valarm->TRIGGER = '-P15D';
+        $vevent->add($valarm);
+
+        $vcalendar = Sabre_VObject_Component::create('VCALENDAR');
+        $vcalendar->add($vevent);
+
+        $filter = array(
+            'name' => 'VCALENDAR',
+            'is-not-defined' => false,
+            'time-range' => null,
+            'prop-filters' => array(),
+            'comp-filters' => array(
+                array(
+                    'name' => 'VEVENT',
+                    'is-not-defined' => false,
+                    'time-range' => null,
+                    'prop-filters' => array(),
+                    'comp-filters' => array(
+                        array(
+                            'name' => 'VALARM',
+                            'is-not-defined' => false,
+                            'prop-filters' => array(),
+                            'comp-filters' => array(),
+                            'time-range' => array(
+                                'start' => new DateTime('2012-05-10'),
+                                'end' => new DateTime('2012-05-20'),
+                            ),
+                        ),
+                    ),
+                ),
+            ),
+        );
+
+        $validator = new Sabre_CalDAV_CalendarQueryValidator();
+        $this->assertTrue($validator->validate($vcalendar, $filter));
+
+
+        // A limited recurrence rule, should return false
+        $vevent = Sabre_VObject_Component::create('VEVENT');
+        $vevent->RRULE = 'FREQ=MONTHLY;COUNT=1';
+        $vevent->DTSTART = '20120101T120000Z';
+        $vevent->UID = 'bla';
+
+        $valarm = Sabre_VObject_Component::create('VALARM');
+        $valarm->TRIGGER = '-P15D';
+        $vevent->add($valarm);
+
+        $vcalendar = Sabre_VObject_Component::create('VCALENDAR');
+        $vcalendar->add($vevent);
+
+        $this->assertFalse($validator->validate($vcalendar, $filter));
+    }
+
+    function testAlarmWayBefore() {
+
+        $vevent = Sabre_VObject_Component::create('VEVENT');
+        $vevent->DTSTART = '20120101T120000Z';
+        $vevent->UID = 'bla';
+
+        $valarm = Sabre_VObject_Component::create('VALARM');
+        $valarm->TRIGGER = '-P2W1D';
+        $vevent->add($valarm);
+
+        $vcalendar = Sabre_VObject_Component::create('VCALENDAR');
+        $vcalendar->add($vevent);
+
+        $filter = array(
+            'name' => 'VCALENDAR',
+            'is-not-defined' => false,
+            'time-range' => null,
+            'prop-filters' => array(),
+            'comp-filters' => array(
+                array(
+                    'name' => 'VEVENT',
+                    'is-not-defined' => false,
+                    'time-range' => null,
+                    'prop-filters' => array(),
+                    'comp-filters' => array(
+                        array(
+                            'name' => 'VALARM',
+                            'is-not-defined' => false,
+                            'prop-filters' => array(),
+                            'comp-filters' => array(),
+                            'time-range' => array(
+                                'start' => new DateTime('2011-12-10'),
+                                'end' => new DateTime('2011-12-20'),
+                            ),
+                        ),
+                    ),
+                ),
+            ),
+        );
+
+        $validator = new Sabre_CalDAV_CalendarQueryValidator();
+        $this->assertTrue($validator->validate($vcalendar, $filter));
+
+    }
+
+}