/** * Test the badge created event. * * There is no external API for creating a badge, so the unit test will simply * create and trigger the event and ensure data is returned as expected. */ public function test_badge_created() { $badge = new badge($this->badgeid); // Trigger an event: badge created. $eventparams = array('userid' => $badge->usercreated, 'objectid' => $badge->id, 'context' => $badge->get_context()); $event = \core\event\badge_created::create($eventparams); // Trigger and capture the event. $sink = $this->redirectEvents(); $event->trigger(); $events = $sink->get_events(); $event = reset($events); // Check that the event data is valid. $this->assertInstanceOf('\\core\\event\\badge_created', $event); $this->assertEquals($badge->usercreated, $event->userid); $this->assertEquals($badge->id, $event->objectid); $this->assertDebuggingNotCalled(); $sink->close(); }
$fordb->usermodified = $USER->id; $fordb->issuername = $data->issuername; $fordb->issuerurl = $data->issuerurl; $fordb->issuercontact = $data->issuercontact; $fordb->expiredate = $data->expiry == 1 ? $data->expiredate : null; $fordb->expireperiod = $data->expiry == 2 ? $data->expireperiod : null; $fordb->type = $type; $fordb->courseid = $type == BADGE_TYPE_COURSE ? $courseid : null; $fordb->messagesubject = get_string('messagesubject', 'badges'); $fordb->message = get_string('messagebody', 'badges', html_writer::link($CFG->wwwroot . '/badges/mybadges.php', get_string('managebadges', 'badges'))); $fordb->attachment = 1; $fordb->notification = BADGE_MESSAGE_NEVER; $fordb->status = BADGE_STATUS_INACTIVE; $newid = $DB->insert_record('badge', $fordb, true); // Trigger event, badge created. $eventparams = array('objectid' => $newid, 'context' => $PAGE->context); $event = \core\event\badge_created::create($eventparams); $event->trigger(); $newbadge = new badge($newid); badges_process_badge_image($newbadge, $form->save_temp_file('image')); // If a user can configure badge criteria, they will be redirected to the criteria page. if (has_capability('moodle/badges:configurecriteria', $PAGE->context)) { redirect(new moodle_url('/badges/criteria.php', array('id' => $newid))); } redirect(new moodle_url('/badges/overview.php', array('id' => $newid))); } } echo $OUTPUT->header(); echo $OUTPUT->box('', 'notifyproblem hide', 'check_connection'); $form->display(); echo $OUTPUT->footer();