MFB: Add import test.
authorJan Schneider <jan@horde.org>
Mon, 18 Oct 2010 22:55:31 +0000 (00:55 +0200)
committerJan Schneider <jan@horde.org>
Mon, 18 Oct 2010 23:35:10 +0000 (01:35 +0200)
kronolith/lib/tests/fromicalendar.ics [new file with mode: 0644]
kronolith/lib/tests/fromicalendar.phpt [new file with mode: 0644]

diff --git a/kronolith/lib/tests/fromicalendar.ics b/kronolith/lib/tests/fromicalendar.ics
new file mode 100644 (file)
index 0000000..badeffd
--- /dev/null
@@ -0,0 +1,28 @@
+BEGIN:VCALENDAR
+VERSION:1.0
+TZ:+0100
+DAYLIGHT:TRUE;+0200;20100328T020000;20101031T030000;;
+BEGIN:VEVENT
+X-FUNAMBOL-FOLDER:DEFAULT_FOLDER
+X-FUNAMBOL-ALLDAY:0
+DTSTART:20101101T090000Z
+DTEND:20101101T100000Z
+X-MICROSOFT-CDO-BUSYSTATUS:BUSY
+CATEGORIES:Trabajo
+DESCRIPTION:
+LOCATION:Korta
+PRIORITY:2
+STATUS:0
+X-MICROSOFT-CDO-REPLYTIME:
+SUMMARY:Cinco-Dias
+CLASS:PUBLIC
+AALARM:20101101T084500Z;;0;
+RRULE:W1 MO 20101129T100000 #5
+EXDATE:20101108T090000Z;20101122T090000Z
+RDATE:
+X-FUNAMBOL-BILLINGINFO:
+X-FUNAMBOL-COMPANIES:
+X-FUNAMBOL-MILEAGE:
+X-FUNAMBOL-NOAGING:0
+END:VEVENT
+END:VCALENDAR
diff --git a/kronolith/lib/tests/fromicalendar.phpt b/kronolith/lib/tests/fromicalendar.phpt
new file mode 100644 (file)
index 0000000..9d3b242
--- /dev/null
@@ -0,0 +1,61 @@
+--TEST--
+Import of iCalendar events
+--FILE--
+<?php
+
+class Driver {
+    function getCalendar()
+    {
+        return 'foo';
+    }
+}
+class Prefs {
+    function getValue()
+    {
+        return 0;
+    }
+}
+$prefs = new Prefs;
+
+require 'Date/Calc.php';
+require 'Horde/Date.php';
+require 'Horde/Date/Recurrence.php';
+require 'Horde/Util.php';
+require 'Horde/iCalendar.php';
+
+$iCal = new Horde_iCalendar();
+$iCal->parsevCalendar(file_get_contents(dirname(__FILE__) . '/fromicalendar.ics'));
+$components = $iCal->getComponents();
+$iCal2 = new Horde_iCalendar();
+
+define('KRONOLITH_BASE', dirname(__FILE__) . '/../..');
+require KRONOLITH_BASE . '/lib/Kronolith.php';
+require KRONOLITH_BASE . '/lib/Driver.php';
+foreach ($components as $content) {
+    if (is_a($content, 'Horde_iCalendar_vevent')) {
+        $event = new Kronolith_Event(new Driver);
+        $event->fromiCalendar($content);
+        echo $event->start->rfc3339DateTime() . "\n";
+        echo $event->end->rfc3339DateTime() . "\n";
+        var_export($event->isAllDay());
+        echo "\n";
+        if ($event->recurs()) {
+            echo $event->recurrence->toRrule20($iCal2) . "\n";
+            var_dump($event->recurrence->exceptions);
+        }
+        echo "\n";
+    }
+}
+
+?>
+--EXPECT--
+2010-11-01T10:00:00
+2010-11-01T11:00:00
+false
+FREQ=WEEKLY;INTERVAL=1;BYDAY=MO;UNTIL=20101129T230000Z
+array(2) {
+  [0]=>
+  string(8) "20101108"
+  [1]=>
+  string(8) "20101122"
+}