$e->setCreated(new cDateTime(2012, 3, 14, 9, 5, 30, true)); $e->setStart(new cDateTime(2012, 7, 31)); $d = new cDateTime(2009, 10, 12); assertequal($e->exceptionDates()->size(), 0, "Event::exceptionDates()"); $e->addExceptionDate($d); assertequal($e->exceptionDates()->size(), 1, "Event::addExceptionDate()"); $r = new RecurrenceRule(); $r->setFrequency(RecurrenceRule::Minutely); $bysec = new vectori(); $bysec->push(1); $bysec->push(3); $r->setBySecond($bysec); $e->setRecurrenceRule($r); $va = new vectoralarm(); $a1 = new Alarm("Display alarm"); $a1->setRelativeStart(new Duration(0, 6, 30, 0, true), kolabformat::Start); $va->push($a1); $acr = new vectorcontactref(); $acr->push(new ContactReference("*****@*****.**")); $a2 = new Alarm("Email alarm", "Alarm description", $acr); $a2->setStart(new cDateTime(2012, 7, 30, 20, 30, 0, true)); $va->push($a2); $e->setAlarms($va); $xml = kolabformat::writeEvent($e); #print $xml; assertcontains($xml, '<dtstart><date>2012-07-31</date></dtstart>', "Event::setStart() with date only"); assertcontains($xml, '<created><date-time>2012-03-14T09:05:30Z</date-time></created>', "Event::setCreated() with date-time"); assertcontains($xml, '<rrule><recur><freq>MINUTELY</freq>', "RecurrenceRule::setFrequency()"); assertcontains($xml, '<rrule><recur><freq>MINUTELY</freq><bysecond>1</bysecond><bysecond>3</bysecond></recur></rrule>', "RecurrenceRule::setBySecond()"); assertcontains($xml, '<exdate><date>2009-10-12</date></exdate>', "Event Recurrence Exceptions"); assertcontains($xml, '<duration>-PT6H30M</duration>', "Alarm::setRelativeStart(Duration)");