public function test_calendar_update_subscription() { $this->resetAfterTest(true); $subscription = new stdClass(); $subscription->eventtype = 'site'; $subscription->name = 'test'; $id = calendar_add_subscription($subscription); $subscription = new stdClass(); $subscription->id = $id; $subscription->name = 'awesome'; calendar_update_subscription($subscription); $sub = calendar_get_subscription($id); $this->assertEquals($subscription->name, $sub->name); $subscription = new stdClass(); $subscription->id = $id; $subscription->name = 'awesome2'; $subscription->pollinterval = 604800; calendar_update_subscription($subscription); $sub = calendar_get_subscription($id); $this->assertEquals($subscription->name, $sub->name); $this->assertEquals($subscription->pollinterval, $sub->pollinterval); $subscription = new stdClass(); $subscription->name = 'awesome4'; $this->setExpectedException('coding_exception'); calendar_update_subscription($subscription); }
/** * Instantiates a new event and optionally populates its properties with the * data provided * * @param stdClass $data Optional. An object containing the properties to for * an event */ public function __construct($data = null) { global $CFG, $USER; // First convert to object if it is not already (should either be object or assoc array) if (!is_object($data)) { $data = (object) $data; } $this->editoroptions['maxbytes'] = $CFG->maxbytes; $data->eventrepeats = 0; if (empty($data->id)) { $data->id = null; } if (!empty($data->subscriptionid)) { $data->subscription = calendar_get_subscription($data->subscriptionid); } // Default to a user event if (empty($data->eventtype)) { $data->eventtype = 'user'; } // Default to the current user if (empty($data->userid)) { $data->userid = $USER->id; } if (!empty($data->timeduration) && is_array($data->timeduration)) { $data->timeduration = make_timestamp($data->timeduration['year'], $data->timeduration['month'], $data->timeduration['day'], $data->timeduration['hour'], $data->timeduration['minute']) - $data->timestart; } if (!empty($data->description) && is_array($data->description)) { $data->format = $data->description['format']; $data->description = $data->description['text']; } else { if (empty($data->description)) { $data->description = ''; $data->format = editors_get_preferred_format(); } } // Ensure form is defaulted correctly if (empty($data->format)) { $data->format = editors_get_preferred_format(); } if (empty($data->context)) { $data->context = $this->calculate_context($data); } $this->properties = $data; }
public function test_calendar_add_subscription() { global $DB, $CFG; require_once $CFG->dirroot . '/lib/bennu/bennu.inc.php'; $this->resetAfterTest(true); // Test for Microsoft Outlook 2010. $subscription = new stdClass(); $subscription->name = 'Microsoft Outlook 2010'; $subscription->importfrom = CALENDAR_IMPORT_FROM_FILE; $subscription->eventtype = 'site'; $id = calendar_add_subscription($subscription); $calendar = file_get_contents($CFG->dirroot . '/lib/tests/fixtures/ms_outlook_2010.ics'); $ical = new iCalendar(); $ical->unserialize($calendar); $this->assertEquals($ical->parser_errors, array()); $sub = calendar_get_subscription($id); $result = calendar_import_icalendar_events($ical, $sub->courseid, $sub->id); $count = $DB->count_records('event', array('subscriptionid' => $sub->id)); $this->assertEquals($count, 1); // Test for OSX Yosemite. $subscription = new stdClass(); $subscription->name = 'OSX Yosemite'; $subscription->importfrom = CALENDAR_IMPORT_FROM_FILE; $subscription->eventtype = 'site'; $id = calendar_add_subscription($subscription); $calendar = file_get_contents($CFG->dirroot . '/lib/tests/fixtures/osx_yosemite.ics'); $ical = new iCalendar(); $ical->unserialize($calendar); $this->assertEquals($ical->parser_errors, array()); $sub = calendar_get_subscription($id); $result = calendar_import_icalendar_events($ical, $sub->courseid, $sub->id); $count = $DB->count_records('event', array('subscriptionid' => $sub->id)); $this->assertEquals($count, 1); // Test for Google Gmail. $subscription = new stdClass(); $subscription->name = 'Google Gmail'; $subscription->importfrom = CALENDAR_IMPORT_FROM_FILE; $subscription->eventtype = 'site'; $id = calendar_add_subscription($subscription); $calendar = file_get_contents($CFG->dirroot . '/lib/tests/fixtures/google_gmail.ics'); $ical = new iCalendar(); $ical->unserialize($calendar); $this->assertEquals($ical->parser_errors, array()); $sub = calendar_get_subscription($id); $result = calendar_import_icalendar_events($ical, $sub->courseid, $sub->id); $count = $DB->count_records('event', array('subscriptionid' => $sub->id)); $this->assertEquals($count, 1); }