/** * Test the course category viewed. * * There is no external API for viewing a category, so the unit test will simply * create and trigger the event and ensure data is returned as expected. */ public function test_course_category_viewed_event() { // Create a category. $category = $this->getDataGenerator()->create_category(); // Trigger an event: course category viewed. $eventparams = array('objectid' => $category->id, 'context' => context_system::instance()); $event = \core\event\course_category_viewed::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\\course_category_viewed', $event); $this->assertEquals($category->id, $event->objectid); $this->assertDebuggingNotCalled(); $sink->close(); }
$category = $PAGE->category; } else { // Check if there is only one category, if so use that. if (coursecat::count_all() == 1) { $category = coursecat::get_default(); $categoryid = $category->id; $PAGE->set_category_by_id($categoryid); $PAGE->set_pagetype('course-index-category'); } else { $PAGE->set_context(context_system::instance()); } $PAGE->set_url('/course/index.php'); } $PAGE->set_pagelayout('coursecategory'); $courserenderer = $PAGE->get_renderer('core', 'course'); if ($CFG->forcelogin) { require_login(); } if ($categoryid && !$category->visible && !has_capability('moodle/category:viewhiddencategories', $PAGE->context)) { throw new moodle_exception('unknowncategory'); } $PAGE->set_heading($site->fullname); $content = $courserenderer->course_category($categoryid); echo $OUTPUT->header(); echo $OUTPUT->skip_link_target(); echo $content; // Trigger event, course category viewed. $eventparams = array('context' => $PAGE->context, 'objectid' => $categoryid); $event = \core\event\course_category_viewed::create($eventparams); $event->trigger(); echo $OUTPUT->footer();